首页 理论教育 C51单片机定时/计数器工作方式

C51单片机定时/计数器工作方式

时间:2023-11-17 理论教育 版权反馈
【摘要】:工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。当计数脉冲发生负跳变时,计数器加1,这就是我们常说的计数工作方式。

C51单片机定时/计数器工作方式

在TMOD控制寄存器中可知对M1M0的不同设置可选择4种不同工作方式,下面以T0为例分别对这4种工作方式作一介绍。

1.工作方式0

定时/计数器0的工作方式0的电路逻辑结构如图2-9所示(定时/计数器1与其完全一致)。工作方式0是13位计数结构的工作方式,其计数器由TH的全部8位和TL的低5位构成,TL的高3位没有使用。当C/T=0时,多路开关接通振荡脉冲的12分频输出,13位计数器依次进行计数。这就是定时工作方式。当C/T=1时,多路开关接通计数引脚(T0),外部计数脉冲由引脚T0输入。当计数脉冲发生负跳变时,计数器加1,这就是我们常说的计数工作方式。

978-7-111-30335-0-Chapter02-19.jpg

图2-9 工作方式0

不管是哪种工作方式,当TL的低5位溢出时,都会向TH进位,而全部13位计数器溢出时,则会向计数器溢出标志位TF0进位。

如上所述,TF0是定时/计数器的溢出状态标志,溢出时由硬件置位,TF0溢出中断被CPU响应时,转入中断时硬件清零,TF0也可由程序查询和清零。

2.工作方式1

当M1M0=01时,定时/计数器处于工作方式1,此时,定时/计数器的等效电路如图2-10所示。

方式0和方式1的区别仅在于计数器的位数不同,方式0为13位,而方式1则为16位,由TH0作为高8位,TL0为低8位,有关控制状态字(GATA、C/T、TF0、TR0)和方式0相同。

3.工作方式2(www.xing528.com)

当M1M0=10时,定时/计数器处于工作方式2。此时定时器的等效电路如图2-11所示。定时/计数器1与之完全一致。

978-7-111-30335-0-Chapter02-20.jpg

图2-11 工作方式2

工作方式0和工作方式1的最大特点就是计数溢出后,计数器为全0,因而循环定时或循环计数应用时就存在反复设置初值的问题,这给程序设计带来许多不便,同时也会影响计时精度。工作方式2就针对这个问题而设置,它具有自动重装载功能,即自动加载计数初值,所以也有的文献称之为自动重加载工作方式。在这种工作方式中,16位计数器分为两部分,即以TL0为计数器,以TH0作为预置寄存器,初始化时把计数初值分别加载至TL0和TH0中,当计数溢出时,不再像方式0和方式1那样需要“人工重复加载",由软件重新赋值,而是由预置寄存器TH以硬件方式自动给计数器TL0重新加载。

程序初始化时,给TL0和TH0同时赋以初值,当TL0计数溢出时,置位TF0的同时把预置寄存器TH0中的初值加载给TL0,TL0重新计数。如此反复,这样省去了程序不断需给计数器赋值的麻烦,而且计数准确度也提高了。但这种方式也有其不利的一面,即计数结构只有8位,计数值有限,最大只能到255。所以这种工作方式很适合于那些重复计数的应用场合。例如我们可以通过这样的计数方式产生中断,从而产生一个固定频率的脉冲。也可以当作串行数据通信波特率发送器使用。

4.工作方式3

当M1M0=11时,定时/计数器处于工作方式3。此时定时/计数器的等效电路如图2-12所示。仍以定时器0为例,值得注意的是,在工作方式3模式下,定时/计数器1的工作方式与之不同。

在工作方式3模式下,定时/计数器0被拆成两个独立的8位计数器TL0和TH0。其中TL0既可以作计数器使用,也可以作为定时器使用,定时/计数器0的各控制位和引脚信号全归它使用。其功能和操作与方式0或方式1完全相同。但TH0就只能作为简单的定时器使用,而且由于定时/计数器0的控制位已被TL0占用,因此只能借用定时/计数器1的控制位TR1和TF1,也就是以计数溢出去置位TF1,TR1则负责控制TH0定时的启动和停止。由于TL0既能作定时器也能作计数器使用,TH0只能作定时器使用而不能作计数器使用,因此在方式3模式下,定时/计数器0可以构成两个定时器或者一个定时器和一个计数器。

978-7-111-30335-0-Chapter02-21.jpg

图2-12 工作方式3

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