在單片機平臺上建立規(guī)范化的液晶顯示接口
在現(xiàn)代產品設計的理念上,首先使用某一種單片機類的智能IC,并以這個IC為核心搭建出一個芯系統(tǒng),再外延出若干個功能接口,如顯示接口、鍵盤接口、開關量信號輸入/輸出接口、模擬量輸入/輸出接口和打印接口等,最后再拼接各種所需的外圍設備,形成產品。這樣設計的優(yōu)點是在芯系統(tǒng)不變的情況下,更改外圍設備即可使產品升級、更新。在軟件方面芯系統(tǒng)具有基礎的功能函數(shù)以及外圍設備應用所需的基礎軟件,從而形成良好的開發(fā)環(huán)境,這就是研發(fā)平臺的設計思想。
點陣式液晶顯示模塊在迅速、廣泛地應用于各行各業(yè)的電子產品中。其應用的最大特點是平板顯示占空間小,CMOS電路功耗低,可顯示漢字。為了配合研發(fā)平臺概念的提出和推廣,我們對標準液晶顯示類產品作了歸納和總結,在此介紹適用于平臺設計的通用液晶顯示接口電路和MCS|51系列單片機的顯示用軟件包。
一、 通用液晶顯示接口電路
所謂標準液晶顯示類產品是指廠家自己設計并推向社會的液晶顯示模塊產品。它的種類、規(guī)格很多,從8×1個字符到40×4個字符的字符型液晶顯示模塊;從80×32點陣到640×480點陣的圖形液晶顯示模塊。而且同一點陣數(shù)的產品還會根據(jù)點陣的大小、模塊結構尺寸和控制器IC型號等的不同劃分不同的系列。
但是,我們避開液晶顯示模塊產品繁多的型號,僅分析液晶顯示模塊的計算機接口特性,從而歸納出液晶顯示模塊與單片機接口的共有特性??v觀國內市場上的液晶顯示模塊,適用于單片機系統(tǒng)的液晶顯示控制器無外乎是這么幾種:HD44780及其替代品(字符型)、SED1520(控制122×32點陣以內)、HD61202U(控制192×64點陣以內)、HD61830A(控制240×128點陣以內)、T6963C(控制240×128點陣以內)、 SED1335(控制640×200點陣以內)和QPYD系列(控制640×480點陣單色和彩色)等(注:用于計算機系統(tǒng)的液晶顯示控制器不在本文的討論范圍之內)。
雖然這些液晶顯示控制器的功能不同,但與單片機的接口時序關系可以歸納為兩類。一是Intel 8080時序關系,如T6963C、SED1335和QPYD系列等;另一種是MC6800時序關系,如HD44780、HD61830、 HD61202U和SED1520等。這兩類的接口時序如圖1和圖2所示。
與單片機的運行速度相比,液晶顯示控制器的工作速度是屬于中速偏慢的。因此,當在高速單片機系統(tǒng)中設計液晶顯示接口時,就要考慮液晶顯示控制器的適應能力了。一般在讀、寫脈寬小于450ns的單片機系統(tǒng)中,我們建議使用間接方式的液晶顯示接口,即單片機芯系統(tǒng)與液晶顯示接口連接中使用兩個8位的并口作為緩沖器。其中一個用作數(shù)據(jù)信息的緩沖器,另一個用作控制信號的產生。單片機通過對該并口的數(shù)據(jù)寫入、更新,實現(xiàn)對液晶顯示控制器的控制信號狀態(tài)設置和顯示數(shù)據(jù)的寫入,從而達到對液晶顯示模塊的控制。在間接方式下的液晶顯示接口實現(xiàn)是比較容易的,但對軟件的時序編制要求就比較高了。
二、 規(guī)范的液晶顯示應用軟件包
較完美地實現(xiàn)液晶顯示應用,必須有“規(guī)范化”的液晶顯示基礎軟件的建設。我們分析了各種控制器的指令特性和用戶使用時所需要的基本顯示功能,提出了設計規(guī)范化應用軟件包的要求:
?。?) 使用最基層的編程語言——匯編語言,可以使用戶在任何高級語言編程時都可以調用;
?。?) 盡管因控制器的不同,寫入的指令格式和代碼不同,但要求程序的入口名都是統(tǒng)一的;
?。?) 盡可能減少軟件所占用的內部寄存器單元;
?。?) 為了使各軟件包更換時,對主程序影響最小,軟件包所用的全局變量應是統(tǒng)一命名的;
?。?) 軟件包應包括最基本的驅動程序和應用程序,用戶能使用它們完成最基礎的顯示功能。
基于上述要求,我們編制了QHA51系列液晶顯示模塊的應用軟件庫。這個軟件庫使用了MCS-51單片機的宏匯編指令,包含有:
適應HD44780控制器軟件包——QHA51-HD44780;
適應HD61202控制器軟件包——QHA51-HD61202;
適應HD61830控制器軟件包——QHA51-HD61830;
適應SED1520控制器軟件包——QHA51-SED1520;
適應T6963C 控制器軟件包——QHA51-T6963C;
適應SED1335控制器軟件包——QHA51-SED1335;
適應QPYD系列控制器軟件包——QHA51-QPYD。
這組軟件包中的功能程序入口名都是統(tǒng)一的,它們是:
PR0: 讀忙標志子程序入口;
PR1: 寫指令子程序入口1;
PR2: 寫參數(shù)和數(shù)據(jù)子程序入口1;
PR3: 讀數(shù)據(jù)子程序入口1;
……
INT: 控制器初始化程序入口;
CLEAR: 清顯示程序入口;
CWPR: 西文字符寫入程序入口;
CCWPR: 漢字字符寫入程序入口;
WDOT: 繪點程序入口。
……
程序參數(shù)用PARA1,PARA2……定義。程序變量定義為:
OXH,OXL: X坐標值。在字符顯示時該坐標以字節(jié)為單位;在圖形顯示時則以點列為單位。
OYH,OYL: Y坐標值。在文本方式下該坐標以字符行為單位;在圖形方式下則以點行為單位。
CODE: 字符代碼。
COUNT1,COUNT2…: 計數(shù)器。
COM: 指令寄存器,作為驅動子程序的輸入變量。
DAT1: 數(shù)據(jù)寄存器,作為驅動子程序的輸入變量。
DAT2: 數(shù)據(jù)寄存器,作為驅動子程序的輸入變量。
該軟件庫對用戶不是煩瑣的控制器指令集,而是一組功能函數(shù),從而解脫了用戶軟件編程的煩瑣勞動,提高了開發(fā)效率,降低了開發(fā)成本。同時還可以實現(xiàn)在不修改系統(tǒng)程序的前提下,僅更換顯示功能程序,完成不同的液晶顯示模塊的更換。
三、 發(fā)展的液晶顯示應用的規(guī)范化
雖然我們提出液晶顯示應用的規(guī)范化,即液晶顯示應用技術服務的規(guī)范化建設,但這僅僅是一家所言。日后還有更深、更廣的理論和實踐工作需要去探討和完善。要發(fā)展液晶顯示應用的“規(guī)范化”,需要大家同心協(xié)力。今天,我們能斗膽提出和在力所能及之處實施“規(guī)范化”,就是為了能在應用領域中得到廣泛的支持,以期能推動我國液晶顯示應用的更快、更好的發(fā)展。
評論