近年來,LCD顯示器的普及和微處理器向大容量的發(fā)展使嵌入式系統(tǒng)的人機交互功能得到了顯著的提高。在很多場合下,良好的圖形用戶界面(GUI)和便捷的操作環(huán)境是影響產(chǎn)品成敗的關(guān)鍵因素之一。如何充分利用成本低、資源少的單片機系統(tǒng)實現(xiàn)完善的人機交互功能已成為單片機設(shè)計者需要解決的一個問題。
目前,國內(nèi)外許多先進的智能儀表不僅在測量精度和采樣速率等方面有較高的性能指標(biāo),在人機交互的友好性方面也有許多獨到之處。筆者在為德國TOX沖壓技術(shù)有限公司研制智能壓力監(jiān)控儀的過程中,積累了一些嵌入式系統(tǒng)人機交互技術(shù)的沒計經(jīng)驗。本文以此為實例,介紹其設(shè)計方法。
1 智能壓力監(jiān)控儀概述
智能壓力監(jiān)控儀是為德國TOX沖壓技術(shù)有限公司研制的專用儀器。該公司專門生產(chǎn)金屬板件連接沖壓設(shè)備,為保證連接質(zhì)量,需對沖壓過程中的壓力進行監(jiān)測;并將被測值與設(shè)定的壓力上限和壓力下限進行比較,據(jù)此判定是否合格。圖l為TOX智能壓力監(jiān)控儀硬件系統(tǒng)的結(jié)構(gòu)框圖。它以片機為核心,配有壓力和位移傳感器、信號調(diào)理電路、LCD液晶顯示電路、按鍵、RS232和RS485通信接口,以及與PLC連接的輸入/輸出接口等。
TOX智能壓力臨控儀除了具有普通智能儀表所具有的測量功能、數(shù)據(jù)處理功能和通信功能外,還為用戶提供了友好的人機交互菜單。通過按鍵和LCD顯示器,可靈活地設(shè)定和查詢以下信息:測量程序號及對應(yīng)的壓力上、下限值;傳感器的類型、規(guī)格和靈敏度等;傳感器的零點偏移量和允許偏移的最大范圍;自動零點校驗功能是否啟用;通信接口是否啟用;通信接口的模式和地址;最新10組測量數(shù)據(jù);用戶密碼;文字種類(中文或英文);設(shè)備的維護周期和操作次數(shù)等。另外,設(shè)有存儲器保護功能。
2 控制面板及操作界面
圖2所示為TOX智能壓力監(jiān)控儀的控制面板,面板上有1個160×80點陣的LCD顯示器和6個按鍵。LCD顯示器每行能顯示20個英文或lO個中文符號,共5行;6個按鍵分別為0、ENTER和ESC。利用這6個按鍵,用戶可以隨意切換“測量”和“菜單”界面,進入菜單界面后,用戶還可以方便地設(shè)定和查詢有關(guān)信息。
打開電源后,設(shè)備將顯示版本號,接著進行“傳感器校準(zhǔn)”(可關(guān)閉此項功能),而后進入圖3所示的“測量”界面。
在測量界面下,如果接收到來自于PLC的測量命令,或用戶按下“F1”或“F2”鍵,則開始對通道1或通道2的壓力進行測量,隨后處理和顯示測量結(jié)果;如果用戶按下“ESC”鍵,則進入網(wǎng)4所示的“主菜單”界面。
進入主菜單界面后,按”鍵移動光標(biāo);按“ESC”鍵返回到上級菜單(即“測量”菜單);按“ENTER”鍵進入所選的子菜單。例如,當(dāng)光標(biāo)位于“測量程序”選項上時,若按下“ENTER”鍵,則進入圖5所示的“測量程序”輸入子菜單。
“測量程序”子菜單共有5個選項,分別是程序號以及通道1和通道2的壓力上、下限值(即最小值和最大值),用戶選定的設(shè)定值也同時給出。同樣,按鍵可以移動光標(biāo);按“ESC”鍵返回到上級菜單(即主菜單);按“ENTER”鍵進入光標(biāo)所在位置下級子菜單。例如,當(dāng)光標(biāo)位于通道l的“最小值”選項上時,若按下“ENTER”鍵,則進入圖6所示的“最小值”設(shè)定界面。
圖6中,“30.00”表示通道l的壓力最小值是30.00,“_”為光標(biāo)提示符。如果用戶要修改設(shè)定值,則可按、鍵將光標(biāo)移動到相應(yīng)的位上,然后再按鍵修改設(shè)定值。例如,當(dāng)光標(biāo)在當(dāng)前位置上時,若按“▲”鍵,則設(shè)定值由30.00變成31.00;若按鍵,則設(shè)定值30.00由變成29.00。這樣,只用4個按鍵,就可以方便地輸入設(shè)定值。
主菜單下的“傳感器配置”、“數(shù)據(jù)”和“其它”選項下也嵌套了不同數(shù)量的一級、二級甚至多級子菜單,供用戶查詢、修改數(shù)據(jù)和配置參數(shù)。
由此可見,盡管儀有6個操作按鍵和1個LCD顯示器,但TOX智能壓力監(jiān)控儀仍給操作者提供了友好的操作環(huán)境,實現(xiàn)了人機交互。
3 人機交互菜單的設(shè)計
本設(shè)計中,主菜單和子菜單多達20余頁,且有中、英文2種文字供用戶選擇,從而增大了應(yīng)用層程序設(shè)計的難度。程序采用模塊化結(jié)構(gòu),主要包括以下幾個模塊:
界面切換控制模塊:為按用戶要求切換操作界面,定義了一個Page_Point映像寄存器,其值在O~P-l之間變化,P為操作界面的個數(shù)。如果Page_Point=O,則LCD顯示器上顯示第0頁窗體(為圖3所示的測量界面);如果Page_Point=l,則LCD顯示器上顯示第1頁窗體(為圖4所示的主菜單界面)。當(dāng)用戶按下“ENTER”或“ESC”鍵后,根據(jù)選項光標(biāo)所在的位置修改Page_Point的值,然后更新顯示窗體,實現(xiàn)人機交互。
按鍵掃描模塊:對6個操作按鍵進行掃描,將結(jié)果存在Key_Status映像寄存器中。該寄存器有6個有效位,分別是Key_Up、Key_Down、Key_Left、Key_Right、Key_Esc及Key_Enter,依次對應(yīng)操作面板上的6個按鍵“ESC”及“ENTER”。如果標(biāo)志位為l,則意味著對應(yīng)的按鍵按下;反之,則松開。
選項管理控制模塊:若當(dāng)前的操作界面屬于“選項界面”(圖4所示的主菜單界面和圖5所示的測量程序子界面均屬于選項界面),則按下鍵,光標(biāo)“>”所在的位置向上或向下移動l項。為此,定義了一個Option_Point映像寄存器,其值為0~N-1(N為選項個數(shù))。若主菜單有4個選項,則N=4,此時Option_Point為O~3;若測量程序子菜單有5個選項,則N=5,此時Option_Point為0~4。圖7為選項管理控制模塊的程序流程圖。
數(shù)據(jù)輸入模塊:若當(dāng)前的操作界面屬于“置數(shù)界面”(圖6所示的最小值設(shè)定界面就屬于置數(shù)界面),則按下和鍵,光標(biāo)“_”所在的位置向左或向右移動1位。為此,定義了一個Bit_Point映像寄存器,用于記錄可以修改的數(shù)據(jù)位所在的位置。按下鍵,可將當(dāng)前光標(biāo)所在數(shù)據(jù)位上的數(shù)值加“l”或減“l”,例如,在圖6所示的最小值設(shè)定界面中,若按“▲”鍵,則設(shè)定值由30.00變成31.00;若按“v”鍵,則設(shè)定值由30.OO變成29.00。用4個鍵,即可方便地輸入滿足用戶要求的任何數(shù)值。圖8為數(shù)據(jù)輸入模塊的程序流程圖。
利用上述模塊,只需少量的程序代碼就可以靈活地實現(xiàn)選項、修改數(shù)據(jù)及切換操作界面等功能。
本設(shè)計采用匯編語言編程,所片j單片機為性能較低的PICl6F877A,盡管其程序存儲器只有8KB,但卻實現(xiàn)了20多頁操作界面的顯示和切換,以及數(shù)十個數(shù)據(jù)的設(shè)定和杳詢等人機交互功能,同時還實現(xiàn)了測量、監(jiān)控和通信功能。
4 結(jié)論
嵌入式系統(tǒng)的人機交互技術(shù)日趨完善。通過LCD顯示器和少量的幾個按鍵,利用軟件在嵌入式系統(tǒng)設(shè)計中實現(xiàn)參數(shù)設(shè)定和數(shù)據(jù)管理等人機交互功能,增強了操作的趣味性和功能性,有助于提高系統(tǒng)的附加值。