基于無線警報系統(tǒng)的LCD顯示菜單設(shè)計
摘要:為了在無線警報系統(tǒng)上實現(xiàn)數(shù)據(jù)輸入、顯示及存儲等屏幕顯示功能,提出了基于4*4個鍵盤交互的LCD顯示多屏菜單設(shè)計方法。以ARM CortexTM-M0群說奈⒋理器為主控芯片,結(jié)合點陣液晶模塊HTM12864進(jìn)行C語言程序系統(tǒng)設(shè)計。對菜單數(shù)據(jù)項和功能函數(shù)進(jìn)行獨立設(shè)計,使菜單顯示窗口化,并為每個窗口配置一個按鍵處理的回調(diào)函數(shù)來實現(xiàn)窗口切換。系統(tǒng)運行結(jié)果表明,該方法實現(xiàn)簡單,占用內(nèi)存少,操作界面簡便,達(dá)到設(shè)計方法的目的。
本文引用地址:http://www.ex-cimer.com/article/201809/388346.htm隨著人們對生活質(zhì)量要求的提高,“智能家居”已經(jīng)走入了我們的生活中。智能家居是以住宅為平臺,兼?zhèn)浣ㄖ?、網(wǎng)絡(luò)通信、計算機技術(shù)、設(shè)備自動化,集系統(tǒng)、結(jié)構(gòu)、服務(wù)、管理為一體的安全、舒適、健康的居住環(huán)境。家居報警系統(tǒng)是智能家居系統(tǒng)的一個重要組成部分,實現(xiàn)智能家居環(huán)境下的安防智能化,人機交互界面美觀可靠,操作方便等是安防系統(tǒng)發(fā)展的趨勢。
無線警報系統(tǒng)利用無線通信和傳感技術(shù),通過無線傳感器網(wǎng)絡(luò)采集家庭內(nèi)的信息,并通過無線通信將異常情況及時傳輸給用戶或保安人員,用戶遠(yuǎn)程操作,實現(xiàn)遠(yuǎn)程防火防盜警報。本文介紹在智能無線警報系統(tǒng)中實現(xiàn)多級菜單功能,方便設(shè)置和操作。
在傳統(tǒng)的多級菜單的實現(xiàn)辦法上,文獻(xiàn)提出兩點改進(jìn):把菜單項數(shù)據(jù)與功能程序分開和復(fù)用菜單項。文獻(xiàn)提出了一種基于單片機系統(tǒng)的多級菜單模塊化編程方法,使得程序編寫效率較高,軟件維護(hù)簡單。文獻(xiàn)提出基于飛思卡爾單片機MC9S08GT60控制的LCD人機界面方案,實現(xiàn)了數(shù)據(jù)通信、字符顯示以及波形監(jiān)測等功能。文獻(xiàn)采用一鍵多義的非編碼制鍵盤用標(biāo)記轉(zhuǎn)移算法,設(shè)計出基于4個鍵盤交互的多屏菜單系統(tǒng)。
鑒于之前的改進(jìn)及設(shè)計方法,獨立LCD顯示模塊,引入菜單窗口化的設(shè)計方法,使菜單項數(shù)據(jù)和函數(shù)功能完全分離,在菜單窗口下分行顯示菜單項,同時完善LCD顯示與鍵盤處理交互方法。為智能無線警報器設(shè)計開發(fā)4 x 4鍵盤與128x64圖形點陣LCD模塊交互的程序,在不同菜單窗口下,通過函數(shù)指針調(diào)用不同的按鍵處理函數(shù),實現(xiàn)不同菜單窗口之間的切換。具有多級菜單顯示結(jié)構(gòu),可完成分級菜單顯示、參數(shù)設(shè)置及存儲等常用功能,而且操作方便快捷。
1 智能無線警報系統(tǒng)結(jié)構(gòu)
智能無線警報系統(tǒng)結(jié)構(gòu)如圖1所示,主要由單片機控制模塊、GSM通信模塊、無線傳感器接收模塊、LCD模塊、電源模塊等組成。
各個模塊簡介:MCU:主控芯片,實現(xiàn)與各模塊之間進(jìn)行數(shù)據(jù)交換和過程控制。GSM模塊:提供GSM通信功能,支持語音和短信收發(fā),SPK和MIC由GSM模塊處理,MCU不需要參與,GSM模塊通過UART串口與MCU通信,完成警報信息的發(fā)送、接收控制和語音通信功能;Buzzer:蜂鳴器,警報時產(chǎn)生蜂鳴聲;Siren:警笛,警報時參數(shù)警笛聲;ASK433模塊:接收433Mhz警報信息;Key:包括矩形鍵盤和各類功能按鍵,用于用戶密碼的輸入、各類設(shè)置和緊急警報等;LCD顯示:采用132*64液晶顯示模塊,通過SPI與MCU通信,可通過鍵盤完成對警報手機的設(shè)置和更改,并將設(shè)置和更改數(shù)據(jù)存儲,實現(xiàn)輸入數(shù)據(jù)、顯示、存儲參數(shù)等功能。
2 LCD模塊總體設(shè)計
2.1 軟硬件開發(fā)環(huán)境介紹
本系統(tǒng)使用的主控芯片為新唐的NUC100,該芯片是32位內(nèi)嵌ARM Cortex-M0內(nèi)核的微控制器,運行頻率可達(dá)50MHz,內(nèi)建128K字節(jié)的Fla sh存儲器,4K/8K/16K字節(jié)內(nèi)建SRAM和4K字節(jié)用于存儲ISP引導(dǎo)代碼的ROM。另外還有豐富的外設(shè),如定時器,看門狗定時器,RTC,RDMA,UART,SPI/MICROWIRE,I2C,IS,PWM定時器,豐富的GPIO,PS2,12位ADC,模擬比較器,低電壓復(fù)位控制盒欠壓檢測功能。按鍵類型為4*4的矩陣,即0~9,*,#,OK,↑, ↓,DEL鍵。本系統(tǒng)使用的LCD顯示屏的類型為HTM13264,分辨率是132*64的,顯示類型為點陣,數(shù)據(jù)輸入方式為SPI。
軟件編譯環(huán)境為Keil μVision4編譯器,μVision4集成開發(fā)環(huán)境、仿真器、調(diào)試器等,提供一個單純統(tǒng)一的環(huán)境,可以快速的編輯、仿真和調(diào)試程序。通過μVision4的工具條,就可以實現(xiàn)絕大多數(shù)調(diào)試和編輯的功能。
2.2 LCD菜單顯示需求分析
根據(jù)該系統(tǒng)菜單的設(shè)計,LCD屏幕分四行顯示,每行可以允許顯示8個漢字字符,16個英文字符,如圖2所示第一行是狀態(tài)欄,顯示感應(yīng)器注冊、通信模塊信號量和電池電量,其他三行根據(jù)不同場景顯示不同的內(nèi)容,所有設(shè)置項目分三級菜單。
2.3 LCD菜單顯示原理
菜單顯示設(shè)計主要分為按鍵處理和菜單窗口兩部分,主要原理是在主程序中設(shè)置一個按鍵處理程序,各菜單窗口利用統(tǒng)一的按鍵接口函數(shù)對按鍵處理程序中的按鍵函數(shù)指針進(jìn)行重定向設(shè)定,使得按鍵處理程序能夠指向各菜單窗口。每次按鍵操作完畢,均回到主程序。
2.3.1 菜單窗口實現(xiàn)方法
除狀態(tài)欄外,將其他所有需要顯示的菜單內(nèi)容窗口化,即空閑窗口,第一級菜單窗口,第二級菜單窗口,第三級菜單窗口,之外還需要增加提示窗口。以窗口為單位來顯示,可以簡化進(jìn)入、返回操作的處理。細(xì)化窗口下的顯示,即將每個窗口分為三行顯示,每行的顯示內(nèi)容根據(jù)上級窗口的ID來定義。為每個窗口配置一個按鍵處理回調(diào)函數(shù),在收到按鍵中斷后,交由回調(diào)函數(shù)處理當(dāng)前的窗口上的回調(diào)函數(shù)。
2.3.2 行顯示實現(xiàn)方法
顯示行的類型應(yīng)該分為可編輯字符型,可編輯密碼型和不可編輯類型。行的顯示是包含在窗口中的,需要為窗口創(chuàng)建一個顯示行的棧,或者是一個顯示數(shù)組,用來支撐列表式的顯示方式。
2.3.3 窗口進(jìn)入、退出規(guī)則
如圖3所示,為空閑界面下進(jìn)入其他菜單的處理規(guī)則,其他窗口的處理于此類似。所有非編輯窗口都做超時處理,超時后都要返回到空閑界面。窗口返回時,返回到上一窗口的進(jìn)入位置。
2.3.4 窗口具體實現(xiàn)方法
包含空閑窗口在內(nèi),整個界面的窗口顯示共有4個窗口??臻e窗口應(yīng)該為程序的常駐窗口,即開機后空閑窗口的顯示數(shù)據(jù)就會一直存在于RAM中,其余窗口則是根據(jù)按鍵事件的處理來創(chuàng)建和銷毀。由于無法做到動態(tài)內(nèi)存分配,所以窗口的銷毀并不會帶來內(nèi)存的釋放,而只是數(shù)據(jù)清除。每一級的窗口顯示列表根據(jù)菜單樹分級的定義應(yīng)該為一固定值,并為每一個項目條標(biāo)記一個ID,用作循環(huán)顯示以及作為類型標(biāo)記,如圖4所示。每個顯示窗口都包含3個顯示行數(shù)據(jù)結(jié)構(gòu),用來為每次屏幕刷新提供數(shù)據(jù)。每個按鍵設(shè)有專門的程序處理入口。
3 系統(tǒng)運行結(jié)果
在新唐NUC100上和HTM13254的硬件平臺上,實現(xiàn)了LCD多級菜單的顯示,參數(shù)設(shè)置及存儲功能。上電初始化屏幕之后,顯示的空閑屏幕通過輸入不同的密碼進(jìn)入不同的菜單窗口,當(dāng)輸入正確的安防密碼之后,進(jìn)入安防設(shè)置界面,如圖5所示;當(dāng)輸入正確的設(shè)置密碼之后,進(jìn)入操作設(shè)置界面,如圖6所示。以上兩個不同的窗口下,都可以通過上下鍵,移動光標(biāo),實現(xiàn)翻屏顯示;通過確定鍵進(jìn)入下一級菜單;通過返回鍵返回上一級菜單出口或者直接退出到空閑界面。
設(shè)置參數(shù)時,通過上下鍵和確認(rèn)鍵選擇要設(shè)置的參數(shù),不可編輯類型,如安防設(shè)置窗口,直接按下確定鍵設(shè)置??删庉嬜址?,如短信或者電話號碼設(shè)置,在進(jìn)入設(shè)置界面之后,通過上下鍵和確定鍵進(jìn)入電話號碼設(shè)置界面,通過上下鍵選擇要編輯的菜單項,此時,按下*號鍵,進(jìn)入編輯界面,如圖7所示,通過鍵盤上4*4的鍵盤矩陣,輸入大小寫字符及數(shù)字,按下確定鍵,即可保存輸入的數(shù)據(jù),如圖8所示。
實驗結(jié)果表明,LCD菜單屏顯示界面簡潔美觀,和鍵盤交互操作方便快捷。LCD菜單的顯示程序按模塊化設(shè)計,不受其他模塊程序等其他任何程序的影響。增加鍵盤有效性檢查,視誤操作為無效操作,保持在當(dāng)前窗口,減少了用戶的操作量;當(dāng)無線安防警報系統(tǒng)功能擴增時,LCD模塊程序的結(jié)構(gòu)不變,有利于功能擴展。
4 結(jié)束語
介紹了多級菜單新的設(shè)計模式,仿照棧的數(shù)據(jù)結(jié)構(gòu),使菜單設(shè)計變得更為簡單方便,軟件維護(hù)更容易,為每個菜單窗口配置一個按鍵處理回調(diào)函數(shù),產(chǎn)生按鍵中斷后,交由回調(diào)函數(shù)去處理當(dāng)前窗口上的按鍵反應(yīng)。通過安防警報系統(tǒng)實現(xiàn)的實際應(yīng)用表明,以上方法是切實有效的。同時,這些方法也為其他控制系統(tǒng)的多級菜單設(shè)計提供了參考和選擇。
評論