新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 4. 廣告燈的左移右移

        4. 廣告燈的左移右移

        作者: 時間:2016-11-18 來源:網絡 收藏
        1.實驗任務
        做單一燈的左移右移,硬件電路如圖4.4.1所示,八個發光二極管L1-L8分別接在單片機的P1.0-P1.7接口上,輸出“0”時,發光二極管亮,開始時P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重復循環。
        2.電路原理

        圖4.4.1
        3.系統板上硬件連線
        把“單片機系統”區域中的P1.0-P1.7用8芯排線連接到“八路發光二極管指示模塊”區域中的L1-L8端口上,要求:P1.0對應著L1,P1.1對應著L2,……,P1.7對應著L8。
        4.程序設計內容
        我們可以運用輸出端口指令MOVP1,A或MOVP1,#DATA,只要給累加器值或常數值,然后執行上述的指令,即可達到輸出控制的動作。
        每次送出的數據是不同,具體的數據如下表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.程序框圖














        圖4.4.2
        6.匯編源程序
        ORG0
        START:MOVR2,#8
        MOVA,#0FEH
        SETBC
        LOOP:MOVP1,A
        LCALLDELAY
        RLCA
        DJNZR2,LOOP
        MOVR2,#8
        LOOP1:MOVP1,A
        LCALLDELAY
        RRCA
        DJNZR2,LOOP1
        LJMPSTART
        DELAY:MOVR5,#20;
        D1:MOVR6,#20
        D2:MOVR7,#248
        DJNZR7,$
        DJNZR6,D2
        DJNZR5,D1
        RET
        END
        7.C語言源程序
        #include
        unsignedchari;
        unsignedchartemp;
        unsignedchara,b;

        voiddelay(void)
        {
        unsignedcharm,n,s;
        for(m=20;m>0;m--)
        for(n=20;n>0;n--)
        for(s=248;s>0;s--);
        }
        voidmain(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();
        }
        }
        }


        關鍵詞: 廣告燈左移右

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 无为县| 枞阳县| 巴塘县| 集安市| 酉阳| 无棣县| 怀柔区| 萝北县| 油尖旺区| 施秉县| 双柏县| 巴青县| 仪陇县| 新河县| 鹤岗市| 晋城| 乌兰县| 边坝县| 钦州市| 丰镇市| 岚皋县| 萨嘎县| 乐陵市| 平和县| 保山市| 广水市| 论坛| 新兴县| 台南县| 凤阳县| 大冶市| 西安市| 邯郸县| 遂川县| 澄迈县| 龙陵县| 庆城县| 乌什县| 和政县| 延安市| 南丹县|