新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用匯編語言編八路彩燈控制系統

        用匯編語言編八路彩燈控制系統

        作者: 時間:2016-11-25 來源:網絡 收藏
        1、D1~D8八個彩燈按規定順序依次點亮(間隔1秒),最后全亮;

        2、按規定順序依次熄滅(間隔1秒),最后全滅;
        3、八個燈同時點亮,保持1秒;
        4、八個燈同時熄滅,保持0.5秒;
        再將第3、4步重復4遍,最后整個程序再重復N遍。
        5、讓八個燈依次顯示為0100 1001

        本文引用地址:http://www.104case.com/article/201611/321251.htm

        問題補充:“規定順序”就是D1,D2,D3,D4...D8


        =================================================================
        最佳答案:
        ;假設1:D1~D8八個彩燈接在P1口,輸出低電平發光
        ;假設2:系統晶振為12MHz
        ;假設3:N = 5
        ;程序如下:

        ORG 0000H
        MOV R3, #5 ;N=5
        LOOP0:
        MOV A, #0FFH
        MOV P1, #0FFH ;開始時全滅
        ;-------------------------------逐個點亮
        MOV R2, #8
        LOOP1: CLR C
        RLC A
        MOV P1, A
        CALL DL500MS
        DJNZ R2, LOOP1
        ;-------------------------------逐個熄滅
        MOV R2, #8
        LOOP2: SETB C
        RLC A
        MOV P1, A
        CALL DL500MS
        DJNZ R2, LOOP2
        ;-------------------------------全亮、全滅交替
        MOV R2, #4
        LOOP3: MOV P1, #0 ;全亮
        CALL DL500MS
        CALL DL500MS ;共1s
        MOV P1, #255 ;全滅
        CALL DL500MS ;0.5s
        DJNZ R2, LOOP3
        ;-------------------------------
        DJNZ R3, LOOP0
        MOV P1, #01001001B ;5、顯示為0100 1001
        CALL DL500MS
        CALL DL500MS ;共1s
        SJMP 0000H ;重新開始N遍
        ;-------------------------------延時子程序
        DL500MS:
        MOV R5, #9 ;1T
        DL1: MOV R6, #128 ;1T
        DL2: MOV R7, #215 ;1T
        NOP ;1T
        DL3: DJNZ R7, DL3 ;2T 2 * 215 = 430 T
        DJNZ R6, DL2 ;2T [1+1+430+2] * 128 = 55552 T
        DJNZ R5, DL1 ;2T [1+55552+2] * 9 = 499995 T
        RET ;2T 1 + 499995 + 2 = 499998 T
        ;-------------------------------------
        END




        評論


        技術專區

        關閉
        主站蜘蛛池模板: 白河县| 揭阳市| 东光县| 漳浦县| 南昌市| 梅州市| 赤城县| 井陉县| 东山县| 东方市| 德格县| 大冶市| 南丰县| 屏南县| 闵行区| 依兰县| 金秀| 和平县| 盘山县| 长白| 岳池县| 永嘉县| 永寿县| 龙川县| 深州市| 三台县| 寿阳县| 海阳市| 商洛市| 门源| 五河县| 万山特区| 大丰市| 霞浦县| 沈丘县| 延津县| 南雄市| 宜城市| 武义县| 阿尔山市| 青田县|