當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]隨著社會需要和科學(xué)技術(shù)的發(fā)展,產(chǎn)品的競爭愈來愈激烈,更新的周期愈來愈短,因而要求設(shè)計者能很快地設(shè)計出新產(chǎn)品;而在產(chǎn)品的整體設(shè)計中,人機(jī)交互界面的設(shè)計往往占據(jù)著很大一部分工作,這樣,不但極大地增加了產(chǎn)品的開發(fā)成本而且延長了產(chǎn)品的上市周期。本文論述的基于P89C51RD2的人機(jī)交互界面是一種界面可定制、結(jié)構(gòu)緊湊、價格低廉、簡單易用、性能優(yōu)良的通用型人機(jī)交互界面,能很好地解決上述問題。

引 言

隨著社會需要和科學(xué)技術(shù)的發(fā)展,產(chǎn)品的競爭愈來愈激烈,更新的周期愈來愈短,因而要求設(shè)計者能很快地設(shè)計出新產(chǎn)品;而在產(chǎn)品的整體設(shè)計中,人機(jī)交互界面的設(shè)計往往占據(jù)著很大一部分工作,這樣,不但極大地增加了產(chǎn)品的開發(fā)成本而且延長了產(chǎn)品的上市周期。本文論述的基于P89C51RD2的人機(jī)交互界面是一種界面可定制、結(jié)構(gòu)緊湊、價格低廉、簡單易用、性能優(yōu)良的通用型人機(jī)交互界面,能很好地解決上述問題。

1 系統(tǒng)工作原理

1.1 工作原理

按照實際應(yīng)用中控制系統(tǒng)的需要及控制系統(tǒng)與人機(jī)交互界面的約定,通過PC機(jī)上的可視化人機(jī)界面定制軟件,定制好整個界面信息,再把定制好的界面信息下載到人機(jī)交互界面系統(tǒng)中,就可以輕松地實現(xiàn)人機(jī)界面的定制。在應(yīng)用中,人機(jī)交互界面通過串行接口與控制系統(tǒng)進(jìn)行交互,發(fā)送按鍵等信息給控制系統(tǒng),并接收所需的可變信息,以完成人機(jī)交互。

現(xiàn)以空壓機(jī)控制器的部分人機(jī)界面為例來說明相關(guān)概念,界面系統(tǒng)示意圖如圖1所示。相關(guān)概念說明如下:

①屏幕,即LCD顯示區(qū),由一個或多個屏幕項組成;

②屏幕項,即屏幕里面的按其顯示內(nèi)容的性質(zhì)差異來劃分的一個個整體單元,如文本屏幕項等;

③屏幕項的分類,按其顯示內(nèi)容的性質(zhì)差異分為文本、整型、浮點型、枚舉型、圖形等。

整個人機(jī)界面系統(tǒng)由一個個存在鏈接關(guān)系的屏幕構(gòu)成,而每個屏幕又由一個或多個屏幕項組成。各屏幕項有其自身的屬性,也存在著某些相互的鏈接關(guān)系(例如,由某個屏幕項鏈接到另外一個屏)。這樣,通過對各屏幕項的合理組織而構(gòu)成一個鏈表網(wǎng)絡(luò),再通過對此鏈表網(wǎng)絡(luò)的操作來實現(xiàn)人機(jī)界面的操作,即屏幕的顯示操作。

1.2 系統(tǒng)的工作過程

系統(tǒng)的軟件部分由用戶引導(dǎo)程序和應(yīng)用程序組成。系統(tǒng)運行后,由用戶引導(dǎo)程序決定是執(zhí)行界面信息的更新還是正常運行。若執(zhí)行界面信息的更新,則系統(tǒng)通過串行接口從上位機(jī)接收界面定制信息,并通過在應(yīng)用編程(IAP)功能保存所接收的信息,然后通過本地讀取新的界面定制信息建立鏈表網(wǎng)絡(luò);若正常運行,則直接從本地讀取舊的界面定制信息建立鏈表網(wǎng)絡(luò)。應(yīng)用程序?qū)崿F(xiàn)的功能包括按鍵的輸入、界面的顯示及與控制系統(tǒng)的通信。

2 系統(tǒng)硬件設(shè)計及電路原理圖

本系統(tǒng)采用Philips公司功能強大、資源豐富的P89C51RD2單片機(jī)作為微控制器,通過擴(kuò)展液晶模塊及按鍵模塊來構(gòu)成人機(jī)交互界面。系統(tǒng)的硬件電路原理如圖2所示。

2.1 P89C51RD2單片機(jī)簡介

P89C51RD2是Philips公司內(nèi)核基于8位80C51單片機(jī)的派生產(chǎn)品,在完全保留80C51指令系統(tǒng)和硬件結(jié)構(gòu)的大框架下,進(jìn)行了多方面的加強、擴(kuò)展和創(chuàng)新。P89C51RD2具有64 KB并行可編程的非易失性Flash程序存儲器,并可實現(xiàn)對器件串行在系統(tǒng)編程和在應(yīng)用中編程。

2.2 液晶顯示模塊

本系統(tǒng)采用的是OCM12864圖形點陣液晶顯示模塊。OCM12864液晶顯示模塊是128×64點陣型液晶顯示模塊,可顯示各種字符及圖形,可與CPU直接相連;具有8位標(biāo)準(zhǔn)數(shù)據(jù)總線、6條控制線及電源線。

2.3 按鍵輸入模塊

根據(jù)系統(tǒng)的需要,系統(tǒng)至少需要設(shè)定如下6個屏幕操作按鍵:左、右、上、下、換屏、確定按鍵。其中,左、右鍵用于切換屏幕項;上、下鍵用于修改可變屏幕項;確定鍵用于產(chǎn)生所選屏幕項對應(yīng)的功能動作;換屏鍵用于進(jìn)入所選中項的鏈接屏幕,若當(dāng)前屏幕沒有選中項,則進(jìn)入首項鏈接的屏幕。當(dāng)然,可以根據(jù)需要擴(kuò)充數(shù)字按鍵及功能按鍵。

本系統(tǒng)采用普通的矩陣式按鍵結(jié)構(gòu),也稱“行列式鍵盤結(jié)構(gòu)”。系統(tǒng)中設(shè)計4行4列共16個鍵,只占用8根I/O口線,鍵數(shù)多而占用I/O口線少。除上述6個屏幕操作按鍵外,余下的10個鍵可由用戶根據(jù)需要定制功能,如數(shù)字鍵或功能鍵。

3 系統(tǒng)軟件設(shè)計

由于系統(tǒng)的功能實現(xiàn)不是特別復(fù)雜,故采用基于前后臺的傳統(tǒng)的控制程序設(shè)計方法。系統(tǒng)的程序流程如圖3所示。

3.1 用戶引導(dǎo)程序設(shè)計

由系統(tǒng)的程序流程可知,用戶引導(dǎo)程序在系統(tǒng)上電后執(zhí)行。首先它檢查是否需要下載定制界面信息,當(dāng)檢查到需要下載時,便接收主機(jī)經(jīng)串口傳來的定制界面數(shù)據(jù),啟動IAP功能,對Flash進(jìn)行操作,把接收到的數(shù)據(jù)存入預(yù)定的位置。接著進(jìn)入界面系統(tǒng)構(gòu)建階段。若沒有下載請求,就直接進(jìn)入界面系統(tǒng)構(gòu)建階段。

在界面系統(tǒng)構(gòu)建階段,通過讀取預(yù)定位置處的信息,建立一個鏈表風(fēng)格。基于這個鏈表網(wǎng)絡(luò)的操作也就是苦于界面系統(tǒng)的操作。

3.1.1 相關(guān)設(shè)定

