资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,定时器/计数器,两个16位定时计数器,相关的,SFR: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,注意:不能位寻址,定时工作过程,定时器的工作方式:,方式0:13位定时计数器,注意:,TL0,的低5位和,TH0,共同组成,方式1:16位定时计数器,方式2:自动重装入的8位定时计数器,溢出后(,TF0=0),由,TH0TL0,方式3:,T0,成为两个独立的8位计数器,TL0,作为定时计数器;,TH0,仅作定时器用,TL0,的控制用原,T0,的,,TH0,用原,T1,的控制位,T1,工作在方式02,溢出时送串行口,经常作为串行口波特率发生器,定时器/计数器的初始化,1 根据要求给方式寄存器,TMOD,送一个方式控制字,以设定定时器响应的工作方式;,2 根据需要给,C/T,选送初值以确定需要的定时时间或计数的初值;,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.536,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),,若,TF01(TF1=1),,说明定时时间到或计满数,采用中断方式:程序初始化时,设置定时器溢出中断允许后,内部硬件自动检测到,TF01(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,#0F8H,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,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 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,
展开阅读全文