ORG 0000H
LJMP SYS
ORG 000BH
1----》 RETI
SYS:
MOV IE,#0FFH
MOV TMOD,#01H
;MOV TL0,#01EH
;MOV TH0,#02FH
SETB TR0
JMP $
;RETI
END
以上代码是测试定时器1代码,我在1处打断点,当随机连续取两个断点的时间差是0.065536是,改变TL0,TH0的值,但是这时间差仍然不变,为什么计时器的计时值不改变?!
定时时间的计算公式为不是:
(216—计数初值)╳晶振周期╳12
为什么改变计数初值TH0,TL0怎么不见效啊?!
请哪位大侠解释一下啊?!
很明显,你的用法不对。
你想,当程序走到哪里会停下呢,当然是走到JMP $,那就一直在等待了,进入中断后,你开始计时,那中断返回到哪里呢,当然还是JMP $,这个期间,你根本没有给定时器重新赋值,所以它只能从0开始加,然后再进入中断,然后再返回JMP $,无限循环了.....
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |