新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于STC12C5A60S2單片機(jī)的點(diǎn)陣屏完工

        基于STC12C5A60S2單片機(jī)的點(diǎn)陣屏完工

        作者: 時(shí)間:2016-12-01 來源:網(wǎng)絡(luò) 收藏

        //P2^0串行數(shù)據(jù)輸入
        #include//包函頭文件
        #include//包函_nop_延時(shí)函數(shù)的頭文件
        #define uchar unsigned char//宏定義
        #define uint unsigned int//宏定義
        ////////////////////////////////////////////////////////////////////////////////
        uchar code ZM000[]=
        {
        //源文件 / 文字: 祝
        0x00,0x00,0x20,0x00,0x11,0xF8,0x01,0x08,
        0x79,0x08,0x09,0x08,0x11,0x08,0x11,0xF8,
        0x38,0x90,0x54,0x90,0x10,0x90,0x10,0x90,
        0x11,0x14,0x11,0x14,0x12,0x0C,0x00,0x00,
        };
        uchar code ZM001[]=
        {
        //源文件 / 文字: 榮
        0x00,0x00,0x08,0x20,0x7F,0xFC,0x08,0x20,
        0x00,0x00,0x7F,0xFC,0x40,0x04,0x01,0x00,
        0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,
        0x19,0x30,0x61,0x0C,0x01,0x00,0x00,0x00,
        };
        ////////////////////////////////////////////////////////////////////////////////
        sbit HC154_A=P0^0;//HC154數(shù)據(jù)輸入口
        sbit HC154_B=P0^1;//HC154數(shù)據(jù)輸入口
        sbit HC154_C=P0^2;//HC154數(shù)據(jù)輸入口
        sbit HC154_D=P0^3;//HC154數(shù)據(jù)輸入口
        sbit G1=P0^4;//HC154使能端控制
        sbit SH=P0^5;//HC595移位控制
        sbit ST=P0^6;//HC595鎖存更新顯示
        sbit OE=P0^7;//HC595使能端控制
        sbit DS=P2^0;//HC595串行數(shù)據(jù)輸入
        ////////////////////////////////////////////////////////////////////////////////
        void chushihua() //硬件初始化
        {
        OE=1; //關(guān)閉HC595輸出
        G1=1; //關(guān)閉HC154輸出
        }
        ////////////////////////////////////////////////////////////////////////////////
        void delay(uint ms)//延時(shí)子程序
        {
        uint x,y;
        for(x=ms;x>0;x--)
        for(y=0;y<240;y++);
        }
        ////////////////////////////////////////////////////////////////////////////////
        //低位先入
        void sendbyte(uchar Rdate)//HC595串口輸入一個(gè)字節(jié)
        {
        uchar a;
        uchar date=Rdate;
        for(a=0;a<8;a++)
        {
        SH=0;
        if(date&0x01)//先將最低位移入
        {
        DS=1;
        SH=1;
        }
        else
        {
        DS=0;
        SH=1;
        }
        date=date>>1;//輸入的字節(jié)位右移
        }
        }
        ////////////////////////////////////////////////////////////////////////////////
        void HC595_GX() //HC595鎖存數(shù)據(jù)更新并輸出
        {
        ST=0;
        _nop_();
        _nop_();
        ST=1; //HC595鎖存數(shù)據(jù)更新
        _nop_();
        _nop_();
        OE=0; //HC595輸出
        }
        ////////////////////////////////////////////////////////////////////////////////
        void HC154_HS(uint x)//X行低電平輸出
        {
        G1=0;
        switch(x)
        {
        case 1:
        HC154_A=0;
        HC154_B=0;
        HC154_C=0;
        HC154_D=0;
        break;
        case 2:
        HC154_A=1;
        HC154_B=0;
        HC154_C=0;
        HC154_D=0;
        break;
        case 3:
        HC154_A=0;
        HC154_B=1;
        HC154_C=0;
        HC154_D=0;
        break;
        case 4:
        HC154_A=1;
        HC154_B=1;
        HC154_C=0;
        HC154_D=0;
        break;
        case 5:
        HC154_A=0;
        HC154_B=0;
        HC154_C=1;
        HC154_D=0;
        break;
        case 6:
        HC154_A=1;
        HC154_B=0;
        HC154_C=1;
        HC154_D=0;
        break;
        case 7:
        HC154_A=0;
        HC154_B=1;
        HC154_C=1;
        HC154_D=0;
        break;
        case 8:
        HC154_A=1;
        HC154_B=1;
        HC154_C=1;
        HC154_D=0;
        break;
        case 9:
        HC154_A=0;
        HC154_B=0;
        HC154_C=0;
        HC154_D=1;
        break;
        case 10:
        HC154_A=1;
        HC154_B=0;
        HC154_C=0;
        HC154_D=1;
        break;
        case 11:
        HC154_A=0;
        HC154_B=1;
        HC154_C=0;
        HC154_D=1;
        break;
        case 12:
        HC154_A=1;
        HC154_B=1;
        HC154_C=0;
        HC154_D=1;
        break;
        case 13:
        HC154_A=0;
        HC154_B=0;
        HC154_C=1;
        HC154_D=1;
        break;
        case 14:
        HC154_A=1;
        HC154_B=0;
        HC154_C=1;
        HC154_D=1;
        break;
        case 15:
        HC154_A=0;
        HC154_B=1;
        HC154_C=1;
        HC154_D=1;
        break;
        case 16:
        HC154_A=1;
        HC154_B=1;
        HC154_C=1;
        HC154_D=1;
        break;
        default:
        break;
        }
        }
        ////////////////////////////////////////////////////////////////////////////////
        void OUT16x16(uchar code ZM[31])//輸出一個(gè)16x16點(diǎn)陣字模子程序
        {
        uint y;//行掃數(shù)據(jù)控制
        uint x_H;//列高位數(shù)據(jù)控制
        uint x_L;//列低位數(shù)據(jù)控制
        for(y=1,x_H=0,x_L=1;y<=16;y++)
        {
        sendbyte(ZM[x_L]);
        sendbyte(ZM[x_H]);
        HC595_GX();
        HC154_HS(y);
        x_H+=2;
        x_L+=2;
        delay(1);
        }
        }
        ////////////////////////////////////////////////////////////////////////////////
        void main() //主函數(shù)
        {
        uint x;
        while(1)
        {
        //輸出祝字
        for(x=0;x<5000;x++)
        {
        OUT16x16(ZM000);
        }
        //輸出榮字
        for(x=0;x<5000;x++)
        {
        OUT16x16(ZM001);
        }
        }

        }

        上一頁 1 2 下一頁

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 合作市| 香河县| 五常市| 廊坊市| 康马县| 万盛区| 通河县| 西峡县| 如皋市| 汝城县| 赤城县| 苍南县| 天全县| 平南县| 正安县| 红河县| 西贡区| 彰化市| 西藏| 九寨沟县| 广宁县| 潼关县| 西贡区| 化州市| 闵行区| 石河子市| 阳曲县| 大名县| 恩平市| 玉龙| 武城县| 准格尔旗| 天峨县| 三河市| 龙海市| 平利县| 客服| 东阿县| 东源县| 泽普县| 望都县|