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

時間 2024-12-13 10:50:27

1樓:喻青芬晏畫

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

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

假設晶振12mhz,p1控制8個led低電平亮。

啟動入口===

org0000h

復位啟動。ajmp

startorg

001bht1中斷。

ajmpt1int

定義變數===

ysjsequ

30h;延時計數器。

ledequ

31h;led控制緩衝器。

主程式===

start:

movled,#0feh

初始化資料。

movysjs,#

movtmod,#10h

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

movtl1,#0b0h

設定定時初值。

movth1,#3ch

定時時間=50ms

setbet1

使能定時器1中斷。

setbtr1

啟動定時器1

setbea

開總中斷。mov

p1,led

初始化流水燈。

loop:jmp

loop迴圈等待中斷。

t1int:

pushpsw

定時器1中斷程式。

pushacc

保護現場。mov

th1,#3ch

定時時間=50ms

movtl1,#0b0h

incysjs

pushacc

保護accmov

a,ysji

cjnea,#2,qt1

50ms*2=100ms

movp1,led

mova,ledrla

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

movled,a

movysjs,#

qt1:pop

acc恢復現場。

poppsw

reti返回主程式。

end匯程式設計序結束。

2樓:姒秀愛庹香

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

微控制器十六位led流水燈控製用c語言怎麼程式設計

3樓:清風電子製作

微控制器從小白開始系列(七)第乙個c語言程式來控制led燈。

4樓:夢夕

你也是計算機應用技術班的嗎? 不會做呢~

5樓:網友

看不到線路圖,誰能幫你啊!!!

微控制器組合語言流水燈?

6樓:宅宅

這學期已經被彙編折磨夠了,再看到彙編就頭大。

課設也搞完了。

終於解放啦哈哈哈。

提醒一下流水線檔名拼音打錯了(小聲bb)

7樓:網友

rr是右移,你必須左移。

delay不確定有沒有問題,如果燈不流水話,可能卡死在delay中了。

8樓:安迪的快樂時光

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

51微控制器組合語言學習軟體,51微控制器用組合語言需要什麼軟體?

我想告訴你,keil可以編輯彙編的檔案.你建好一個project後,在source group 1上點右鍵,選add files to group source group 1 這時,就可以選中你的asm檔案 要選asm檔案得先把對話方塊中的檔案類弄選為 雙擊就可以新增到source group 1...

簡單的C51微控制器組合語言程式分析

羅門大佬 樓上說的有理,但是即使刪去ljmp main也不行,因為在中斷時它把ea關了,也就不會中斷了。其實不用關ea,你把clr ea也刪去就可以執行。只要你的手沒有中斷服務程式快就會有中斷。每次按都有。你試一下在開發板上執行,應該可以的。原因是當你外中斷置低電平時,就會進入中斷程式。執行完就會自...

在51微控制器中用組合語言rlca為什麼左移兩位

51微控制器中,rlc a是帶進位的迴圈左移,所以執行的結果不是將低位清0,要想將低位清零,實現點亮兩個燈可以採取的方法 1 直接賦值實現 a mov p1,0fch b mov a,p1 anl a,0fch mov p1,a 2 用迴圈命令,但每迴圈一次,需要將c清0mov a,p1 clr c...