1樓:匿名使用者
通用辦法,可以類推:
delay1s:
mov r5,#08h ; ∵ 1s=1000000us
mov r6,#0a2h ; ∴ 1000000/2=500000
mov r7,#20h ; 500000用16進製表示為: 07a120
; 所以 r5=07h+1=08h
; r6=0a1h+1=0a2h
; r7=20h
loop: djnz r7,$ ; 延時時間≈2×[(r5-1)×256+r6-1]×256+r7
djnz r6,loop ; 當r5、r6等於0,相當於256參與運算
djnz r5,loop ; 當r5、r6等於0,相當於256參與運算ret
2樓:
一些寫**的唯美主義者看不起以下答案,其實現實主義者大都這麼幹。很實用,最重要的是可靠性好,開發速度快。
org 0000h
mov sp, #60h
mov a,#00h
loop: mov p1, a
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
acall delay100ms
cpl a
sjmp loop
delay100ms: mov r6, #199 ; 1×1=1us
dly1: mov r7, #250 ; 1×1×199=199us
djnz r7, $ ; 2×1×250×199=99.5ms
djnz r6, dly1 ; 2×1×199=398us
ret ; 2×1=2usend
3樓:匿名使用者
delay1ms: ;
mov r7,#01h
dl1:
mov r6,#8eh
dl0:
mov r5,#02h
djnz r5,$
djnz r6,dl0
djnz r7,dl1
retvoid delay1ms(void)
微控制器程式解讀 20,微控制器程式解釋
org 000h ajmp start org 001bh ajmp timel 定時器1中斷服務org 0030h start mov ie,10000100b 開啟總中斷和外部1中斷 貌似有錯誤 mov sp,60h 棧頂為60hmov p1,0ffh mov r0,00000011b r0 0...
微控制器LED,微控制器中程式中,LED LED是什麼意思?
雖然你這樣的電路仍然可以實現這些功能,但不值得推薦,你了解一下動態掃瞄吧,如果能掌握動態掃瞄就很簡單了,因為按你這個樣子,如果顯示5位數的話,那微控制器io口豈不是都不夠用了啊,你只要把數碼管的段顯示部分 2個數碼管的左邊七個引腳 都接在p2口就行,也就是再多的數碼管都接在乙個 8位 口上,例如 p...
微控制器程式中能輸入小數嗎,51微控制器怎麼從鍵盤輸入小數點啊
51微控制器硬體沒有浮點數運算指令,如果是彙編,需要自己使用一段彙編指令序列來完成浮點數運算,如果是c語言就比較容易了,編譯器會自動做處理,但是微控制器做浮點運算開銷是很大的 小數部分會被直接捨去,不會產生進製。微控制器處理浮點運算是很慢的。使用float型或double型變數,經過編譯器編譯後是會...