在80C51单片机内部,有2个定时器/计数器,分别称为定时器/计数器0、定时器/计数器1。每个定时器/计数器都具有计数和定时两大功能,并具有3~4种工作方式。现用定时器/计数器0的方式1来说明定时器/计数器内部结构与工作原理。
1.定时器/计数器通道内部结构及工作原理
80C51单片机定时器计数器0内部结构如图6-7所示。定时/计数器内的核心器件是加1计数器,加1计数器由两个特殊功能寄存器TH0与TL0组成。当定时计数器工作于定时方式,加1脉冲由系统时钟fosc经12分频后产生。当定时计数器工作于计数方式,加1脉冲由T0引脚直接提供。定时器工作于定时还是计数方式,取决于选择开关 ,当 =0时工作于定时方式, =1时工作于计数方式。加1脉冲要经过启动开关才能到达加1计数器,启动开关由与门的输出端控制,其输入端分别接启动控制位TR0与或门输出端。或门的输入端分别接GATE位与外部中断引脚 。启动开关的控制方式将在下文中介绍。当加1 计数器溢出时,由硬件自动将中断标志TF0置1,以此向CPU发中断请求。
定时计数器4种工作方式的主要区别在于加1计数器,加1计数器可以是由TH0、TL0组成的16位或13位计数器,也可以TL0组成的8位计数器。关于4种方式将在后文详细介绍。
2.计数功能
计数功能的实质就是对外来负脉冲进行计数。80C51单片机用T0(P3.4)、T1(P3.5)两个引脚输入定时计数器0与定时计数器1计数脉冲信号。
注意:计数方式下是对外来负脉冲进行计数,且到达T0(T1)端时不一定有规律。
3.定时功能
定时的实质也是计数,不过定时时间不是对外来脉冲进行计数,而是对CPU的内部时钟脉冲的12分频(机器周期)进行计数,即每过一个机器周期就加一次1。例如:设计数器是8位的TL0,计数初值为100,CPU时钟频率为12MHz,则机器周期为1μs,当产生计数溢出时,表示定时了(256-100)´1μs=156μs,从而就起到了定时器的作用。