標(biāo)題: 幫忙,這個程序怎么得來的啊 [打印本頁]
作者: lidavid 時間: 2008-7-21 13:06
標(biāo)題: 幫忙,這個程序怎么得來的啊
我是單片機(jī)學(xué)習(xí)新手,有個問題想請問高手們。請問以下的程序是如何得來的,那些數(shù)字是根據(jù)什么算來的?
DELAY: MOV R3, #50;
D1: MOV R4, #20;
D2: MOV R5, #248;
DJNZ R5, $;
DJNZ R4, D2;
DJNZ R3, D1;
RET
END
請高手幫忙,在下感激不盡
作者: a13758777532 時間: 2008-7-21 15:06
著是一個延時程序
作者: blackeagle 時間: 2008-7-22 13:48
正如二樓說的 是一個延時程序,數(shù)據(jù)是根據(jù)須要來定的,一條指令比如說要使用1個機(jī)器周期,晶振是12m,要延時1s,那么你就可以根據(jù)這些數(shù)據(jù)來定,指令中的那些立即數(shù)了
作者: lidavid 時間: 2008-7-29 21:06
謝謝幫忙,在下明白了
作者: jxjiangjun 時間: 2008-8-5 15:50
路過
作者: nglmh2006 時間: 2008-9-2 23:11
YS0: MOV R0,#10
YS1: MOV R1,#100
YS2: MOV R2,#7DH(其實是125)
YS3: NOP
NOP
DJNZ R2,YS3(每執(zhí)行一次為四個指令周期也就是4微妙,這個指令要執(zhí)行125次,也就是500微妙)
DJNZ R1,YS2(這條指令一次要0.5ms要執(zhí)行100次,就是50ms)
DJNZ R0,YS1(這條指令一次要50ms,要執(zhí)行10次,就是500ms既0.5S)
RET
要想調(diào)整時間可以調(diào)整R0和R1的大小,不要超過256就可以了!
這樣的延時不和很準(zhǔn),只是大概的,用在要求不高的場合,要想準(zhǔn)確就要用定時器!
作者: wanghuailin 時間: 2008-12-3 13:02
樓上說得很好
作者: yann 時間: 2009-2-26 21:15
這延時程序自己琢磨了好久才明白它的算法。。不過還好自己搞懂,記的特牢
作者: yunpin665 時間: 2009-2-26 23:15
之前有認(rèn)真算過長時間不算又忘的差不多了
作者: szrunluo 時間: 2009-4-11 08:42
延時,不知怎樣才能算出精確的延時
作者: zhang_daijh 時間: 2009-4-16 13:48
哈哈,我也是好像剛明白點(diǎn)。
作者: 瀏陽 時間: 2009-5-14 21:46
執(zhí)行數(shù)值移動的指令用一個機(jī)器周期,那個DJNZ的指令執(zhí)行一次用2個機(jī)器周期,你算算用多少時間就明白了,就像是樓上說的那樣,這樣延時不準(zhǔn)確。要是想嚴(yán)格定時還得用定時/計數(shù)器的定時功能。
作者: shu33120 時間: 2009-5-24 22:18
DELAY: MOV R3, #50; 1US
D1: MOV R4, #20; 1US
D2: MOV R5, #248; 1US
DJNZ R5, $; 2US
DJNZ R4, D2; 2US
DJNZ R3, D1; 2US
RET
END
DELAY的時間 D1 D2 DJNZ R5…… DJNZ R4…… DJNZ R3……
1 + (1 + ( 1 + 2*248 + 2)*20 + 2)*50
差不多就是這么算的
作者: shu33120 時間: 2009-5-24 22:21
我上面是算的12MHZ晶振。不要亂代了機(jī)器周期時間。
作者: 小陸 時間: 2009-6-11 10:26
總延時:2微妙乘R7乘R6乘R5=2微妙X50X20X248=496000微妙=0.496S
作者: 小妮子 時間: 2009-6-11 10:45
DELAY: MOV R3, #50; 延時:50×20×248×2μs=0.5s
D1: MOV R4, #20;
D2: MOV R5, #248;
DJNZ R5, $; $的意思就是原地等待
DJNZ R4, D2;
DJNZ R3, D1;
RET
END
貌似很容易理解吧?
作者: xiaowei 時間: 2009-6-11 13:48
學(xué)習(xí)了,謝謝
作者: nishibeitina 時間: 2009-7-7 21:21
呵呵 路過
作者: RF射頻電路 時間: 2010-6-23 15:24
前三條指令是把操作地址放到寄存器中,后三條指令是循環(huán)空操作,旨在延時
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |