1、2023-5-231第第6 6章章 89C5189C51的定时的定时/计数器计数器定时器定时器/计数器的结构计数器的结构6.1定时器定时器/计数器的计数器的4 4种工作方式种工作方式6.2计数器模式对输入信号的要求计数器模式对输入信号的要求6.3定时定时/计数器计数器的编程和应用的编程和应用6.42023-5-2326.1 定时定时/计数器的结构计数器的结构定时定时/计数器的结构计数器的结构基本型:基本型:T0T0,定时、计数。,定时、计数。T1 T1,定时、计数、串口波特率发生器。,定时、计数、串口波特率发生器。增强型:增加了增强型:增加了T2T2。TH1TH1、TL1TL1TH0TH0、T
2、L0TL0TCONTCONTMODTMOD2023-5-233定时定时/计数器的工作原理计数器的工作原理实质是实质是1616位加位加1 1计数器计数器定时器模式时,是对内部定时器模式时,是对内部机器周期机器周期计数。计数值乘以机计数。计数值乘以机器周期就是定时时间器周期就是定时时间 计数器模式时,是对计数器模式时,是对外部事件外部事件计数。脉冲由计数。脉冲由T0T0(P3.4P3.4)或或T1T1(P3.5P3.5)引脚输入。引脚输入。注意注意:(:(若若计数值计数值为为N N,计数初值计数初值为为X X)溢出信号使溢出信号使TF0TF0或或TF1TF1置置1 1,并,并发出中断请求发出中断请
3、求,1616位时有:位时有:N=65536-XN=65536-X,或,或X=65536-NX=65536-N12MHz12MHz晶振时,计数频率低于晶振时,计数频率低于0.5MHz 0.5MHz 2023-5-2346.1.1 6.1.1 定时定时/计数器的控制计数器的控制工作方式寄存器工作方式寄存器TMODTMOD 76543210TMODGATEC/TM1M0GATEC/TM1M0字节地址:字节地址:89HGATEGATE:门控位。:门控位。GATEGATE0 0时,只要时,只要TRxTRx为为1 1,就可启动计,就可启动计数器工作;数器工作;GATAGATA1 1时,定时器的启动还要加上
4、时,定时器的启动还要加上INTxINTx引脚引脚为高电平这一条件。为高电平这一条件。C/TC/T:模式选择位。:模式选择位。清清0 0为定时模式,置为定时模式,置1 1为计数方式。为计数方式。M1M0M1M0:工作方式设置位。可设置四种工作方式。:工作方式设置位。可设置四种工作方式。2023-5-235M1M0M1M0 工作方式工作方式说说 明明0000方式方式0 01313位定时位定时/计数器计数器0101方式方式1 11616位定时位定时/计数器计数器1010方式方式2 28 8位自动重装定时位自动重装定时/计数器计数器1111方式方式3 3T0T0分成两个独立的分成两个独立的8 8位定时
5、位定时/计数器;计数器;T1T1此方式停止计数此方式停止计数注意:注意:TMODTMOD不能进行位寻址不能进行位寻址 2023-5-2366.1.2 6.1.2 控制寄存器控制寄存器TCONTCON 76543210TCONTF1TR1TF0TR0字节地址:字节地址:88HTFxTFx:TxTx溢出标志位。溢出标志位。响应中断后响应中断后TFxTFx有硬件自动清有硬件自动清0 0。用软件设置用软件设置TFxTFx可产生同硬件置可产生同硬件置1 1或清或清0 0同样的效果。同样的效果。TRxTRx:TxTx运行控制位。运行控制位。置置1 1时开始工作;清时开始工作;清0 0时停止工作。时停止工作
6、。TRxTRx要由软件置要由软件置1 1或清或清0 0(即启动与停止要由软件控制即启动与停止要由软件控制)。)。2023-5-2376.2 6.2 定时定时/计数器的计数器的4 4种工作方式种工作方式T0T0有方式有方式0 0、1 1、2 2、3 3;T1T1有方式有方式0 0、1 1、2 2。以。以T0T0为例说明。为例说明。方式方式0 0:1313位方式位方式 2023-5-238 C/T=1 C/T=1时,则为计数模式,有:时,则为计数模式,有:X=2X=21313-N=8192-N-N=8192-N C/T=0 C/T=0时,则为定时模式,有:时,则为定时模式,有:初值计算:初值计算:
7、公式法公式法 T)02(13计数周期初值 Tt2023-5-239门控位作用门控位作用当当GATE=0GATE=0时时仅由仅由TR0TR0控制与门的开启。与门输出控制与门的开启。与门输出1 1时,控制开关时,控制开关接通,计数开始;接通,计数开始;当当GATE=1GATE=1时时与门的开启由与门的开启由INT0INT0和和TR0TR0共同控制。这种方式可以用共同控制。这种方式可以用来测量来测量INT0INT0引脚上正脉冲的宽度。引脚上正脉冲的宽度。注意注意:方式:方式0的计数初值高的计数初值高8位和低位和低5位确定麻烦位确定麻烦,实际,实际应用中常由应用中常由16位的方式位的方式1取代。取代。
8、2023-5-2310方式方式1 1:1616位方式位方式 X=2X=21616-N=65536-N -N=65536-N 计数范围:计数范围:1 16553665536 计数初值要计数初值要分成分成2 2个字节个字节分别送入分别送入TH0TH0、TL0TL02023-5-2311【例例】若要求定时器若要求定时器T0T0工作于方式工作于方式1 1,定时时间为,定时时间为1ms1ms,当晶,当晶振为振为6 MHz6 MHz时,求送入时,求送入TH0TH0和和TL0TL0的计数初值各为多少?应怎的计数初值各为多少?应怎样送入样送入TH0TH0和和TL0TL0?由于晶振为由于晶振为6 MHz6 MH
9、z,所以机器周期,所以机器周期TcyTcy为为2 2S S,因此:,因此:N=N=t/Tcyt/Tcy=1=11010-3-3/2/21010-6-6500500X X2 21616-N-N65536-50065536-5006503665036FE0CH FE0CH 也可以利用以下也可以利用以下2 2条指令完成:条指令完成:v MOV TL0,#(65536-500)MOV TL0,#(65536-500)MODMOD 256;256;余数余数为计数初值的为计数初值的低字节低字节v MOV TH0,#(65536-500)MOV TH0,#(65536-500)/256 ;256 ;商商为计
10、数初值的为计数初值的高字节高字节用传送指令分别将用传送指令分别将FEHFEH送入送入TH0TH0中,中,0CH0CH送入送入TL0TL0中即可。中即可。2023-5-2312方式方式2 2:8 8位自动重装方式位自动重装方式 X=2X=28 8-N=256-N -N=256-N 计数范围:计数范围:1 1256256 特别适合于脉冲信号发生器特别适合于脉冲信号发生器2023-5-2313方式方式3 3:(仅(仅T0T0有此方式,有此方式,T1T1的方式的方式3 3将停止计数)将停止计数)TL0 TL0进行进行8 8位定时位定时/计数计数 TH0 TH0进行进行8 8位定时(位定时(T1T1方式
11、方式2 2时,可出借时,可出借TR1TR1、TF1TF1)2023-5-23142023-5-23152023-5-2316外部计数脉冲的最高频率为系统振荡器频率的外部计数脉冲的最高频率为系统振荡器频率的1/241/24,例如选,例如选用用1212MHzMHz频率的晶体,则可输入频率的晶体,则可输入500500KHzKHz的外部脉冲。的外部脉冲。输入信号的高、低电平至少要保持一个机器周期。输入信号的高、低电平至少要保持一个机器周期。2023-5-23172023-5-23182023-5-23192023-5-23202023-5-23212023-5-23222023-5-23232023-
12、5-23242023-5-23252023-5-23266.4.2 方式2的应用2023-5-23272023-5-23282023-5-23292023-5-23302023-5-23312023-5-23322023-5-23332023-5-23346.4.3 方式3的应用2023-5-23352023-5-23362023-5-23372023-5-2338 MOV TH1,#dataH MOV TCON,#55H;允许T0中断 MOV IE,#9FH ;启动T1 TL0INT:MOV TL0,#0FFH ;TL0中断服务程序,TL0重新装入初值 中断处理 TH0INT:MOV TH0,#9CH ;TH0中断服务程序,TH0重新装入初值 CPL P1.0 ;P1.0位取反输出 RETI 2023-5-23392023-5-23402023-5-2341 CLR TR1;停止T1计数 MOV A,TL1;T1计数值送A 将A中的T1计数值送显示缓冲区 转换成显示的代码 LOOP3:LCALL DIR ;调用显示子程序DIR;显示T1计数值 AJMP LOOP3 ;执行程序,使INT1*引脚上出现的正脉冲宽度以机器周期数的形式显示在显示器上。2023-5-23426.4.5 实时时钟的设计2023-5-23432023-5-23442023-5-2345