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