在MCS-51的中断系统中,除了有外部中断以外,还有定时器/计数器中断、串行中断,本章节将会说明定时器/计数器中断,以及它的四种方式
MCS-51单片机中,内部有两个16位的可以选择的定时器/计数器,称为定时器0(T0)或者定时器1(T1),它们用来做定时器或者计数器。
定时器/计数器工作原理:
作为定时器使用时,输入的时钟脉冲是由晶体振荡器的输出12分频后得到的,所以定时器是对机器周期的计数器,每一个机器周期+1,因此它的定时频率为晶振频率的1/12;当设置了定时器工作方式并启动定时器后,定时器就会按照被设定的工作方式独立工作,不再占用CPU时间。当计数器计满时溢出时向CPU请求中断。
作为计数器工作使用时,计数器对来自输入引脚T0(P3^4)和T1(P3^5)的外部信号计数,外部脉冲下降沿将会触发计数,在这种情况下,当检测到输入引脚的电平由高跳变到低的时,计数器+1(它在每个机器周期的S5P2时采样外部输入,当采样值在这个机器周期为高,下个机器周期为低时,则计数器+1),+1操作发生在检测到这种跳变后的一个机器周期中的S3P1。
注:两个机器周期识别一个从“1”到“0”的跳变,最高计数频率=1/机器周期=1*晶振频率/24
定时器/计数器内部逻辑结构图如下