AT89S51定时器/计数器的结构
扫描二维码
随时随地手机看文章
AT89S51单片机的定时器/计数器结构如下图所示,定时器/计数器T0由特殊功能寄存器TH0、TL0构成,定时器/计数器Tl由特殊功能寄存器TH1、TL1构成。
两个定时器/计数器都具有定时器和计数器两种工作模式,4种工作方式(方式0、方式1、方式2和方式3)。定时器/计数器属于增1计数器。
特殊功能寄存器TMOD用于选择定时器/计数器T0、T1的工作模式和工作方式。特殊功能寄存器TCON用于控制T0、T1的启动和停止计数,同时包含了T0、T1的状态。T0、T1不论是工作在定时器模式还是计数器模式,实质都是对脉冲信号进行计数,只不过是计数信号的来源不同。计数器模式是对加在T0(P3.4)和Tl( P3.5)两个引脚上的外部脉冲进行计数(如上图所示),而定时器工作模式是对单片机的时钟振荡器信号经片内12分频后的内部脉冲信号计数。由于时钟频率是定值,所以可根据对内部脉冲信号的计数值计算出定时时间。
计数器的起始计数都是从计数器的初值开始。单片机复位时计数器的初值为O,也可用指令给计数器装入一个新的初值。
工作方式控制寄存器TMOD
AT89S51单片机的定时器/计数器工作方式寄存器TMOD用于选择定时器/计数器的工作模式和工作方式,字节地址为89H,不能位寻址,其格式如下图所示。
8位分为两组,高4位控制Tl,低4位控制T0。
下面对TMOD的各位给出说明。
(1) GATE:门控位。
GATE=0时,仅由运行控制位TRx(x=0,1)来控制定时器/计数器运行。
GATE=1时,用外中断引脚(INT0(的反)INTI(的反))上的电平与运行控制位TRx共同来控制定时器/计数器运行。
(2) M1、M0:工作方式选择位。
Ml、MO共有4种编码,对应于4种工作方式的选择,见下表。
表 M1、M0工作方式选择
(3) C/T(的反):计数器模式和定时器模式选择位。
C/T(的反)=0,为定时器工作模式,对单片机的晶体振荡器12分频后的脉冲进行计数。
C/T(的反)=1,为计数器工作模式,计数器对外部输入引脚TO(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。
定时器/计数器控制寄存器TCON
TCON的字节地址为88H,可位寻址,位地址为88H~8FH。TCON的格式如下图所示。
这里介绍与定时器/计数器相关的高4位功能。
(1) TF1、TF0:计数溢出标志位。
当计数器计数溢出时,该位置1。使用查询方式时,此位作为状态位供CPU查询,但应注意查询有效后,应使用软件及时将该位清0。使用中断方式时,此位作为中断请求标志位,进入中断服务程序后由硬件自动清0。
(2) TR1、TR0:计数运行控制位。
TR1位(或TR0位)=1,启动定时器/计数器工作的必要条件。
TR1位(或TR0位)=0,停止定时器/计数器工作。
该位可由软件置1或清0。