<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 幾種延時(shí)的匯編執行代碼對比與總結

幾種延時(shí)的匯編執行代碼對比與總結

作者: 時(shí)間:2013-04-07 來(lái)源:網(wǎng)絡(luò ) 收藏

16: }

C:0x0029 22 RET

分析:

delay1(1); 404-390=14

delay1(2); 425-405=20

delay1(3); 452-426=26

指令周期(即實(shí)際延時(shí))= 8 + 延時(shí)參數 * 6

對比二和三可知循環(huán)結束條件不同,編譯結果理當不同,用i != 0快2個(gè)周期。

四、while語(yǔ)句1

21: delay1(1);

C:0x0005 7F01 MOV R7,#0x01

C:0x0007 1123 ACALL delay1(C:0023)

11: void delay1(unsigned char i)

12: {

13: while(i--);

C:0x0023 AE07 MOV R6,0x07

C:0x0025 1F DEC R7

C:0x0026 EE MOV A,R6

C:0x0027 70FA JNZ delay1(C:0023)

14: }

C:0x0029 22 RET

407-390=17,有點(diǎn)夸張

當delay1(2)時(shí),為431-408=23

delay1(3)時(shí),為461-432=29

指令周期(即實(shí)際延時(shí))= 11 + 延時(shí)參數 * 6

五、while語(yǔ)句2

21: delay1(1);

444 C:0x0005 7F01 MOV R7,#0x01

445 C:0x0007 111D ACALL delay1(C:001D)

11: void delay1(unsigned char i)

12: {

13: while(--i);

447 C:0x001D DFFE DJNZ R7,delay1(C:001D)

14: }

449 C:0x001F 22 RET

451

從上看出451-444=7個(gè)周期,指令周期為1us的話(huà),就是7us

指令周期(即實(shí)際延時(shí))= 5 + 延時(shí)參數 * 2

綜上可知:

共性:裝載函數參數用時(shí)1,調用用2,返回用2,1+2+2=5為固定開(kāi)銷(xiāo)。

從以上各個(gè)結果的指令周期和延時(shí)參數的關(guān)系上看,很明顯,以后如果要求不用定時(shí)器實(shí)現us級的延時(shí)(按晶振12M,指令周期1us算),那么首選第五:

while(--i);

語(yǔ)句,其分辨率是最高,最精確的,當然,對于相同的延時(shí)參數,它的實(shí)際延時(shí)時(shí)間也是最短的,它只能最高延時(shí)5+255*2=515us,若所需延時(shí)大于此值,則需要循環(huán)嵌套;或者,可考慮選用

for(;k>0;k--);

最高延時(shí)=10 + 255*8=2050us=2.05ms

需要其他的延時(shí)時(shí)間片的話(huà),再參考以上的公式計算即可。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 51單片機 KeilC 延時(shí)程序

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>