MCS-51单片机内有两个16位定时/计数器T0和T1,具备定时和事件计数功能,可用于定时控制、延时、对外部事件计数和检测等。其结构如图5.1所示。
图5.1 MCS-51单片机中定时器的结构
两个16位定时/计数器实际上都是16位加1计数器,其中,T0由两个8位特殊功能寄存器TH0和TL0构成,T1由TH1和TL1构成。每个定时/计数器都可由软件设置为定时方式或计数方式及其他灵活多样的可控功能方式。这些功能都由特殊功能寄存器TMOD和TCON控制。
把定时/计数器设置为定时工作方式时,其计数片内振荡器输出经12分频后的脉冲,即每个机器周期定时/计数器的计数值加1直至计满溢出。当MCS-51单片机采用12 MHz晶体时,其计数频率为1 MHz。
把定时/计数器设置为计数方式时,通过引脚T0(P3.4)和T1(P3.5)对外部输入脉冲信号计数。当输入信号产生由高到低的负跳变时,计数器的值加1。在每个机器周期的S5P2期间采样T0和T1引脚的输入电平,若前一个机器周期采样值为1,下一个采样值为0,则计数器加1。此后的机器周期S3P1期间,新的数值装入计数器。基于此,检测一个1至0的跳变需要两个机器周期,最高计数频率为振荡频率的1/24。虽然对输入信号的占空比无特殊要求,但为了确保某个电平在变化之前至少采样一次,电平保持时间必须大于或等于一个完整的机器周期。
不管是定时工作方式还是计数工作方式,定时/计数器T0或T1在对内部时钟或对外部事件计数时,不占用CPU时间,除非定时/计数器溢出,才可能中断CPU当前操作。由此可见,定时/计数器是单片机中效率最高而且工作灵活的部件。
除了可以选择定时或计数工作方式外,每个定时/计数器还有4种工作模式,也就是每个定时/计数器可构成4种电路结构模式。其中0~2模式对T0和T1都是一样的,模式3对两者是不同的。T0和T1功能的设置与控制是由工作模式寄存器TMOD和控制寄存器TCON的软件设置来完成的。在单片机复位时,它们的值均为00H。
1)工作模式寄存器TMOD(89H)
TMOD用于控制T0和T1操作模式,各位的定义及格式如下:
其中,低4位用于T0,高4位用于T1。
各位功能如下:
(1)M1和M0
操作模式控制位。两位可形成4种编码,对应于4种操作模式(即4种电路结构),见表5.1。
(2)C/
计数器方式/定时器方式选择位。
C/=0,设置为定时方式。定时器8051片内脉冲,亦即对机器周期(时钟周期的12倍)计数。C/=1,设置为计数方式,计数器的输入来自T0(P3.0)或T1(P33.5)端的外部脉冲。
表5.1 M1M0控制的4种操作模式
(www.xing528.com)
(3)GATE
门控位,GATE=0时,不论(或)的电平是高还是低,使用软件TR0(或TR1)置1即可启动定时器,如图5.2所示。GATE=1时,只有(或)引脚为高电平且由软件使TR0(TR1)置1时,才能启动定时器工作。
图5.2 TMOD各位定义
TMOD不能位寻址,只能用字节设置定时器工作方式。其中,低半字节设定T0,高半字节设定T1。
2)控制寄存器TCON(88H)
定时器控制寄存器TCON除可字节寻址外,各位还可位寻址,各位定义及格式如下:
TCON各位的作用如下:
TF1(TCON.7):T1溢出标志位。当T1溢出时,由硬件自动使中断触发器TF1置1并向CPU申请中断。当CPU响应进入中断服务程序后,TF1被硬件自动清零。TF1也可以用软件清零。
TF0(TCON.5):T0溢出标志位。其功能和操作情况同TF1。
TR1(TCON.6):T1运行控制位。可由软件置1或0来启动或关闭T1,在程序中用一条指令(SETB TR1)使TR1位置1,定时器T1便开始计数。
TR0(TCON.4):T0运行控制位。其功能及操作情况同TR1。
以上4位控制T1和T0以定时器方式运行或中断。
IE1、IT1、IE0和IT0(TCON.3~TCON.0)为外部中断请求及请求方式控制位。
8051复位时,TCON的所有位被清零。
TCON各位定义如图5.3所示。
图5.3 TCON各位定义
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。