定时器是单片机的重要功能模块之一,在检测、控制领域有广泛应用。定时器常用作定时时钟,以实现定时检测、定时响应、定时控制,并且可用于产生ms宽的脉冲信号,驱动步进电机。定时和计数功能最终都是通过计数实现的,若计数的事件源是周期固定的脉冲,则可以实现定时功能,否则只能实现计数功能。因此可以将定时和计数功能由一个部件实现。

 

单片机定时器使用注意事项:

1、尽量用形象的方法记忆:例如TCON和TMOD两个寄存器各位上的功能,说明中一般有个图表,用户就可以在学习中不断回忆那个图表的形象。

 

2、TMOD:定时器/计数器模式控制寄存器(TIMER/COUNTER MODE CONTROL REGISTER)。

 

定时器/计数器模式控制寄存器TMOD是一个逐位定义的8位寄存器,但只能使用字节寻址,其字节地址为89H。其格式为:其中低四位定义定时器/计数器C/T0,高四位定义定时器/计数器C/T1,各位的说明:

 

(1)GATE——门控制,GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1。当INT0引脚为高电平时TR0置位,启动定时器T0;当INT1引脚为高电平时TR1置位,启动定时器T1。GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

 

(2)C/T——功能选择位,C/T=0时为定时功能,C/T=1时为计数功能。置位时选择计数功能,清零时选择定时功能。

 

单片机定时器使用注意事项

(图片来源于互联网)

 

3、TCON: 定时器/计数器控制寄存器(TIMER/COUNTER CONTROL REGISTER).

 

TMOD分成2段,TCON控制更加精细,分成四段,在本文中只要用到高四段。

 

TF0(TF1)——计数溢出标志位,当计数器计数溢出时,该位置1。

 

(1)TR0(TR1)——定时器运行控制位,当TR0(TR1)=0 停止定时器/计数器工作;当TR0(TR1)=1 启动定时器/计数器工作。

 

(2)IE0(IE1)——外中断请求标志位,当CPU采样到P3.2(P3.3)出现有效中断请求时,此位由硬件置1。在中断响应完成后转向中断服务时,再由硬件自动清0。

 

(3)IT0(IT1)——外中断请求信号方式控制位,当IT0(IT1)=1 脉冲方式(后沿负跳有效)。当IT0(IT1)=0 电平方式(低电平有效)此位由软件置1或清0。

 

(4)TF0(TF1)——计数溢出标志位,当计数器产生计数溢出时,此位由硬件置1。当转向中断服务时,再有硬件自动清0。计数溢出的标志位的使用有两种情况:采用中断方式时,作中断请求标志位来使用;采用查询方式时,作查询状态位来使用。注意记忆方法,理解单词原形,就绝对不会把TF和TR搞混。TF的F也就是溢出Over Flow的F。TR的R就是运行Run。默认是0不运行,当然要置1才运行。

 

单片机定时器使用注意事项

(图片来源于互联网)

 

4、STC单片机STC89C52RC定时器延时时间的计算:延时时间要根据晶振频率计算,不同板子可能有所不同。

 

时钟周期:1/时钟源,晶振频率是11.0592M,那么时钟周期就是 1/11059200秒

 

机器周期:一般51单片机是12个时钟周期,也就是 12/11059200秒

 

单次定时最长时间:如果是16位的计数器,16位最大值是65535,共可计数65536次。基本的常数一定要记住,还要记住8位最大值是255,共可计数256次,还要记住8位上每位代表的数值。

 

单片机定时器使用注意事项

(图片来源于互联网)