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