標題: 單片機延時程序 [打印本頁]
作者: res 時間: 2008-6-7 19:46
標題: 單片機延時程序
MOV R2,#10H
........
DELY: PUSH 02H
DEL2: PUSH 02H
DEL3: PUSH 02H
DEL4: DJNZ R2,DEL4 ;單片機延時程序
POP 02H
DJNZ R2,DEL3
POP 02H
DJNZ R2,DEL2
POP 02H
DJNZ R2,DELY
RET
請問延時多長時間若晶振12MHZ
作者: yysmcu 時間: 2008-6-7 22:56
具體算起來要比較長式子,你不妨把延時程序拷貝進Keil C運行,把斷點設置到RET處,很快就可得出延時時間,記住先設置好晶振
作者: 大白狐 時間: 2008-6-10 11:38
晶振為12MHZ則一個機器周期執行的時間為1微秒
DJNZ為雙周期指令所以執行一次需要2個機器周期
執行一次DJNZ R2,DEL4需要10次才可以執行下一條指令
10*2*1微妙=20微秒
執行DJNZ R2,DEL3 10*10*2*1微秒
同理DJNZ R2,DEL2 10*10*10*2微秒
DJNZ R2,DELY 10*10*10*10*2*1微秒
所以總時間為
10*10*10*10*2*1+10*10*10*2+10*10*2*1+10*2*1
其實這也只是算出個 粗略的結果
要想得到精確的結果 還要把 所有的 PUSH和POP所用的時間給加上```
作者: res 時間: 2008-6-10 12:13
謝謝 大白狐斑竹大人啊
作者: hjlost 時間: 2014-10-24 14:17
掘墓高手,專挖古墓,一挖一個坑,坑坑見墓。。
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |