1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,定时器,/,计数器,两个,16,位定时计数器,相关的寄存器:,TMOD(,工作方式,),TCON(,状态,),。,定时功能时,每个机器周期定时器加,1,计数功能时,在外部事件相应输入脚(,T0,和,T1,),产生负跳变,计数器加,1,。,定时器的控制字,定时器控制寄存器,TCON(88H),TF1 TR1 TF0 TR0,IE1 IT1 IE0 IT0,C/T,方式寄存器,TMOD(89H),GATA C/T M1 M0,GATA C/T M1 M0,注意:不能位寻址,定时工作过程,定时器的工作方式:,方式
2、0,:,13,位定时计数器,注意:,TL0,的低,5,位和,TH0,共同组成,方式,1,:,16,位定时计数器,方式,2,:自动重装入的,8,位定时计数器,溢出后(,TF0=0),由,TH0TL0,方式,3,:,T0,成为两个独立的,8,位计数器,TL0,作为定时计数器;,TH0,仅作定时器用,TL0,的控制用原,T0,的,,TH0,用原,T1,的控制位,T1,工作在方式,0,2,,溢出时送串行口,经常作为串行口波特率发生器,定时器,/,计数器的初始化,1,根据要求给方式寄存器,TMOD,送一个方式控制字,以设定定时器响应的工作方式;,2,根据需要给,C/T,选送初值以确定需要的定时时间或计
3、数的初值;,3,根据需要给中断允许寄存器,IE,送中断控制字,以开放相应的中断和设定中断优先级;,4,给,TCON,送命令字以启动或禁止,C/T,的运行。,初值的计算,计数器初值:,设计数模值为,M,,,计数初值设定为,TC,,,计数器计满为零所需的计数值为,C,,,则:,TC=M-C,(,M=2,13,,,2,16,,,2,8,),定时器初值:,T=,(,M-TC,),T,机器,几种工作方式的最大定时时间,若,TC=0,,,定时时间为最大,设,F,OSC,=12MHZ,,,几种工作方式下的最大定时时间为:,方式,0,:,T,MAX,=8.192,MS,;,方式,1,:,T,MAX,=65.5
4、36,MS,;,方式,2,、,3,:,T,MAX,=0.256,MS,;,例,:,F,OSC,=12MHZ,试计算定时时间,2,MS,所需的定时器的初值,.,方式,2,、方式,3,T,MAX,=0.256,MS,,,所以必须将工作方式设在方式,0,或方式,1,:,方式,0,:,TC=2,13,-2,MS,/1,US,=6192=1830H,TL0=10H,,,TH0=0C1H,方式,1,:,TC=2,16,-2,MS,/1,US,=63536=0F830H,TL0=30H,,,TH0=0F8H,编程方式,采用查询方式:程序一直检测,TF0,(,TF1),,若,TF0,1(TF1=1),,,说明
5、定时时间到或计满数,采用中断方式:程序初始化时,设置定时器溢出中断允许后,内部硬件自动检测到,TF0,1(TF1=1),时,自动响应中断,进入中断服务程序。,应用举例,例,1,选用,T1,方式,0,产生,500,US,的定时,在,P,1.1,输出周期为,1,MS,的方波,;,F,OSC,=6MHZ,注意,:,T0,不用时的处理,一般置,0,方式,禁止进入方式,3.,初值计算,:T=500,US,=,(,2,13,-TC,)*,2,US,,,TC=7942,TC=7942D=8F06H,主程序,BEGIN,:,MOV TMOD,,,#0,MOV TL1,,,#06H,MOV TH1,,,#0F8
6、H,SETB TR1,LOOP,:,JBC TF1,,,PF0,SJMP LOOP,PF0,:,MOV TL1,,,#06H,MOV TH1,,,#0F8H,CPL P1.1,AJMP LOOP,例,2,从,P3.4T0,输入低频脉冲,要求该脉冲每发生一次跳变时由,P1.0,输出一个,500,US,的负脉冲,与此同时由,P1.1,输出一个宽为,1,MS,的正脉冲,.,先设,T0,为计数方式,当外部脉冲来一个负跳变时,计数加,1,并产生溢出,TF0=1;,检测到,TF0=1,时,即可设定,T1,为定时方式,;,T0,设为方式,2;,初值设为,0,FFH,即加,1,即刻产生溢出,.,ORG 0H,
7、SJMP BEGIN,ORG 000BH,AJMP TT1,ORG 0030H,BEGIN:MOV TMOD,#06H,MOV TH0,#0FFH,MOV TL0,#0FFH,CLR P1.1,Setb,et0,Setb,ea,SETB P1.0,SETB TR0,S1:SJMP$,中断服务程序,ORG 300H,TT1:MOV TMOD,#20H,MOV TH1,#0AH;06H,MOV TL1,#0AH;06H,SETB P1.1,CLR P1.0,SETB TR1,DEL2:JBC TF1,RP1,SJMP DEL2,RP1:SETB P1.0,DEL3:JBC TF1,RP2,SJMP
8、 DEL3,RP2:CLR P1.1,CLR TR1,RETI,例,3,:门控位的应用,GATE,位是控制外部输入脉冲对定时计数器的控制,利用这个特性。可测量输入脉冲的宽度。,如:利用,T0,门控位测试,INT0,引脚上出现的正脉冲的宽度,并以周期数显示。,ST:MOV TMOD,#09H,MOV TL0,#00H,MOV TH0,#00H,WAIT1:JB P3.2,WAIT1,SETB TR0,WAIT2:JNB P3.2,WAIT2,WAIT3:JB P3.2,WAIT3,CLR TR0,MOV A,TL0,MOV R0,#DISBUF,XCHD A,R0,INC R0,SWAP A,XCHD A,R0,INC R0,MOV A,TH0,XCHD A,R0,INC R0,SWAP A,XCHD A,R0,DIS:LCALL DISP,AJMP DIS,