8051微控制器中的定时器和计数器及其应用

许多人中很多微控制器应用程序需要计算脉冲列车的频率等外部事件以及计算机动作之间的精确内部时间延迟的产生。这两项任务都可以通过软件技术实现,但是计算的软件循环,并且时间不会给出确切的结果,而不是更重要的功能。为避免这些问题,微控制器中的定时器和计数器是简单和低成本应用的更好选择。这些定时器和计数器用作8051微控制器中的中断

有两个16位计时器和计数器8051微控制器:定时器0和定时器1.两个定时器由16位寄存器组成,其中下字节存储在TL中,并且更高的字节存储在TH中。定时器可以用作计数器以及取决于时钟脉冲源的定时操作。


计时器和柜台
计时器和柜台

8051微控制器中的计数器和定时器包含两个特殊功能寄存器:TMOD(定时器模式寄存器)和TCON(定时器控制寄存器),用于激活和配置计时器和柜台

定时器模式控制(TMOD):TMod是一个8位寄存器,用于选择定时器或计数器和计时器模式。低4位用于定时器0或计数器的控制操作,并且剩余的4比特用于定时器1或计数器的控制操作。本寄存器存在于SFR寄存器中,SFR寄存器的地址为89。

定时器模式控制(TMOD)
定时器模式控制(TMOD)

门:如果栅极位设置为“0”,则可以以相同的方式启动和停止“软件”计时器。如果门设置为“1”,则我们可以执行硬件定时器。

C / T:如果C / T位为“1”,则它充当计数器模式,并且类似于设置C +时
= / t位为'0';它充当定时器模式。


模式选择位:M1和M0是模式选择位,用于选择定时器操作。有四种模式来操作定时器。

模式0:这是一个13位模式,意味着定时器操作与“8192”脉冲完成。

模式1:这是A16位模式,这意味着定时器操作完成了“65535”的最大时钟脉冲。

模式2:该模式是8位自动重新加载模式,这意味着定时器操作仅用“256”时钟脉冲完成。

模式3:此模式是分离定时器模式,这意味着T0中的加载值并自动启动T1。

模式选择位
模式选择位

8051中计时器和计数器的模式选择值

定时器和计数器的模式选择值
定时器和计数器的模式选择值

定时器控制寄存器(TCON):TCON是用于控制微控制器中计数器和定时器操作的另一个寄存器。它是一个8位寄存器,其中四个上部位对定时器和计数器负责,并且较低比特负责中断。

定时器控制寄存器(TCON)
定时器控制寄存器(TCON)

TF1:TF1代表'timer1'标志位。每当计算TIMER1中的延时时,TH1和TL1达到自动“FFFF”的最大值。

例如(TF1 == 1)

每当TF1 = 1时,然后清除标志位并停止计时器。

tr1:TR1代表Timer1启动或停止位。此计时器启动可以通过软件指令或通过硬件方法。

EX:Gate = 0(通过软件指令启动计时器1)
tr1 = 1;(开始计时器)

TF0:TF0代表'timer0'旗帜位。每当计算TIMER1中的时间延迟时,TH0和TL0会自动达到“FFFF”的最大值。

例如(TF0 == 1)
每当TF0 = 1时,然后清除标志位并停止计时器。

TR0:TR0代表'timer0'开始或停止位;此计时器启动可以通过软件指令或通过硬件方法。

EX:Gate = 0(通过软件指令启动计时器1)
tr0 = 1;(开始计时器)

8051微控制器的时间延迟计算

8051微控制器适用于11.0592 MHz频率。

频率11.0592MHz = 12个脉冲

1时钟脉冲= 11.0592MHz / 12

f = 0.921 MHz

时间延迟= 1 / f

T = 1 / 0.92MHz

T = 1.080506美国(对于'1'循环)

1000us = 1ms

1000ms = 1sec.

程序计算延迟程序

1.首先,我们必须加载“Timer0”和“Timer1'IN不同模式”的TMod寄存器值。例如,如果我们希望在MODE1中操作Timer1,则必须配置为“TMod = 0x10”。

2.每当我们在模式1中操作定时器时,定时器都会占65535的最大脉冲。然后必须从最大脉冲中减去计算的时间延迟脉冲,然后转换为十六进制值。该值必须在Timer1上加载更高位和较低位。此定时器操作使用嵌入式C在微控制器中

示例:500us时间延迟

500US / 1.080806US.

461个脉冲

p = 65535-461.

P = 65074.

65074由Hexa Decimal = Fe32召开

th1 = 0xFe;

tl1 = 0x32;

3.启动Timer1“tr1 = 1;”

4.监控标志位“(TF1 == 1)”

5.清除标志位“TF1 = 0”

6.夹紧定时器“tr1 = 0”

示例程序:

程序1
程序1
计划 -  2
计划 - 2
计划 -  3.
计划 - 3.

8051中的计数器

通过在TMod寄存器中保持C / T比特高,即逻辑'1',我们可以使用计数器。为了更好地理解,我们已经给出了一个程序,它使用计时器1作为计数器。这里,LED连接到8051端口2,以及切换到Timer1引脚P3.5;因此,如果按下开关,则将计算该值。否则,向该计数器引脚的外部连接传感器作为输入执行此计数操作。

柜台计划
柜台计划

8051中计时器和计数器的应用

数字计数器8051

通过如上所述的微控制器编程和通过将传感器系统连接到它来实现与8051的数字计数器。该对象计数器使用IR传感器检测附近的障碍物,并实现了微控制器的销06.当物体通过传感器时,微控制器从IR传感器获取中断信号,并增加显示在7段显示器中的计数。

数字计数器8051
数字计数器8051

使用8051微控制器的时间延迟电路

下图显示了如何实现定时器操作以以有效的方式切换LED。该组LED集合的时间延迟操作以上面讨论的方式在微控制器中编程。这里,一组LED通过公共供应系统连接到端口2。当基于时间延迟导通该电路时在微控制器中的程序适当,这些LED接通。

时间延迟电路
时间延迟电路

这是关于8051微控制器定时器和具有基本编程和应用电路的计数器。我们希望本文的信息可能已经给您足够的数据来了解概念更好。此外,您可以通过以下评论与我们联系我们的任何技术疑问。

照片信用:

3评论

  1. adile. 说:

    我需要在C语言A到Z中编程PIC编程和响应尺度,RPM,进出/触发,计数器/计时器。温度,压力,MODEUM GSM,RS232等
    谢谢你

    1. tarun agarwal. 说:

      嗨Adil.
      我们很遗憾地通知您,我们不能为您提供。

  2. Harsha. 说:

    谢谢你太多了..帮助我很多

添加评论