新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 試驗(yàn)9------單片機(jī)小鍵盤控制的花樣彩燈

        試驗(yàn)9------單片機(jī)小鍵盤控制的花樣彩燈

        作者: 時(shí)間:2011-02-25 來(lái)源:網(wǎng)絡(luò) 收藏

        試驗(yàn)9------小鍵盤控制的花樣彩燈

        該程序示例了鍵盤控制p1口流水燈花樣的方法;具體表現(xiàn)為:p3.2 3.2 3.4 3.5四個(gè)小按鍵

        分別實(shí)現(xiàn)了四個(gè)控制:

        1啟動(dòng),停止;在任何狀態(tài)下按此鍵程序停止運(yùn)行.

        2 跑燈,p1.0---1.7亮點(diǎn)流動(dòng):

        3 流水燈; p1.0-1.7 依次點(diǎn)亮

        4 交錯(cuò)等; p0.O,P0.2,P0.4,P0.6和p0.1,P0.3,P0.5,P0.7輪流點(diǎn)亮

        該程序調(diào)試通過(guò):

        ;************;

        ;亮燈控制程序;

        ;************;

        ;

        ;************;

        ;中斷入口程序;

        ;************;

        ;

        ORG 0000H

        LJMP START

        ORG 0003H

        RETI

        ORG 000BH

        RETI

        ORG 0013H

        RETI

        ORG 001BH

        RETI

        ORG 0023H

        RETI

        ;

        ;************;

        ; 初始化程序 ;

        ;************;

        ;

        CLEAR: RET

        ;

        ;************;

        ; 主 程 序 ;

        ;************;

        ;

        START:ACALL CLEAR

        STAR1:MOV P3,#0FFH

        JNB P3.4,FUN0

        JNB P3.5,FUN1

        JNB P3.2,FUN2

        JNB P3.3,FUN3 ;關(guān)閉按紐

        JNB F0,STAR1 ;曾經(jīng)有鍵按下F0置1

        RET

        ;

        FUN0:LCALL DL10MS ;消岸抖動(dòng)

        JB P3.4,STAR1

        WAITL0:JNB P3.4,WAITL0 ;等待鍵釋放

        SETB F0

        FUN01:LCALL FUN00

        LCALL STAR1

        LJMP FUN01

        ;

        FUN1:LCALL DL10MS ;消岸抖動(dòng)

        JB P3.5,STAR1

        WAITL1:JNB P3.5,WAITL1 ;等待鍵釋放

        SETB F0

        FUN10:LCALL FUN11

        LCALL STAR1

        LJMP FUN10

        ;

        FUN2:LCALL DL10MS ;消岸抖動(dòng)

        JB P3.2,STAR1

        WAITL2:JNB P3.2,WAITL2 ;等待鍵釋放

        SETB F0

        FUN20:LCALL FUN22

        LCALL STAR1

        LJMP FUN20

        ;

        FUN3:LCALL DL10MS ;消岸抖動(dòng)

        JB P3.3,STAR1

        WAITL3:JNB P3.3,WAITL3 ;等待鍵釋放

        CLR F0

        MOV P1,#0FFH ;關(guān)顯示

        LJMP STAR1

        ;

        FUN00:MOV A,#0FEH

        FUN000:MOV P1,A

        LCALL DL05S

        JNB ACC.7,OUT

        RL A

        AJMP FUN000

        OUT: RET

        ;

        FUN11:MOV A,#0FEH

        FUN111:MOV P1,A

        LCALL DL05S

        JZ OUT

        RL A

        ANL A,P1

        AJMP FUN111

        ;

        FUN22:MOV A,#0AAH

        MOV P1,A

        LCALL DL30S

        CPL A

        MOV P1,A

        LCALL DL30S

        RET

        ;

        ;************;

        ; 延時(shí)程序 ;

        ;************;

        ;

        DL512:MOV R2,#0FFH

        LOOP1: DJNZ R2,LOOP1

        RET

        DL10MS:MOV R3,#14H

        LOOP2: LCALL DL512

        DJNZ R3,LOOP2

        RET

        DL05S:MOV R4,#0AH

        LOOP3: LCALL DL10MS

        DJNZ R4,LOOP3

        RET

        DL30S:MOV R5,#03H

        LOOP4:LCALL DL05S

        DJNZ R5,LOOP4

        RET

        end



        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 徐闻县| 皮山县| 千阳县| 全南县| 崇义县| 广宗县| 岫岩| 衢州市| 金堂县| 崇仁县| 武穴市| 青铜峡市| 隆尧县| 廊坊市| 喀喇沁旗| 屏南县| 张掖市| 苗栗市| 化隆| 沙湾县| 八宿县| 惠东县| 淳安县| 江都市| 青河县| 高要市| 集贤县| 曲水县| 桃江县| 搜索| 吕梁市| 平果县| 青浦区| SHOW| 洪湖市| 刚察县| 富阳市| 泉州市| 彝良县| 子洲县| 张北县|