51单片机计算定时器初值
前言
- 芯片使用AT89S51
- 参考书目《单片机原理与应用设计 C51编程+Proteus仿真》(第二版) 张毅刚主编 电子工业出版社
理论分析
工作方式寄存器 TMOD
TMOD的字节地址位89H, 不能位寻址, TMOD共八位, 高四位控制T1工作方式, 低四位控制T0工作方式
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
GATE | C/T’ | M1 | M0 | GATE | C/T’ | M1 | M0 |
GATE 门控位
- GATE = 0 : 定时器/计数器是否计数仅由控制位TRx(x = 0,1))来控制, TRx(x = 0,1)为高电平允许T1(T0)对脉冲计数
- GATE = 1 : 定时器/计数器是否计数由外中断引脚INT1’ or INT0’和TRx(x = 0,1)共同控制, 当二者全为1时允许T1(T0)对脉冲计数
C/T’ 计数器模式和定时器模式选择位
- C/T’ = 0 : 定时器模式, 对系统时钟12分频后的内部脉冲进行计数
- C/T’ = 1 : 计数器模式, 对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)进行计数
M1 M0 工作方式选择位
M1 M0 | 工作方式 |
---|---|
0 0 | 方式0, 13位定时器/计数器 |
0 1 | 方式1, 16位定时器/计数器 |
1 0 | 方式2, 8位的常数自动重新装载的定时器/计数器 |
1 1 | 方式3, 仅适用于T0, 此时T0分为2个八位计数器, T1停止计数 |
定时器/计数器控制寄存器 TCON
TCON的字节地址为88H, 可位寻址
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
其低四位与外部中断有空
- TF1, TF0 计数溢出标志位: 当计数器计数溢出时, 该位置1. 使用查询方式时, 该位可供CPU查询, 但应注意查询后, 应使用软件计时将该位清0. 使用中断方式时, 该位作为中断请求标志位, 进入中断服务程序后由硬件自动清0.
- TR1 , TR0 计数运行控制位 : TRx = 1时, 启动定时器/计数器计数的必要条件(由于GATE位的不确定, 只知道TRx =