定时/计数器是单片机芯片中最基本的外围接口,其工作方式的灵活应用对提高编程技巧,减轻CPU的负担和简化外围电路有很大益处。定时/计数器的用途非常广泛,常用于测量时间、速度、频率、脉宽、提供定时脉冲信号等。
以89C51单片机为例,89C51单片机内有两个16 位定时器/计数器即定时器0(T0)和定时器1(T1),其结构如图所示。
两个16位定时器实际上都是16位加1计数器。其中,T0由二个8位特殊功能寄存器TH0和TL0构成, T1由丁TH1和TL1构成。每个定时器都可由软件设置为定时工作方式或计数工作方式及其它灵活多样的可控功能方式。这些功能都由特殊功能寄存器TMOD设置和TCON所控制。
1、定时/计数器 由16位的+1累加器构成。
其中:TH0(地址8CH)、TL0(地址8AH)、TH1(地址8DH)、TL1(地址8BH)
2、计数功能:对外来脉冲T0(P3.4),T1(P3.5)计数,外来脉冲负跳变有效,并保持2个机器周期。计数脉冲频率是时钟频率的1/24。
3、定时功能:对内部机器周期的计数。故可利用计数个数得出相应延时(定时)。若计数初值为n,时钟频率为M,则定时时间为:(216-n)*1/12* 1/ M
①.定时器控制寄存器(TCON)
地址88H
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
位定义
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
TR0,TR1---定时器运行控制位,为‘0’时停止定时器工作,‘1’启动定时器工作。
②.工作方式控制寄存器(TMOD)
地址89H
位 序 | B7 | B6 | B5 | B4 | B3 | B3 | B1 | B0 |
位定义 | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
定时/计数器1 |
定时/计数器0 |
★GATE---门控方式位,为‘0’时以TR启动定时器,为‘1’时以外中断信号启动定时器。
★C/T ---定时/计数方式选择位,‘0’为定时方式,‘1’为计数方式。
★M1M0---工作方式选择位
1、方式0
★ 使用TH(8位)+TL(低5位) 即13位的计数结构。
★ 使用定时/计数器时应使GATE=0。
★ 定时时间的计算:定时时间=(213-计数初值)*时钟周期*12
2、方式1
★ 方式1是16位计数结构的工作方式。电路逻辑同方式0。
★ 定时时间的计算:定时时间=(216-计数初值)*时钟周期*12
3、方式2
4、方式3
★TL0可做计数器也可做定时器。
★TH0只能做定时器,且要借用TR1,TF1控制位。