在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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)用 > 液晶顯示器控制設(shè)計(jì)

            液晶顯示器控制設(shè)計(jì)

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

            利用實(shí)現(xiàn)數(shù)字和英文字符的顯示

            本文引用地址:http://www.biyoush.com/article/201610/307635.htm

            實(shí)驗(yàn)原理圖

            實(shí)驗(yàn)程序

            #include

            #include

            #include

            #include

            #include

            #define busy 0x80 //用于檢測LCD 狀態(tài)字中的Busy 標(biāo)識(shí)

            #define RSaddr 0x1000

            #define RWaddr 0x2000

            #define CSaddr 0x0400

            #define adtn 0xc8ff

            #define wc 0xcfff

            #define wd 0xdfff

            #define rc 0xefff

            unsigned char code homepage[] = {www.ispdown.com};

            unsigned char code email[] = {[email protected]};

            //5ms 延時(shí)

            void delay5ms(void)

            {

            unsigned int TempCyc = 5552;

            while(TempCyc--);

            }

            //----------------------------------

            //400ms 延時(shí)

            void delay400ms(void)

            {

            unsigned char TempCycA = 5;

            unsigned int TempCycB;

            while(TempCycA--)

            {

            TempCycB=7269;

            while(TempCycB--);

            };

            }

            //--------------------------------

            void waitLcd()

            {

            char temp;

            bit flag=1;

            while(flag==1)

            {

            //temp=XBYTE[CSaddr+RWaddr+adtn];

            temp=XBYTE[rc];

            if (temp>>7==0) flag=0;

            P1=temp;

            }

            P1=0xff;

            }

            //---------------------------------

            void WC_Lcd(bit isCheck,char c)

            {

            if (isCheck==1) waitLcd();

            //XBYTE[CSaddr+adtn]=c;

            XBYTE[wc]=c;

            }

            //--------------------------------

            void WD_Lcd(char c)

            {

            waitLcd();

            //XBYTE[CSaddr+RSaddr+adtn]=c;

            XBYTE[wd]=c;

            }

            //----------------------------------

            void LcdInit()

            {

            delay5ms();

            delay5ms();

            delay5ms();

            WC_Lcd(0,0x38); //三次顯示模式設(shè)置,不檢測忙信號(hào)

            delay5ms();

            WC_Lcd(0,0x38);

            delay5ms();

            WC_Lcd(0,0x38);

            delay5ms();

            WC_Lcd(1,0x38); //顯示模式設(shè)置,開始要求每次檢測忙信號(hào)

            WC_Lcd(1,0x08); //關(guān)閉顯示

            WC_Lcd(1,0x01); //顯示清屏

            WC_Lcd(1,0x06); // 顯示光標(biāo)移動(dòng)設(shè)置

            WC_Lcd(1,0x0C); // 顯示開及光標(biāo)設(shè)置

            }

            //-------------------------------------------------------------------------

            //按指定位置顯示一個(gè)字符

            void displayOneChar(unsigned char X, unsigned char Y, unsigned char DData)

            {

            Y = 0x1;

            X = 0xF; //限制X 不能大于15,Y 不能大于1

            if (Y) X |= 0x40; //當(dāng)要顯示第二行時(shí)地址碼+0x40;

            X |= 0x80; //算出指令碼

            WC_Lcd(0,X); //這里不檢測忙信號(hào),發(fā)送地址碼

            WD_Lcd(DData);

            }

            //-------------------------------------------------------------------------------

            //按指定位置顯示一串字符

            void displayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)

            {

            unsigned char ListLength;

            ListLength = 0;

            Y = 0x1;

            X = 0xF; //限制X 不能大于15,Y 不能大于1

            while (DData[ListLength]>0x20) //若到達(dá)字串尾則退出

            {

            if (X = 0xF) //X 坐標(biāo)應(yīng)小于0xF

            {

            displayOneChar(X, Y, DData[ListLength]); //顯示單個(gè)字符

            ListLength++;

            X++;

            }

            }

            }

            //====================================

            void main(void)

            {

            delay400ms();

            LcdInit();

            displayListChar(0, 0, homepage);

            displayListChar(0, 1, email);

            while(1);

            }



            評論


            相關(guān)推薦

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

            關(guān)閉