预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共23页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

定时/实现方式: 1.软件定时; 2.不可编程硬件定时; 3.可编程定时 一、定时/计数器的定时和计数功能二、定时器/计数器的控制寄存器2.工作方式控制寄存器TMOD计数脉冲输入2.方式1—16位方式3.方式2—8位自动装入时间常数方式4.方式3—2个8位方式1.计数器初值的计算 把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式: TC=M-C 式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;在方式1时M为216;在方式2和方式3时M为28。 五、应用举例例题1:设晶振频率fOSC=6MHz,使用定时器1以方式1产生周期为500μs的方波脉冲,并由P1.0输出。试以中断方式实现。①TMOD确定(216–X)×2×10-6=250×10-6 即216–X=125 X=216-125=10000H-7DH =0FF83H 所以,初值为: TH1=0FFH,TL1=83H例题2:假设单片机的振荡频率fosc=6MHz,现要求产生1ms的定时,试分别计算定时器T1在方式0、方式1和方式2时的初值。方式2:最大计数值为M=28,因此定时器的初值应为 X=28-(1×10-3)/(2×10-6)=256-500=-254 计算得到的初值为负值,说明当fosc=6MHz时,不能采用方式2(即常数自动装入)来产生1ms的定时,除非把单片机的时钟频率降得很低。定时器/计数器应用实例硬件定时与软件计数结合方式解题思路: 让T0作定时器用,如T0可以定时50ms,每当定时时间到,在T0中断处理程序中一个寄存器内容加1,同时判断是否加到2000/50=40,如果不到40,则直接返回,如果计到40,说明2s时间到,使P1口循环点亮8个发光二极管后再返回。 T0工作在方式1,控制字01H,计数初值:程序设计ORG1000H MAIN:MOVTMOD,#01H;T0为方式1 MOVTH0,#3CH MOVTL0,#B0H;初值 SETBEA;允许中断 SETBET0 SETBTR0;启动定时 MOVA,#01H;LED0先亮 MOVP1,A; MOVR0,#0 SJMP$;等待中断中断处理程序:**硬件定时与硬件计数结合方式解题思路:将引脚P3.0与引脚P3.5即T1脚连接起来。让T0作定时器用,T1作计数器用,如T0可以定时50ms,每当定时时间到,在T0中断处理程序中通过P3.0给T1脚输入负脉冲,使T1计数,当计数到2000/50=40时,说明2s时间到,在T1的中断处理程序中使P1口循环点亮8个发光二极管。**