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...