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