新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 匯編代碼實現(xiàn)鍵控彩燈系統(tǒng)

匯編代碼實現(xiàn)鍵控彩燈系統(tǒng)

作者: 時間:2012-08-18 來源:網(wǎng)絡(luò) 收藏

使用匯編語言編寫程序,設(shè)計一個用單片機控制的循環(huán)彩燈控制系統(tǒng)
要求:
1、能輸出4種花型,并能由人工進(jìn)行花型的切換??梢允褂冒存I,也可以使用撥動開關(guān)來實現(xiàn)切換,方法不限。
2、循環(huán)彩燈的循環(huán)速度可調(diào)。
3、按鍵要求:
(1)啟動/暫停。按動一次啟動,再按一次暫停。是一個雙態(tài)轉(zhuǎn)換鍵。
(2)花型變化。按一次,立即停止當(dāng)前花型的顯示,轉(zhuǎn)換為下一種花型。4種花型可以循環(huán)切換。
(3)速度+。按鍵一次,速度略加快一點。
(4)速度-。按鍵一次,速度略減慢一點。
4、在LED顯示器上顯示相應(yīng)的花型號。

代碼

     ORG 0000HJMP STARTORG 0003HJMP X0_INTORG 000BHJMP T0_INTORG 0013HJMP X1_INT;---------------------------------START:MOV TMOD, #51H       ;/*01010001 T1計數(shù),T0定時*/MOV TH0, #HIGH(65536 - 50000) ;50ms@12MHzMOV TL0, #LOW (65536 - 50000)MOV TH1, #0MOV TL1, #0SETB TR0SETB TR1SETB IT0SETB IT1MOV IE, #10000111BMOV IP, #00000101BMOV R7, #20MOV 30H, #20MOV 31H, #0MOV 32H, #0MOV P2, 31HINC P2SJMP $;---------------------------------T0_INT:          ;50ms執(zhí)行一次MOV TL0, #LOW (65536 - 50000) ;重新寫入初始值MOV TH0, #HIGH(65536 - 50000) ;50ms@12MHz;------------------JIA:JB   P3.0, JIANDEC 30H          ;加速MOV A, 30HJNZ XXX          ;不能讓它為0INC 30HXXX:;    JNB P3.0, $;------------------JIAN:JB   P3.1, XIANSHIINC 30HMOV A, 30HSUBB A, #80JC   CCCMOV 30H, #80CCC:;    JNB P3.1, $;------------------XIANSHI:DJNZ R7, T0_ENDMOV R7, 30HINC 32HANL 32H, #7;------------------MOV A, 31HANL A, #3RL   ARL   ARL   AADD A, 32HMOV DPTR, #HUA_YMOVC A, @A+DPTRCPL AMOV P1, A;------------------T0_END:RETI;---------------------------------X0_INT:          ;設(shè)置花型INC 31HANL 31H, #3MOV P2, 31HINC P2RETI;---------------------------------X1_INT:          ;啟動/停止CPL TR0RETI;---------------------------------HUA_Y:DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80DB 0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18DB 0x18,0x24,0x42,0x81,0x18,0x24,0x42,0x81END


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