專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

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

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2011年06月08日   【字體:

使用匯編語言編寫程序,設(shè)計一個用8051單片機控制的循環(huán)彩燈控制系統(tǒng)
要求:
1、能輸出4種花型,并能由人工進行花型的切換?梢允褂冒存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 0000H
    JMP START
    ORG 0003H
    JMP X0_INT
    ORG 000BH
    JMP T0_INT
    ORG 0013H
    JMP X1_INT
;---------------------------------
START:
    MOV TMOD, #51H       ;/*01010001 T1計數(shù),T0定時*/
    MOV TH0, #HIGH(65536 - 50000) ;50ms@12MHz
    MOV TL0, #LOW (65536 - 50000)
    MOV TH1, #0
    MOV TL1, #0
    SETB TR0
    SETB TR1
    SETB IT0
    SETB IT1
    MOV IE, #10000111B
    MOV IP, #00000101B

    MOV R7, #20
    MOV 30H, #20
    MOV 31H, #0
    MOV 32H, #0

    MOV P2, 31H
    INC P2

    SJMP $
;---------------------------------
T0_INT:          ;50ms執(zhí)行一次
    MOV TL0, #LOW (65536 - 50000) ;重新寫入初始值
    MOV TH0, #HIGH(65536 - 50000) ;50ms@12MHz
;------------------
JIA:
    JB   P3.0, JIAN
    DEC 30H          ;加速
    MOV A, 30H
    JNZ XXX          ;不能讓它為0
    INC 30H
XXX:
;    JNB P3.0, $
;------------------
JIAN:
    JB   P3.1, XIANSHI
    INC 30H
    MOV A, 30H
    SUBB A, #80
    JC   CCC
    MOV 30H, #80
CCC:
;    JNB P3.1, $
;------------------
XIANSHI:
    DJNZ R7, T0_END
    MOV R7, 30H
    INC 32H
    ANL 32H, #7
;------------------
    MOV A, 31H
    ANL A, #3
    RL   A
    RL   A
    RL   A
    ADD A, 32H
    MOV DPTR, #HUA_Y
    MOVC A, @A+DPTR
    CPL A
    MOV P1, A
;------------------
T0_END:
    RETI
;---------------------------------
X0_INT:          ;設(shè)置花型
    INC 31H
    ANL 31H, #3
    MOV P2, 31H
    INC P2
    RETI
;---------------------------------
X1_INT:          ;啟動/停止
    CPL TR0
    RETI
;---------------------------------
HUA_Y:
    DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
    DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80
    DB 0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18
    DB 0x18,0x24,0x42,0x81,0x18,0x24,0x42,0x81
END
關(guān)閉窗口

相關(guān)文章