您所在位置: 网站首页 / 系列单片机定时器计数器.ppt / 文档详情
系列单片机定时器计数器.ppt 立即下载
2024-11-21
约4.9千字
约62页
0
857KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

系列单片机定时器计数器.ppt

系列单片机定时器计数器.ppt

预览

免费试读已结束,剩余 57 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

7.1定时器/计数器概述7.1.2定时器/计数器的结构AT89C51定时器结构:C/T:计数器/定时器选择位
=0片内时钟定时器。对机器周期脉冲计数定时
=1外部事件计数器。对T0(T1)引脚的负脉冲计数;定时器T0/T1中断申请过程7.3定时器/计数器的四种工作模式及应用1.模式0及应用(以T0为例)设定时器T0工作于模式0,定时时间为1ms,fosc=6MHZ。
试确定T0的初值,计算最大定时时间T。

解:当T0为工作模式0时,加1计数器为13位。设T0的初值为X。
则	(213—X)×1/(6×106)×12=1×10-3S
	(213—X)×12/6=1000
	X=7692
转换为二进制数:X=1111000001100B
T0的低5位:01100B=0CH
T0的高8位:11110000B=F0H
T0的最大定时时间应于13位计数器各位全为1,即(TH0)=FFH,(TL0)=1FH。即X=0。
则T=213×12/6MHZ=16.384ms利用T0工作于模式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。设单片机晶振频率fosc=12MHZ。

解:(1)选择工作模式
要在P1.0引脚上输出周期为2ms的方波,只要使P1.0每隔1ms取反一次即可。
T0模式字为TMOD=00H,即T0模式0,为定时状态,不受INT0控制,TR0作为开关。
(2)计算1ms定时时T0的值
设T0的计数初值为X,则
	(213—X)Х1Х10-6s=1X10-3
	X=7192D=1110000011000B=E018H
TH0初值为E0H,TL0初值为18H。(3)查询方式
查询方式在定时器计数过程中,CPU要不断查询溢出标志位TF0的状态。这就占用了很多CPU的工作时间,使CPU的效率下降。
程序清单:
MOVTMOD,#00H;设置T0为模式0
MOVTL0,#18H;送初值
MOVTH0,#0E0H;
SETBTR0;启动T0
LOOP:JBCTF0,NEXT;查询定时时间到期否?
SJMPLOOP
NEXT:MOVTL0,#18H;重装时间常数
MOVTH0,#0E0H;
CPLP1.0;输出取反
SJMPLOOP;重复循环	#include<AT89X51.H>
main()
{
P1_0=0;
TMOD=0X00;
TL0=0X18;
TH0=0XE0;
TR0=1;
	while(1)
	{
		if(TF0==1)
			{
			TF0=0;
			TL0=0X18;
			TH0=0XE0;
			P1_0=~P1_0;
			}
	}
}(4)定时器溢出中断程序
程序清单如下:
主程序:
MAIN:MOVTMOD,#00H;设置T0模式0
MOVTL0,#18H;送初值
MOVTH0,#0E0H;
SETBEA;CPU开中断
SETBET0;T0中断允许
SETBTR0;启动T0
HERE:SJMPHERE	;等待中断,返回主程序
中断服务程序:
ORG000BH;T0中断的入口
AJMPCTC0;跳转
CTC0:MOVTL0,#18H;重装初值
MOVTH0,#0E0H;
CPLP1.0;输出方波
RETI;中断返回	#include<AT89X51.H>
main()
{
P1_0=0;
TMOD=0X00;
TL0=0X18;
TH0=0XE0;
EA=1;
ET0=1;
TR0=1;
while(1);
}

voidinte_T0()interrupt1
{
TL0=0X18;
TH0=0XE0;
P1_0=~P1_0;
}例3:用定时器T1产生一个50HZ的方波,由P1.1输出的方波波形如图7.3-3所示。仍使用程序查询方式,fosc=12MHZ。#include<AT89X51.H>
main()
	{
	P1_1=1;
	TMOD=0x10;
	TH1=0XD8;
	TL1=0XF0;
	TR1=1;
		while(1)
		{
			if(TF1)
			{
			TR1=0;
			TF1=0;
			TH1=0XD8;
			TL1=0XF0;
			P1_1=~P1_1;
			TR1=1;
			}
		}
	}分析:已知fosc=6MHz则:
(振荡周期)1Tc=1/6MHz
(机器周期)1Tm=12Tc=12/6MHz=2S
粗略地说:Tmin2S
16位定时器最大数值为:216=65536=0FFFFH+1
故选择方式1工作可以得到:
Tmax=655362=131072S=131.072mS例4:当P3.4引脚上的电平发生负跳变时,从P1.0输出一个500μs的同步脉冲。请编写程序实现该功能。(2)计算初值
T0工作在外部事件计数方式,当计数器初
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

系列单片机定时器计数器

文档大小:857KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用