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