单片机内部含有两个定时器/计数器,分别是T0和T1。在增强型51系列单片机中,如STC89C51RC,内部除了含有T0和T1外,还有T2定时器/计数器。定时器/计数器主要由于精确的定时,也可用于对外部脉冲进行计数以及为作为串行通信的波特发生器。定时器/计数器不同的功能是通过对相关特殊功能寄存器的设置和程序设计来实现的。
单片机的两个定时器/计数器部件主要由T0、T1,工作方式控制寄存器TMOD,定时器/计数器的控制寄存器TCON组成。
1.T0与T1
T0由两个8位寄存器TH0、TL0组成,其中TH0是T0的高8位,TL0是T0的低8位。T1的结构与T0一样,只是组成它的两个8位寄存器分别为TH1、TL1。T0与T1都是二进制加1计数器,即每一个脉冲来到时都能使计数器的当前值加1,可以实现最大16位二进制加计数。脉冲来源有两种,一个是利用外部在单片机P3.4、P3.5接口输入脉冲信号,另一个是单片机晶体振荡频率的12分频产生的。
2.TMOD
TMOD为定时器/计数器的工作方式控制寄存器,共8位,分为高4位和低4位两组。其中高4位控制T1,低4位控制T0,分别用于设定T1和T0的工作方式。TMOD不支持位操作,其格式为
GATE为门控位,控制定时器启动操作方式,即定时器的启动是否受外部脉冲控制。当GATE=1时,计数器的启停受TRx(x为0或1,下同)和外部引脚外部中断的双重控制,只有两者都是1时,定时器才能开始工作。控制T0运行,控制T1运行。当GATE=0时,计数器的启停只受TRx控制,不受外部中断输入信号的控制。
为定时器/计数器的工作模式选择位。C/T=1时,为计数器模式;C/T=0时,为定时器模式。
M1、M0为定时器/计数器T0和T1的工作方式控制位,M1、M0控制定时器/计数器的工作方式见表4-2。
表4-2 定时器/计数器工作方式控制(www.xing528.com)
3.TCON
TCON是定时器/计数器控制寄存器,也是8位寄存器,其中高4位用于定时器/计数器;低4位用于单片机的外部中断,已在4.1节中介绍。TCON支持位操作,其格式为
TR1为定时器T1的启停控制位。TR1由指令置位和复位,以启动或停止定时器/计数器开始定时或计数。
除此以外,定时器的启动与TMOD中的门控位GATE也有关系。当门控位GATE=0时,TR1=1即启动计数;当GATE=1时,TR1=1且外部中断引脚
,=1时才能启动定时器开始计数。
TF1为定时器T1的溢出中断标志位。在T1计数溢出时,由硬件自动将TF1置1,向CPU请求中断。CPU响应时,由硬件自动将TF1清零。TF1的结果可用程序查询,但在查询方式中,如果T1不产生中断,TF1置1后需要在程序中用软件将其清零。
TR0为T0的计数启停控制位,功能同TR1。当GATE=1时,T0受TR0和外部中断引脚的双重控制。
TF0为T0的溢出中断标志位,功能同TF1。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。