在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > HD4478U顯示LCD與51單片機(jī)驅(qū)動程序

            HD4478U顯示LCD與51單片機(jī)驅(qū)動程序

            作者: 時(shí)間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
            #include

            #include
            #include

            本文引用地址:http://www.biyoush.com/article/201611/316141.htm

            sbit LCDRSPIN = P3^7;
            sbit LCDRWPIN = P3^6;
            sbit LCDEPIN = P2^6;

            #define UCHAR unsigned char
            void delay(unsigned int i)
            {
            UCHAR j;
            for(i; i > 0; i--)
            for(j = 200; j > 0; j--);
            }



            ///////////////////////////////
            //控制LCD
            unsigned char XPOS,YPOS;

            //測忙
            void LcdWaitIdle(void)
            { P0=0xff;
            LCDRSPIN=0;
            LCDRWPIN=1;
            LCDEPIN=1;
            while((P0&0x80)==0x80);
            LCDEPIN=0;
            }

            //寫指令代碼
            void LcdWCN(unsigned char c)
            { LCDRSPIN=0;
            LCDRWPIN=0;
            P0=c;
            LCDEPIN=1;
            _nop_();
            LCDEPIN=0;
            }

            //寫指令代碼(測忙)
            void LcdWC(unsigned char c)
            { LcdWaitIdle();
            LcdWCN(c);
            }

            //寫數(shù)據(jù)
            void LcdWD(unsigned char d)
            { LcdWaitIdle();
            LCDRSPIN=1;
            LCDRWPIN=0;
            P0=d;
            LCDEPIN=1;
            _nop_();
            LCDEPIN=0;
            }

            //內(nèi)部數(shù)據(jù)地址指針定位
            void LcdPos(void)
            { XPOS&=0x0f;
            YPOS&=0x03;
            if(YPOS==0x00)
            LcdWC(XPOS|0x80);
            else if(YPOS==0x01)
            LcdWC((XPOS+0x40)|0x80);
            else if(YPOS==0x02)
            LcdWC((XPOS+0x10)|0x80);
            }

            //初始化
            void InitLcd()
            {
            LCDEPIN=0;
            delay(150); LcdWCN(0x38); /*設(shè)置8位格式,2行,2*16*/

            LcdWC(0x08); /*清除顯示*/
            LcdWC(0x06); /*設(shè)定輸入方式,增量不移位*/
            LcdWC(0x0c); /*整體顯示,關(guān)光標(biāo),不閃爍*/
            }


            void LcdWDA(unsigned char x,unsigned char y,unsigned char *s)
            {
            YPOS=y;
            for(XPOS=x;XPOS<16 && *s != 0;XPOS++)
            { LcdPos();
            LcdWD(*s);
            s++;
            }
            }
            char LcdStr[13]={L,A,N,D, ,C,5,1,-,P,R,O,0x0};
            char * str1=LcdStr;
            char * str2="WWW.LDMCU.COM";

            char CharPos=-11;
            char CharLen = 12; //滾動的字符的個數(shù)
            bit LcdPause = 0; //是否停止?jié)L動

            以下為字符顯示位置與主程序,可相應(yīng)修改。
            //設(shè)置str1從左邊進(jìn)入
            void LcdLeftIn()
            {

            delay(1500);

            LCDEPIN=0;
            LcdWDA(2,1,str2);
            if(CharPos > 16)
            {
            CharPos = (CharLen - 1)* -1;
            }

            if(CharPos > 0)
            {
            LcdWDA(CharPos-1,0," "); //前進(jìn)一格清除前面的字符
            LcdWDA(CharPos,0,str1);
            }
            else
            {
            LcdWDA(0,0,str1-CharPos);
            }
            CharPos++;
            // P3=P3B;
            }


            main()
            {
            InitLcd();
            while(1)
            {
            LcdLeftIn();
            }
            }



            評論


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

            關(guān)閉