在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,从而就起到了定时器的作用。