新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機40個實驗之廣告燈的左移右移

        單片機40個實驗之廣告燈的左移右移

        作者: 時間:2016-12-02 來源:網絡 收藏


        每次送出的數據是不同,具體的數據如下表1所示 :


        P1.7

        P1.6

        P1.5

        P1.4

        P1.3

        P1.2

        P1.1

        P1.0

        說明

        L8

        L7

        L6

        L5

        L4

        L3

        L2

        L1

        1

        1

        1

        1

        1

        1

        1

        0

        L1亮

        1

        1

        1

        1

        1

        1

        0

        1

        L2亮

        1

        1

        1

        1

        1

        0

        1

        1

        L3亮

        1

        1

        1

        1

        0

        1

        1

        1

        L4亮

        1

        1

        1

        0

        1

        1

        1

        1

        L5亮

        1

        1

        0

        1

        1

        1

        1

        1

        L6亮

        1

        0

        1

        1

        1

        1

        1

        1

        L7亮

        0

        1

        1

        1

        1

        1

        1

        1

        L8亮
        表1

        5.程序框圖

         

        6. 匯編源程序

        ORG 0
        START: MOV R2,#8
        MOV A,#0FEH
        SETB C
        LOOP: MOV P1,A
        LCALL DELAY
        RLC A
        DJNZ R2,LOOP
        MOV R2,#8
        LOOP1: MOV P1,A
        LCALL DELAY
        RRC A
        DJNZ R2,LOOP1
        LJMP START
        DELAY: MOV R5,#20 ;
        D1: MOV R6,#20
        D2: MOV R7,#248
        DJNZ R7,$
        DJNZ R6,D2
        DJNZ R5,D1
        RET
        END

        7.C語言源程序

        #include
        unsigned char i;
        unsigned char temp;
        unsigned char a,b;

        void delay(void)
        {
        unsigned char m,n,s;
        for(m=20;m>0;m--)
        for(n=20;n>0;n--)
        for(s=248;s>0;s--);
        }
        void main(void)
        {
        while(1)
        {
        temp=0xfe;
        P1=temp;
        delay();
        for(i=1;i<8;i++)
        {
        a=temp<b=temp>>(8-i);
        P1=a|b;
        delay();
        }
        for(i=1;i<8;i++)
        {
        a=temp>>i;
        b=temp<<(8-i);
        P1=a|b;
        delay();
        }
        }
        }

        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 清水县| 大丰市| 休宁县| 昌乐县| 曲沃县| 清流县| 临沧市| 汪清县| 平塘县| 绵竹市| 乐山市| 贵州省| 南平市| 遵化市| 汤阴县| 满城县| 高尔夫| 黑水县| 咸丰县| 石家庄市| 闽侯县| 昌图县| 德昌县| 合肥市| 若尔盖县| 邛崃市| 龙江县| 建始县| 图木舒克市| 黄平县| 郑州市| 剑川县| 嘉峪关市| 雷波县| 台安县| 嵊州市| 绩溪县| 井冈山市| 永顺县| 封开县| 始兴县|