新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機閃爍燈流水燈匯編代碼大全

        單片機閃爍燈流水燈匯編代碼大全

        作者: 時間:2016-11-29 來源:網絡 收藏
        源代碼:
        ORG 0
        MOV A,#00000000B
        MOV P0,A
        MOV P2,#0FFH
        LOOP: MOV A,P2
        CPL A
        MOV P0,A
        JMP LOOP
        END
        8、單片機AT89C51的P2口分別接8個指撥開關;P0口接8個LED。
        指撥開關閉合之前8個LED單燈左移3次后,全亮,閉合指撥開關P2.0,
        則P0.0所對應的LED滅,以此類推。延時為0.2S。
        原理圖:
        源代碼:
        ORG 0
        MOV R1,#3
        LOOP1: MOV R0,#8
        MOV A,#11111110B
        LOOP2: MOV P0,A
        RL A
        CALL D200MS
        DJNZ R0,LOOP2
        DJNZ R1,LOOP1
        MOV A,#00000000B
        MOV P0,A
        MOV P2,#0FFH
        LOOP: MOV A,P2
        CPL A
        MOV P0,A
        JMP LOOP
        D200MS:
        MOV R7,#250
        D1: MOV R6,#200
        D2: MOV R5,#2
        DJNZ R5,$
        DJNZ R6,D2
        DJNZ R7,D1
        RET
        END
        9、單片機AT89C51的P2.0、P2.1和P2.2口分別接一個按鈕開關,
        P1口低4位接譯碼器7447,7447輸出部分接共陽極LED數碼管。要求按一下P2.0口對應按鈕,數碼管顯示數字“0”;
        按一下P2.1口對應按鈕,數碼管顯示數字“8”;按一下P2.2口對應按鈕,數碼管所顯示的數字被關閉。
        原理圖:
        源代碼:
        ORG 0000H
        START: MOV P2,#0FFH
        LOOP: JNB P2.0,ON
        JNB P2.1,ON8
        JNB P2.2,OFF
        JMP LOOP
        ON: MOV P1,#00H
        ON_1: JB P2.0,LOOP
        JMP ON_1
        ON8: MOV P1,#08H
        ON_8: JB P2.1,LOOP
        JMP ON_8
        OFF: MOV P1,#0FFH
        OFF_1: JB P2.2,LOOP
        JMP OFF_1
        END
        10、單片機AT89C51的P2口接7447驅動一個共陽極七段數碼管。讓該數碼管循環顯示數字“9~0”,延時為1S。
        ORG 0000H
        MOV R0,#10
        start:
        DJNZ R0,s
        MOV P2,R0
        CALL delay
        MOV R0,#10
        JMP start
        s: MOV P2,R0
        CALL delay
        JMP start
        delay: MOV R5,#100
        k1: MOV R6,#250
        k2: MOV R7,#250
        k3: DJNZ R7,k3
        DJNZ R6,k2
        DJNZ R5,k1
        RET
        END
        11、單片機AT89C51的P2口接7447驅動一個共陽極七段數碼管。
        讓該數碼管顯示數字“2~6”,之后顯示“9~0”,如此循環,延時為1S。
        ORG 0
        START: MOV R0,#5
        MOV A,#2
        LOOP_1: MOV P2,A
        INC A
        CALL D1000MS
        DJNZ R0,LOOP_1
        MOV R0,#10
        MOV A,#9
        LOOP_2: MOV P2,A
        DEC A
        CALL D1000MS
        DJNZ R0,LOOP_2
        JMP START
        D1000MS:
        MOV R7,#250
        D1: MOV R6,#200
        D2: MOV R5,#250
        DJNZ R5,$
        DJNZ R6,D2
        DJNZ R7,D1
        RET
        END
        12、四個集成共陽極七段數碼管的公共端以PNP三極管做開關分別連接到單片機AT89C51的P1低四位,
        數碼管的各顯示引腳a~dP分別連接到P2.0~2.7。讓4個數碼管穩定顯示“2012”。
        ORG 0
        LOOP:
        MOV P1,#11111110B
        MOV P2,#10100100B
        CALL D4MS
        MOV P1,#11111101B
        MOV P2,#11000000B
        CALL D4MS
        MOV P1,#11111011B
        MOV P2,#11111001B
        CALL D4MS
        MOV P1,#11110111B
        MOV P2,#11111001B
        CALL D4MS
        JMP LOOP
        D4MS:
        MOV R7,#10
        D1: MOV R6,#200
        DJNZ R6,$
        DJNZ R7,D1
        RET
        END
        13、四個集成共陽極七段數碼管的公共端以PNP三極管做開關分別連接到單片機AT89C51的P1低四位,
        數碼管的各顯示引腳a~dP分別連接到P2.0~2.7。讓LED先穩定顯示“2012”,
        約1秒之后再穩定顯示“12.21”,如此循環。
        ORG 0
        LOOP: MOV R0,#65
        LOOP_1: MOV P1,#11111110B
        MOV P2,#10100100B
        CALL D4MS
        MOV P1,#11111101B
        MOV P2,#11000000B
        CALL D4MS
        MOV P1,#11111011B
        MOV P2,#11111001B
        CALL D4MS
        MOV P1,#11110111B
        MOV P2,#11111001B
        CALL D4MS
        DJNZ R0,LOOP_1
        MOV R1,#65
        LOOP_2:
        MOV P1,#11111110B
        MOV P2,#11111001B
        CALL D4MS
        MOV P1,#11111101B
        MOV P2,#00100100B
        CALL D4MS
        MOV P1,#11111011B
        MOV P2,#10110000B
        CALL D4MS
        MOV P1,#11110111B
        MOV P2,#11000000B
        CALL D4MS
        DJNZ R1,LOOP_2
        JMP LOOP
        D4MS: MOV R7,#10
        D1: MOV R6,#200
        DJNZ R6,$
        DJNZ R7,D1
        RET
        END
        14、單片機AT89C51的P0口接8個LED,用INT0產生中斷。主程序正常執行時,P0口的8個LED單燈左移。
        當進入中斷狀態時,P0口的8個LED將變成單燈右移,3個循環后,恢復中斷前的狀態,
        即繼續執行8個LED單燈左移。延時為0.5S。
        ORG 0000H
        JMP main
        ORG 0003H
        JMP int_0
        main:
        SETB IT0
        SETB EX0
        SETB EA
        MOV A,#11111110B
        s: RL A
        MOV P2,A
        CALL delay
        JMP s
        delay:
        MOV R7,#100
        d3: MOV R6,#200
        d2: MOV R5,#250
        d1: DJNZ R5,d1
        DJNZ R6,d2
        DJNZ R7,d3
        RET
        int_0:
        MOV P2,A
        MOV R0,#24
        k: RR A
        MOV P2,A
        CALL delay
        DJNZ R0,k
        MOV R0,#24
        RETI
        END
        15、功能要求:用 產生中斷,主程序正常執行時,數碼管循環顯示“0~9”,
        每0.5S增加1。當進入中斷狀態時,數碼管循環顯示“9~0”,
        每0.5S減少1,一圈之后恢復中斷前的狀態。
        ORG 0000H
        JMP main
        ORG 0003H
        JMP int_0
        main:
        SETB IT0
        SETB EX0
        SETB EA
        s: MOV P2,A
        CALL delay
        INC A
        CJNE A,#10,s
        MOV A,#0
        JMP s
        delay:
        MOV R7,#100
        d3: MOV R6,#200
        d2: MOV R5,#250
        d1: DJNZ R5,d1
        DJNZ R6,d2
        DJNZ R7,d3
        RET
        int_0:
        MOV A,#10
        k: DEC A
        MOV P2,A
        CALL delay
        CJNE A,#0H,k
        RETI
        END
        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 同仁县| 三明市| 额济纳旗| 蓝山县| 喜德县| 南丹县| 建水县| 运城市| 龙门县| 临沧市| 葫芦岛市| 隆子县| 大埔区| 灵寿县| 双鸭山市| 兴山县| 射洪县| 始兴县| 江安县| 革吉县| 揭阳市| 林甸县| 寿宁县| 哈尔滨市| 财经| 滦南县| 清远市| 溧阳市| 元阳县| 蓬莱市| 高邑县| 丰都县| 阿勒泰市| 景洪市| 搜索| 连平县| 昆明市| 滦南县| 历史| 辉南县| 安图县|