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.denmoz.com/bbs/) | Powered by Discuz! X3.1 |