原云峰
(山西機(jī)電職業(yè)技術(shù)學(xué)院,山西 長(zhǎng)治 046011)
人機(jī)界面(The Human-Machine Interface,HMI)即用戶(hù)界面(User Interface,簡(jiǎn)稱(chēng) UI),是設(shè)備與人之間通信交流的窗口[1]。通過(guò)該界面操作人員可實(shí)現(xiàn)與設(shè)備的交互作用。
一般人機(jī)界面系統(tǒng)由硬件和軟件兩部分組成,硬件部分主要包括微處理器單元、顯示單元、輸入單元、通信單元以及存貯單元等。其中微處理器是人機(jī)界面中最重要的元件,它的性能直接決定用戶(hù)界面產(chǎn)品的性能。
根據(jù)人機(jī)界面產(chǎn)品等級(jí)的不同,一般微處理器可選用8位、16位、32位的處理器。而軟件通常有兩種,一種為使用成熟組態(tài)軟件二次開(kāi)發(fā)的用戶(hù)界面,該類(lèi)型人機(jī)界面產(chǎn)品功能強(qiáng)大,界面美觀(guān),但對(duì)微處理器的要求較高,且成本較高;另外一種為普通界面,可完成基本的操作、數(shù)據(jù)顯示以及存儲(chǔ)功能,該軟件成本較低,對(duì)微處理器的要求也不高[2]。
微處理器(MCU)廣泛應(yīng)用于工業(yè)控制領(lǐng)域中,將它與液晶屏組合,可設(shè)計(jì)出功能較強(qiáng)的人機(jī)界面。MC9S12X是一款以16位HCS12X為內(nèi)核的微控制器(MCU)。它包括256kbyte的Flash,4 kbyte的 E2PROM,4個(gè)異步串行通訊接口(AsynchronousSerial Communications Interface,SCI),8通道增強(qiáng)型捕獲定時(shí)器(ECT),3個(gè)串行外圍接口(Serial Peripheral Interface,SPI),具體有 8 通道的 10位精度的模數(shù)轉(zhuǎn)換器(ADC),3個(gè) CAN 2.0A/B協(xié)議的MSCAN通訊口,如果需要外擴(kuò)總線(xiàn),它還具有獨(dú)立的23位地址總線(xiàn)和16位數(shù)據(jù)總線(xiàn)。其內(nèi)置的鎖相環(huán)電路可實(shí)現(xiàn)低功耗晶振,可根據(jù)系統(tǒng)的具體要求做出適當(dāng)?shù)恼{(diào)整[3]。
液晶顯示器(Liquid Crystal Display,LCD)[4],具有體積小、功耗小、清晰度高、無(wú)閃爍、重量輕、受外界磁場(chǎng)干擾小、價(jià)格低廉等優(yōu)點(diǎn),已在許多領(lǐng)域得以廣泛使用;雖然發(fā)光二級(jí)管(LED)具有亮度高、字體醒目、電壓低的特點(diǎn),但其顯示的信息量少,一般只用于顯示數(shù)據(jù)量不大的場(chǎng)合。目前,在一些專(zhuān)業(yè)領(lǐng)域上,LCD已逐漸取代LED[5]。
在用戶(hù)界面系統(tǒng)中,應(yīng)該具有友好的界面菜單,也就是用戶(hù)操作將更加簡(jiǎn)單明了;既能顯示漢字,還能顯示圖形,并具有英文或數(shù)字的輸入功能。本文采用LM1095R,它為192×128點(diǎn)陣中文/圖形液晶顯示模塊,內(nèi)置RA8803控制器。該液晶屏不僅可以顯示單一的文本、圖形,而且可以實(shí)現(xiàn)雙圖層的合成顯示,此外還能產(chǎn)生四階灰度的效果,并且在文本模式下能夠?qū)崿F(xiàn)大小字體的混編(最大字體為64×64);在連續(xù)輸入資料時(shí),可自動(dòng)設(shè)定行距;畫(huà)面美觀(guān),節(jié)省了用戶(hù)的開(kāi)發(fā)時(shí)間[5]。該液晶屏的特點(diǎn)為:①采用單電源供電,內(nèi)置升壓電路;②具有高對(duì)比度,F(xiàn)STN型LCD屏;③白色LED背光;④內(nèi)嵌簡(jiǎn)體中文字庫(kù)(7602個(gè)漢字);⑤雙圖層內(nèi)存(2×9.6K顯示存儲(chǔ)器)。
如圖1所示為微處理器MC9S12X與液晶模塊LM1095R的接口電路圖。
圖1 液晶接口電路
圖1中,DB0-DB7為數(shù)據(jù)總線(xiàn),用來(lái)傳輸數(shù)據(jù)或指令。/CS為片選端口,/RD為讀控制端口,/WR為寫(xiě)控制端口。該系統(tǒng)的具體工作流程為:當(dāng)/RD為高電平且/WR與/CS同時(shí)為低電平時(shí),表示微處理器正向液晶模塊寫(xiě)數(shù)據(jù);當(dāng)/WR為高電平且/RD=0與/CS同時(shí)為低電平時(shí),表示微處理器正從液晶模塊讀數(shù)據(jù)。RS是傳輸數(shù)據(jù)或者傳輸指令的控制端口,當(dāng)RS為高電平時(shí),表示微處理器通過(guò)DB0-DB7傳輸數(shù)據(jù);當(dāng)RS為低電平時(shí),表示微處理器通過(guò)DB0-DB7發(fā)出指令。Vout是液晶模塊調(diào)壓器的輸出電壓,V0是液晶模塊的對(duì)比度參數(shù)輸入,通過(guò)設(shè)置Vout和V0來(lái)控制液晶的對(duì)比度;BLA引腳為液晶模塊的背光引腳。
如圖2所示為液晶顯示屏的讀寫(xiě)時(shí)序圖。
圖2 LCD的讀寫(xiě)時(shí)序圖
按照時(shí)序圖編寫(xiě)寫(xiě)數(shù)據(jù)函數(shù)(總線(xiàn)頻率40MHz):
void write_data(unsigned char wrdata)
按照時(shí)序圖編寫(xiě)寫(xiě)寄存器函數(shù)(總線(xiàn)頻率40MHz):
void write_register(unsigned char address,unsigned char wrdata)
通過(guò)上面兩個(gè)函數(shù)就可以對(duì)液晶進(jìn)行進(jìn)一步的軟件編寫(xiě)。液晶顯示的初始化程序如下:
該設(shè)計(jì)將使液晶模塊能實(shí)時(shí)顯示微處理器所接收到的數(shù)據(jù),以及需要處理的數(shù)據(jù)值,并且具有翻行與翻頁(yè)功能,以方便用戶(hù)查看。該人機(jī)界面的另一功能為波形顯示,即可將存儲(chǔ)于存儲(chǔ)器的數(shù)據(jù)以波形的形式顯示于液晶屏上,方便使用者直觀(guān)地觀(guān)察數(shù)據(jù)的變化趨勢(shì)。
為了滿(mǎn)足人機(jī)界面的輸入要求,本文設(shè)計(jì)的人機(jī)界面還設(shè)計(jì)了輸入模塊,即通過(guò)8個(gè)按鍵來(lái)控制液晶屏的數(shù)據(jù)顯示和參數(shù)的修改。在微處理器中采用具有中斷功能的H端口來(lái)響應(yīng)按鍵的輸入,即一旦有按鍵按下,就會(huì)產(chǎn)生一個(gè)下降沿,微處理器在接收到這個(gè)下降沿后,就會(huì)觸發(fā)一次中斷,程序會(huì)自動(dòng)轉(zhuǎn)到鍵盤(pán)的中斷服務(wù)子程序,執(zhí)行中斷任務(wù)。如果沒(méi)有按鍵按下,微處理器的H端口將讀到高電平;即觸發(fā)任何按鍵都將使輸入變?yōu)榈碗娖剑瑥亩|發(fā)微處理器發(fā)生中斷。
輸入系統(tǒng)的部分程序?yàn)椋?/p>
函數(shù)initial_button()將H端口設(shè)置為輸入,下降沿觸發(fā)微處理器中斷。
在中斷函數(shù)中,首先需要進(jìn)行防抖動(dòng)處理,以提高系統(tǒng)的可靠性,之后再對(duì)按鍵進(jìn)行解釋?zhuān)源_定是哪個(gè)按鍵閉合,最后將按鍵標(biāo)志key_flag置“1”,退出中斷,回到主程序。
主程序中,循環(huán)讀取 key_flag,當(dāng) key_flag=1 時(shí)進(jìn)入按鍵子程序。
設(shè)計(jì)按鍵模塊的難點(diǎn)在于如何區(qū)分同一個(gè)按鍵在不同的情況下具有的不同功能,即同一按鍵功能的復(fù)用。本系統(tǒng)通過(guò)設(shè)置一個(gè)標(biāo)志,即modify_flag,將按鍵的功能分為兩類(lèi),一類(lèi)是普通模式,一類(lèi)是修改模式,這樣只用7個(gè)按鍵就可以完成大部分系統(tǒng)的功能。
本文給出了以微處理器MC9S12X為控制器的人機(jī)界面系統(tǒng)設(shè)計(jì)過(guò)程,詳細(xì)介紹了MC9S12X與液晶顯示屏之間的硬件設(shè)計(jì)以及軟件程序,并給出了輸入模塊的設(shè)計(jì)思路和方法。本文中的程序均為函數(shù)形式,采用C語(yǔ)言編寫(xiě),具有通用性和可移植性。
[1]王建國(guó).儀器產(chǎn)品的人機(jī)硬界面關(guān)系設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2004,(5):60-63.
[2]韋永辦.圖形模塊的菜單方式人機(jī)交互界面[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(11):32-33.
[3]常 越.M68HC08單片機(jī)原理及C語(yǔ)言開(kāi)發(fā)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2005.
[4]錢(qián)玲莉,陳 爭(zhēng),李業(yè)軍.液晶與液晶顯示器[J].現(xiàn)代電視技術(shù),2005,(9):96-97.
[5]張文志.當(dāng)前世界液晶材料的進(jìn)展[J].科技信息,2007,(19):46-47.