圖形點陣式液晶顯示模塊與51單片機的接口設計與應用
引 言
液晶作為一種顯示器件,以其特有的優(yōu)勢正廣泛應用于儀器、儀表、電子設備等低功耗產品中。以往的測控儀器的顯示部分大都采用LED式液晶顯示屏進行參數(shù)設定和結果顯示,其顯示信息量少、形式單一、人機交互性差、操作人員要求較高。而液晶顯示器(LCD)具有功耗低、體積小、質量輕、超薄和可編程驅動等其他顯示方式無法比擬的優(yōu)點,不僅可以顯示數(shù)字、字符,還可以顯示各種圖形、曲線、及漢字,并且可實現(xiàn)屏幕上下左右滾動、動畫、閃爍、文本特征顯示等功能;人機界面更加友好,使用操作也更加靈活、方便,使其日益成為智能儀器儀表和測試設備的首選顯示器件。本文在介紹以ST7920為驅動器的WGM-12832液晶顯示模塊的引腳、結構、功能的基礎上,詳述了與AT89S51單片機的硬件接口電路及接口軟件編程方法。
1 WGM-12832結構特點及操作
1.1 點陣式液晶顯示器WGM-12832簡介
WGM-12832是內置ST7920控制器的128×32點陣式液晶顯示器,通過對ST7920控制器的編程可以實現(xiàn)液晶顯示器的各種應用。WGM-12832具有如下特點:(1)可以顯示數(shù)字、字母、特殊字符、圖形、曲線和漢字;(2)顯示內容為128(列)×32(行)點,全屏幕點陣,可顯示2行漢字,每行8個字;(3)IC內帶8 139個16×16點陣中文字庫,126個16×8字母符號,并提供4個16×16點陣的自定義字功能;(4)與CPU接口采用串行控制方式;(5)功耗低,最大工作功耗15 mW。
WGM-12832模塊主要硬件結構框圖如圖1所示。
WGM-12832共有7個外接引腳,其采用串口發(fā)送指令和數(shù)據(jù),優(yōu)點在于滿足顯示目的的同時,占用很少的CPU引腳資源。因此,在很多低端CPU的引腳較少時,也能驅動WGM-12832液晶,滿足了不同微系統(tǒng)的需求。
1.2 WGM-12832控制指令
WGM-12832共有2個指令集:基本指令集和擴充指令集?;局噶罴藢σ壕GM-12832的基本操作,如判斷控制器是否為忙、清除顯示、設定顯示的地址、寫數(shù)據(jù)和讀數(shù)據(jù)等。而擴充指令集則在基本指令集的基礎上最大限度地滿足了現(xiàn)實的顯示需要。比如:能夠設置睡眠模式,滿足低功耗的需求;可以設置圖形顯示,更進一步使顯示變得多樣化,提供更人性化的交互方式。
單片機對WGM-12832的操作原理為:單片機先確認ST7920內部處于非“忙”狀態(tài)。即讀取BF位,當BF為0時,ST7920才可接收新的指令。如果在送指令前不檢查BF位,那么在前一條指令和這條指令中間必須延遲一段較長的時間,確保前一條指令執(zhí)行完。在操作時,ST7920在單片機的時鐘信號的控制下,通過數(shù)據(jù)線傳送給ST7920,當ST7920成功接收到數(shù)據(jù)后,轉入內部時鐘控制,封鎖I/O口緩沖器,置“忙”標志。ST7920根據(jù)接收數(shù)據(jù)中的RW和RS位判斷所接收到的是數(shù)據(jù)、指令、還是所要顯示的內容,并進行相應的處理。處理完成后,撤消I/O口緩沖器的封鎖,“忙”標志清零。在寫入數(shù)據(jù)到RAM中時,每個RAM的位址都可以連續(xù)寫入2個位元的資料(2 B),當寫人第二個字節(jié)時,位址計數(shù)器(AC)的值就會自動加1,即在連續(xù)寫入內容時,只需要設定開始的位址,并連續(xù)寫入數(shù)據(jù)就能達到目的。因為ST7920是能控制128×64點陣的驅動芯片,WGM-12832只用了ST7920資源的1/2。在使用上需要注意,DDRAM位址中的88 H~8 FH和98 H~9 FH中的內容是不能顯示出來的。位址80H~87H和90H~97H的內容會被分別顯示在第1行和第2行。
2 單片機與WGM-12832液晶的接口電路
AT89S51和液晶WGM-12832模塊的接口電路如圖2所示。由于WGM-12832采用串口通信,外接引腳較少,與單片機連接采用直接連接的方法,即用I/O口直接與LCD數(shù)據(jù)線和控制線相連,其特點是簡單、直觀、操作方便。在此電路中,采用軟件模擬液晶的時序,達到正確顯示的目的。
3 軟件編程
對WGM-12832的軟件編程采用Franklin 51語言開發(fā),主要包括兩部分,一部分是給液晶寫指令,另一部分是給液晶寫數(shù)據(jù)。有了這2個基本的子程序,就可以構造出各種實用的顯示子程序。由于液晶內部自帶漢字模塊,只需發(fā)送漢字對應的代碼就可以實現(xiàn)漢字的顯示,其代碼可以在ST7920模塊的資料中查找。對于圖形和曲線顯示的原理類似,只需要設置好相應的水平地址和垂直地址,并把相應的圖形編碼寫入液晶模塊,就可顯示出所要顯示的內容。
發(fā)送指令子程序:
評論