Arduino連接LCD1602顯示屏


簡介
LCD1602是一種工業字符型液晶,能夠同時顯示16x02即32個字符。LCD1602液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,即可以顯示出圖形。【百度百科】

  • 引腳說明
  • 引腳 符號 說明
  • 1 GND 接地
  • 2 VCC 5V正極
  • 3 V0 對比度調整,接正極時對比度最弱
  • 4 RS 寄存器選擇,1數據寄存器(DR),0指令寄存器(IR)
  • 5 R/W 讀寫選擇,1度,0寫
  • 6 EN 使能(enable)端,高電平讀取信息,負跳變時執行指令
  • 7~14 D0~D7 8位雙向數據
  • 15 BLA 背光正極
  • 16 BLK 背光負極
  • 其它知識點
  • 一些簡稱(本文無用,瞎記)
  • DR 數據寄存器
  • IR 指令寄存器
  • DDRAM 顯示數據存儲器(LCD1602有80字節)
  • CGROM 字符發生器(內建192個5*7點陣字符)
  • 1
  • 2
  • 3
  • 4
  • 3腳電位器
  • 一個滑動變阻器,中間接負極(輸出),兩邊分別接電源正極和接地(或不接)

材料
大面包板 x1
3腳電位器 x1
LCD 1602 x1
Arduino UNO x1
接線示意圖

LCD1602 —> Arduino UNO 說明
GND —> GND 接地
VCC —> 5V 5V電源
V0 —> 連接3腳繼電器中間,用於調節對比度
RS —> 3 隨便接一個輸出口,方便接線、畫圖
R/W —> GND 接地,寫模式
EN —> 5 隨便接一個輸出口,方便接線、畫圖
D0~D3 —> 4位工作模式,不使用
D4~D7 —> 10~13 其它口也行,方便接線、畫圖
BLA —> 背光,電源正極,可選
BLK —> 背光,接地,可選
開始抄代碼
加載庫文件
打開Arduino IDE,選項目 -> 加載庫 -> 管理庫中搜索LiquidCrystal,然后安裝即可,筆者的IDE版本為1.6.12,自帶該庫。

示例代碼, hello word

//引入依賴
#include <LiquidCrystal.h>

// 初始化針腳
const int rs = 3, en = 5, d4 = 10, d5 = 11, d6 = 12, d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
    //設置LCD要顯示的列數、行數,即2行16列
    lcd.begin(16, 2);

    //輸出Hello World
    lcd.print("hello, world!");
}

void loop() {
    //設置光標定位到第0列,第1行(從0開始)
    lcd.setCursor(0, 1);
    //打印從重置后的秒數
    lcd.print( millis() / 1000);
}

示例代碼,自動滾屏

//引入依賴
#include <LiquidCrystal.h>
// 初始化針腳
const int rs = 3, en = 5, d4 = 10, d5 = 11, d6 = 12, d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
char arr [9]= {'a', 'b', 'c', 'd' ,'e' ,'f' ,'g', 'h', 'i'};

void setup() {
    //設置LCD要顯示的列數、行數,即2行16列
    lcd.begin(16, 2);
}

void loop() {
    //輸出1-9,a1-9,b,1-9,c
    lcd.setCursor(0, 0);
    lcd.autoscroll();

    for(int i = 0; i < 9; i++){
      for(int j = 1; j < 10; j++){
        lcd.print(j);
        delay(500);
      }
      lcd.print(arr[i]);
      delay(500);
    }

    //關閉自動滾屏
    lcd.noAutoscroll();
    //為下重循環清屏
    lcd.clear();
}

https://blog.csdn.net/zcw1994/article/details/80517943


版權聲明:本文為CSDN博主「我的小胖子呢」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。


#include <LiquidCrystal.h>

// 初始化針腳
const int rs = 3, en = 5, d4 = 10, d5 = 11, d6 = 12 ,d7 = 13;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
unsigned long time;
unsigned long starttime;
int timeHour;  //顯示小時數
int timeMinute; //顯示分鍾數
int timeSecond; //顯示秒數
int startHour=0; //初始小時數
int startMinute=1;  //初始分鍾數
int startSecond=40;  //初始秒數
void setup() {
      Serial.begin(9600);
      lcd.begin(16,2);   //初始化LCD1602
      lcd.print("Welcome to use!");   //液晶顯示Welcome to use!
      delay(1000);        //延時1000ms
      lcd.clear();        //液晶清屏
      starttime=startHour*60*60+startMinute*60+startSecond;
      lcd.setCursor(0,0);        //設置液晶開始顯示的指針位置
      lcd.print("While accounting");
}

void loop() {
            if (millis()<=starttime*1000){
        time =starttime-(millis()/1000);
        timeHour=time/(60*60);
        timeMinute=(time-timeHour*60*60)/60;
        timeSecond=time-timeHour*60*60-timeMinute*60;
        lcd.setCursor(0,1);        //設置液晶開始顯示的指針位置
        lcd.print("Time:");
        lcd.print(Pressing_string(timeHour));
        lcd.print(":");
        lcd.print(Pressing_string(timeMinute));
        lcd.print(":");
        lcd.print(Pressing_string(timeSecond));
        //delay(10);
        }else{
        lcd.setCursor(0,1);        //設置液晶開始顯示的指針位置
        lcd.print("It's game over.");
        }
        }
        //n->"0n",nn->"nn"
        String Pressing_string(int myint){
        String mystring;
        if (myint<10 ){
        mystring="0"+String(myint);
        }else{
        mystring=String(myint);
        }
        return mystring;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM