找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3418|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

關(guān)于單片機(jī)匯編語(yǔ)言延時(shí)子程序的時(shí)間計(jì)算

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:248898 發(fā)表于 2021-3-7 23:45 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
D1:

      MOV  R4,#20

D2:

      MOV  R5,#248
      DJNZ R5,$

      DJNZ R4,D2



就這么簡(jiǎn)單的延時(shí)子程序時(shí)間計(jì)算,最好能詳細(xì)點(diǎn)說(shuō)明為甚麼>本人才學(xué)單片機(jī),例如這樣吧,我不清楚為甚麼最后是1+20*499=9981  


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2021-3-7 23:45 | 只看該作者
這是一個(gè)嵌套循環(huán)。內(nèi)層循環(huán)248次,(R5=248)DJNZ R5, #248,是2周期指令,每執(zhí)行一次占用2個(gè)機(jī)器周期。

                         外層循環(huán)是20次,(R4=20)

                         所以20*248,就是執(zhí)行次數(shù),每次2周期,20*248*2=全部的機(jī)器周期。如果使用的晶振是12MHZ,每個(gè)機(jī)器周期剛好是1us

                         至于你的算式的前面的那個(gè)“1”,是執(zhí)行“MOV  R4, #20" 指令的一個(gè)機(jī)器周期。其實(shí)“MOV  R5,  #248”也要執(zhí)行20次,計(jì)算公式應(yīng)該是20*248*2+20+1

                         另外,如果計(jì)時(shí)要求很苛刻時(shí),包括調(diào)用“延時(shí)子程序”、“返回”所占用機(jī)器周期都需要計(jì)算進(jìn)去的。
回復(fù)

使用道具 舉報(bào)

板凳
ID:390416 發(fā)表于 2021-3-8 00:23 | 只看該作者
你算這么準(zhǔn)確有什么用?中斷一使用,誤差從1% 瞬間提高到250%了
回復(fù)

使用道具 舉報(bào)

地板
ID:798631 發(fā)表于 2021-3-8 08:55 | 只看該作者
初學(xué)的話  下功夫?qū)WC的吧   用的人多有問(wèn)題好請(qǐng)教   
回復(fù)

使用道具 舉報(bào)

5#
ID:858964 發(fā)表于 2021-3-10 16:26 | 只看該作者
設(shè)51系列單片機(jī)晶振頻率Fosc為12MHz,
則每個(gè)機(jī)器周期 =12/Fosc =1μs ,
每條MOV Rn,#data指令耗用1個(gè)機(jī)器周期,
每條DJNZ Rn,rel指令耗用2個(gè)機(jī)器周期,
每條NOP指令執(zhí)行耗用1個(gè)機(jī)器周期,
D1:  MOV  R4,#20  ;;①
D2:  MOV  R5,#248 ;;②
      DJNZ R5,$   ;;③
      DJNZ R4,D2  ;;④
指令①執(zhí)行1次,耗時(shí)1us;
指令②每次執(zhí)行耗時(shí)1us,
指令③每次執(zhí)行耗時(shí)2us,
指令④每次執(zhí)行耗時(shí)2us,
延時(shí)值=1us+20[(2usx248+1us)+2us]
          =1us+20[499us]
          =9981 us
其它例子請(qǐng)閱附件。


51單片機(jī)用循環(huán)遞減法計(jì)數(shù)方式延時(shí)值計(jì)算及舉例.zip

1.06 KB, 下載次數(shù): 13

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表