屏幕項組成:顯示信息(如顯示位置、類型、內(nèi)容等)和鏈接信息(此項所鏈接的屏等)。綜合各方面的需要,設(shè)定主要相關(guān)數(shù)據(jù)結(jié)構(gòu)如下:

其中,back、ahead用于構(gòu)建屏幕項的雙向循環(huán)鏈表;next用于構(gòu)建鏈接屏的單向循環(huán)鏈表;init用于原始的屏與屏的鏈接。

3.1.2 鏈表網(wǎng)絡(luò)構(gòu)成

同一屏幕的項構(gòu)成雙向循環(huán)鏈表、鏈接屏幕構(gòu)成單向循環(huán)鏈表。實現(xiàn)方法:先以屏為單位建立每屏的橫向雙向循環(huán)鏈表;再遍歷各屏的雙向鏈表,為各屏的項建立鏈接關(guān)系,進(jìn)而構(gòu)成一個鏈表網(wǎng)絡(luò)。如界面系統(tǒng)示意圖(圖1)所示,功能選擇、維護(hù)信息、故障記錄、用戶設(shè)定、廠家設(shè)定5個屏幕項構(gòu)成1個屏的橫向雙向鏈表,而以維護(hù)信息、濾清器使用時間、分離器使用時間3項所在的屏構(gòu)成鏈接屏的單向循環(huán)鏈表,最終構(gòu)成圖4所示的鏈表網(wǎng)絡(luò)示意圖。

下面介紹具體實現(xiàn)步驟。

(1)屏幕項的橫向雙向循環(huán)鏈表構(gòu)建

因從PC機(jī)下載到人機(jī)界面的定制界面信息是按如下格式保存在預(yù)定Flash中的(其中,各屏之間以SCREEN_END字符常量為分界),故在構(gòu)建項的橫向雙向鏈表時,先從預(yù)定的位置逐一讀取項的信息并填充到項的結(jié)構(gòu)中,最后插入到雙向鏈表中。

格式說明:STA代表起始符、END代表結(jié)束符、L代表本幀數(shù)據(jù)的字節(jié)長度、x/y/LinkNo/SreenNo/Item_ID/Select/type見data_t結(jié)構(gòu)中的說明。

①文本項格式:STA+L+x,y,LinkNo,ScreenNo,Item_ID,Select,type(1),string(文本內(nèi)容)+END。

②整型、浮點項:STA+L+x,y,LinkNo,ScreenNo,Item_ID,Select,type(2/3)+END。

③枚舉項:STA+L+x,y,LinkNo,ScreenNo,Item_ID,Select,type(4),count(枚舉項數(shù)),string1(字符串1),string2(字符串2),…,+END。

相關(guān)函數(shù):int add_item_node(link_t pNode,data_te);把項節(jié)點插入到橫向雙向鏈表中。

(2)鏈接屏的單向循環(huán)鏈表構(gòu)建

遍歷已生成的各屏的雙向鏈表,為各屏的項建立鏈接關(guān)系,進(jìn)而構(gòu)成一個鏈表網(wǎng)絡(luò)。

相關(guān)函數(shù):int create_net(link_t head);遍歷各屏的雙向鏈表,建立鏈表網(wǎng)絡(luò)。

3.2 應(yīng)用程序設(shè)計

應(yīng)用程序負(fù)責(zé)完成按鍵的掃描及處理、界面的顯示、與控制系統(tǒng)的通信。

由系統(tǒng)的流程框圖可知,構(gòu)建好鏈表網(wǎng)絡(luò)后就進(jìn)入應(yīng)用程序階段,即系統(tǒng)進(jìn)入正常運行狀態(tài)。通過系統(tǒng)中設(shè)定當(dāng)前屏指針、當(dāng)前項指針及已構(gòu)建的鏈表網(wǎng)絡(luò)等來實現(xiàn)人機(jī)交互界面的操作。

