<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 液晶顯示器控制設(shè)計(jì)

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

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

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

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

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

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

          #include

          #include

          #include

          #include

          #include

          #define busy 0x80 //用于檢測(cè)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[] = {ispdown@21cn.com};

          //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è)置,不檢測(cè)忙信號(hào)

          delay5ms();

          WC_Lcd(0,0x38);

          delay5ms();

          WC_Lcd(0,0x38);

          delay5ms();

          WC_Lcd(1,0x38); //顯示模式設(shè)置,開始要求每次檢測(cè)忙信號(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); //這里不檢測(cè)忙信號(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);

          }



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();