12864點陣型液晶顯示屏的工作原理
12864點陣型液晶顯示屏的工作原理
大家好,通過以前的學習,我們已經對51微控制器綜合學習系統的使用方法及學習方式有所瞭解與熟悉,學會了1602字元型液晶顯示的基本知識,體會到了綜合學習系統的易用性與易學性,這一期我們將一起學習12864點陣型液晶顯示屏的基本原理與使用方法。
點陣LCD的顯示原理
在數位電路中,所有的資料都是以0和1儲存的,對LCD控制器進行不同的資料操作,可以得到不同的結果。對於顯示英文操作,由於英文字母種類很少,只需要8位(一位元組)即可。而對於中文,常用卻有6000以上,於是我們的DOS前輩想了一個辦法,就是將ASCII表的高128個很少用到的數值以兩個為一組來表示漢字,即漢字的內碼。而剩下的低128位則留給英文字元使用,即英文的內碼。
那麼,得到了漢字的內碼後,還僅是一組數字,那又如何在螢幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數字,但它的意義卻與數字的意義有了根本的變化,它是用數字的各位資訊來記載英文或漢字的形狀,如英文的'A'在字模的記載方式如圖1所示:
圖1 “A”字模圖
而中文的“你”在字模中的記載卻如圖2所示:
圖2 “你”字模圖
12864點陣型LCD簡介
12864是一種圖形點陣液晶顯示器,它主要由行驅動器/列驅動器及128×64全點陣液晶顯示器組成。可完成圖形顯示,也可以顯示8×4個(16×16點陣)漢字。
管腳號 |
管腳名稱 |
LEVER |
管腳功能描述 |
1 |
VSS |
0 |
電源地 |
2 |
VDD |
+5.0V |
電源電壓 |
3 |
V0 |
- |
液晶顯示器驅動電壓 |
4 |
D/I(RS) |
H/L |
D/I=“H”,表示DB7∽DB0為顯示資料 D/I=“L”,表示DB7∽DB0為顯示指令資料 |
5 |
R/W |
H/L |
R/W=“H”,E=“H”資料被讀到DB7∽DB0 R/W=“L”,E=“H→L”資料被寫到IR或DR |
6 |
E |
H/L |
R/W=“L”,E訊號下降沿鎖存DB7∽DB0 R/W=“H”,E=“H”DDRAM資料讀到DB7∽DB0 |
7 |
DB0 |
H/L |
資料線 |
8 |
DB1 |
H/L |
資料線 |
9 |
DB2 |
H/L |
資料線 |
10 |
DB3 |
H/L |
資料線 |
11 |
DB4 |
H/L |
資料線 |
12 |
DB5 |
H/L |
資料線 |
13 |
DB6 |
H/L |
資料線 |
14 |
DB7 |
H/L |
資料線 |
15 |
CS1 |
H/L |
H:選擇晶片(右半屏)訊號 |
16 |
CS2 |
H/L |
H:選擇晶片(左半屏)訊號 |
17 |
RET |
H/L |
復位訊號,低電平復位 |
18 |
VOUT |
-10V |
LCD驅動負電壓 |
19 |
LED+ |
- |
LED背光板電源 |
20 |
LED- |
- |
LED背光板電源 |
表1:12864LCD的引腳說明
在使用12864LCD前先必須瞭解以下功能器件才能進行程式設計。12864內部功能器件及相關功能如下:
1. 指令暫存器(IR)
IR是用於寄存指令碼,與資料暫存器資料相對應。當D/I=0時,在E訊號下降沿的作用下,指令碼寫入IR。
2.資料暫存器(DR)
DR是用於寄存資料的,與指令暫存器寄存指令相對應。當D/I=1時,在下降沿作用下,圖形顯示資料寫入DR,或在E訊號高電平作用下由DR讀到DB7∽DB0資料匯流排。DR和DDRAM之間的資料傳輸是模組內部自動執行的。
3.忙標誌:BF
BF標誌提供內部工作情況。BF=1表示模組在內部操作,此時模組不接受外部指令和資料。BF=0時,模組為準備狀態,隨時可接受外部指令和資料。
利用STATUS READ指令,可以將BF讀到DB7匯流排,從檢驗模組之工作狀態。
4.顯示控制觸發器DFF
此觸發器是用於模組螢幕顯示開和關的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內容就顯示在螢幕上,DFF=0為關顯示(DISPLAY OFF)。
DDF的狀態是指令DISPLAY ON/OFF和RST訊號控制的。
5.XY地址計數器
XY地址計數器是一個9位計數器。高3位是X地址計數器,低6位為Y地址計數器,XY地址計數器實際上是作為DDRAM的地址指標,X地址計數器為DDRAM的頁指標,Y地址計數器為DDRAM的Y地址指標。
X地址計數器是沒有記數功能的,只能用指令設定。
Y地址計數器具有迴圈記數功能,各顯示資料寫入後,Y地址自動加1,Y地址指標從0到63。
6.顯示資料RAM(DDRAM)
DDRAM是儲存圖形顯示資料的。資料為1表示顯示選擇,資料為0表示顯示非選擇。DDRAM與地址和顯示位置的關係見DDRAM地址表。
7.Z地址計數器
Z地址計數器是一個6位計數器,此計數器具備迴圈記數功能,它是用於顯示行掃描同步。當一行掃描完成,此地址計數器自動加1,指向下一行掃描資料,RST復位後Z地址計數器為0。
Z地址計數器可以用指令DISPLAY START LINE預置。因此,顯示螢幕的起始行就由此指令控制,即DDRAM的資料從哪一行開始顯示在螢幕的第一行。此模組的DDRAM共64行,螢幕可以迴圈滾動顯示64行。
12864LCD的指令系統及時序
該類液晶顯示模組(即KS0108B及其相容控制驅動器)的指令系統比較簡單,總共只有七種。其指令表如表2所示:
指令名稱 |
控制訊號 |
控制程式碼 |
||||||||
R/W |
RS |
DB7 |
DB6 |
DB5 |
DB4 |
DB3 |
DB2 |
DB1 |
DB0 |
|
顯示開關 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1/0 |
顯示起始行設定 |
0 |
0 |
1 |
1 |
X |
X |
X |
X |
X |
X |
頁設定 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
X |
X |
X |
列地址設定 |
0 |
0 |
0 |
1 |
X |
X |
X |
X |
X |
X |
讀狀態 |
1 |
0 |
BUSY |
0 |
ON/OFF |
RST |
0 |
0 |
0 |
0 |
寫資料 |
0 |
1 |
寫資料 |
|||||||
讀資料 |
1 |
1 |
讀資料 |
表2:12864LCD指令表
各功能指令分別介紹如下。
· 顯示開/關指令
當DB0=1時,LCD顯示RAM中的內容;DB0=0時,關閉顯示。
2、顯示起始行(ROW)設定指令
該指令設定了對應液晶屏最上一行的顯示RAM的行號,有規律地改變顯示起始行,可以使LCD實現顯示滾屏的效果。
3、頁(PAGE)設定指令
顯示RAM共64行,分8頁,每頁8行。
4、列地址(Y Address)設定指令
設定了頁地址和列地址,就唯一確定了顯示RAM中的一個單元,這樣MPU就可以
用讀、寫指令讀出該單元中的內容或向該單元寫進一個位元組資料。
5、讀狀態指令
R/WRS |
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
00 |
00111111/0 |
該指令用來查詢液晶顯示模組內部控制器的狀態,各參量含義如下:
BUSY:1-內部在工作0-正常狀態
ON/OFF:1-顯示關閉0-顯示開啟
RESET:1-復位狀態0-正常狀態
在BUSY和RESET狀態時,除讀狀態指令外,其它指令均不對液晶顯示模組產生作用。
在對液晶顯示模組操作之前要查詢BUSY狀態,以確定是否可以對液晶顯示模組進行操作。
6、寫資料指令
R/WRS |
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
00 |
11顯示起始行(0~63) |
· 讀資料指令
R/WRS |
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0 |
00 |
10111頁號(0~7) |
讀、寫資料指令每執行完一次讀、寫操作,列地址就自動增一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的資料。
12864點陣型LCD軟硬體設計例項
通過以上學習,現在就來實際應用12864LCD的軟硬體設計。本例項將在LCD上顯示如圖3所示內容:
圖3 模擬顯示效果圖
在除錯前先將顯示切換開關切換到LCD顯示狀態。
圖4 128*64LCD實驗演示圖
硬體原理圖
圖5 硬體原理圖
程式流程圖
圖6 軟體流程圖
軟體程式碼
在編寫軟體程式碼之前必須要先掌握漢字取模的方法。要得到上表中的文字,我們可以藉助取模軟體來完成。目前點陣LCD的取模軟體有很多,我們以本開發板配套的取模軟體為例來介紹一下漢字的取模方法。
開啟取模軟體出現如下顯示介面:
在文字輸入區中輸入文字,我們以輸入一個歡迎的“歡”字為例,瞭解其取模過程。在文字輸入區中輸入“歡”後按CTRL+ENTER組合鍵後就看到“歡”字已經在模擬顯示區顯示出來了
在“取模方式”中選擇“C51格式”就可以在“點陣生成區”得到你要的漢字“歡”的顯示程式碼。
經過以上步驟後一個漢字就取模成功了,在程式中只要呼叫這段程式碼就可顯示出漢字“歡”了,其它漢字也用同樣的方法。取完要顯示的全部漢字程式碼後我們就可以程式設計了。