那么,得到了漢字的內碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的'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為顯示數(shù)據(jù)
D/I=“L”,表示DB7∽DB0為顯示指令數(shù)據(jù)
5
R/W
H/L
R/W=“H”,E=“H”數(shù)據(jù)被讀到DB7∽DB0
R/W=“L”,E=“H→L”數(shù)據(jù)被寫到IR或DR
6
E
H/L
R/W=“L”,E信號下降沿鎖存DB7∽DB0
R/W=“H”,E=“H”DDRAM數(shù)據(jù)讀到DB7∽DB0
7
DB0
H/L
數(shù)據(jù)線
8
DB1
H/L
數(shù)據(jù)線
9
DB2
H/L
數(shù)據(jù)線
10
DB3
H/L
數(shù)據(jù)線
11
DB4
H/L
數(shù)據(jù)線
12
DB5
H/L
數(shù)據(jù)線
13
DB6
H/L
數(shù)據(jù)線
14
DB7
H/L
數(shù)據(jù)線
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是用于寄存指令碼,與數(shù)據(jù)寄存器數(shù)據(jù)相對應。當D/I=0時,在E信號下降沿的作用下,指令碼寫入IR。
2.數(shù)據(jù)寄存器(DR)
DR是用于寄存數(shù)據(jù)的,與指令寄存器寄存指令相對應。當D/I=1時,在下降沿作用下,圖形顯示數(shù)據(jù)寫入DR,或在E信號高電平作用下由DR讀到DB7∽DB0數(shù)據(jù)總線。DR和DDRAM之間的數(shù)據(jù)傳輸是模塊內部自動執(zhí)行的。
3.忙標志:BF
BF標志提供內部工作情況。BF=1表示模塊在內部操作,此時模塊不接受外部指令和數(shù)據(jù)。BF=0時,模塊為準備狀態(tài),隨時可接受外部指令和數(shù)據(jù)。
利用STATUS READ指令,可以將BF讀到DB7總線,從檢驗模塊之工作狀態(tài)。
4.顯示控制觸發(fā)器DFF
此觸發(fā)器是用于模塊屏幕顯示開和關的控制。DFF=1為開顯示(DISPLAY OFF),DDRAM的內容就顯示在屏幕上,DFF=0為關顯示(DISPLAY OFF)。
DDF的狀態(tài)是指令DISPLAY ON/OFF和RST信號控制的。
5.XY地址計數(shù)器
XY地址計數(shù)器是一個9位計數(shù)器。高3位是X地址計數(shù)器,低6位為Y地址計數(shù)器,XY地址計數(shù)器實際上是作為DDRAM的地址指針,X地址計數(shù)器為DDRAM的頁指針,Y地址計數(shù)器為DDRAM的Y地址指針。
X地址計數(shù)器是沒有記數(shù)功能的,只能用指令設置。
Y地址計數(shù)器具有循環(huán)記數(shù)功能,各顯示數(shù)據(jù)寫入后,Y地址自動加1,Y地址指針從0到63。
6.顯示數(shù)據(jù)RAM(DDRAM)
DDRAM是存儲圖形顯示數(shù)據(jù)的。數(shù)據(jù)為1表示顯示選擇,數(shù)據(jù)為0表示顯示非選擇。DDRAM與地址和顯示位置的關系見DDRAM地址表。
7.Z地址計數(shù)器
Z地址計數(shù)器是一個6位計數(shù)器,此計數(shù)器具備循環(huán)記數(shù)功能,它是用于顯示行掃描同步。當一行掃描完成,此地址計數(shù)器自動加1,指向下一行掃描數(shù)據(jù),RST復位后Z地址計數(shù)器為0。
Z地址計數(shù)器可以用指令DISPLAY START LINE預置。因此,顯示屏幕的起始行就由此指令控制,即DDRAM的數(shù)據(jù)從哪一行開始顯示在屏幕的第一行。此模塊的DDRAM共64行,屏幕可以循環(huán)滾動顯示64行。
12864LCD的指令系統(tǒng)及時序
該類液晶顯示模塊(即KS0108B及其兼容控制驅動器)的指令系統(tǒng)比較簡單,總共只有七種。其指令表如表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
讀狀態(tài)
1
0
BUSY
0
ON/OFF
RST
0
0
0
0
寫數(shù)據(jù)
0
1
寫數(shù)據(jù)
讀數(shù)據(jù)
1
1
讀數(shù)據(jù)
表2:12864LCD指令表
各功能指令分別介紹如下。
顯示開/關指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
00
00111111/0
當DB0=1時,LCD顯示RAM中的內容;DB0=0時,關閉顯示。
2、顯示起始行(ROW)設置指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
00
11顯示起始行(0~63)
該指令設置了對應液晶屏最上一行的顯示RAM的行號,有規(guī)律地改變顯示起始行,可以使LCD實現(xiàn)顯示滾屏的效果。
3、頁(PAGE)設置指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
00
10111頁號(0~7)
顯示RAM共64行,分8頁,每頁8行。
4、列地址(Y Address)設置指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
00
01顯示列地址(0~63)
設置了頁地址和列地址,就唯一確定了顯示RAM中的一個單元,這樣MPU就可以
用讀、寫指令讀出該單元中的內容或向該單元寫進一個字節(jié)數(shù)據(jù)。
5、讀狀態(tài)指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
10
BUSY0ON/OFFREST0000
該指令用來查詢液晶顯示模塊內部控制器的狀態(tài),各參量含義如下:
BUSY:1-內部在工作0-正常狀態(tài)
ON/OFF:1-顯示關閉0-顯示打開
RESET:1-復位狀態(tài)0-正常狀態(tài)
在BUSY和RESET狀態(tài)時,除讀狀態(tài)指令外,其它指令均不對液晶顯示模塊產生作用。
在對液晶顯示模塊操作之前要查詢BUSY狀態(tài),以確定是否可以對液晶顯示模塊進行操作。
6、寫數(shù)據(jù)指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
01
寫數(shù)據(jù)
讀數(shù)據(jù)指令
R/WRS
DB7 DB6 DB5 DB4 DB3DB2DB1 DB0
11
讀顯示數(shù)據(jù)
讀、寫數(shù)據(jù)指令每執(zhí)行完一次讀、寫操作,列地址就自動增一。必須注意的是,進行讀操作之前,必須有一次空讀操作,緊接著再讀才會讀出所要讀的單元中的數(shù)據(jù)。
12864點陣型LCD軟硬件設計實例
通過以上學習,現(xiàn)在就來實際應用12864LCD的軟硬件設計。本實例將在LCD上顯示如圖3所示內容:
圖3 模擬顯示效果圖
在調試前先將顯示切換開關切換到LCD顯示狀態(tài)。
圖4 128*64LCD實驗演示圖
硬件原理圖
圖5 硬件原理圖
程序流程圖
圖6 軟件流程圖
軟件代碼
在編寫軟件代碼之前必須要先掌握漢字取模的方法。要得到上表中的文字,我們可以借助取模軟件來完成。目前點陣LCD的取模軟件有很多,我們以本開發(fā)板配套的取模軟件為例來介紹一下漢字的取模方法。
打開取模軟件出現(xiàn)如下顯示界面:
在文字輸入?yún)^(qū)中輸入文字,我們以輸入一個歡迎的“歡”字為例,了解其取模過程。在文字輸入?yún)^(qū)中輸入“歡”后按CTRL+ENTER組合鍵后就看到“歡”字已經(jīng)在模擬顯示區(qū)顯示出來了
在“取模方式”中選擇“C51格式”就可以在“點陣生成區(qū)”得到你要的漢字“歡”的顯示代碼。
經(jīng)過以上步驟后一個漢字就取模成功了,在程序中只要調用這段代碼就可顯示出漢字“歡”了,其它漢字也用同樣的方法。取完要顯示的全部漢字代碼后我們就可以編程