定时器初值计算问题

[复制链接]
1487|3
 楼主| dfsa 发表于 2012-7-18 21:19 | 显示全部楼层 |阅读模式
C51用11.0592MHZ的晶振。采用定时器T1,方式2怎么定时0.5S和1S。
这个初值是怎么计算的。TH1,TL1都要怎么计算。
求详细过程。
txcy 发表于 2012-7-18 21:26 | 显示全部楼层
选择定时器的定时时间能将500毫秒整除,例如500毫秒是定时时间的K倍;
在定时器里,对每次定时器中断计数,次数到达K时,就是0.5秒.
无冕之王 发表于 2012-7-18 21:44 | 显示全部楼层
周期1S
计数器N=定时器周期t/机器周期T
定时器周期t×中断次数n=设定的周期T0
baidudz 发表于 2012-7-18 21:53 | 显示全部楼层
;11.0592MHZ下,C51的T1方式1最多可以定时65536us,
;定时50ms即50000us,须计数65536-50000=15536=0x3CB0,
;这个值即为定时器初值
ORG 0000H
AJMP MAIN
MAIN: MOV R6, #2
MOV R7, #10
MOV TMOD, #10H
LOOP0: MOV TH1, #3CH ;定时50ms
MOV TL1, #B0H
SETB TR1
LOOP1: JBC TF1, DLY500MS
SJMP LOOP1
DLY500MS: DEC R7 ;延时0.5S
DJNZ R7, LOOP0
DLY1000MS: DEC R6 ;延时1S
DJNZ R6, DLY500MS
;分别调用DLY500MS和DLY1000MS即可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

282

主题

2404

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部
0