51微控制器彙編控制流水燈,51微控制器中如何用組合語言編寫流水燈

2022-03-02 12:16:13 字數 6503 閱讀 7735

1樓:匿名使用者

用rl a 他是左移補零的,你rlc a 是把最高位放在psw的c中,再左移,c再放在最低位.而rl是不經過c的。左移後低位補零,你把rlc換成rl就可以了

2樓:做而論道

;org 0000h

ljmp start

org 0030h

start:

mov a, #0feh

mov r2, #8

output:

mov p1, a

rl a ;這是左移dec a ;------------------加上這行,就不滅了。

acall delay

djnz r2, output

ljmp start

delay:

mov r6, #0

mov r7, #0

delayloop: ;延時程式

djnz r6, delayloop

djnz r7, delayloop

retend

3樓:匿名使用者

;8個led疊加點亮

main: mov r3,#8 (8個led)mov r2,#0 (計數器)mov a, #1 (點亮led1)ma1: mov p1,a

acall delay (延時)mov r2,a (儲存)rl a (左移)or a,r2 (再裝配)djnz r3,ma1

jmp mainend

51微控制器中如何用組合語言編寫流水燈

4樓:匿名使用者

org 0100h

ltor: mov a,#01h

loop: rr a

du ;從左到右亮,每次亮一盞zhi

mov p1,a

acall delay

jnb acc.0,loop

loop1: rl a

mov p1,a ;從右到dao左亮,每次亮一盞acall delay

jnb acc.7,loop1

loop2: rr a

orl a,#80h

mov p1,a ;從左到右依次點亮每一盞燈acall delay

jnb acc.0,loop2

loop3: rl a

anl a,#0feh

mov p1,a ;從右到左依次熄滅每一盞燈acall delay

jb acc.7,loop3

sjmp ltor

delay: mov r6,#01h ;延時子程式l2: mov r7,#01h

l1: nop

djnz r7,l1

djnz r6,l2

retend

5樓:匿名使用者

埠的暫存器,賦予一個初值。每位對應一路燈。然後做移位命令。左移右移都可以,不就可以流水了。 寫好花樣,查表 ;亮燈控制程式; ;**; org ,

6樓:匿名使用者

org 0000h

ajmp main

org 0100h

main: mov dptr,#tab

mov r7,#4fh

loop: movc a,@a+dptr

inc dptr

mov p1,a

acall delay

clr a

djnz r7, loop

ajmp main

org 0200h

tab: ;從左到右,再從右內到左,一容次亮一個

db 7fh,0bfh,0dfh,0efh,0f7h,0fbh,0fdh,0feh ;15,0fh

db 0fdh,0fbh,0f7h,0efh,0dfh,0bfh,7fh

;從右到左,再從右到左,依次點亮

db 0ffh,0feh,0fch,0f8h,0f0h,0e0h,0c0h,80h,00h

db 0ffh,7fh,3fh,1fh,0fh,07h,03h,01h,00h

7樓:匿名使用者

org 0000h

mov a, #01h

start: mov p1, a

rl a

lcall delay

ljmp start

delay:

mov r6, #0

mov r7, #0

delayloop:

djnz r6, delayloop

djnz r7, delayloop

retend

8樓:匿名使用者

loop:

mov a, #01h

mov r2, #8

output:

mov p1, a

rl a

call delay

djnz r2, output

ljmp loop

delay:

mov r6, #0

mov r7, #0

delayloop:

djnz r6, delayloop

djnz r7, delayloop

retend

9樓:

來自理科生的浪漫,用51微控制器制作心形流水燈

51微控制器彙編控制8個流水燈 5

10樓:匿名使用者

思路:迴圈控制常亮狀態的值,將其從最高位迴圈到最低位。這個用於最後狀態的常亮

在常亮迴圈中,控制不是常亮的其它所有位進行再次迴圈,逐漸從最低位亮滅迴圈到最高位

**如下:

#include

unsigned char pdata;   //整體結果

unsigned char currdata;//變化的最高位

//延時,本函式是非精確延時,若需要精確延遲則需要根據本函式的彙編語句進行精確計算後調整迴圈體次數

void delay(unsigned int ms)}}

void main(){

unsigned char i=0,j=0;

pdata=0x00;//全滅狀態

for (i=8;i>0;i--){//控制常亮的位置,先從最高位開始,依次迴圈到最低位

for (j=0;j

11樓:ux之家

這是c程式。。。彙編忘記不太會了。p1口接8個led燈#include

#include

#define uchar unsigned charuchar j,temp;

int i = 8;

void delay(unsigned int ms) //延時

void display(int wei) //顯示

}}void main() //主函式i--;

if(i==0)}}

12樓:匿名使用者

