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