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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > msp430液晶屏1602驅動程序

          msp430液晶屏1602驅動程序

          作者: 時間:2016-11-23 來源:網絡 收藏
          1602液晶顯示:

          1,16腳:地

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

          2,15腳:+5

          3腳:接滑動變阻器,滑動變阻器另一端接地

          4腳:P4.5(RS)

          5腳: P4.6 (RW)

          6腳: P4.7(E)

          7~14腳:接單片機的數據口P5(D0~D7)

          #include<msp430x14x.h>
          #define RS_HIGN P4OUT|=BIT5 //P4.5
          #define RS_LOW P4OUT&=~BIT5
          #define RW_HIGN P4OUT|=BIT6 //P4.6
          #define RW_LOW P4OUT&=~BIT6
          #define E_HIGN P4OUT|=BIT7 //P4.7
          #define E_LOW P4OUT&=~BIT7
          void LcdPos(char,char);
          void LcdWd(char);
          void LcdWc(char);
          void LcdWcn(char);
          void Delay(char);
          void WaitIdle();

          void Delay(char wDelay) //延時子程序
          {
          while(wDelay!=0)
          wDelay--;
          }

          void WriteChar(char c,char x,char y)
          {
          LcdPos(x,y);
          LcdWd(c);
          }

          void WriteString(char *s,char x,char y)
          {
          char i;
          if(*s==0)
          return;
          for(i=0;;i++)
          {
          if(*(s+i)==0)
          break;
          WriteChar(*(s+i),x,y);
          x++;
          if(x>15)
          break;
          }
          }

          void SetCur(char Para) //設置光標,顯示狀態(tài)等
          { Delay(2);
          switch(Para)
          {case 0:
          {LcdWc(0x08);
          break;}
          case 1:
          {LcdWc(0x0c);
          break;}
          case 2:
          {LcdWc(0x0e);
          break;}
          case 3:
          {LcdWc(0x0f);
          break;}
          default:
          break;
          }
          }

          void ClrLcd()
          {
          LcdWc(0x01);
          }

          void WaitIdle()
          {
          char temp;
          P5DIR &=0;
          RS_LOW;//RS=0;
          RW_HIGN;//RW=1;
          Delay(1000);
          for(;;)
          {
          E_HIGN;//E=1;
          temp=P5IN;
          E_LOW;//E=0
          temp&=0x80;
          if(temp==0)
          {P5DIR=0xff;
          break;}
          }
          }

          void LcdWd(char c) //將待寫數據送到端口
          {WaitIdle();
          P5DIR=0xff;
          RS_HIGN;//RS=1;
          RW_LOW;//RW=0;
          P5OUT=c;
          E_HIGN;//E=1;
          Delay(2000);
          E_LOW;//E=0;
          }
          void LcdWc(char c)
          {
          WaitIdle();
          LcdWcn(c);
          }
          void LcdWcn(char c ) //送控制字子程序
          { P5DIR=0xff;
          RS_LOW;//RS=0;
          RW_LOW;//RW=0;
          P5OUT=c;
          E_HIGN;//E=1;
          Delay(1000);
          E_LOW;//E=0;
          }
          void LcdPos(char x,char y) //設置光標所在位置
          {
          unsigned char temp;
          x &=0x0f;
          y &=0x01;
          if(y==0)
          temp=x;
          else
          temp=x+0x40;
          temp |=0x80;
          LcdWc(temp);
          }
          void RstLcd()
          { Delay(10000);
          LcdWc(0x38); //顯示模式設置
          LcdWc(0x08); //顯示關閉
          LcdWc(0x01); //顯示清屏
          LcdWc(0x06); //顯示光標移動位置
          LcdWc(0x0c); //顯示開及光標設置
          }

          int main()
          {
          WDTCTL=WDTPW+WDTHOLD;
          P4DIR=0xff;
          RstLcd();
          ClrLcd();
          WriteString("welcome!",4,0);
          }



          評論


          技術專區(qū)

          關閉
          看屁屁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); })();