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

          新聞中心

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

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

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

          #include
          #include

          本文引用地址:http://www.ex-cimer.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;

          //測(cè)忙
          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;
          }

          //寫指令代碼(測(cè)忙)
          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; //滾動(dòng)的字符的個(gè)數(shù)
          bit LcdPause = 0; //是否停止?jié)L動(dòng)

          以下為字符顯示位置與主程序,可相應(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();
          }
          }



          評(píng)論


          技術(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); })();