,单片机原理及接口技术,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单片机原理及接口技术,11/16/2024,6.1,定时器概述,6.2,定时器的控制,6.3,定时器的四种模式及应用,6.4,思考题与习题,第六章 定时器及应用,11/16/2024,6.1,定时器概述,6.1.1 89C51,定时器结构,有两个,16,位的定时器,/,计数器,即,T0,和,T1,。都是,16,位加,1,计数器。,T0,由两个,8,位特殊功能寄存器,TH0,和,TL0,构成;,T1,由,TH1,和,TL1,构成。,单片机原理及接口技术,11/16/2024,11/16/2024,6.1.2 89C51,定时器,T0,、,T1,都可由软件设置为,定时方式,或,计数方式,。,由,TMOD,和,TCON,所控制。,采用加计数。加到,0,产生溢出,发出中断申请。,定时工作方式:,定时器计数,89C51,片内振荡器输出经,12,分频后的脉冲,即每个机器周期使定时器(,T0,或,T1,)的数值,加,1,直至计满溢出。,计数工作方式:通过引脚,T0,(,P3.4,)和,T1,(,P3.5,)对外部脉冲信号计数。当输入脉冲信号产生由,1,至,0,的,下降沿,时计数器的值加,1,。,定时器工作不占用,CPU,时间,除非定时器,/,计数器溢出,才能中断,CPU,的当前操作。,定时器,/,计数器有四种工作模式。其中模式,0-2,对,T0,和,T1,是一样的,模式,3,对两者不同。,当,89C51,采用,12MHz,晶振时,一个机器周期为,1s,,计数频率为,1MHz,。,CPU,检测一个,1,至,0,的跳变需要两个机器周期,故最高计数频率为振荡频率的,1/24,。,定时器不用时,不能进入模式,3,,一般取模式,0,。,为了确保某个电平在变化之前被采样一次,要求电平保持时间至少是一个完整的机器周期。见,P.132,图,6-2,。,单片机原理及接口技术,11/16/2024,11/16/2024,6.2,定时器的控制,(,TMOD,、,TCON,),6.2.1,工作模式寄存器,TMOD,单片机原理及接口技术,11/16/2024,M1,和,M0,操作模式控制位。,定时器,T1,定时器,T0,TMOD,(89H),D7 D6 D5 D4 D3 D2 D1 D0,GATE,C/T,M1 M0,GATE,C/T,M1 M0,C/T=0,,设置为,定时方式,。定时器计数,89C51,片内脉冲,即对机器周期计数。,C/T=1,,设置为,计数方式,。计数器的输入来自引脚,T0,(,P3.4,),或,T1,(,P3.5,),端的外部脉冲,。,GATE,门控位。,GATE=0,,,只要用软件使,TR0,(或,TR1,),置,1,就可以启动定时器。,GATE=1,,,只有,INT0,(或,INT1,),引脚为,高电平,且由软件使,TR0,(或,TR1,),置,1,时,才能启动定时器工作。,TMOD,不能位寻址。,低半字节设置,T0,,高半字节设置,T1,。,C/T,计数器,/,定时器方式选择位。,11/16/2024,单片机原理及接口技术,11/16/2024,6.2.2,控制器寄存器,TCON,TF1T1,溢出标志位。,当,T1,溢出,时,由硬件自动使中断触发器,TF1,置,1,,并向,CPU,申请中断。,当,CPU,响应中断进入中断服务程序后,,,TF1,被硬件,自动清,0,。,TF1,也可以用,软件清,0,。,TF0T0,溢出标志位。,其功能和操作情况同,TF1,。,TR1T1,运行控制位。,TR1=1,T1,才,可能,工作;,TR1=0,T1,一定,不工作。,TR0(TCON.4)T0,运行控制位。,其功能和操作情况同,TR1,。,IE1,,,IT1,,,IE0,,,IT0,外部中断,INT1,,,INT0,请求及请求方式控制位。,TCON,除可字节寻址外,各位还,可位寻址,。,TF1,TR1,TF0,TR0,IE1,IT1,IE0,IT0,TCON,(88H),8FH 8EH 8DH 8CH 8BH 8AH 89H 88H,11/16/2024,6.3,定时器的四种模式及应用,6.3.1,模式,1,及其应用,计数源:定时方式为机器周期;计数方式为,T0,引脚。,计数开关:由,TR0,、(,GATE+INT0,引脚)控制。,16,位的定时器,/,计数器:,TH0,、,TL0,。,记到零时发出中断申请,,TF0=1,。,定时时间:,t=(2,16,T0,初值,)T,。,计数工作方式:,(2,16,T0,初值,),(个外部脉冲,),,T0,初值一般为,0,。,单片机原理及接口技术,11/16/2024,11/16/2024,例,1,:设晶振为,12MHz,,,试计算定时器,T0,工作于模式,1,时的最大定时时间,t,。,解:,当,T0,处于,工作模式,1,时,加,1,计数器为,16,位,。,定时时间为:,t=(2,16,T0,初值,),机器周期,机器周期,=,振荡周期,X 12=1uS,。,最大定时时间为,“,T0,初值,=0,”,时。,所以:,模式,1,最大定时时间:,t=2,16,X 1uS,=65.636,mS,单片机原理及接口技术,11/16/2024,三、模式,1,的应用举例,11/16/2024,解:,1,)确定,T0,初值:,当,T0,处于工作模式,1,时,加,1,计数器为,16,位。,定时时间:,t=(2,16,T0,初值,),机器周期,10ms=(2,16,T0,初值,)2uS,T0,初值,=65536-5000=60536=EC78H,即:(,TH0,),=ECH,(高,8,位),(,TL0,),=78H,(低,8,位),单片机原理及接口技术,11/16/2024,GATE,C/T,M1,M0,GATE,M1,C/T,M0,TMOD,(89H),D7 D6 D5 D4 D3 D2 D1 D0,2,),确定,TMOD,的初值,例,2,:设定时器,T0,用于定时,10ms,,晶振为,6MHz,。试确定,T0,初值。并编写定时器,T0,初始化程序段。,模式,0,:,M1M0=01,,,定时器方式:,C/T=0,,,门控位不受,INT0,的影响:,GATE=0,,,其余位:,为 0,。,模式字为,TMOD=0000 0001 B=01H,T1,未用,填,0,。,3,),编写,T0,的初始化程序段,主程序:,ORG 0100H,MAIN:MOV SP,#60H,MOV TMOD,#01H,MOV TH0,#ECH,MOV TL0,#78H,SETB TR0,11/16/2024,例,3,:利用,定时器,T1,在,P1.0,引脚,产生一个,50Hz,的方波,由,P1.1,输出。使用程序查询方式,,fosc,=6MHz,。,(,分别采用查询方式和中断方式,)。,(,2,)选择工作模式,:,TMOD=10H,,,即:,M1M0=01,,,C/T=0,,,GATE=0,,,其余位为0,。,(,3,)计算,10ms,定时,T1,的初值,T=(2,16,T1,初值,)210,-6,=1010,-3,T1,初值,=65536-5000=60536=EC78H,即:(,TH1,),=ECH,(高,8,位),(,TL1,),=78H,(低,8,位),单片机原理及接口技术,11/16/2024,20ms,10ms,10ms,解:,1,)确定定时器,T1,初值,方波周期,T=1/50=0.02s=20ms,用,T1,定时,10ms,时间到,P1.1,引脚电平取反。,11/16/2024,(,4,)采用查询方式的程序,程序,清单:,ORG 0000H,LJMPMAIN,ORG0080H,MAIN,:,MOV TMOD,#10H,MOV TL0,#78H,MOV TH0,#ECH,SETBP1.1,SETB TR0,LP,:,JBC TF0,,,NEXT,SJMP LP,NEXT,:,MOV TL0,#78H,MOV TH0,#ECH,CPL P1.0,SJMP LP,单片机原理及接口技术,11/16/2024,(,5,)采用定时器溢出中断方式的程序,ORG 0000H,RESET:AJMP MAIN,ORG 000BH,AJMP CTC0,ORG 0030H,MAIN,:,MOV TMOD,#10H,MOV TL0,#78H,MOV TH0,#ECH,SETB EA,SETB ET0,SETB TR0,HERE,:,SJMP HERE,CTC0:MOV TL0,#78H,MOV TH0,#ECH,CPL P1.1,RETI,如占空比不同,如何处理?,11/16/2024,例,4,:设定时器,T0,选择工作模式,1,的计数器工作方式,其计数器初值为,FFFF,H,,,问此时定时器,T0,的实际用途是什么?,解:因其初值为,FFFFH,,,只要,T0,引脚随机外来一脉冲即可溢出,向,CPU,申请中断,故这一内部中断源实质上已作为外部中断源使用。因此此时,T0,并不用于定时或计数。,单片机原理及接口技术,11/16/2024,11/16/2024,6.3.2,模式,0,及其应用,模式,0,逻辑电路结构,与模式,1,相似。,模式,0,为,13,位,计时器。,TH0,占高,8,位,其中,TL0,的,高,5,位为整个,13,位的低,5,位。当,TL0,的,高,5,位溢出时,向,TH0,进位;,TH0,溢出时,向中断标志,TF0,进位(硬件置位,TF0,),并申请中断。,定时时间为:,t=(2,13,T0,初值,),振荡周期,12,用于计数工作方式时,计数长度为:,L=(2,13,T0,初值,),(个外部脉冲)。,单片机原理及接口技术,11/16/2024,11/16/2024,6.3.3,模式,2,及其应用,单片机原理及接口技术,11/16/2024,一、,模式,2,的逻辑电路结构,该模式把,TL,X,配置成可自动重装,8,位定时计数器,,逻辑电路结构如图所示。,TL,X,计数溢出时,,TF,X,置,1,,而且还自动把,TH,X,中的内容重新装载到,TL,X,中。,TL,X,用作,8,位计数器,,TH,X,用以保存初值。在程序初始化时,,TL,X,和,TH,X,由软件赋予相同的初值。,用于定时方式时,定时时间为:,t=(2,8,TL0,初值,)T,用于计数方式时,计数长度为:,(2,8,TL0,初值,),个外部脉冲,该模式可省去软件中重装常数的语句,并可产生相当精确的定时时间,,适合于作串行口波特率发生器。,11/16/2024,三、模式,2,的应用举例,例,5,:当,P3.4,引脚(定时器,T0,的外部计数输入端)上的电平发生负跳变时,从,P1.0,输出,一个,500s,的同步脉冲。用,查询方式,编,程实现该功能,,fosc,=6MHz,。(见,P.136,),单片机原理及接口技术,11/16/2024,解:,1.T0,为计数方式,:,TMOD=0000 0110B=06H,高四位取0,GATE=0,M1M0=10,C/T=1,当,P3.4,引脚上的电平发生负跳变时,,T0,计数器加,1,,溢出标志,TF0,置,1,;,2.,改变,T0,为,500s,定时工作方式(,C/T=0,):(,TMOD,),=02H,当,T0,引脚发生负跳变时,,使,P1.0,输出为0。,启动,T0,定时,500,s,定时时间到,,使,P1.0,输出恢复高电平,,T0,又恢复外部事件计数方式,。,定时器,T1,定时器,T0,GATE,C/T,M1,M0,GATE,M1,C/T,M0,TMOD,(89H),D7 D6 D5 D4 D3 D2 D1 D0,11/16/2024,3.,程序清单,:,ORG0000H,LJMPSTART,ORG0080H,START,:,MOVTMOD,#06H,;,设置,T0,为模式,2,外部计数方式,MOV TL0,#0FFH,;,T0,