在嵌入式系統(tǒng)開發(fā)過程中,顯示輸出控制是一項(xiàng)重要的研究內(nèi)容,。常用的顯示輸出器件有發(fā)光二極管(LED),、數(shù)碼管及液晶顯示器等。 LED及數(shù)碼管的顯示輸出控制相對(duì)比較簡單,,相關(guān)文獻(xiàn)介紹的也比較詳細(xì),。在液晶顯示器中,圖形點(diǎn)陣形液晶顯示器的硬件結(jié)構(gòu)比較復(fù)雜,,顯示輸出控制也不太容易掌握,,雖然部分文獻(xiàn)進(jìn)行了一定介紹,但面向的對(duì)象往往是已有一定開發(fā)經(jīng)驗(yàn)的使用人員,,而針對(duì)初學(xué)者進(jìn)行專題論述的文獻(xiàn)卻不多,。鑒于此,文章以基于ST7920控制器的128×64中文字庫點(diǎn)陣屏為例,,進(jìn)行了開發(fā)應(yīng)用研究分析,,以便初學(xué)者進(jìn)行參考學(xué)習(xí)。
1 圖形點(diǎn)陣顯示控制原理
圖1為12864液晶屏圖形點(diǎn)陣顯示原理的示意圖,。由圖可見,液晶屏在x方向有128列,,在y方向有64行,,因此整個(gè)液晶屏有128×64個(gè)像素。每個(gè)像素有亮與滅兩種狀態(tài),,以黃綠屏黑字為例,,若某個(gè)像素亮則該像素被黑色填充,這樣不同像素的亮與滅的組合就可顯示不同的點(diǎn)陣型字符或圖案,。如圖1中的黑色像素組合就可顯示一個(gè)漢字“十”字,。
圖1 12864液晶屏圖形點(diǎn)陣顯示原理
對(duì)于字符顯示來說,可以分為16×8像素半寬字符和16×16像素中文字符兩種點(diǎn)陣顯示,。在液晶顯示屏上一個(gè)半寬字符占據(jù)的像素點(diǎn)數(shù)為16×8個(gè),,中文字符的像素點(diǎn)數(shù)為16×16個(gè)。12864點(diǎn)陣液晶屏能顯示32×8個(gè)半寬字符或16×4個(gè)中文字符,。在顯示緩存中有一種叫繪圖RAM的緩存來對(duì)點(diǎn)陣型字符進(jìn)行控制,,該RAM簡寫為GDRAM.GDRAM維護(hù)了一個(gè)和液晶屏像素相對(duì)應(yīng)的二維繪圖緩沖空間,該表的水平地址為0至16,,垂直地址為0至64.GDRAM的每一個(gè)水平地址對(duì)應(yīng)了圖1中的16個(gè)列,,每一個(gè)垂直地址對(duì)應(yīng)圖1中的一行。
在更改繪圖RAM時(shí),由擴(kuò)充指令設(shè)置GDRAM地址,,先垂直地址后水平地址(連續(xù)2個(gè)字節(jié)的數(shù)據(jù)來定義垂直和水平地址),,再2個(gè)字節(jié)的數(shù)據(jù)給繪圖RAM(先高8位后低8位)。圖1中的漢字“十”字在GDRAM中的編碼如表1所示,。
2 液晶顯示控制指令
編程人員在向液晶顯示緩存寫入要顯示的編碼數(shù)據(jù)時(shí),,須在一系列液晶顯示控制指令的控制下才能完成。表2是基于ST7920控制器的128×64中文字庫點(diǎn)陣屏液晶顯示控制的主要指令表,。由該表可以看出,,顯示控制指令要受到控制信號(hào)RS、R/W的控制,。D0至D7為外部CPU與液晶內(nèi)部處理器之間交互數(shù)據(jù)的總線,,交互的數(shù)據(jù)包括上述指令及顯示數(shù)據(jù)。對(duì)于各指令的詳細(xì)描述在相關(guān)數(shù)據(jù)手冊(cè)中都有具體介紹,,在進(jìn)行液晶驅(qū)動(dòng)開發(fā)之前要進(jìn)行認(rèn)真學(xué)習(xí)研究,,只有熟悉了各指令的意義及取值后才能進(jìn)行程序的編寫。
3 液晶顯示控制時(shí)序
進(jìn)行液晶驅(qū)動(dòng)開發(fā)就象利用英語與外賓交流,。要想與外賓交流就必須先熟悉英語的詞組,,不同的詞組代表了不同的意思。而只熟悉相關(guān)詞組,,但不能將其按著英語的詞組先后搭配順序進(jìn)行表達(dá),,則外賓也不能理解我們要表達(dá)的意思。這里詞組就類似于上述的顯示控制指令,,外賓就類似于液晶顯示屏,,而詞組的先后搭配順序則指的是液晶顯示控制的時(shí)序。簡單來說,,控制時(shí)序就是為了使液晶單元能夠正常工作,,相應(yīng)的控制信號(hào)取值高低的先后搭配順序。
圖2是ST7920控制的128×64液晶的8位并口寫操作時(shí)序圖,。由圖2可見,,如果想通過8位并口DB0~DB7進(jìn)行寫操作,需要RS,、R/W,、E三種控制信號(hào)的聯(lián)合控制,首先RS根據(jù)并口上的數(shù)據(jù)是指令還是顯示數(shù)據(jù)置0或置1,,其次,,由于是寫數(shù)據(jù)R/W要置0,之后使能信號(hào)E要置1,,當(dāng)上述三種控制信號(hào)置位穩(wěn)定后,,8位并口DB0~DB7總線上的信息就可寫入液晶屏,,寫入完畢后要將使能信號(hào)E置0.需要說明的是在處理相關(guān)時(shí)序時(shí)要注意各控制信號(hào)高低電平變換期間的不穩(wěn)定期,寫操作要盡量避開這段時(shí)間,。
圖2 8位并口寫操作時(shí)序圖
4 液晶使用舉例
4.1 MCU接口
下面以89C52單片機(jī)控制液晶顯示屏為例,,介紹一下MCU與液晶的連接方法及主要的程序代碼。該程序運(yùn)行后會(huì)在液晶屏上顯示“ST7920顯示控制”等字符,。
圖3為8位并口MCU控制接口圖,。由圖3可見,MCU的P1口與液晶的DB0至DB7相連,,作為指令與顯示數(shù)據(jù)的總線通道,;P3.0、P3.1,、P3.2分別與液晶的RS,、R/W、E相連,,構(gòu)成液晶顯示控制信號(hào)的通道,。
圖3 8位并口MCU控制接口圖
4.2 程序主要代碼
(1)定義
?。?)忙檢測(cè)函數(shù)
?。?)寫操作函數(shù)
(4)初始化
?。?)DDRAM地址設(shè)定函數(shù)
?。?)字符串顯示函數(shù)
(7)主函數(shù)
5 結(jié)束語
文章主要從圖形點(diǎn)陣顯示控制原理,、液晶顯示控制指令,、液晶顯示控制時(shí)序幾個(gè)方面進(jìn)行了分析,主要圍繞基于ST7920控制器的128× 64中文字庫點(diǎn)陣屏的開發(fā)使用方法而展開研究,,并以該型液晶為例給出了嵌入式液晶顯示應(yīng)用的開發(fā)使用步驟:第一步,理解圖形點(diǎn)陣顯示控制原理,;第二步,,熟悉液晶顯示控制指令;第三步,,分析液晶顯示控制時(shí)序,;第四步,應(yīng)用程序編寫,。