一、定时器介绍
●定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成
●定时器作用:
(1)用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作
(2)替代长时间的Delay,提高CPU的运行效率和处理速度…………
二、STC89C52定时器资源
定时器个数: 3个(T0、 T1、T2),T0和T1与传统的51单片机兼容,T2是此型号单片机增加的资源。
注意:定时器的资源和单片机的型号是关联在一起的,不同的型号可能会有不同的定时器个数和操作方式,但一般来说,T0和T1的操作方式是所有51单片机所共有的。
三、定时器框图
四、定时器工作原理
当CT=0时,多路开关连接到系统时钟的分频输出,T0对时钟周期计数,T0工作在定时方
式。当CT=1时,多路开关连接到外部脉冲输入P3.4/T0,即T0工作在计数方式。
STC89C52系列单片机的定时器有两种计数速率:一种是12T模式,每12个时钟加1,与传统
8051单片机相同,12MHz的外部时钟,12分频以后,为1MHz,即1us计数器加一,也就是说晶振震动12次,计数器加一,所以它的机器周期是12个时钟;另外一种是6T模式,每6个时钟加1,速度是传统8051单片机的2倍,12MHz的外部时钟,6分频以后,为2MHz,即0.5us计数器加一。对于系统的机器周期的选择是在烧录用户程序时在STC-ISP编程器中设置。若设置为6T只需要勾选就可以,若不需要不用勾选,默认下就是12T。
(1)单片机时钟来源:
SYSclk:系统时钟,即晶振周期,本开发板上的晶振为12MHz,
T0 Pin:外部脉冲输入,来一个脉冲,计数加一
STC89C52系列单片机的定时器0和定时器1,与传统8051的定时器完全兼容,当在定时器1
做波特率发生器时,定时器0可以当两个8位定时器用。
STC89C52系列单片机内部设置的两个16位定时器/计数器T0和T1都具有计数方式和定时方
式两种工作方式。对每个定时器/计数器(T0和T1),在特殊功能寄存器TMOD(定时器模式寄存器)中都有一控制位一c/T来选择T0或T1为定时器还是计数器。定时器/计数器的核心部件是一个加法(也有减法)的计数器,其本质是对脉冲进行计数。只是计数脉冲来源不同:如果计数脉冲来自系统时钟SYSclk,则为定时方式,此时定时器/计数器每12个时钟或者每6个时钟得到一个计数脉冲,计数值加1;如果计数脉冲来自单片机外部引脚(T0为P3.4, T1为P3. 5),则为计数方式,每来一个脉冲加1。
(2)STC89C52的T0和T1均有四种工作模式:
模式0: 13位定时器/计数器
模式1: 16位定时器/计数器(常 用)
模式2: 8位自动重装模式
模式3:两个8位计数器
定时器/计数器0和1的相关寄存器:
其中TCON控制寄存器可位寻址——可对它其中每一位单独赋值 eg:P2_0=1;
其中TMOD模式寄存器不可位寻址——只能整体赋值 eg:P2=0x01;
定时器控制配置,三个门控,从左到右,非门 或门 与门 ,当GATE(TMOD.3)=0,TR0=1时,则定时器计数;当GATE(TMOD.3)=1,TR0=1时,允许由外部输入INT0控制定时器0,INT1控制定时器1,这样可以实现脉宽测量。