掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著社會(huì)需要和科學(xué)技術(shù)的發(fā)展,產(chǎn)品的競(jìng)爭(zhēng)愈來(lái)愈激烈,更新的周期愈來(lái)愈短,因而要求設(shè)計(jì)者能很快地設(shè)計(jì)出新產(chǎn)品;而在產(chǎn)品的整體設(shè)計(jì)中,人機(jī)交互界面的設(shè)計(jì)往往占據(jù)著很大一部分工作,這樣,不但極大地增加了產(chǎn)品的開(kāi)發(fā)成本而且延長(zhǎng)了產(chǎn)品的上市周期。本文論述的基于P89C51RD2的人機(jī)交互界面是一種界面可定制、結(jié)構(gòu)緊湊、價(jià)格低廉、簡(jiǎn)單易用、性能優(yōu)良的通用型人機(jī)交互界面,能很好地解決上述問(wèn)題。
1 系統(tǒng)工作原理
1.1 工作原理
按照實(shí)際應(yīng)用中控制系統(tǒng)的需要及控制系統(tǒng)與人機(jī)交互界面的約定,通過(guò)PC機(jī)上的可視化人機(jī)界面定制軟件,定制好整個(gè)界面信息,再把定制好的界面信息下載到人機(jī)交互界面系統(tǒng)中,就可以輕松地實(shí)現(xiàn)人機(jī)界面的定制。在應(yīng)用中,人機(jī)交互界面通過(guò)串行接口與控制系統(tǒng)進(jìn)行交互,發(fā)送按鍵等信息給控制系統(tǒng),并接收所需的可變信息,以完成人機(jī)交互。
現(xiàn)以空壓機(jī)控制器的部分人機(jī)界面為例來(lái)說(shuō)明相關(guān)概念,界面系統(tǒng)示意圖如圖1所示。相關(guān)概念說(shuō)明如下:
![]() |
①屏幕,即LCD顯示區(qū),由一個(gè)或多個(gè)屏幕項(xiàng)組成;
②屏幕項(xiàng),即屏幕里面的按其顯示內(nèi)容的性質(zhì)差異來(lái)劃分的一個(gè)個(gè)整體單元,如文本屏幕項(xiàng)等;
③屏幕項(xiàng)的分類(lèi),按其顯示內(nèi)容的性質(zhì)差異分為文本、整型、浮點(diǎn)型、枚舉型、圖形等。
整個(gè)人機(jī)界面系統(tǒng)由一個(gè)個(gè)存在鏈接關(guān)系的屏幕構(gòu)成,而每個(gè)屏幕又由一個(gè)或多個(gè)屏幕項(xiàng)組成。各屏幕項(xiàng)有其自身的屬性,也存在著某些相互的鏈接關(guān)系(例如,由某個(gè)屏幕項(xiàng)鏈接到另外一個(gè)屏)。這樣,通過(guò)對(duì)各屏幕項(xiàng)的合理組織而構(gòu)成一個(gè)鏈表網(wǎng)絡(luò),再通過(guò)對(duì)此鏈表網(wǎng)絡(luò)的操作來(lái)實(shí)現(xiàn)人機(jī)界面的操作,即屏幕的顯示操作。
1.2 系統(tǒng)的工作過(guò)程
系統(tǒng)的軟件部分由用戶(hù)引導(dǎo)程序和應(yīng)用程序組成。系統(tǒng)運(yùn)行后,由用戶(hù)引導(dǎo)程序決定是執(zhí)行界面信息的更新還是正常運(yùn)行。若執(zhí)行界面信息的更新,則系統(tǒng)通過(guò)串行接口從上位機(jī)接收界面定制信息,并通過(guò)在應(yīng)用編程(IAP)功能保存所接收的信息,然后通過(guò)本地讀取新的界面定制信息建立鏈表網(wǎng)絡(luò);若正常運(yùn)行,則直接從本地讀取舊的界面定制信息建立鏈表網(wǎng)絡(luò)。應(yīng)用程序?qū)崿F(xiàn)的功能包括按鍵的輸入、界面的顯示及與控制系統(tǒng)的通信。
2 系統(tǒng)硬件設(shè)計(jì)及電路原理圖
本系統(tǒng)采用Philips公司功能強(qiáng)大、資源豐富的P89C51RD2單片機(jī)作為微控制器,通過(guò)擴(kuò)展液晶模塊及按鍵模塊來(lái)構(gòu)成人機(jī)交互界面。系統(tǒng)的硬件電路原理如圖2所示。
![]() |
2.1 P89C51RD2單片機(jī)簡(jiǎn)介
P89C51RD2是Philips公司內(nèi)核基于8位80C51單片機(jī)的派生產(chǎn)品,在完全保留80C51指令系統(tǒng)和硬件結(jié)構(gòu)的大框架下,進(jìn)行了多方面的加強(qiáng)、擴(kuò)展和創(chuàng)新。P89C51RD2具有64 KB并行可編程的非易失性Flash程序存儲(chǔ)器,并可實(shí)現(xiàn)對(duì)器件串行在系統(tǒng)編程和在應(yīng)用中編程。
2.2 液晶顯示模塊
本系統(tǒng)采用的是OCM12864圖形點(diǎn)陣液晶顯示模塊。OCM12864液晶顯示模塊是128×64點(diǎn)陣型液晶顯示模塊,可顯示各種字符及圖形,可與CPU直接相連;具有8位標(biāo)準(zhǔn)數(shù)據(jù)總線(xiàn)、6條控制線(xiàn)及電源線(xiàn)。
2.3 按鍵輸入模塊
根據(jù)系統(tǒng)的需要,系統(tǒng)至少需要設(shè)定如下6個(gè)屏幕操作按鍵:左、右、上、下、換屏、確定按鍵。其中,左、右鍵用于切換屏幕項(xiàng);上、下鍵用于修改可變屏幕項(xiàng);確定鍵用于產(chǎn)生所選屏幕項(xiàng)對(duì)應(yīng)的功能動(dòng)作;換屏鍵用于進(jìn)入所選中項(xiàng)的鏈接屏幕,若當(dāng)前屏幕沒(méi)有選中項(xiàng),則進(jìn)入首項(xiàng)鏈接的屏幕。當(dāng)然,可以根據(jù)需要擴(kuò)充數(shù)字按鍵及功能按鍵。
本系統(tǒng)采用普通的矩陣式按鍵結(jié)構(gòu),也稱(chēng)“行列式鍵盤(pán)結(jié)構(gòu)”。系統(tǒng)中設(shè)計(jì)4行4列共16個(gè)鍵,只占用8根I/O口線(xiàn),鍵數(shù)多而占用I/O口線(xiàn)少。除上述6個(gè)屏幕操作按鍵外,余下的10個(gè)鍵可由用戶(hù)根據(jù)需要定制功能,如數(shù)字鍵或功能鍵。
3 系統(tǒng)軟件設(shè)計(jì)
由于系統(tǒng)的功能實(shí)現(xiàn)不是特別復(fù)雜,故采用基于前后臺(tái)的傳統(tǒng)的控制程序設(shè)計(jì)方法。系統(tǒng)的程序流程如圖3所示。
![]() |
3.1 用戶(hù)引導(dǎo)程序設(shè)計(jì)
由系統(tǒng)的程序流程可知,用戶(hù)引導(dǎo)程序在系統(tǒng)上電后執(zhí)行。首先它檢查是否需要下載定制界面信息,當(dāng)檢查到需要下載時(shí),便接收主機(jī)經(jīng)串口傳來(lái)的定制界面數(shù)據(jù),啟動(dòng)IAP功能,對(duì)Flash進(jìn)行操作,把接收到的數(shù)據(jù)存入預(yù)定的位置。接著進(jìn)入界面系統(tǒng)構(gòu)建階段。若沒(méi)有下載請(qǐng)求,就直接進(jìn)入界面系統(tǒng)構(gòu)建階段。
在界面系統(tǒng)構(gòu)建階段,通過(guò)讀取預(yù)定位置處的信息,建立一個(gè)鏈表風(fēng)格?;谶@個(gè)鏈表網(wǎng)絡(luò)的操作也就是苦于界面系統(tǒng)的操作。
3.1.1 相關(guān)設(shè)定
屏幕項(xiàng)組成:顯示信息(如顯示位置、類(lèi)型、內(nèi)容等)和鏈接信息(此項(xiàng)所鏈接的屏等)。綜合各方面的需要,設(shè)定主要相關(guān)數(shù)據(jù)結(jié)構(gòu)如下:
![]() |
其中,back、ahead用于構(gòu)建屏幕項(xiàng)的雙向循環(huán)鏈表;next用于構(gòu)建鏈接屏的單向循環(huán)鏈表;init用于原始的屏與屏的鏈接。
3.1.2 鏈表網(wǎng)絡(luò)構(gòu)成
同一屏幕的項(xiàng)構(gòu)成雙向循環(huán)鏈表、鏈接屏幕構(gòu)成單向循環(huán)鏈表。實(shí)現(xiàn)方法:先以屏為單位建立每屏的橫向雙向循環(huán)鏈表;再遍歷各屏的雙向鏈表,為各屏的項(xiàng)建立鏈接關(guān)系,進(jìn)而構(gòu)成一個(gè)鏈表網(wǎng)絡(luò)。如界面系統(tǒng)示意圖(圖1)所示,功能選擇、維護(hù)信息、故障記錄、用戶(hù)設(shè)定、廠(chǎng)家設(shè)定5個(gè)屏幕項(xiàng)構(gòu)成1個(gè)屏的橫向雙向鏈表,而以維護(hù)信息、濾清器使用時(shí)間、分離器使用時(shí)間3項(xiàng)所在的屏構(gòu)成鏈接屏的單向循環(huán)鏈表,最終構(gòu)成圖4所示的鏈表網(wǎng)絡(luò)示意圖。
![]() |
下面介紹具體實(shí)現(xiàn)步驟。
(1)屏幕項(xiàng)的橫向雙向循環(huán)鏈表構(gòu)建
因從PC機(jī)下載到人機(jī)界面的定制界面信息是按如下格式保存在預(yù)定Flash中的(其中,各屏之間以SCREEN_END字符常量為分界),故在構(gòu)建項(xiàng)的橫向雙向鏈表時(shí),先從預(yù)定的位置逐一讀取項(xiàng)的信息并填充到項(xiàng)的結(jié)構(gòu)中,最后插入到雙向鏈表中。
格式說(shuō)明:STA代表起始符、END代表結(jié)束符、L代表本幀數(shù)據(jù)的字節(jié)長(zhǎng)度、x/y/LinkNo/SreenNo/Item_ID/Select/type見(jiàn)data_t結(jié)構(gòu)中的說(shuō)明。
①文本項(xiàng)格式:STA+L+x,y,LinkNo,ScreenNo,Item_ID,Select,type(1),string(文本內(nèi)容)+END。
②整型、浮點(diǎn)項(xiàng):STA+L+x,y,LinkNo,ScreenNo,Item_ID,Select,type(2/3)+END。
③枚舉項(xiàng):STA+L+x,y,LinkNo,ScreenNo,Item_ID,Select,type(4),count(枚舉項(xiàng)數(shù)),string1(字符串1),string2(字符串2),…,+END。
相關(guān)函數(shù):int add_item_node(link_t pNode,data_te);把項(xiàng)節(jié)點(diǎn)插入到橫向雙向鏈表中。
(2)鏈接屏的單向循環(huán)鏈表構(gòu)建
遍歷已生成的各屏的雙向鏈表,為各屏的項(xiàng)建立鏈接關(guān)系,進(jìn)而構(gòu)成一個(gè)鏈表網(wǎng)絡(luò)。
相關(guān)函數(shù):int create_net(link_t head);遍歷各屏的雙向鏈表,建立鏈表網(wǎng)絡(luò)。
3.2 應(yīng)用程序設(shè)計(jì)
應(yīng)用程序負(fù)責(zé)完成按鍵的掃描及處理、界面的顯示、與控制系統(tǒng)的通信。
由系統(tǒng)的流程框圖可知,構(gòu)建好鏈表網(wǎng)絡(luò)后就進(jìn)入應(yīng)用程序階段,即系統(tǒng)進(jìn)入正常運(yùn)行狀態(tài)。通過(guò)系統(tǒng)中設(shè)定當(dāng)前屏指針、當(dāng)前項(xiàng)指針及已構(gòu)建的鏈表網(wǎng)絡(luò)等來(lái)實(shí)現(xiàn)人機(jī)交互界面的操作。
3.2.1 人機(jī)界面與控制系統(tǒng)的通信格式
格式說(shuō)明:STA代表起始符,END代表結(jié)束符,type代表類(lèi)型。
(1)人機(jī)界面→控制系統(tǒng)
①索取變量信息:STA+type(1)+Item_ID(項(xiàng)的ID)+END
②按鍵:STA+type(2)+按鍵個(gè)數(shù)+鍵值1(,鍵值2,…)十Item_ID(項(xiàng)的ID)+END
說(shuō)明:通信格式②中的Item_ID可以為0。
當(dāng)為0時(shí),表示當(dāng)前無(wú)選中項(xiàng)或功能按鍵。
(2)控制系統(tǒng)→人機(jī)界面
①返回變量信息:STA+type(1)+Item_ID(項(xiàng)的ID)+content(內(nèi)容)+END
②按鍵確認(rèn):STA+type(2)+END
③按鍵確認(rèn)并返回修改后的變量信息:STA+type(3)+content(內(nèi)容)+END
3.2.2 界面的顯示
通過(guò)遍歷當(dāng)前屏幕的橫向雙向循環(huán)鏈表來(lái)逐一顯示屏幕項(xiàng)。其中對(duì)各類(lèi)項(xiàng)的處理如下:
①當(dāng)屏幕項(xiàng)是文本時(shí),直接讀取并顯示。
②當(dāng)屏幕項(xiàng)為整型、浮點(diǎn)時(shí),通過(guò)向控制系統(tǒng)索取其值并顯示。
③當(dāng)屏幕項(xiàng)為枚舉時(shí),通過(guò)向控制系統(tǒng)索取其值,再按值讀取對(duì)應(yīng)的字符串并顯示。
3.2.3 按鍵的處理
所有的按鍵都先發(fā)送到控制系統(tǒng),并等待其確認(rèn)。存在如下按鍵類(lèi)型及相應(yīng)的處理:
①當(dāng)為功能鍵時(shí),直接發(fā)送給控制系統(tǒng),人機(jī)界面不做進(jìn)一步處理。
②當(dāng)為上、下鍵時(shí),如果當(dāng)前屏幕有選中項(xiàng)且是可變項(xiàng)時(shí)(如整型、浮點(diǎn)等),則接收處理后的信息并顯示。
③當(dāng)為左、右鍵時(shí),如有可選項(xiàng),則進(jìn)行當(dāng)前屏的屏幕項(xiàng)選擇或切換(通過(guò)操作橫向雙向循環(huán)鏈表來(lái)實(shí)現(xiàn))。
④當(dāng)為確定鍵時(shí),如果當(dāng)前屏幕有選中項(xiàng),則啟用該項(xiàng)的功能(通過(guò)發(fā)送該鍵值及項(xiàng)的ID給控制系統(tǒng))。
⑤當(dāng)為換屏鍵時(shí),如果當(dāng)前屏幕有選中項(xiàng)并且此項(xiàng)有鏈接,則進(jìn)入該項(xiàng)的鏈接屏幕;如果沒(méi)有選中項(xiàng)且屏幕的首項(xiàng)有鏈接,則進(jìn)入此鏈接屏幕(通過(guò)操作鏈接屏的單向循環(huán)鏈表來(lái)實(shí)現(xiàn))。
結(jié) 語(yǔ)
從數(shù)據(jù)結(jié)構(gòu)的角度出發(fā),綜合利用PC機(jī)、P89C51RD2的IAP等功能,并結(jié)合控制系統(tǒng),巧妙地設(shè)計(jì)出一種通用型可定制的人機(jī)交互界面。使用這種人機(jī)交互界面,無(wú)論是新產(chǎn)品的開(kāi)發(fā)還是產(chǎn)品的更新升級(jí),都可以減少開(kāi)發(fā)的工作量,縮短開(kāi)發(fā)的時(shí)間,為產(chǎn)品贏(yíng)得寶貴的上市時(shí)間,從而可以增強(qiáng)企業(yè)的競(jìng)爭(zhēng)力,因此該系統(tǒng)具有十分廣闊的市場(chǎng)前景。
本設(shè)計(jì)創(chuàng)新點(diǎn):
①使用P89C51RD2的IAP功能把定制好的界面信息存儲(chǔ)于Flash中,實(shí)現(xiàn)界面信息的更新。
②基于數(shù)據(jù)結(jié)構(gòu),提出了一種通過(guò)創(chuàng)建鏈表網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)對(duì)定制好的界面進(jìn)行動(dòng)態(tài)組織,進(jìn)而實(shí)現(xiàn)界面的可定制功能。該功能使人機(jī)交互界面的設(shè)計(jì)更加快捷,進(jìn)而減少開(kāi)發(fā)的工作量,縮短開(kāi)發(fā)的時(shí)間。
李寧官方微博19日發(fā)布聲明稱(chēng),近日,網(wǎng)絡(luò)上出現(xiàn)對(duì)于“逐夢(mèng)行”秀款部分產(chǎn)品的討論,李寧公司對(duì)此高度關(guān)注。此次相關(guān)產(chǎn)品的設(shè)計(jì)及造型給大家?guī)?lái)了困惑和疑慮,我們表示誠(chéng)摯的歉意。本次“逐夢(mèng)行”秀款產(chǎn)品的設(shè)計(jì)以“飛行”為主題,從飛...
關(guān)鍵字: 防護(hù) 網(wǎng)絡(luò)據(jù)CNMO了解,有韓媒報(bào)道稱(chēng),韓國(guó)將在下個(gè)月公布下一代網(wǎng)絡(luò)戰(zhàn)略,為6G移動(dòng)通信的商業(yè)化做準(zhǔn)備。據(jù)悉,戰(zhàn)略中除了6G網(wǎng)絡(luò)的智能化、融合和空間擴(kuò)展的技術(shù)戰(zhàn)略外,還將提出公私合營(yíng)的合作方式。
關(guān)鍵字: 6G 網(wǎng)絡(luò) 戰(zhàn)略前不久,一位意大利女航天員在網(wǎng)絡(luò)上走紅,因?yàn)樗诤M馍缃黄脚_(tái)上發(fā)布了一組太空攝影作品,并配上了中國(guó)著名書(shū)法家王羲之所著《蘭亭集序》中一句描繪宇宙景觀(guān)的古文。“仰觀(guān)宇宙之大,俯察品類(lèi)之盛,所以游目騁懷,足以極視...
關(guān)鍵字: 衛(wèi)星 航天器 網(wǎng)絡(luò) MIDDOT這兩年來(lái)Wi-Fi 6無(wú)線(xiàn)網(wǎng)絡(luò)得到了大家的認(rèn)可,現(xiàn)在的手機(jī)及路由器幾乎都支持了這一標(biāo)準(zhǔn),速度超過(guò)家里的千兆帶寬沒(méi)問(wèn)題,在下一代的無(wú)線(xiàn)就是Wi-Fi 7了,高通日前首次演示了Wi-Fi 7的實(shí)際速度,達(dá)到了5Gbps。
關(guān)鍵字: 5G 網(wǎng)絡(luò) 高通Wi-Fi 7工廠(chǎng)運(yùn)用創(chuàng)新的工業(yè)4.0技術(shù)和循環(huán)經(jīng)濟(jì)能力,加速可持續(xù)的先進(jìn)制造實(shí)踐 上海2022年10月17日 /美通社/ -- 近日,偉創(chuàng)力宣布其位于巴西索羅卡巴(Sorocaba)的工廠(chǎng)已獲準(zhǔn)加入世界經(jīng)濟(jì)論壇全球燈塔網(wǎng)絡(luò)(GLN...
關(guān)鍵字: 偉創(chuàng)力 網(wǎng)絡(luò) 工業(yè)4.0 可持續(xù)發(fā)展量子網(wǎng)絡(luò)是一類(lèi)遵循量子力學(xué)規(guī)律進(jìn)行高速數(shù)學(xué)和邏輯運(yùn)算、存儲(chǔ)及處理量子信息的物理裝置。當(dāng)某個(gè)裝置處理和計(jì)算的是量子信息,運(yùn)行的是量子算法時(shí),它就是量子網(wǎng)絡(luò)。量子網(wǎng)絡(luò)的概念源于對(duì)可逆計(jì)算機(jī)的研究。研究可逆計(jì)算機(jī)的目的是為了解...
關(guān)鍵字: 歐洲 量子計(jì)算機(jī) 網(wǎng)絡(luò)摘要:詳細(xì)分析了木地板自動(dòng)鋪設(shè)裝置的工作原理,介紹了其結(jié)構(gòu)組成、關(guān)鍵部位和控制系統(tǒng),同時(shí)闡述了木地板自動(dòng)鋪設(shè)裝置的特點(diǎn),并從實(shí)用角度分析了木地板自動(dòng)鋪設(shè)裝置的可用性。另外,運(yùn)用UG NX12.0三維建模軟件構(gòu)建了該裝置的...
關(guān)鍵字: 自動(dòng)鋪設(shè)裝置 三維建模 控制系統(tǒng)摘要:隨著我國(guó)城鎮(zhèn)化進(jìn)程加快,汽車(chē)保用量劇增,土地資源緊缺,停車(chē)難問(wèn)題日益嚴(yán)重,提升車(chē)位空間的利用率是目前解決這個(gè)問(wèn)題的有效途徑之一。鑒于此,設(shè)計(jì)了一種基于PLC與小程序的自助立體停車(chē)庫(kù),以PLC為控制系統(tǒng)的核心,服務(wù)器...
關(guān)鍵字: 控制系統(tǒng) PLC 通信協(xié)議北京2022年10月14日 /美通社/ -- 近年來(lái),WiFi技術(shù)在醫(yī)療場(chǎng)景中得到廣泛應(yīng)用,無(wú)論是無(wú)線(xiàn)查房、無(wú)線(xiàn)護(hù)理、無(wú)線(xiàn)輸液,還是醫(yī)護(hù)人員定位管理、特殊患者定位看護(hù)、嬰兒防盜等醫(yī)療服務(wù),無(wú)線(xiàn)網(wǎng)絡(luò)都承擔(dān)至關(guān)重要的角色。近...
關(guān)鍵字: 網(wǎng)絡(luò) 聯(lián)網(wǎng) 智慧醫(yī)療 智慧醫(yī)院北京2022年10月14日 /美通社/ -- 2022年10月14日,亞馬遜云科技舉辦一年一度的中國(guó)合作伙伴峰會(huì)。本屆峰會(huì)以"價(jià)值成就 探索無(wú)限"為主題,面向合作伙伴推出"3+3價(jià)值成就體系...
關(guān)鍵字: 亞馬遜 網(wǎng)絡(luò) AC MARKET