单片机定时/计数器工作原理是什么?
扫描二维码
随时随地手机看文章
在家电产品和工业应用系统中,定时和计数是两种常用的功能,如:微波炉加热计时和流水线上产品数目统计等。MCS-51单片机内部集成的两个可编程定时/计数器T0和T1使用灵活、方便,在仪器仪表等工业产品中应用广泛。
定时器的作用:
定时计数器可以用于精确事件定时,PWM脉宽调制,波形发生,信号时序测量的方面。计时也是通过计数来实现的。
定时器的实质:
加1的16位计数器分高八位、低八位组成
51单片机定时器0内部有两个寄存器TH0和TL0,都是1字节的,理解位定时器0高位寄存器(TH0),定时器0低位寄存器(TL0),我们知道2字节最大能存65535。
比赛板拥有三个定时器0,定时器1,定时器2主要用定时器0
使用单片机时经常用到一个元件,那就是单片机定时器,单片机定时器的作用主要是在发生软件故障时,通过使器件复位(如果软件未将器件清零)将单片机复位,也可以用于将器件从休眠或空闲模式唤醒,还能用做精确延时处理,常被应用于时间控制、程序延时、对外部时间计数和检测等工作范围内。那么单片机定时器原理是什么呢?
定时/计数器的基本工作原理
MCS-51单片机的两个定时/计数器T0和T1有定时和计数两种功能,分别由一对特殊功能寄存器组构成,即TH0、TL0和TH1、TL1,其基本工作原理如图4-7所示。
图4-7定时/计数器工作原理图
本质上定时和计数器都是具有加1功能的计数器,其基本原理分别如下:
(1)计数模式的工作原理
在计数模式下,定时/计数器可以累计脉冲输入引脚(T0和T1的脉冲输入引脚分别为P3.4和P3.5)上出现的脉冲下降沿的次数。
计数器工作时,首先设置其工作方式,以确定计数器位数N;然后为其赋初值M;接着,启动其工作。这之后,脉冲输入引脚上每出现一次脉冲下降沿,计数器的值加1。当计数器中的数值达到最大后,若再出现一个脉冲下降沿,计数器的值将溢出、回零,并且计数器的溢出中断请求标志位被置1,从而发出中断请求。特别说明:定时/计数器中所能存放的最大值与其位数N有关,为2N-1,例如8位计数器中可存放的最大数值为28-1=255=FFH。
显然,若已知N和M的值,则可以计算出在计数器溢出时其脉冲输入引脚上出现的脉冲下降沿个数。例如:假设定时/计数器0工作于工作方式2,即N=8,且其初始值M=50,则溢出之前出现的脉冲下降沿的个数Q为:Q=2N-M=28-50=206。
另外,需要特别注意的是:定时/计数器通过连续两个机器周期的电平采样实现对脉冲下降沿的检测,采样发生在每个机器周期的S5P2阶段。若前后两个机器周期分别采样到一个高电平和一个低电平,则确认一个有效下降沿信号出现。因此,为确保不漏计脉冲数,被计数脉冲的周期至少2倍于机器周期,即脉冲信号的最高频率为单片机晶振频率的1/24,例如:若单片机的晶振频率为6MHz,则定时/计数器能计数的脉冲频率应不大于
6MHz/24=250kHz。
(2)定时模式的工作原理
在定时模式下,定时/计数器累计机器周期个数。与计数模式相似,首先,设置工作方式,以确定定时器位数N;然后,为其赋初值M;接着,启动其工作。之后,每经过一个机器周期,定时器的值加1,当加到定时器的最大值后,若再出现一个机器周期,定时器的值将溢出、回零,并且定时器的溢出中断请求标志位被置1,从而发出中断请求。
若已知N和M的值以及单片机的晶振频率,即可得出从定时器启动工作到发出溢出中断请求之间所经过的时间长度。例如,若定时/计数器0工作于工作方式1,即N=16,且其初始值M=50000,并假设单片机晶振频率为12MHz,则单片机的机器周期T=12/(12MHz)=1μs,从启动定时器工作到其发出中断请求之间的时间间隔为t=(216-50000)μs=15536μs。