定时/计数器控制

二、定时/计数器控制

控制寄存器TMOD和TCON分别用来设置各个定时器/计数器的工作方式、选择定时或计数功能、控制启动运行以及作为运行状态的标志等。其中,TCON寄存器中另有4位用于中断系统。

定时器方式控制寄存器TMOD的字节地址为89 H,格式如下:

TMOD的高4位用于设置T1,低4位用于设置T0,含义如下:

(1)GATE:门控制位。

GATE=1,外部启动方式(也称硬件启动方式),定时/计数器的启动要受外部输入引脚以及运行启动位TR0或TR1的控制。

GATE=0,内部启动方式(也称软件启动方式),定时器/计数器的启动不受外部输入引脚的控制,只需由运行启动位TR0或TR1控制定时/计数器的启动。

(2)定时器/计数器功能选择位。

为定时器模式,内部计数器对晶振脉冲12分频后的脉冲计数,该脉冲周期等于机器周期,所以可以理解为对机器周期进行计数。从计数值可以求得计数的时间,所以称为定时器模式。

为计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数,允许的最高计数频率为晶振频率的1/24。

(3)M1,M0:工作方式控制位。共有4种工作方式,见表5-3。

表5-3 定时/计数器工作方式选择

定时器/计数器方式控制寄存器TMOD不能进行位寻址,只能用字节传送指令设置定时器工作方式。复位时,TMOD所有位均为0。

【例5-4】假设定时器T1为定时工作方式,并按方式2工作。定时器T0为计数方式,按方式1工作,试确定TMOD的值。

解:分析:定时/计数器1的工作方式选择位是设为0,T1为定时方式;M1(D5)M0__(D4)两位设为1 0,T1工作在方式2。定时器T0的工作方式选择位是设为1,T0工作在计数器方式;M0(D0)M1(D1)的值设为0 1,T0工作在方式1;T0和T1的门控位GATE都设为0,定时/计数器的启动停止由软件控制。

根据上面的分析,TMOD设置如下:

二进制数00100101等于十六进制数25H。所以执行MOV TMOD,#25H这条指令就可以实现上述要求。

TCON在特殊功能寄存器中,字节地址为88 H,可位寻址,位地址(由低位到高位)为88 H—8FH。TCON的作用是控制定时器的启、停,以及标志定时器溢出和中断情况。

TCON的格式与各位定义如下:

各位定义如下:

TF1:定时器1溢出标志位。当字时器1计满溢出时,由硬件使TF1置“1”,并且申请中断。进入中断服务程序后,由硬件自动清“0”,在查询方式下用软件清“0”。

TR1:定时器1运行控制位。软件清“0”时关闭定时器1。当GATE=1,为高电平,且TR1置“1”时,启动定时器T1;当GATE=0,TR1置“1”时启动定时器T1。

TF0:定时器0溢出标志。其功能及操作情况同TF1。

TR0:定时器0运行控制位。其功能及操作情况同TR1。

IE1:外部中断1请求标志。

IT1:外部中断1触发方式选择位。

IE0:外部中断0请求标志。

IT0:外部中断0触发方式选择位。

由于TCON可位寻址,因而如果只清除溢出或启动定时器工作,可以用位操作命令。例如:执行“CLR TF0”后则清定时器0的溢出;执行“SETB TR1”后可启动定时器1开始工作。