1樓:匿名使用者
延時0.3秒程式(12m):
delay3:
mov r2,#200
dl1:
mov r3,#250
djnz r3,$
mov r3,#250
djnz r3,$
mov r3,#250
djnz r3,$
djnz r2,dl1
ret延時0.5秒程式:
delay5:
mov r2,#5
dly1:
mov r3,#200
dly2:
mov r4,#250
djnz r4,$
djnz r3,dly2
djnz r2,dly1ret
2樓:匿名使用者
在時鐘為12mhz時,一個機器週期為1微秒,djnz指令執行週期為2微秒,用雙重迴圈來完成軟體延時,我給你個50ms的延時程式,你一看就會了。
del: move r7,#200
del1: move r6,#123
nopdjnz r6,$
djnz r7,del1
ret你只要修改r7和r6裡面的立即數就可實現300ms和500ms的延時,稍微動手一算就出來了,很好學的,你可以實現任意延時。
3樓:大胯上磨刀
本來想給一樓點讚的,結果點成踩了,這tm就很尷尬……
4樓:i多多問題多多
那個軟體不錯 呵呵下一個
5樓:匿名使用者
留個郵箱,給你個微控制器小精靈,這種東西都是現成**生成的
微控制器組合語言流水燈程式延時0.5秒 一共四個燈迴圈
6樓:匿名使用者
四個燈假設接在p1.0~p1.3上。晶振採用12m,這裡用定時器中斷方式實現4個燈的流水燈效果,程式如下:
org 0000h
ljmp main
org 000bh
ljmp t0isr
org 0030h
main:
mov tmod,#01h
mov th0,#high(65536-50000) //定時50毫秒初值
mov tl0,#low(65536-50000)setb tr0
setb et0
setb ea
mov r2,#0
mov a,#0feh
mov p1,a
sjmp $
t0isr:
clr tr0
mov th0,#high(65536-50000)mov tl0,#low(65536-50000)setb tr0
inc r2
cjne r2,#10,t0e //10次定時0.5秒mov r2,#0
rl a
jnb acc.4,t01
mov p1,a
reti
t01:
mov a,#0feh
t0e:
retiend
7樓:匿名使用者
4只led為共陽極連線,即微控制器輸出端為低電平時即可點亮led。
;用最直接的方式實現流水燈
org 0000h
start:mov p1,#01111111b ;最下面的led點亮
lcall delay ;延時60秒
lcall delay ;延時60秒
mov p1,#10111111b ;最下面第二個的led點亮
lcall delay ;延時60秒
lcall delay ;延時60秒
mov p1,#11011111b ;最下面第三個的led點亮 (以下省略)
lcall delay
lcall delay ;延時60秒
mov p1,#11101111b
lcall delay
lcall delay ;延時60秒
mov p1,#11110111b
lcall delay
lcall delay ;延時60秒
mov p1,#11111011b
lcall delay ;延時60秒
lcall delay ;延時60秒
lcall delay ;延時60秒
lcall delay ;延時60秒
lcall delay ;完成第一次迴圈點亮,延時約0.25秒
ajmp start ;反覆迴圈
;延時子程式,12m晶振延時約250毫秒
delay: ;大約值:2us*256*256*2=260ms,也可以認為為250ms
push psw ;現場保護指令(有時可以不加)
mov r4,#240
l3: mov r2 ,#00h
l1: mov r3 ,#00h
l2: djnz r3 ,l2 ;最內層迴圈:(256次)2個週期指令(r3減一,如果比1大,則轉向l2)
djnz r2 ,l1 ; 中層迴圈:256次
djnz r4 ,l3 ;外層迴圈:240次
pop psw
retend
組合語言5秒的延時程式怎麼寫(微機原理)
8樓:匿名使用者
可以用定時器,這樣比較精準點。不用定時器那隻能用迴圈了,根據晶振計算5秒時間的迴圈次數賦初值,然後迴圈。
9樓:匿名使用者
可以用定時器,這樣比較精準點
51微控制器定時器0.5秒延時問題,程式**是led不會動.
10樓:匿名使用者
org 0000h
ajmp main
org 000bh
ajmp qd
org 0030h
main:mov sp,#60h
mov a,#55h
mov r0,#0ah
mov tmod,01h ;這裡錯了,應該是 mov tmod,#01h
mov th0,#3ch
mov tl0,#0b0h
setb ea
setb et0
mov p0,a
setb tr0
nopsjmp $
;這裡也有問題,應該加上面一條語句,主程式和中斷分開qd:mov th0,#3ch
mov tl0,#0b0h
djnz r0,l1 ;這條語句位置錯了,應該在這裡cpl a
mov p0,a
mov r0,#0ah
l1: retiend
11樓:匿名使用者
nopsjmp $
qd:mov th0, ....
mov tl0,...
原來的結構有問題.
微控制器大神請進,51微控制器彙編程式,程式可發至
1 p1口做輸出口,編寫程式,使p1口接的8個發光二極體l1 l8按16進位制加一方式點亮發光二極體。程式如下 org 0540h ha1s mov a,00h a初值為0 ha1s1 jb p3.3,ha1s1 如果p3.3為1則等待 有脈衝變0一次 mov r2,20h r2賦值為20 lcal...
微控制器c語言延時程式,51微控制器C語言中delay函式是怎麼定義和使用的?
用定時器 可以衍生出定時中斷和標記迴圈查詢法 還有直接用軟體語句硬性延時 這個需要實際測試和調校過才比較準 但不管是哪一種,其最終 還是要依據微控制器工作頻率,具體的需要解釋太多,你還是看看對應微控制器的datasheet的各模組說明吧 可以用for迴圈延時 但是精度不夠 最好用定時器中斷 比如用定...
微控制器C51C程式問題,求翻譯成微控制器程式語言
現在都用c語言 編寫微控制器程式,c語言就是程式語言,而且是高階語言,易懂易讀,是單片版機程式設計的最好的語言權了。而你說的翻譯,是要翻譯成組合語言程式吧。如果你看不懂c語言程式,只學了組合語言,這種現象還很多,因很多學校還在講組合語言 其實非常落後 那你用keil 編譯這個程式時,選中生成彙編 就...