51单片机的定时器是其中非常重要的功能模块,常用于精确计时、延时、脉冲计数、PWM生成等场景。以下是关于51单片机定时器的详细解析:
一、51单片机定时器基础
51系列单片机通常包含2个定时器/计数器(Timer0和Timer1),部分增强型型号(如STC89C52)可能包含更多定时器(如Timer2)。
1. 定时器与计数器的区别
- 定时器模式:通过对内部时钟脉冲(系统时钟分频后的信号)计数实现定时。
- 计数器模式:对外部引脚(如T0/P3.4、T1/P3.5)的脉冲信号计数。
二、定时器相关寄存器
51单片机通过以下寄存器控制定时器:
1. TCON(Timer Control Register,地址88H)
位 | 名称 | 功能 |
---|---|---|
TF1 | Timer1溢出标志 | 溢出时硬件置1,需软件清零或进入中断后清零 |
TR1 | Timer1运行控制 | 1=启动,0=停止 |
TF0 | Timer0溢出标志 | 同上 |
TR0 | Timer0运行控制 | 同上 |
2. TMOD(Timer Mode Register,地址89H)
位 | 名称 | 功能 |
---|---|---|
GATE | 门控位 | 1=外部引脚INT0/INT1控制定时器启停,0=仅TR0/TR1控制 |
C/T | 模式选择 | 0=定时器模式,1=计数器模式 |
M1/M0 | 工作模式选择 | 决定定时器模式(见下表) |
M1/M0模式表:
- 模式0(13位):TLx低5位 + THx 8位(兼容早期设计,少用)
- 模式1(16位):TLx(8位) + THx(8位)自由计数(常用)
- 模式2(8位自动重载):TLx计数,THx保存重载值(适合高频中断)
- 模式3(双8位):仅Timer0可用ÿ