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