微控制器彙編程式延時03秒和05秒怎麼寫

2022-02-23 21:17:54 字數 3595 閱讀 2529

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 編譯這個程式時,選中生成彙編 就...