- 相關推薦
圖形LCD模塊的菜單方式人機交互界面
摘要:在以單片機為核心的嵌入式應用中,友好的人機互界面起著十分重要的作用。筆者在設計中使用WGM-12864B圖形LCD模塊實現一種中文窗口菜單界面,設計中使用的方法具有普遍性意義。隨著液晶顯示技術的進步,高質量的液晶顯示模塊會被日趨廣泛地應用于各種嵌入式系統中。在系統整體設計中,人機交互界面的設計往往占據著很大一部分工作,現以某嵌入式系統的人機交互部分為例,介紹一種使用WGA-12864B圖形LCD模塊實現中文窗口菜單界面的方法。
1 圖形LCD模塊WGM-12864簡介
WGM-12864B模塊是單色圖形點陣液晶顯示模塊,點陣數為64×128,其點陣存儲區如圖1所示。
模塊點陣分為左右兩邊,左右兩邊的結構是完全一樣的。對模塊的點陣存儲區進行讀寫操作時,由CS1、CS2進行片選,高電平有效。模塊中每8行為1頁,頁地址由X確定;Y確定點陣的列號,點陣數據的每一個字節所在的位置由(CSi,X,Y)唯一確定。字節中的每一位對應著相應的像素,為1顯示該像素;為0則不顯示。液晶顯示模塊工作時,逐行掃描點陣存儲區。首先被掃描的行顯示在LCD屏幕的第1行上,其余行則依次順序顯示!皰呙杵鹗夹小笨梢酝ㄟ^Z地址寄存器來設置。Z可以是0~63的任意一行,如Z=56時,則顯示在LCD屏幕上的次序從上到下分別為:
56,57,…,62,63,0,1,2,…,54,55
該模塊的這一功能為窗口的滾屏提供了便利。
2 人機界面的硬件接口設計
系統擴展了1片8255A作為人機界面的接口,硬件接口電路如圖2所示。8255A的A口連接圖形LCD的8位數據線,B口低6位連接相應的控制線,D/I表示數據總線上的信號是點陣數據還是控制命令字,R/W表示當前操作是讀或寫操作,E是使能控制端,RST是復位端,CS1、CS2是左右點陣區選端。以行掃描方式擴展鍵盤接口,C口高半字節接行線,低半字節接列線。8255A初始化時,定義A、B口為方式0輸出;C口高半字節為方式0輸出,低半字節為方式0輸入。請注意,大多數類型的8255芯片在對其方式控制寄存器進行初始化時,會引起A、B、C口清零,故不要在程序中動態改變8255端口的輸入輸出方式,以免影響LCD和鍵盤。
3 用戶界面的軟件設計
人機交互界面設計的目標是實現中文窗口界面,用戶可以在菜單方式下進行交互。窗口分為兩類:對話框和菜單,也包括對話框和菜單的混合。對話框用于參數的輸入輸出顯示;菜單用于響應用戶的選擇,根據用戶的選擇運行程序。
首先,應當確定系統需要多少個窗口,每個窗口有多少個菜單,畫出窗口之間的變遷圖,可以知道所有的窗口應當組成一個樹形結構。菜單中的漢字大小為16×16的點陣,數字和符號的大小為16×8的點陣。這些點陣數據可以由點陣提取程序獲得。點陣數為64×128的LCD模塊只能同時顯示4個菜單項,每個菜單項點據256個字節的點陣存儲空間。窗口多于4個菜單項時,應當使用滾屏功能。為方便數據的安排,系統規定了參數、菜單、窗口及LCD緩沖區的數據結構。
(1)數據結構
為方便參數的顯示和處理,參數的輸入輸出格式用類似于分離BCD碼來表示,數據結構如圖3所示。數據長度表示數據區的字節數。正負標志,為1表示負數,為0表示正數,負數在輸入都要在數據前面加上負號“-”。數據區的每一字節對應于參數的每一位數。數字用分離BCD碼表示,小數點用ASCII碼表示!皵祿L度”域占1個字節時,此數據結構可以表示最多255位的數據。
菜單點陣的數據結構如圖4所示。菜單序號表示該菜單在該窗口所有菜單中的次序;菜單長度表示該菜單項中漢字的個數,菜單點陣數據區存放的是菜單中漢字的點陣,每一個漢字都是16×16的點陣;參數標志為0表示沒有參數,為1表示此菜單項是對話框,后面跟著參數。參數存放在參數指針域指向的內存中,若是系統參數,則要預先從E2PROM讀到內存中。由于系統是16位尋址的存儲空間,所以用2個字節存放指針。參數存放格式如圖3所示。
【圖形LCD模塊的菜單方式人機交互界面】相關文章:
STN-LCD彩屏模塊03-21
Linux下的GTK圖形界面編程12-04
淺談圖形用戶界面的文化傳播影響03-01
DOS界面下通用圖形編輯軟件的設計03-06
Windows 95的引導圖形界面及抖動變色圖像的形成03-03
在Linux下驅動STN彩色LCD03-18
中餐菜單的英譯翻譯策略03-01