導航:首頁 > 編程知識 > 51匯編程序怎麼加循環延時

51匯編程序怎麼加循環延時

發布時間:2024-10-16 20:31:21

❶ 求做個匯編編程,用雙層循環實現100ms的延時

設主頻12MHz的51單片機,編一個100ms二重循環的延時程序如下,供參考。其它匯編可以類似編程。
SSSS:MOV R0,#99;本指令是單周期指令,用時1us
KKKK0:DJNZ R0,KKKKK;2us
MOV R1,#125;1us
LLLL0:DJNZ R1,LLLLL;2us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
LLLLL:SJMP LLLL0;2us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
KKKKK:SJMP KKKK0;2us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
RET;2us
這段程序延時時間是
1+99*[2+1+125*(2+1+1+1+1+2)+1+1+1+1+1+2]+1+1+1+1+2=100000us=100ms
可以適當調整循環常數99、125以求減小NOP(空操作指令),使程序更加精練。
dshxxf程序不錯,但延時時間是50301us,計算如下1+100*(1+2*250+3)

❷ 51單片機延時函數的問題。晶振是12MHz..需要延時1秒

很簡單,for循環也是需要時間的.

當你使用模擬的時候,通常可以在編譯器裡面查看這段代碼的匯編指令.

你可以看書它的用到了多少個匯編指令,然後在你的晶元手冊上查詢,每一個匯編指令執行需要多少個最小指令周期.最小指令周期才是你說的1um,全部加起來,你就知道你這句話用掉了多少個最小指令.

很明顯遠遠超過了1個最小指令.9秒的的誤差算少的了...

所以說,假如你要做1s的延遲,最好使用內部時鍾中斷來做,直接在程序內部delay延時的話,佔用系統資源還算不準...

具體解釋下上圖,為了拿這5分還真不容易...

首先,進入函數就需要5個匯編指令,這些指令主要是入棧,備份指針的操作,不同的編譯器指令不同,但都差不多....當然這5個指令是進入函數只跑一次,佔用時間不多,消耗時間最多的是你for循環內部的指令,一個for循環需要8條匯編指令才能實現,而每個匯編指令通常都需要消耗1-2個最小指令循環,具體那個指令消耗幾個循環我懶的查手冊,不同的晶元不一樣,你自己看看你用的晶元手冊把....

以上...應該清楚了把..不明白追問,我要是再次無聊的話,會修改回答.

❸ 51單片機用匯編語言設計1S延時子程序,晶振為12MHz。 (麻煩附上詳細計算過程以及詳細說明,

DELAY1S:
MOV R2,#10 ;1
DELAY1:
MOV R3,#200 ;1*10
DELAY2:
MOV R4,#249 ;1*199*20
DJNZ R4,$ ;2*249*199*10
DJNZ R3,DELAY2 ;2*199*10
DJNZ R2,DELAY1 ;2*10
MOV R2,#250 ;1
DJNZ R2,$ ;2*250
MOV R2,#243 ;1
DJNZ R2,$ ;2*243
RET ;2
以上注釋值之和就是延時總時間:T=1000001US約1S

閱讀全文

與51匯編程序怎麼加循環延時相關的資料

熱點內容
plc的st編程是什麼 瀏覽:488
美團騎手app如何導航送貨 瀏覽:663
APP聯系過的域什麼意思 瀏覽:33
編程g198是什麼指令 瀏覽:300
什麼都不懂咋學編程 瀏覽:304
java中判斷字元大小寫 瀏覽:727
dnf90版本魔界深淵 瀏覽:609
系統調用失敗文件夾打不開 瀏覽:600
數控編程和模具設計師哪個工資高 瀏覽:591
jenkins版本號 瀏覽:113
怎麼重新換icloud賬號和密碼錯誤 瀏覽:316
在線word預覽 瀏覽:130
拼多多怎麼看自己的評價數據 瀏覽:717
白事記賬軟體app哪個好 瀏覽:658
如何驗真假包app 瀏覽:10
從c盤如何刪除桌面上的文件 瀏覽:209
安卓app上架市場有哪些 瀏覽:703
在線錄音文件打不開 瀏覽:708
nc程序模擬軟體 瀏覽:477
花卉的網站如何盈利 瀏覽:945

友情鏈接