前邊我們講的流水燈、數(shù)碼管、LED 點陣這三種都是 LED 設(shè)備,這節(jié)課我們來學(xué)習(xí)一下 LCD 顯示設(shè)備—— 1602 液晶。那個大大的,平時第一行顯示16個小黑塊,第二行什么都不顯示的東西就是 1602 液晶,是不是早就注意到它了呢?
大家學(xué)習(xí)這些電子器件,頭腦中要逐漸形成一種意識,不管是我們的單片機,還是 74HC138,甚至三極管等等,都是有數(shù)據(jù)手冊的。不管是設(shè)計電路還是編寫程序,器件的數(shù)據(jù)手冊是我們最好的參考資料,那我們今天來學(xué)習(xí) 1602,首先就要看它的數(shù)據(jù)手冊。手冊大家可以在網(wǎng)上找到,這里我講的時候只挑手冊的重點講。
首先我們來看一個主要技術(shù)參數(shù)表格,如表12-3所示。
表12-3 1602 液晶主要技術(shù)參數(shù)
| 顯示容量 | 16 x 2個字符 |
|---|---|
| 芯片工作電壓 | 4.5~5.5 V |
| 工作電流 | 2.0 mA(5.0 V) |
| 模塊最佳工作電壓 | 5.0 V |
| 字符尺寸 | 2.95 x 4.35 mm (寬乘高) |
1602 液晶,從它的名字我們就可以看出它的顯示容量,就是可以顯示2行,每行16個字符的液晶。它的工作電壓是 4.5 V~5.5 V,對于這點我們設(shè)計電路的時候,直接按照 5 V 系統(tǒng)設(shè)計,但是保證我們的 5 V 系統(tǒng)最低不能低于 4.5 V。在 5 V 工作電壓下測量它的工作電流是 2 mA,大家注意,這個 2 mA 僅僅是指液晶,而它的黃綠背光都是用 LED 做的,所以功耗不會太小的,一二十毫安還是有的。
1602 液晶一共16個引腳,每個引腳的功能,我們都可以在它的數(shù)據(jù)手冊上獲得。而這些基本的信息,在我們設(shè)計電路和編寫代碼之前,必須先看明白,如表12-4所示。
表12-4 1602 液晶引腳功能
| 編號 | 符號 | 引腳說明 | 編號 | 符號 | 引腳說明 |
|---|---|---|---|---|---|
| 1 | VSS | 電源地 | 9 | D2 | Data I/O |
| 2 | VDD | 電源正極 | 10 | D3 | Data I/O |
| 3 | VL | 液晶顯示偏壓信號 | 11 | D4 | Data I/O |
| 4 | RS | 數(shù)據(jù)/命令選擇端(H/L) | 12 | D5 | Data I/O |
| 5 | R/W | 讀/寫選擇端(H/L) | 13 | D6 | Data I/O |
| 6 | E | 使能信號 | 14 | D7 | Data I/O |
| 7 | D0 | Data I/O | 15 | BLA | 背光源正極 |
| 8 | D1 | Data I/O | 16 | BLK | 背光源負(fù)極 |
液晶的電源1腳2腳以及背光電源15腳16腳,不用多說,正常接就可以了。
3腳叫做液晶顯示偏壓信號,大家注意到小黑塊沒有,當(dāng)我們要顯示一個字符的時候,有的黑點顯示,有的黑點就不能顯示,這樣就可以實現(xiàn)我們想要的字符了。我們這個3腳就是用來調(diào)整顯示的黑點和不顯示的之間的對比度,調(diào)整好了對比度,就可以讓我們的顯示更加清晰一些。在進(jìn)行電路設(shè)計實驗的時候,通常的辦法是在這個引腳上接個電位器,也就是我們初中學(xué)過的滑動變阻器。通過調(diào)整電位器的分壓值,來調(diào)整3腳的電壓。而當(dāng)產(chǎn)品批量生產(chǎn)的時候,我們可以把我們調(diào)整好的這個值直接用簡單電路來實現(xiàn),就如同在我們板子上,我們直接使用的是一個18歐的下拉電阻,市面上有的 1602 的下拉電阻大概1到 1.5 K 也是比較合適的值。
4腳是數(shù)據(jù)命令選擇端。對于液晶,有時候我們要發(fā)送一些命令,讓它實現(xiàn)我們想要的一些狀態(tài),有時候我們要發(fā)給它一些數(shù)據(jù),讓它顯示出來,液晶就通過這個引腳來判斷接收到的是命令還是數(shù)據(jù),這個引腳我們接到了 ADDR0 上,通過跳線帽和 P1.0 連接在一起。大家注意學(xué)會讀手冊,看到這個引腳描述里:數(shù)據(jù)/命令選擇端,而后跟了括號(H/L),他的意思就是當(dāng)這個引腳是 H(High)高電平的時候,是數(shù)據(jù),當(dāng)這個引腳是 L(Low)低電平的時候,是命令。
5腳和4腳用法類似,功能是讀寫選擇端。我們既可以寫給液晶數(shù)據(jù)或者命令,也可以讀取液晶內(nèi)部的數(shù)據(jù)或狀態(tài),就是控制這個引腳。因為液晶本身內(nèi)部有 RAM,實際上我們送給液晶的命令或者數(shù)據(jù),液晶需要先保存在緩存里,然后再寫到內(nèi)部的寄存器或者 RAM 中,這個就需要一定的時間。所以我們進(jìn)行讀寫操作之前,首先要讀一下液晶當(dāng)前狀態(tài),是不是在“忙”,如果不忙,我們可以讀寫數(shù)據(jù),如果在“忙”,我們就需要等待液晶忙完了,再進(jìn)行操作。讀狀態(tài)是常用的,不過讀液晶數(shù)據(jù)我接觸的場合沒怎么用過,大家了解這個功能即可。這個引腳我們接到了 ADDR1 上,通過跳線帽和 P1.1 連接在一起。
6腳是使能信號,很關(guān)鍵,液晶的讀寫命令和數(shù)據(jù),都要靠它才能正常讀寫,我們后邊詳細(xì)講這個引腳怎么用。這個引腳我們通過跳線帽接到了 ENLCD 上,這個位置的跳線是為了和另外一個 12864 液晶的切換使用而設(shè)計的。
7到14引腳就是8個數(shù)據(jù)引腳了,我們就是通過這8個引腳讀寫數(shù)據(jù)和命令的。我們統(tǒng)一接到了 P0 口上。來看一下開發(fā)板上的 1602 接口的原理圖,如圖12-1所示。
http://wiki.jikexueyuan.com/project/mcu-tutorial-two/images/44.png" alt="" />
圖12-1 1602 液晶接口原理圖