新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)C編程(九、8X8點(diǎn)陣顯示)

        51單片機(jī)C編程(九、8X8點(diǎn)陣顯示)

        作者: 時間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        //-------------------8X8點(diǎn)陣顯示程序----------------------

        //-------------------2009年4月23日------------------------

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

        顯示‘0’從右向左移動,proteus仿真電路如下:


        #include
        #define uchar unsigned char
        #define HANG P1//P1口為每一列中的位選
        #define LIE P0//P0為列選
        void delay(uchar);

        void main()
        {
        int i=0;
        while(1)
        {
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)1)---------------------------
        P0=0x01;//P0初始為第一列
        for(i=0;i<8;i++)//循環(huán)掃描8列
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xff;break;
        case 0x04:P1=0xff;break;
        case 0x08:P1=0xff;break;
        case 0x10:P1=0xff;break;
        case 0x20:P1=0xff;break;
        case 0x40:P1=0xff;break;
        case 0x80:P1=0xc3;break;
        default:break;
        }
        P0=P0<<1;//掃描完一列左移一列
        delay(2);
        }

        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)2)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xff;break;
        case 0x04:P1=0xff;break;
        case 0x08:P1=0xff;break;
        case 0x10:P1=0xff;break;
        case 0x20:P1=0xff;break;
        case 0x40:P1=0xc3;break;
        case 0x80:P1=0xbd;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }

        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)3)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xff;break;
        case 0x04:P1=0xff;break;
        case 0x08:P1=0xff;break;
        case 0x10:P1=0xff;break;
        case 0x20:P1=0xc3;break;
        case 0x40:P1=0xbd;break;
        case 0x80:P1=0xbd;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }

        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)4)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xff;break;
        case 0x04:P1=0xff;break;
        case 0x08:P1=0xff;break;
        case 0x10:P1=0xc3;break;
        case 0x20:P1=0xbd;break;
        case 0x40:P1=0xbd;break;
        case 0x80:P1=0xc3;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }

        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)5)---------------------------

        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xff;break;
        case 0x04:P1=0xff;break;
        case 0x08:P1=0xc3;break;
        case 0x10:P1=0xbd;break;
        case 0x20:P1=0xbd;break;
        case 0x40:P1=0xc3;break;
        case 0x80:P1=0xff;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }

        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)6)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xff;break;
        case 0x04:P1=0xc3;break;
        case 0x08:P1=0xbd;break;
        case 0x10:P1=0xbd;break;
        case 0x20:P1=0xc3;break;
        case 0x40:P1=0xff;break;
        case 0x80:P1=0xff;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }

        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)7)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xff;break;
        case 0x02:P1=0xc3;break;
        case 0x04:P1=0xbd;break;
        case 0x08:P1=0xbd;break;
        case 0x10:P1=0xc3;break;
        case 0x20:P1=0xff;break;
        case 0x40:P1=0xff;break;
        case 0x80:P1=0xff;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }
        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)8)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xc3;break;
        case 0x02:P1=0xbd;break;
        case 0x04:P1=0xbd;break;
        case 0x08:P1=0xc3;break;
        case 0x10:P1=0xff;break;
        case 0x20:P1=0xff;break;
        case 0x40:P1=0xff;break;
        case 0x80:P1=0xff;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }
        delay(100);
        //----------------循環(huán)掃描點(diǎn)陣(狀態(tài)9)---------------------------
        P0=0x01;
        for(i=0;i<8;i++)
        {

        switch(P0)
        {
        case 0x01:P1=0xbd;break;
        case 0x02:P1=0xbd;break;
        case 0x04:P1=0xc3;break;
        case 0x08:P1=0xff;break;
        case 0x10:P1=0xff;break;
        case 0x20:P1=0xff;break;
        case 0x40:P1=0xff;break;
        case 0x80:P1=0xff;break;
        default:break;
        }
        P0=P0<<1;
        delay(2);
        }
        delay(100);
        }
        }
        //------------------延時子函數(shù) ----------------------
        void delay(uchar x)
        {
        int i,j;
        for(i=x;i>0;i--)
        for(j=500;j>0;j--);
        }



        評論


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

        關(guān)閉
        主站蜘蛛池模板: 拉孜县| 淮北市| 延长县| 山阴县| 满洲里市| 凤山市| 临泉县| 苗栗县| 含山县| 江津市| 安塞县| 遂川县| 元阳县| 吉林市| 新余市| 获嘉县| 泸定县| 岚皋县| 赫章县| 石嘴山市| 铁力市| 安徽省| 太谷县| 德令哈市| 印江| 天峨县| 恩施市| 厦门市| 文成县| 阿合奇县| 永善县| 新干县| 县级市| 广西| 塔河县| 天等县| 丰台区| 永新县| 永宁县| 清河县| 怀远县|