基于無線警報系統的LCD顯示菜單設計
摘要:為了在無線警報系統上實現數據輸入、顯示及存儲等屏幕顯示功能,提出了基于4*4個鍵盤交互的LCD顯示多屏菜單設計方法。以ARM CortexTM-M0群說奈⒋理器為主控芯片,結合點陣液晶模塊HTM12864進行C語言程序系統設計。對菜單數據項和功能函數進行獨立設計,使菜單顯示窗口化,并為每個窗口配置一個按鍵處理的回調函數來實現窗口切換。系統運行結果表明,該方法實現簡單,占用內存少,操作界面簡便,達到設計方法的目的。
本文引用地址:http://www.j9360.com/article/201809/388346.htm隨著人們對生活質量要求的提高,“智能家居”已經走入了我們的生活中。智能家居是以住宅為平臺,兼備建筑、網絡通信、計算機技術、設備自動化,集系統、結構、服務、管理為一體的安全、舒適、健康的居住環境。家居報警系統是智能家居系統的一個重要組成部分,實現智能家居環境下的安防智能化,人機交互界面美觀可靠,操作方便等是安防系統發展的趨勢。
無線警報系統利用無線通信和傳感技術,通過無線傳感器網絡采集家庭內的信息,并通過無線通信將異常情況及時傳輸給用戶或保安人員,用戶遠程操作,實現遠程防火防盜警報。本文介紹在智能無線警報系統中實現多級菜單功能,方便設置和操作。
在傳統的多級菜單的實現辦法上,文獻提出兩點改進:把菜單項數據與功能程序分開和復用菜單項。文獻提出了一種基于單片機系統的多級菜單模塊化編程方法,使得程序編寫效率較高,軟件維護簡單。文獻提出基于飛思卡爾單片機MC9S08GT60控制的LCD人機界面方案,實現了數據通信、字符顯示以及波形監測等功能。文獻采用一鍵多義的非編碼制鍵盤用標記轉移算法,設計出基于4個鍵盤交互的多屏菜單系統。
鑒于之前的改進及設計方法,獨立LCD顯示模塊,引入菜單窗口化的設計方法,使菜單項數據和函數功能完全分離,在菜單窗口下分行顯示菜單項,同時完善LCD顯示與鍵盤處理交互方法。為智能無線警報器設計開發4 x 4鍵盤與128x64圖形點陣LCD模塊交互的程序,在不同菜單窗口下,通過函數指針調用不同的按鍵處理函數,實現不同菜單窗口之間的切換。具有多級菜單顯示結構,可完成分級菜單顯示、參數設置及存儲等常用功能,而且操作方便快捷。
1 智能無線警報系統結構
智能無線警報系統結構如圖1所示,主要由單片機控制模塊、GSM通信模塊、無線傳感器接收模塊、LCD模塊、電源模塊等組成。

各個模塊簡介:MCU:主控芯片,實現與各模塊之間進行數據交換和過程控制。GSM模塊:提供GSM通信功能,支持語音和短信收發,SPK和MIC由GSM模塊處理,MCU不需要參與,GSM模塊通過UART串口與MCU通信,完成警報信息的發送、接收控制和語音通信功能;Buzzer:蜂鳴器,警報時產生蜂鳴聲;Siren:警笛,警報時參數警笛聲;ASK433模塊:接收433Mhz警報信息;Key:包括矩形鍵盤和各類功能按鍵,用于用戶密碼的輸入、各類設置和緊急警報等;LCD顯示:采用132*64液晶顯示模塊,通過SPI與MCU通信,可通過鍵盤完成對警報手機的設置和更改,并將設置和更改數據存儲,實現輸入數據、顯示、存儲參數等功能。
2 LCD模塊總體設計
2.1 軟硬件開發環境介紹
本系統使用的主控芯片為新唐的NUC100,該芯片是32位內嵌ARM Cortex-M0內核的微控制器,運行頻率可達50MHz,內建128K字節的Fla sh存儲器,4K/8K/16K字節內建SRAM和4K字節用于存儲ISP引導代碼的ROM。另外還有豐富的外設,如定時器,看門狗定時器,RTC,RDMA,UART,SPI/MICROWIRE,I2C,IS,PWM定時器,豐富的GPIO,PS2,12位ADC,模擬比較器,低電壓復位控制盒欠壓檢測功能。按鍵類型為4*4的矩陣,即0~9,*,#,OK,↑, ↓,DEL鍵。本系統使用的LCD顯示屏的類型為HTM13264,分辨率是132*64的,顯示類型為點陣,數據輸入方式為SPI。
軟件編譯環境為Keil μVision4編譯器,μVision4集成開發環境、仿真器、調試器等,提供一個單純統一的環境,可以快速的編輯、仿真和調試程序。通過μVision4的工具條,就可以實現絕大多數調試和編輯的功能。
2.2 LCD菜單顯示需求分析
根據該系統菜單的設計,LCD屏幕分四行顯示,每行可以允許顯示8個漢字字符,16個英文字符,如圖2所示第一行是狀態欄,顯示感應器注冊、通信模塊信號量和電池電量,其他三行根據不同場景顯示不同的內容,所有設置項目分三級菜單。

