51定时器相关内容
中断,定时器是51单片机较为重要的内容
定时器/计数器
定时器由TMOD寄存器控制工作方式,TCON控制开启定时器是加法器,每来一个计数脉冲,加法器内容加1,要使用定时器,需要先赋初值
初值X = 最大计数值 - 计数值N
定时器结构
TMOD
TMOD | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
89H | GATE | C/T | M1 | M0 | GATE | C/T | M1 | M0 |
<- | 定时器1 | - | > | <- | 定时器0 | - | > |
GATE:门控位,定时器启动是否受外部中断请求影响
C/T:定时器/计数器 C/T = 0 时是定时器
M1,M2:为工作模式选择器
M1 | M0 | 工作方式 | 方式说明 |
---|---|---|---|
0 | 0 | 0 | 13位定时器(8192 - n) |
0 | 1 | 1 | 16位定时器(65536 - n) |
1 | 0 | 2 | 8位自动重置定时(256 - n) |
1 | 1 | 3 | 两个8位定时(只有T0有) |
TCON | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|---|
88H | TF1 | TR1 | TF0 | TR0 | IE1 | IT1 | IE0 | IT0 |
TF1/TF0 : 定时器溢出标志位,当计数满后由硬件使他置位
TR1/TR0 : 定时器的启动位,TR = 1时启动定时器
使用定时器
TMOD = 工作方式代码
TH0 = 初值
TL0 = 初值
TR0 = 1 //开启定时器
/* 如果使用中断打开中断*/
EA = 1
ET0 = 1/* 打开定时器中断 */
51单片机响应中断至少需要3个机器周期