3.2.1 人機(jī)界面與控制系統(tǒng)的通信格式

格式說明:STA代表起始符,END代表結(jié)束符,type代表類型。

(1)人機(jī)界面→控制系統(tǒng)

①索取變量信息:STA+type(1)+Item_ID(項的ID)+END

②按鍵:STA+type(2)+按鍵個數(shù)+鍵值1(,鍵值2,…)十Item_ID(項的ID)+END

說明:通信格式②中的Item_ID可以為0。

當(dāng)為0時,表示當(dāng)前無選中項或功能按鍵。

(2)控制系統(tǒng)→人機(jī)界面

①返回變量信息:STA+type(1)+Item_ID(項的ID)+content(內(nèi)容)+END

②按鍵確認(rèn):STA+type(2)+END

③按鍵確認(rèn)并返回修改后的變量信息:STA+type(3)+content(內(nèi)容)+END

3.2.2 界面的顯示

通過遍歷當(dāng)前屏幕的橫向雙向循環(huán)鏈表來逐一顯示屏幕項。其中對各類項的處理如下:

①當(dāng)屏幕項是文本時,直接讀取并顯示。

②當(dāng)屏幕項為整型、浮點時,通過向控制系統(tǒng)索取其值并顯示。

③當(dāng)屏幕項為枚舉時,通過向控制系統(tǒng)索取其值,再按值讀取對應(yīng)的字符串并顯示。

3.2.3 按鍵的處理

所有的按鍵都先發(fā)送到控制系統(tǒng),并等待其確認(rèn)。存在如下按鍵類型及相應(yīng)的處理:

①當(dāng)為功能鍵時,直接發(fā)送給控制系統(tǒng),人機(jī)界面不做進(jìn)一步處理。

②當(dāng)為上、下鍵時,如果當(dāng)前屏幕有選中項且是可變項時(如整型、浮點等),則接收處理后的信息并顯示。

③當(dāng)為左、右鍵時,如有可選項,則進(jìn)行當(dāng)前屏的屏幕項選擇或切換(通過操作橫向雙向循環(huán)鏈表來實現(xiàn))。

④當(dāng)為確定鍵時,如果當(dāng)前屏幕有選中項,則啟用該項的功能(通過發(fā)送該鍵值及項的ID給控制系統(tǒng))。

⑤當(dāng)為換屏鍵時,如果當(dāng)前屏幕有選中項并且此項有鏈接,則進(jìn)入該項的鏈接屏幕;如果沒有選中項且屏幕的首項有鏈接,則進(jìn)入此鏈接屏幕(通過操作鏈接屏的單向循環(huán)鏈表來實現(xiàn))。

結(jié) 語

從數(shù)據(jù)結(jié)構(gòu)的角度出發(fā),綜合利用PC機(jī)、P89C51RD2的IAP等功能,并結(jié)合控制系統(tǒng),巧妙地設(shè)計出一種通用型可定制的人機(jī)交互界面。使用這種人機(jī)交互界面,無論是新產(chǎn)品的開發(fā)還是產(chǎn)品的更新升級,都可以減少開發(fā)的工作量,縮短開發(fā)的時間,為產(chǎn)品贏得寶貴的上市時間,從而可以增強企業(yè)的競爭力,因此該系統(tǒng)具有十分廣闊的市場前景。

本設(shè)計創(chuàng)新點:

①使用P89C51RD2的IAP功能把定制好的界面信息存儲于Flash中,實現(xiàn)界面信息的更新。

②基于數(shù)據(jù)結(jié)構(gòu),提出了一種通過創(chuàng)建鏈表網(wǎng)絡(luò)來實現(xiàn)對定制好的界面進(jìn)行動態(tài)組織,進(jìn)而實現(xiàn)界面的可定制功能。該功能使人機(jī)交互界面的設(shè)計更加快捷,進(jìn)而減少開發(fā)的工作量,縮短開發(fā)的時間。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