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

熱點內容
任命文件人字多少號 瀏覽:27
如何給桌面的文件自動填寫序號 瀏覽:349
壓縮文件JPG重命名 瀏覽:487
vivox7怎麼隱藏文件 瀏覽:340
官網買蘋果好處 瀏覽:153
直播app源碼如何搭建 瀏覽:31
c盤系統文件包介紹圖片 瀏覽:856
linuxopt主要存哪些文件 瀏覽:924
jsdate天數 瀏覽:930
qq空間怎樣發視頻文件在哪裡找 瀏覽:208
nrf2401收發程序 瀏覽:498
哪個網站看新聞最好 瀏覽:944
找到文件夾並清除linux 瀏覽:82
蘋果app不安全怎麼辦 瀏覽:1000
電腦桌面文件收集軟體推薦 瀏覽:317
桌面的文件夾不能刪除不了怎麼辦 瀏覽:724
什麼是手機溫控文件 瀏覽:840
廣東農信app怎麼更改預留手機號碼 瀏覽:241
cdm打開隱藏文件夾 瀏覽:320
貝殼app房子為什麼偶爾不顯示 瀏覽:4

友情鏈接