匯編代碼實現(xiàn)鍵控彩燈系統(tǒng)
使用匯編語言編寫程序,設(shè)計一個用8051單片機控制的循環(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
評論