9.1.2 方式控制寄存器TMOD
TMOD寄存器用于定义T0和T1的工作方式和4种工作模式,其单元地址为89H。定时器/计数器0和1的方式控制寄存器TMOD,如图9.2所示。其中,低4位用于控制T0,高4位用于控制T1,两部分操作和含义完全相同。下面分别介绍各个控制位的含义。
图 9.2 方式控制寄存器TMOD
1.门控制位GATE(D7、D3)
当门控制位GATE置1时,定时器/计数器的运行受单片机外部引脚的控制。其中,INT0引脚(Pin3.5)控制T0,当该引脚为高电平且启/停控制位TR0置1时,定时器/计数器T0被选通;INT1引脚(Pin3.5)控制T1,当该引脚为高电平且启/停控制位TR1置1时,定时器/计数器T1被选通。
当门控制位GATE=0时,定时器/计数器的运行不受单片机外部引脚的控制。只要TR0或TR1置1,相应的定时器/计数器就被选通。
2.工作方式选择位C/T(D6、D2)
工作方式选择位C/T用于选择定时器工作方式还是计数器工作方式。当C/T=0时,为定时器工作方式;当C/T=1时,为计数器工作方式。
在定时器工作方式下,单片机将外界晶振脉冲的12分频信号作为计数器的计数信号,即对单片机内部的机器周期进行计数。例如,单片机外接12MHz晶振,则该定时器的计数频率为1MHz。
在计数器工作方式下,单片机将使用外部引脚P3.4(T0)或P3.5(T1)的输入脉冲作为计数脉冲。当T0或T1输入发生从高到低的负跳变时,相应的计数器加1。在51系列单片机中,最高计数频率为晶振频率的1/24。
3.工作模式选择位M1(D5、D1)和M0(D4、D0)
工作模式选择位M1和M0用于设置定时/计数器的工作模式,对应4种工作模式,如表9.1所示。
单片机复位后,寄存器TMOD的所有位均为0,即自动设置为定时器方式和工作模式0。用户可以在C51程序对TMOD寄存器进行设置。由于TMOD寄存器不能进行位寻址,所以只能采用整字节赋值来设置其内容。
在KeilµVision3集成开发环境中,头文件reg51.h中包含了对特殊功能寄存器TMOD的声明,示例如下。
sfr TMOD=0x89;//声明特殊功能寄存器TMOD
在C51程序中加入该头文件后,便可以在程序中直接为其赋值,示例如下。
TMOD=0x20;//初始化T1为定时功能,模式2
该语句设置TMOD=0x20=00100000B,即选择定时器/计数器T1,且工作于模式2,即8位自动重新装入的定时器/计数器。