2.3 LCD菜單顯示原理
菜單顯示設計主要分為按鍵處理和菜單窗口兩部分,主要原理是在主程序中設置一個按鍵處理程序,各菜單窗口利用統一的按鍵接口函數對按鍵處理程序中的按鍵函數指針進行重定向設定,使得按鍵處理程序能夠指向各菜單窗口。每次按鍵操作完畢,均回到主程序。
2.3.1 菜單窗口實現方法
除狀態欄外,將其他所有需要顯示的菜單內容窗口化,即空閑窗口,第一級菜單窗口,第二級菜單窗口,第三級菜單窗口,之外還需要增加提示窗口。以窗口為單位來顯示,可以簡化進入、返回操作的處理。細化窗口下的顯示,即將每個窗口分為三行顯示,每行的顯示內容根據上級窗口的ID來定義。為每個窗口配置一個按鍵處理回調函數,在收到按鍵中斷后,交由回調函數處理當前的窗口上的回調函數。
2.3.2 行顯示實現方法
顯示行的類型應該分為可編輯字符型,可編輯密碼型和不可編輯類型。行的顯示是包含在窗口中的,需要為窗口創建一個顯示行的棧,或者是一個顯示數組,用來支撐列表式的顯示方式。
2.3.3 窗口進入、退出規則
如圖3所示,為空閑界面下進入其他菜單的處理規則,其他窗口的處理于此類似。所有非編輯窗口都做超時處理,超時后都要返回到空閑界面。窗口返回時,返回到上一窗口的進入位置。

2.3.4 窗口具體實現方法
包含空閑窗口在內,整個界面的窗口顯示共有4個窗口。空閑窗口應該為程序的常駐窗口,即開機后空閑窗口的顯示數據就會一直存在于RAM中,其余窗口則是根據按鍵事件的處理來創建和銷毀。由于無法做到動態內存分配,所以窗口的銷毀并不會帶來內存的釋放,而只是數據清除。每一級的窗口顯示列表根據菜單樹分級的定義應該為一固定值,并為每一個項目條標記一個ID,用作循環顯示以及作為類型標記,如圖4所示。每個顯示窗口都包含3個顯示行數據結構,用來為每次屏幕刷新提供數據。每個按鍵設有專門的程序處理入口。

3 系統運行結果
在新唐NUC100上和HTM13254的硬件平臺上,實現了LCD多級菜單的顯示,參數設置及存儲功能。上電初始化屏幕之后,顯示的空閑屏幕通過輸入不同的密碼進入不同的菜單窗口,當輸入正確的安防密碼之后,進入安防設置界面,如圖5所示;當輸入正確的設置密碼之后,進入操作設置界面,如圖6所示。以上兩個不同的窗口下,都可以通過上下鍵,移動光標,實現翻屏顯示;通過確定鍵進入下一級菜單;通過返回鍵返回上一級菜單出口或者直接退出到空閑界面。

設置參數時,通過上下鍵和確認鍵選擇要設置的參數,不可編輯類型,如安防設置窗口,直接按下確定鍵設置。可編輯字符型,如短信或者電話號碼設置,在進入設置界面之后,通過上下鍵和確定鍵進入電話號碼設置界面,通過上下鍵選擇要編輯的菜單項,此時,按下*號鍵,進入編輯界面,如圖7所示,通過鍵盤上4*4的鍵盤矩陣,輸入大小寫字符及數字,按下確定鍵,即可保存輸入的數據,如圖8所示。


實驗結果表明,LCD菜單屏顯示界面簡潔美觀,和鍵盤交互操作方便快捷。LCD菜單的顯示程序按模塊化設計,不受其他模塊程序等其他任何程序的影響。增加鍵盤有效性檢查,視誤操作為無效操作,保持在當前窗口,減少了用戶的操作量;當無線安防警報系統功能擴增時,LCD模塊程序的結構不變,有利于功能擴展。
4 結束語
介紹了多級菜單新的設計模式,仿照棧的數據結構,使菜單設計變得更為簡單方便,軟件維護更容易,為每個菜單窗口配置一個按鍵處理回調函數,產生按鍵中斷后,交由回調函數去處理當前窗口上的按鍵反應。通過安防警報系統實現的實際應用表明,以上方法是切實有效的。同時,這些方法也為其他控制系統的多級菜單設計提供了參考和選擇。
評論