在本文中,我们重点介绍8051微控制器的定时器/计数器。8051有两个计数器/定时器,它们既可用作定时器来产生时间延迟,也可用作计数器来计数微控制器外部发生的事件。

8051有两个定时器:定时器0和定时器1。它们既可以用作计时器,也可以用作计数器。两个定时器都是16位宽。由于8051具有8位体系结构,因此每个16位作为低字节和高字节的两个独立寄存器进行访问。首先,我们将讨论Timer0寄存器。

Timer0寄存器是一个16位寄存器,按低字节和高字节访问。低字节称为TL0,高字节称为TH0。这些寄存器可以像其他寄存器一样进行访问。

Timer0.

Timer1寄存器也是16位寄存器,并被分成两个字节,称为TL1和TH1。

Timer1.

TMOD(定时器模式)寄存器:这是一个8位寄存器,定时器0和1都使用它来设置各种定时器模式。在该TMOD寄存器中,低4位用于定时器0,高4位用于定时器1。在每种情况下,低2位用于设置计时器模式,高2位用于指定操作。

TMOD.
TMOD.

在上部或下部4位中,第一位是栅极位。每个计时器都有一种开始和停止的手段。一些计时器通过软件,一些通过硬件来执行此操作,有些则具有软件和硬件控件。通过在TMod寄存器中制作门= 1来实现由外部源启动和停止定时器的硬件方式。如果我们更改为Gate = 0那么我们不需要外部硬件来启动和停止定时器。

第二位是C / T比特,用于确定计时器是否用作时间延迟发生器或事件计数器。如果该位为0,则它​​用作计时器,如果它是1,则它用作计数器。

在上部或下部4位中,最后比特第三和第四分别称为M1和M0。这些用于选择定时器模式。

M0 M1模式操作模式

0 0 0 13位定时器模式,8位定时器/计数器THX和TLX为5位预刻度。

01 16位定时器模式,16位定时器/计数器THx和TLx级联;没有预分频器。

1 0 2 8位自动重新加载模式,8位自动重新加载定时器/计数器;每次溢出时都会保持一个值,该值将被重新加载到TLX中。

13分体式定时器模式。

模式1-这是一个16位计时器;因此,它允许从0000到FFFFH的值加载到计时器的寄存器TL和TH中。在使用16位初始值的TH和TL加载之后,必须启动计时器。我们可以通过定时器0的“SETB TR0”和定时器1.定时器启动后的“SETB TR1”来完成。它开始计数,直到它达到其FFFFH的极限。当它从FFFF到0000H滚动时,它设置了称为TF(定时器标志)的旗位。可以监视此计时器标志。当提出此定时器标志时,一个选项将分别与计时器0和计时器1的指令“CLR TR0”或CLR TR1停止定时器。同样,必须注意,对于计时器0和TF1的每个定时器标志TF0和TIMER1。在计时器达到其限制并滚动后,为了重复该过程,必须将寄存器TH和TL重新加载,原始值,TF必须重置为0。

mode0-模式0与模式1完全相同,除了它是13位计时器而不是16位。13位计数器可以在TH-TL中保持0000至1FFFH之间的值。因此,当定时器达到最大值的1FFH时,它滚动到0000,并且提出了TF。

模式2-它是一个8位计时器,只允许将00到FFH的值加载到计时器的寄存器TH中。在TH加载8位值后,8051将其副本发送给TL。然后必须启动计时器。这是通过指令“SETB TR0”为计时器0和“SETB TR1”为计时器1完成的。这就像模式1。定时器启动后,通过增加TL寄存器开始计数。它一直计数,直到达到FFH的极限。当它从FFH滚动到00时。它将TF(计时器标志)设置为高。如果我们使用计时器0,TF0将变高;如果使用TF1,则会引发TF1。当Tl寄存器从FFH滚动到00且TF设置为1时,Tl自动重新加载,原始值由TH寄存器保留。要重复这个过程,我们必须简单地清除TF并让它去,而不需要程序员重新加载原始值。这使得模式2自动重新加载,而在模式1中,程序员必须重新加载TH和TL。

mode3-模式3也称为分离定时器模式。定时器0和1可以被编程为模式0,1和2,其独立于其他定时器的类似模式。模式3不是真的;如果选择3,则定时器不会独立运行,如果为定时器0选择模式3。在模式3中放置定时器1使其停止计数;然后,Timer0使用控制位Tr1和计时器1标志TF1。

TCON寄存器 -TCON的位和符号以及各位的功能如下:

TCON.

位符号函数

7 TF1 TIMER1在流量标志上。当定时器从所有1s滚动到0时设置为0.清除

当处理器执行中断服务程序时

位于程序地址001Bh。

6 TR1定时器1运行控制位。由程序员设置为1,以使计时器

数数;通过程序清除0以停止计时器。

5 TF0定时器0在流量标志上。与TF1相同。

4 TR0定时器0运行控制位。与TR1相同。

3 IE1外部中断1边缘标志。与定时器操作无关。

2 IT1外部中断1信号类型控制位。通过程序设置为1,以

使外部中断1由下降沿信号触发。设置

通过程序设置为0,以启用外部中断上的低电平信号1至

生成中断。

1 IE0外部中断0边缘标志。与定时器操作无关。

0 IT0外部中断0信号类型控制位。与IT0相同。

作者

5.评论

  1. 乔乔

    @阿卜杜勒-请订阅我们的电子邮件时事通讯。

  2. 斯里瓦斯塔瓦苏米特酒店

    一个非常好的文章,不仅适合知识全人
    而且也是初学者。作者肯定有着良好和深刻的知识,它反映了文章的内容。惊人的!等待下一篇文章。

    谢谢

    • 斯里瓦斯塔瓦苏米特酒店

      谢谢你,先生

Baidu