新聞中心

        EEPW首頁 > 光電顯示 > 設(shè)計(jì)應(yīng)用 > 液晶顯示源程序代碼

        液晶顯示源程序代碼

        作者: 時(shí)間:2011-05-18 來源:網(wǎng)絡(luò) 收藏

        **************************************************
        *yj.c
        *連線圖:
        * DB0---DPROT.0 DB4---DPROT.4 RS-------------P2.5
        * DB1---DPROT.1 DB5---DPROT.5 RW-------------P2.6
        * DB2---DPROT.2 DB6---DPROT.6 E--------------P2.7
        * DB3---DPROT.3 DB7---DPROT.7 VLCD接10K可調(diào)電阻到GND*
        *80C51的晶振頻率為12MHz
        *程序
        ***************************************************/
        #include reg51.h
        #include
        #include
        #define DPORT P0
        #define uchar unsigned char
        sbit RS = P2^5;
        sbit RW = P2^6;
        sbit E = P2^7;

        uchar Xpos; //列方向地址指針
        uchar Ypos; //行方向地址指針


        #define NoDisp 0
        #define NoCur 1
        #define CurNoFlash 2
        #define CurFlash 3
        /*延時(shí)程序
        由Delay參數(shù)確定延遲時(shí)間
        */

        void LcdWcn(uchar);
        void LcdWc(uchar);
        void WriteChar(uchar);
        void LcdPos();
        void LcdWd(uchar);
        void LcdWdn(uchar);


        void mDelay(unsigned int Delay)
        { unsigned int i;
        for(;Delay>0;Delay--)
        { for(i=0;i124;i++)
        {;}
        }
        }

        /*光標(biāo)設(shè)置命令
        Cur 為設(shè)定光標(biāo)參數(shù)
        */
        void SetCur(uchar Cur)
        { switch(Cur)
        { case 0x0:
        { LcdWc(0x08); //關(guān)顯示
        break;
        }
        case 0x1:
        { LcdWc(0x0c); //開顯示但無光標(biāo)
        break;
        }
        case 0x2:
        { LcdWc(0x0e); //開顯示有光標(biāo)但不閃爍
        break;
        }
        case 0x3:
        { LcdWc(0x0f); //開顯示有光標(biāo)且閃爍
        break;
        }
        default: break;
        }
        }
        /*清屏命令
        */
        void ClrLcd()
        { LcdWc(0x01);
        }
        /*在指定的行與列顯示
        */
        void WriteChar(uchar c)
        { LcdPos();
        LcdWd(c);
        }
        /*正常讀寫操作之前檢測LCD控制器
        */
        void WaitIdle()
        { uchar tmp;
        DPORT=0xff;
        RS=0;
        RW=1;
        E=1;
        _nop_();
        for(;;)
        { tmp=DPORT;
        tmp=0x80;
        if(tmp==0)
        break;
        }
        E=0;
        }

        /*不檢測忙的寫字符子程序
        */
        void LcdWdn(uchar c)
        {
        RS=1;
        RW=0;
        DPORT=c; //寫入待寫字符
        E=1;
        _nop_();


        上一頁 1 2 下一頁

        關(guān)鍵詞: 代碼 源程序 液晶顯示

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 濉溪县| 海宁市| 柯坪县| 凌源市| 甘德县| 广东省| 克拉玛依市| 陵水| 营山县| 康保县| 西丰县| 宜都市| 理塘县| 西宁市| 阿克陶县| 大安市| 香河县| 任丘市| 塘沽区| 抚远县| 临江市| 彰化县| 益阳市| 靖江市| 江城| 舞阳县| 大连市| 博客| 永兴县| 吉木乃县| 四子王旗| 晴隆县| 澳门| 吉安县| 太仓市| 咸丰县| 察隅县| 乌海市| 孝昌县| 佛冈县| 泌阳县|