1.电路逻辑结构
不同工作方式下定时器/计数器的逻辑结构有所不同。工作方式0是13位计数结构,计数器由TH0的全部8位和TL0的低5位构成,TLO的高3位不用。图5-5所示为定时器/计数器0工作方式0的逻辑结构。
在工作方式0下,计数脉冲既可以来自芯片内部,也可以来自外部。来自内部的是机器周期脉冲,图中OSC是振荡器的英文Oscillator的缩写。晶振脉冲经12分频后,即为单片机的机器周期脉冲。来自外部的计数脉冲由T0(P3.4)引脚输入,计数脉冲由控制寄存器TMOD的C/T位进行控制。当C/T=0时,接通机器周期脉冲,计数器每个机器周期进行一次加1,这就是定时器工作方式;当C/T=1时,接通外部计数引脚T0(P3.4),从T0引入计数脉冲输入,这就是计数工作方式。
不管是哪种工作方式,当TL0的低5位计数溢出时,向TH0进位;而全部13位计数溢出时,向计数溢出标志位TF0进位,将其置1。
图5-5 定时器/计数器0工作方式0的逻辑结构
2.启停控制
定时器/计数器的启停控制有两种方法:一种是纯软件方法;另一种是软件和硬件相结合的方法。两种方法由门控位(GATE)的状态进行选择。
当GATE=0时,为纯软件启停控制。GATE信号反相为高电平,经“或”门后,打开了“与”门,这样TR0的状态就可以控制计数脉冲的通断,而TR0位的状态又是通过指令设置的,所以称为软件方式。当把TR0设置为1,控制开关接通,计数器开始计数,即定时器/计数器工作;当把TR0清0时,开关断开,计数器停止计数。
当GATE=1时,为软件和硬件相结合的启停控制方式。这时计数脉冲的接通与断开决定于TR0和INT0的“与”关系,而INT0是P3.2引脚引入的控制信号。由于P3.2引脚信号可控制计数器的启停,所以可利用80C51的定时器/计数器进行外部脉冲信号宽度的测量。
3.定时利计数范围
使用工作方式0的计数功能时,计数值的范围是1~213。使用工作方式0的定时功能时,定时时间的计算公式为
(213-计数初值)×机器周期
又因为晶振脉冲经12分频后,得到单片机的机器周期脉冲,所以机器周期脉冲的周期是晶振脉冲周期的12倍,从而可得定时时间的计算公式又为
(213-计数初值)×晶振周期×12
其时间单位与晶振周期或机器周期的时间单位相同,为μs。若晶振频率为6MHz,则最小定时时间为(www.xing528.com)
最大定时时间为
4.应用实例
【例5-3】P1.0口输出周期为1 ms(频率1kHz)的方波,采用定时器1方式0设计程序,晶振频率为12MHz。
解:根据题意,只要使P1.0口每隔500μs取反一次即可得到周期为1 ms的方波,因而T1的定时时间为500μs。
用定时器1方式0时,定时器/计数器方式寄存器TMOD高4位中的M1M0应取00;可设定为软件启动定时器,故GATE取0;因为用定时功能,C/T取0;定时器方式寄存器TMOD低4位为无关位,一般都取0,所以TMOD应为00H。
晶振频率为12MHz,则
定时初值
X=213-T/T机=213-500/1=8192-500=7692
=1E0CH=1111000001100B
因TL1的高3位未用,对计算出的定时初值X要进行修正,即在低5位前插入3个0,修正后的定时初值X=1111000000001100B=F00CH
参考程序:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。