1. 程式人生 > >第20講 1602液晶

第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),有點難理解,可以看一個例子