简介
51单片机定时器属于其内部资源,用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作;替代了长时间的Delay,提高CPU运行效率
内含三个定时器资源:T0、T1、T2。不同的单片机型号定时器的资源不同。
定时器工作原理
定时器根据时钟的输出信号,每隔一特定时间,计数单元的数值就增加一,当计数单元数值增加到设定值后,计数单元就会向中断系统发出中断申请,使程序跳转到中断服务函数执行。
工作模式
重点介绍模式1
计数系统
TL0(Time Low)和TH0(Timer High)组成十六位计数器,接收SYSclk发送来的脉冲进行计数,最大计数65535,溢出时,同时给TF0置标志位1,申请中断。
定时器时钟
SYSclk(系统时钟,即晶振周期,有12MHz/11.0592MHz等)发出脉冲,经过12或6分频,如若进行12分频,则脉冲频率为1MHz,每一个脉冲时间为1us。
给C(Counter)置1,为高电平,选择计数器;给T(Timer)置0,为低电平,选择定时器。
中断资源
STC89C52中断源个数:8个(外部中断0、定时器0中断、外部中断1、定时器1中断 、串口中断、外部中断2、外部中断3)
中断优先级个数:4
定时器和中断系统
定时器相关寄存器
1.TCON
TCON(Timer Control):是定时器T0、T1的控制寄存器,同时也锁存T0、T1溢出中断源和外部请求中断源等
(详细介绍请参考STC89C52手册)
TR0:当GATE(TMOD.3)=0时,TR=1允许计数,TR=0停止计数。GATE(TMOD.3)=1时,TR0=0且INT0输入高电平时,允许T0计数。
TF0:定时器T0溢出中断标志,当计数至最高位产生溢出时,由硬件自身置1,我们只需利用程序读出,若为1,则可以开始中断
2.TMOD
使用16位定时器,因此M1、M0配置为0 1;
采用定时器,而不用计数器则C/T配置为0;
当GATE置0时,定时器的打开关闭由TR0单独控制(GATE=0,经过非门成为1;此时到达或门,一定输出1;最后到达与门,由TR0单独控制与门的输出)#图见上文 定时器和中断系统
3.TH0、TL0和TH1、TL1
后面为0是定时器0的,为1是定时器1的
用来存储数据