導航:首頁 > 編程知識 > 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匯編程序怎麼加循環延時相關的資料

熱點內容
酷狗的文件夾哪些可以刪除 瀏覽:19
文件編碼cad 瀏覽:878
移動js全屏 瀏覽:449
編程適合學到什麼幾歲停止 瀏覽:581
櫃櫃app怎麼排單 瀏覽:416
小狐仙qq 瀏覽:99
程序員計算器在哪 瀏覽:721
如何將自己的網站發布到互聯網上 瀏覽:697
大一軟體編程用什麼筆記本 瀏覽:422
如何做無線網路設備 瀏覽:817
excel更改後如何找回原文件 瀏覽:657
用哪個類表示資料庫連接 瀏覽:751
蘋果手機如何搜索pdf文件中的內容 瀏覽:162
ps保存的圖片怎麼弄成文件 瀏覽:35
桌面文件放u盤里另一個電腦打不開 瀏覽:234
linux文件操作系統 瀏覽:48
網路代發廣告 瀏覽:244
蘋果6s系統升級後恢復出廠設置 瀏覽:331
快播可以看片的版本 瀏覽:482
js調用瀏覽器列印 瀏覽:328

友情鏈接