定时器/计数器的4种工作方式
扫描二维码
随时随地手机看文章
定时器/计数器具有4种工作方式,分别介绍如下。
方式0
当M1、M0为00时,定时器/计数器被设置为工作方式0,这时定时器/计数器的等效逻辑结构框图如图6-4所示(以定时器/计数器Tl为例,TMOD.5、TMOD.4=00)。
定时器/计数器工作在方式0时,为13位计数器,由TLx(x=0,1)的低5位和THx的高8位构成。TLx低5位溢出则向THx进位,THx计数溢出则把TCON中的溢出标志位TFx置1。
上图中,C/T位控制的电子开关决定了定时器/计数器的两种工作模式。
(1) C/T的反=0,电子开关打在上面位置,T1(或T0)为定时器工作模式,把时钟振荡器12分频后的脉冲作为计数信号。
(2) C/T的反=1,电子开关打在下面位置,T1(或T0)为计数器工作模式,计数脉冲为P3. 4(或P3.5)引脚上的外部输入脉冲,当引脚上发生负跳变时,计数器加1。
GATE位的状态决定定时器/计数器的运行控制取决于TRx一个条件,还是取决于TRx和INTx(的反)(x=0,1)引脚状态这两个条件。
(1) GATE=0时,A点(见上图)电位恒为1,B点电位仅取决于TRx状态。TRx=1,B点为高电平,控制端控制电子开关闭合,允许Tl(或T0)对脉冲计数。TRx=0,B点为低电平,电子开关断开,禁止T1(或T0)计数。
(2) GATE=1时,B点电位由INTx(的反)(x=0,1)的输入电平和TRx的状态这两个条件来确定。当TRx=l,且INTx(的反)=1时,B点才为1,控制端控制电子开关闭合,允许T1(或T0)计数。故这种情况下计数器是否计数是由TRx和INTx两个条件共同控制的。
方式1
当Ml、M0为01时,定时器/计数器工作于方式1,这时定时器/计数器的等效电路逻辑结构如下图所示。
方式1和方式0的差别仅仅在于计数器的位数不同,方式1为16位计数器,由THx高8位和TLx低8位构成(x=0,1),方式0则为13位计数器,有关控制状态位的含义(GATE、C/T、TFx、TRx)与方式0相同。
方式2
方式0和方式1的最大特点是计数溢出后,计数器为全0。因此在循环定时或循环计数应用时就存在用指令反复装入计数初值的问题。这不仅影响定时精度,而且也给程序设计带来麻烦。方式2就是针对此问题而设置的。
当M1、M0为10时,定时器/计数器处于工作方式2,这时定时器/计数器的等效逻辑结构如右图所示(以定时器Tl为例,x=1)。
定时器/计数器的方式2为自动恢复初值(初值自动装入)的8位定时器/计数器,TLx(x=0,1)作为常数缓冲器,当TLx计数溢出时,在溢出标志TFx置1的同时,还自动将THx中的初值送至TLx,使TLx从初值开始重新计数。定时器/计数器的方式2工作过程如左图所示。
这种工作方式可以省去用户软件中重装初值的指令执行时间,简化定时初值的计算方法,可以相当精确地确定定时时间。
方式3
方式3是为了增加一个附加的8位定时器/计数器而设置的,从而使AT89 S51单片机具有3个定时器/计数器。方式3只适用于定时器/计数器TO,定时器/计数器Tl不能工作在方式3。Tl处于方式3时相当于TR1=0,停止计数(此时Tl可用来作为串行口波特率产生器)。
1.工作方式3下的T0
当TMOD的低_2位为11时,TO的工作方式被选为方式3,各引脚与TO的逻辑关系如下所示。
定时器/计数器TO分为两个独立的8位计数器TLO和THO,TLO使用TO的状态控制位ClT(的反)、GATE、TRO、INTO,而THO被固定为一个8位定时器(不能作为外部计数模式),并使用定时器Tl的状态控制位TR1和TF1,同时占用定时器Tl的中断请求源TF1。
2.T0工作在方式3时Tl的各种工作方式
一般情况下,当Tl用作串行口的波特率发生器时,TO才工作在方式3。TO处于工作方式3时,Tl可定为方式0、方式1和方式2,用来作为串行口的波特率发生器,或不需要中断的场合。
(1) T1工作在方式0 Tl的控制字中Ml、M0=00时,Tl工作在方式0,工作示意图如下图所示。
(2) T1工作在方式1 当Tl的控制字中M1、M0=01时,T1工作在方式1,工作示意图如上图所示。
(3) T1工作在方式2 当Tl的控制字中M1、M0=10时,T1的工作方式为方式2,工作示意图如下图所示。
(4) Tl设置在方式3 当T0设置在方式3时,再把T1也设置成方式3,此时T1停止计数。