"STC单片机的定时器2是一个16位的功能强大的定时/计数器,能够支持三种不同的操作模式:捕获模式、自动重新装载(递增或递减计数)模式以及波特率发生器模式。这些模式的选择通过特殊功能寄存器T2CON中的相关位来设定。"
在STC单片机中,定时器2的操作涉及到多个寄存器和控制位。特殊功能寄存器T2CON是控制定时器2的主要手段,它位于地址0C8H,其位定义如下:
1. TF2(定时器2溢出标志):当定时器2溢出时,此位被置位,通常需要软件清除。如果RCLK或TCLK被设为1,则TF2不会自动置位。
2. EXF2(定时器2外部标志):在EXEN2为1并且T2EX发生负跳变时,EXF2被置位。若定时器2中断使能,EXF2=1会触发CPU执行定时器2中断服务子程序。EXF2位需通过软件清零,在递增/递减计数模式下,EXF2不会引发中断。
3. RCLK(接收时钟标志):RCLK置位时,定时器2的溢出脉冲用于串行口模式1和模式3的接收时钟;否则,使用定时器1的溢出脉冲。
4. TCLK(发送时钟标志):TCLK置位,定时器2的溢出脉冲用作串行口模式1和模式3的发送时钟;反之,使用定时器1的溢出脉冲。
5. EXEN2(定时器2外部使能标志):当EXEN2为1且定时器2不作为串行口时钟时,允许T2EX的负跳变触发捕获或重装。
6. TR2(定时器2启动/停止控制位):TR2置1启动定时器,0则停止。
7. C/T2(定时器/计数器选择位):0表示内部定时器,1表示外部事件计数器(下降沿触发)。
8. CP/RL2(捕获/重装标志):EXEN2为1时,T2EX的负跳变产生捕获;EXEN2为0时,定时器2溢出或T2EX的负跳变可以自动重装定时器。当RCLK或TCLK为1时,此位无效,定时器强制为溢出时自动重装。
定时器2的工作模式取决于RCLK、TCLK、CP/RL2和TR2的组合。例如:
- 当RCLK和TCLK均为0,CP/RL2为1,TR2为1时,定时器2工作在16位自动重装模式。
- 若RCLK和TCLK均为1,CP/RL2为1,TR2为1,则进入16位捕获模式。
定时器2的这些功能使得它在实时性要求高的应用中非常有用,例如在生成特定频率的信号、精确延时、波特率生成以及对外部事件的计数等方面。通过灵活配置,开发者可以根据具体需求调整定时器2的工作模式,实现各种复杂的定时和计数任务。