第20講 1602液晶
1. 準備
本次實驗使用arduino直接驅動1602液晶顯示字母 1602液晶在應用中非常廣泛,最初的1602液晶使用的是HD44780控制器,現在各個廠家的1602模組基本上都是採用了與之相容的IC,所以特性上基本都是一致的。
1602LCD主要技術引數 顯示容量為16×2個字元; 晶片工作電壓為4.5~5.5V; 工作電流為2.0mA(5.0V); 模組最佳工作電壓為5.0V; 字元尺寸為2.95×4.35(W×H)mm。
1602採用標準的16腳介面,其中:
第1腳:VSS為地電源
第2腳:VDD接5V正電源
第3腳:V0為液晶顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度
第4腳:RS為暫存器選擇,高電平時選擇資料暫存器、低電平時選擇指令暫存器。
第5腳:R/W為讀寫訊號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀訊號,當RS為高電平RW為低電平時可以寫入資料。
第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模組執行命令。
第7~14腳:D0~D7為8位雙向資料線。
第15腳:背光電源正極
第16腳:背光電源負極
右圖為1602液晶屏實物圖
1602直接與arduino通訊,根據產品手冊描述,分8位連線法與4位連線法,本實驗使用8位連線法。硬體連線方式如下圖好電路後,就可以開始編寫程式了。
8位連線法
4位連線法
在Arduino的安裝目錄下\libraries\LiquidCrystal可以檢視到函式的原型
LiquidCrystal()——定義你的LCD的介面:各個引腳連線的I/O口編號,格式為LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7)
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7)
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)
begin()——定義LCD的長寬(n列×n行),格式lcd.begin(cols, rows)
clear()——清空LCD,格式lcd.clear()
home()——把游標移回左上角,即從頭開始輸出,格式lcd.home()
setCursor()——移動游標到特定位置,格式lcd.setCursor(col, row)
write()——在螢幕上顯示內容(必須是一個變數,如”Serial.read()”),格式lcd.write(data)
print()——在螢幕上顯示內容(字母、字串,等等),格式lcd.print(data)
lcd.print(data, BASE)
cursor()——顯示游標(一條下劃線),格式lcd.cursor()
noCursor()——隱藏游標,格式lcd.noCursor()
blink()——閃爍游標,格式lcd.blink()
noBlink()——游標停止閃爍,格式lcd.noBlink()
display()——(在使用noDisplay()函式關閉顯示後)開啟顯示(並恢復原來內容),格式lcd.display()
noDisplay()——關閉顯示,但不會丟失原來顯示的內容,格式為lcd.noDisplay()
scrollDisplayLeft()——把顯示的內容向左滾動一格,格式lcd.scrollDisplayLeft()
scrollDisplayRight()——把顯示的內容向右滾動一格,格式為lcd.scrollDisplayRight()
autoscroll()——開啟自動滾動,這使每個新的字元出現後,原有的字元都移動一格:如果字元一開始從左到右(預設),那麼就往左移動一格,否則就向右移動,格式lcd.autoscroll()
noAutoscroll()——關閉自動滾動,格式lcd.noAutoscroll()
leftToRight()——從左往右顯示,也就是說顯示的字元會從左往右排列(預設),但螢幕上已經有的字元不受影響,格式lcd.leftToRight()
rightToLeft()——從右往左顯示,格式lcd.rightToLeft()
createChar()——自造字元,最多5×8畫素,編號0-7,字元的每個畫素顯示與否由數組裡的數(0-不顯示,1-顯示)決定,格式lcd.createChar(num, data),有點難理解,可以看一個例子