记录一下51定时器的学习。
1 定时器相关寄存器TCON——定时器控制寄存器的位分配
TCON——定时器控制寄存器的位描述
TMOD——定时器模式寄存器的位分配(地址 0x89、不可位寻址)
TMOD——定时器模式寄存器的位描述
TMOD——定时器模式寄存器 M1/M0 工作模式
2 定时器配置步骤:
- 第一步:设置特殊功能寄存器 TMOD,配置好工作模式。
- 第二步:设置计数寄存器 TH0 和 TL0 的初值。
- 第三步:设置 TCON,通过 TR0 置 1 来让定时器开始计数。
- 第四步:判断 TCON 寄存器的 TF0 位,监测定时器溢出情况。
举个例子:初值如何设置假设晶振是 11.0592M,时钟周期就是 1/11059200,机器周期是 12/11059200,假如要定时 20ms,就是 0.02 秒,要经过 x 个机器周期得到 0.02 秒,我们来算一下 x*12/11059200=0.02,得到 x = 18432。16 位定时器的溢出值是 65536(因 65535 再加 1 才是溢出) ,于是我们就可以这样操作,先给 TH0 和 TL0一个初始值,让它们经过 18432 个机器周期后刚好达到 65536,也就是溢出,溢出后可以通过检测 TF0 的值得知,就刚好是 0.02 秒。那么初值 y = 65536 - 18432 = 47104,转成 16 进制就是 0xB800,也就是 TH0 = 0xB8,TL0 = 0x00。
|