MCS-51系列单片机的定时器/计数器T0、T1具有4种工作方式,分别由多功能寄存器TMOD和TCON控制。下面分别介绍4种工作方式的工作原理。
1.方式0
当M1,M0为00时,定时器工作T0、T1设置为方式0。方式0为13位的定时器/计数器,由TLx的低5位和THx的高8位构成。在计数的过程中,TLx的低5位溢出时向THx进位,THx溢出时置位对应的中断标志位TFx,并向CPU申请中断。T0、T1工作在方式0情况一样,下面以T0为例说明工作方式0的具体控制。T0工作于方式0时的逻辑框图如图4-4所示。
当=0时,电子开关接到上面,Tx的输入脉冲信号由晶体振荡器的十二分频而得到,即每一个机器周期使T0的数值加1,这时T0用作定时器。
当=1时,电子开关接到下面,计数脉冲是来自T0的外部脉冲输入端单片机P3.4的输入信号,P3.4脚上每出现一个脉冲,会使T0的数值加1,这时T0用作计数器。
当GATE=0时,A点为“1”,B点电位就取决于TR0状态。TR0为“1”时,B点为高电平,电子开关闭合,计数脉冲就能输入到T0,允许计数。TR0为“0”时,B点为低电平,电子开关断开,禁止T0计数。即GATE=0时,T0或T1的启动与停止仅受TR0或TR1控制。
图4-4 定时器在方式0时的逻辑结构
当GATE=1时,A点受(P3.2)和TR0的双重控制。只有=1,且TR0为“1”时,B点才是高电平,使电子开关闭合,允许T0计数。即GATE=1时,必须满足INT0和TR0同时为1的条件,T0才能开始定时或计数。
在方式0中,计数脉冲加到13位的低5位TL0上。当TL0加1计数溢出时,向TH0进位,当13位计数器计满溢出时,溢出中断标志TF0=1,向CPU请求中断,表示定时器计数已溢出。CPU进入中断服务程序入口时,由内部硬件清零TF0。
2.方式1
当M1、M0为01时,定时器/计数器工作于方式1。方式1与方式0差不多,不同的是方式1的计数器为16位,由高8位THx和低8位TLx构成。定时器T0工作于方式1的逻辑框图如图4-5所示。方式1的具体工作过程和工作控制方式与方式0类似,这里不再重复说明。
(www.xing528.com)
图4-5 定时器在方式1时的逻辑结构
3.方式2
当M1、M0为10时,定时器/计数器工作在方式2。方式2为8位定时器/计数器工作状态。TLx计满溢出后,会自动预置或重新装入THx寄存的数据。TLi为8位计数器,THi为常数缓冲器。当TLi计满溢出时,使溢出标志TFi置1。同时将THi中的8位数据常数自动重新装入TLi中,使TLi从初值开始重新计数。定时器T0工作于方式2的逻辑框图如图4-6所示。
这种工作方式可以省去用户软件重装初值,简化定时常数的计算方法,可以实现相对比较精确的定时控制。方式2常用于定时控制。如希望得到1s的延时,若采用12MHz的振荡器,则计数脉冲周期即机器周期为1μs,如果设定TL0=56,TH0=56,=0,TLi计满刚好200μs,中断5000次就能实现。另外,方式2还可用作串行接口的波特率发生器。
图4-6 定时器在方式2时的逻辑结构
4.方式3
当M1、M0为11时,定时器工作于方式3。方式3只适用于T0。当T0工作在方式3时,TH0和TL0分为两个独立的8位定时器,可使MCS-51系列单片机具有3个定时器/计数器。定时器T0工作于方式3时的逻辑图如图4-7所示。
此时,TL0可以作为定时器/计数器用。使用T0本身的状态控制位C/T,GATE,TR0,和TF0,它的操作与方式0和方式1类似。但TH0只能用作8位定时器,不能用作计数器,TH0的控制占用T1的中断资源TR1和TF1和T1的中断资源。在这种情况下,T1可以设置为方式0~2。此时定时器T1只有两个控制条件,即C/T、M1和M0,只要设置好初值,T1就能自动启动和记数。在T1的控制字M1、M0定义为11时,它就停止工作。通常,当T1用作串行接口波特率发生器或用于不需要中断控制的场合,T0才定义为方式3,目的是让单片机内部多出一个8位的计数器。
图4-7 定时器在方式3时的逻辑结构
T0(P3.4)和T1(P3.5)两个引脚为计数输入端。外部输入的脉冲在出现从1到0的负跳变时有效,计数器进行加1。计数方式下,单片机在每个机器周期的S5P2拍节时对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效的计数脉冲。在下一机器周期的S3P1进行计数。即采样计数脉冲需要2个机器周期,即24个振荡周期。因此,计数脉冲的频率最高为振荡脉冲频率的1/24。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。