1. 51单片机定时器基础概念解析
在嵌入式系统开发中,定时器是最基础也最核心的外设之一。51单片机通常配备两个16位定时器/计数器(Timer0和Timer1),它们既可以作为定时器使用,也可以配置为计数器模式。理解定时器的工作原理,是掌握51单片机编程的关键一步。
定时器的本质是一个自增的寄存器,当它工作在定时器模式时,每个机器周期寄存器值自动加1。以12MHz晶振的51单片机为例,一个机器周期等于12个时钟周期,也就是1μs。这意味着定时器寄存器每1μs就会自动加1,当寄存器值从最大值65535(对于16位定时器)溢出回到0时,就会产生定时器中断。
注意:不同型号的51单片机可能有不同的定时器配置,本文以标准的8051架构为例进行说明。
2. 定时器相关寄存器详解
2.1 TMOD寄存器(定时器模式控制)
TMOD是一个8位寄存器,用于设置定时器的工作模式。它的高4位控制Timer1,低4位控制Timer0。每个定时器的4位控制字段结构相同:
code复制| GATE | C/T | M1 | M0 |
- GATE:门控位。当GATE=0时,定时器由TRx位控制;当GATE=1时,定时器由TRx位和INTx引脚共同控制(用于脉冲宽度测量)。
- C/T:计数器/定时器选择位。0=定时器模式,1=计数器模式(对外部引脚T0/T1的脉冲计数)。
- M1/M0:工作模式选择:
- 00:模式0,13位定时器(THx的8位+TLx的低5位)
- 01:模式1,16位定时器(最常用)
- 10:模式2,8位自动重装定时器(TLx计数,THx存放重装值)
- 11:模式3,Timer0在此模式下分成两个8位定时器
2.2 TCON寄存器(定时器控制)
TCON也是一个8位寄存器,其中包含定时器的控制位和中断标志位:
code复制| TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
- TRx:定时器运行控制位。1=启动定时器,0=停止定时器。
- TFx:定时器溢出标志位。当定时器溢出时硬件置1,进入中断服务程序后硬件自动清0。
- 其余位用于外部中断控制,与定时器无关。
