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