标准的51单片机内部有T0和T1两个定时器。
定时器的计数值储存在寄存器中。TH0/TL0用于T0,TH1/TL1用于T1.
定时器存储寄存器
名称 | 描述 | SFR地址 | 复位值 |
---|---|---|---|
TH0 | T0高字节 | 0X8C | 0X00 |
TL0 | T0低字节 | 0X8A | 0X00 |
TH1 | T1高字节 | 0X8D | 0X00 |
TL1 | T1低字节 | 0X8B | 0X00 |
TCON——定时器控制存储器de位分配(地址0x88、可位寻址)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
符号 | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
复位值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TCON——定时器控制寄存器的位描述
位 | 符号 | 描述 |
---|---|---|
7 | TF1 | T1溢出标志。当T1发生溢出时,TF置1。清零方式:1.软件清零2.进入定时器中断时硬件清零 |
6 | TR1 | T1运行控制位。置位/清零方式:软件置位/清零(启动/停止T1) |
5 | TF0 | T0溢出标志。当T0发生溢出时,TF置0。清零方式:1.软件清零2.进入定时器中断时硬件清零 |
4 | TR0 | T0运行控制位。置位/清零方式:软件置位/清零(启动/停止T0) |
3,2,1,0 | IE1/IT1/IE0/IT0 | 外部中断部分,与定时器无关,略。 |
TMOD——定时器模式寄存器的位分配(地址0X89、不可位寻址)
位 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
---|---|---|---|---|---|---|---|---|
符号 | GATE(T1) | C/T(T1) | M1(T1) | M0(T1) | GATE(T0) | C/T(T0) | M1(T0) | M0(T0) |
复位值 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
TMOD——定时器模拟寄存器的位描述
符号 | 描述 |
---|---|
GATE | GATE=1时,为门控位。当且仅当INTx引脚为高和TRx=1时,使能定时器x,定时器开始计时。GATE=0时,只需TRx=1,定时器就可开始计时。 |
C/T | 定时器或计数器的选择位。C/T=0时,用做定时器功能。C/T=1时,用做计数器功能。 |
TMOD——定时器模式寄存器M1/M0 工作模式
M1 | M0 | 工作模式 | 描述 |
---|---|---|---|
0 | 0 | 0 | 兼容8048单片机的13位定时器,THn的8位和TLn的5位组成一个13位定时器。 |
0 | 1 | 1 | THn和TLn组成一个16位的定时器。 |
1 | 0 | 2 | 8位自动重装模式,定时器溢出后THn重装到TLn中。 |
1 | 1 | 3 | 禁用定时器1,定时器0变成两个8位定时器。 |
ps:模式0现在基本不用了,模式3可由模式2代替。应重点掌握模式1和模式2。
模式1示意图
应用定时器:
第一步:设置特殊功能寄存器 TMOD,配置好工作模式。
第二步:设置计数寄存器TH0和TL0的初值。
第三步:设置TCON,TR0置1是定时器开始计数。
第四步:判断TCON寄存器的TF0位,监测定时器溢出情况。