這個簡單,亮還是滅和你io共陽或共陰有關係,彙編從來不用.

51微控制器彙編怎麼用四個獨立按鍵來控制流水燈的速度?

13樓:匿名使用者

不用中斷一樣的實現,而且可以有多少個按鍵就可以有多少種流水燈方式。你使用的鍵盤函式直接呼叫流水燈函式就可以。比如使用獨立鍵盤,if(p1.

1==0) light_water(); 然後:

void light_water()

}這樣就會有一個led從右往左移動8次;那麼當第一次流水未完時,又呼叫第二個流水函式light_water1就能中斷當前執行的流水函式又去執行第二個流水燈函式了。

14樓:一個白日夢

一般是一個鍵加速,一個鍵減速,,一個鍵最高速度,一個鍵最低速度........比較方便操作!

51微控制器流水燈程式

15樓:電路diy手工

來自理科生的浪漫,用51微控制器制作心形流水燈

16樓:安迪的快樂時光

花樣流水燈的玩法,一個51微控制器8位埠輪流輸出16顆燈珠,

17樓:匿名使用者

推薦你看郭天祥十天學會微控制器,回講實際程式的,講的挺好的

c51微控制器中如何用組合語言編寫流水燈

18樓:冷安順樹琪

51微控制器用組合語言編寫流水燈程式,就是控制多個led,使其在特定時間間隔內,只有一個led

發光,其他熄滅,用這種方式順序移動點亮led的位置,就形成了流水燈的效果。以下是程式:

;假設晶振12mhz,p1控制8個led低電平亮;啟動入口********************====org0000h

;復位啟動

ajmp

start

;org

001bh

;t1中斷

ajmp

t1int

;;定義變數********************====ysjs

equ30h;延時計數器

ledequ

31h;led控制緩衝器

;主程式*************************=start:

movled,#0feh

;初始化資料

movysjs,#0;;

movtmod,#10h

;定時器1工作於方式1,16位定時器

movtl1,#0b0h

;設定定時初值

movth1,#3ch

;定時時間=50ms

setb

et1;使能定時器1中斷

setb

tr1;啟動定時器1

setb

ea;開總中斷

movp1,led

;初始化流水燈

;loop:

jmploop

;迴圈等待中斷;;

t1int:

push

psw;定時器1中斷程式

push

acc;保護現場

;mov

th1,#3ch

;定時時間=50ms

movtl1,#0b0h

;inc

ysjs

;push

acc;保護acc

mova,ysji

;cjne

a,#2,qt1

;50ms*2=100ms

movp1,led

;mov

a,led;rl

a;累加器a的值迴圈左移1位

movled,a

;mov

ysjs,#0;;

qt1:

popacc

;恢復現場

poppsw

;reti

;返回主程式

end;彙編程式結束

19樓:量子

微控制器不分是不是c51,只要是51微控制器都支援彙編需要和c語言兩種方式設計程式,實現流水燈功能。

20樓:匿名使用者

埠的暫存器,賦予一個初值。每位對應一路燈。然後做移位命令。左移右移都可以,不就可以流水了。 寫好花樣,查表 ;亮燈控制程式; ;**; org ,

21樓:匿名使用者

org 0000h

mov a, #01h

start: mov p1, a

rl a

lcall delay

ljmp start

delay:

mov r6, #0

mov r7, #0

delayloop:

djnz r6, delayloop

djnz r7, delayloop

retend

22樓:錦繡江山千萬年

loop:

mov a, #01h

mov r2, #8

output:

mov p1, a

rl a

call delay

djnz r2, output

ljmp loop

delay:

mov r6, #0

mov r7, #0

delayloop:

djnz r6, delayloop

djnz r7, delayloop

retend

51微控制器,開關控制LED,開始流水燈,按一下停止,再按一下繼續流水燈

dchar unsigned cha 採用中斷方式,程式如下 include include define uchar unsigned charsbit button p3 2 uchar press 0 uchar luishui 0xfe void delay uchar z void mai...

51微控制器控制數碼管並顯示,51微控制器控制8個數碼管並顯示

數碼管段選連線到微控制器p0口,位選連線到p2口org 0000h main call display ajmp main display mov r0,0 mov r1,0x01 mov dptr,tab loop inc r0 mov a,r0 movc a,a dptr mov p0,0 消隱...

51微控制器流水燈問題用c語言用到光感測器

當手滑到感測器1時,用定時器進行計時,超過你設定的時間,視為這次無效,不亮燈不就行了 51微控制器16路流水燈怎麼用c語言寫,並求每個步驟的講解 我給你個簡單的例子 include 預處理檔案裡面定義了特殊暫存器的名稱如p1 口定義為p1 void main void unsigned int a ...