<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> Arduino >> 瀏覽文章

        Arduino使用LCD顯示文字的例子

        作者:StormerZ   來源:StormerZ   點擊數:  更新時間:2014年06月17日   【字體:
        先看一下完成后的照片(連線比較亂 :D)



        電路圖:




        代碼:
        int LCD1602_RS=12;   
        int LCD1602_RW=11;   
        int LCD1602_EN=10;   
        int DB[] = { 6, 7, 8, 9};
        char str1[]="Welcome to";
        char str2[]="STAROCK STUDIO";
        char str3[]="Close to nature";
        char str4[]="enjoy your life";
         
        void LCD_Command_Write(int command)
        {
         int i,temp;
         digitalWrite( LCD1602_RS,LOW);
         digitalWrite( LCD1602_RW,LOW);
         digitalWrite( LCD1602_EN,LOW);
         
         temp=command & 0xf0;
         for (i=DB[0]; i <= 9; i++)
         {
           digitalWrite(i,temp & 0x80);
           temp <<= 1;
         }
         
         digitalWrite( LCD1602_EN,HIGH);
         delayMicroseconds(1);
         digitalWrite( LCD1602_EN,LOW);
         
         temp=(command & 0x0f)<<4;
         for (i=DB[0]; i <= 9; i++)
         {
           digitalWrite(i,temp & 0x80);
           temp <<= 1;
         }
         
         digitalWrite( LCD1602_EN,HIGH);
         delayMicroseconds(1); 
         digitalWrite( LCD1602_EN,LOW);
        }
         
        void LCD_Data_Write(int dat)
        {
         int i=0,temp;
         digitalWrite( LCD1602_RS,HIGH);
         digitalWrite( LCD1602_RW,LOW);
         digitalWrite( LCD1602_EN,LOW);
         
         temp=dat & 0xf0;
         for (i=DB[0]; i <= 9; i++)
         {
           digitalWrite(i,temp & 0x80);
           temp <<= 1;
         }
         
         digitalWrite( LCD1602_EN,HIGH);
         delayMicroseconds(1);
         digitalWrite( LCD1602_EN,LOW);
         
         temp=(dat & 0x0f)<<4;
         for (i=DB[0]; i <= 9; i++)
         {
           digitalWrite(i,temp & 0x80);
           temp <<= 1;
         }
         
         digitalWrite( LCD1602_EN,HIGH);
         delayMicroseconds(1); 
         digitalWrite( LCD1602_EN,LOW);
        }
         
        void LCD_SET_XY( int x, int y )
        {
          int address;
          if (y ==0)    address = 0x80 + x;
          else          address = 0xC0 + x;
          LCD_Command_Write(address); 
        }
         
        void LCD_Write_Char( int x,int y,int dat)
        {
          LCD_SET_XY( x, y ); 
          LCD_Data_Write(dat);
        }
         
        void LCD_Write_String(int X,int Y,char *s)
        {
            LCD_SET_XY( X, Y );    //設置地址 
            while (*s)             //寫字符串
            {
              LCD_Data_Write(*s);   
              s ++;
            }
        }
         
        void setup (void) 
        {
          int i = 0;
          for (i=6; i <= 12; i++) 
           {
             pinMode(i,OUTPUT);
           }
          delay(100);
          LCD_Command_Write(0x28);//4線 2行 5x7
          delay(50); 
          LCD_Command_Write(0x06);
          delay(50); 
          LCD_Command_Write(0x0c);
          delay(50); 
          LCD_Command_Write(0x80);
          delay(50); 
          LCD_Command_Write(0x01);
          delay(50); 
         
        }
         
        void loop (void)
        {
           LCD_Command_Write(0x01);
           delay(50);
           LCD_Write_String(3,0,str1);//第1行,第4個地址起
           delay(50);
           LCD_Write_String(1,1,str2);//第2行,第2個地址起
           delay(5000);
           LCD_Command_Write(0x01);
           delay(50);
           LCD_Write_String(0,0,str3);
           delay(50);
           LCD_Write_String(0,1,str4);
           delay(5000);
         
        }

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