<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 智能儀器中一種菜單式人機界面的軟硬件設計

智能儀器中一種菜單式人機界面的軟硬件設計

作者: 時(shí)間:2012-10-18 來(lái)源:網(wǎng)絡(luò ) 收藏

這種結構還很適合在改進(jìn)和升級時(shí)功能程序模塊的增加和變換。比如系統要增加子任務(wù)B2d,只要在如圖4 所示的win3 屏顯中插入這個(gè)選項為opt = 3 ,使該屏為5 選項,則當標志■選中該項時(shí)程序即調用執行子任務(wù)B2d的子程序。要增加主任務(wù)D的方法是類(lèi)似的,只要在win1 屏顯中加入這個(gè)選項,然后程序根據菜單的選擇來(lái)分支就行了。

圖4  顯示界面的部分屏顯匯總

圖4 顯示界部分屏顯匯總

3 基于界面狀態(tài)的程序結構

儀表的系統程序結構,由按鍵和作業(yè)的對應關(guān)系可分為一鍵一義型和一鍵多義型兩種結構。

對于一鍵多義型系統程序,作業(yè)的調度條件是多因數的,不僅與外因(鍵盤(pán)操作) 有關(guān),也與內因(系統當前所處的狀態(tài)) 有關(guān)。為此,引入系統狀態(tài)的概念,即將系統運行情況分成若干狀態(tài)(如圖4 所示的界面狀態(tài)和選項狀態(tài),選項狀態(tài)屬于界面狀態(tài)的子狀態(tài)) ,使得在任何一個(gè)狀態(tài)下每一個(gè)按鍵只有唯一的定義。這樣一來(lái),系統運行去向就可以由當前狀態(tài)和當前鍵碼來(lái)共同決定了。儀表正由一鍵一義型向一鍵多義型進(jìn)化。如用圖4 所示的顯示界面來(lái)表征系統當前所處的狀態(tài),其程序結構稱(chēng)之為基于界面狀態(tài)的程序結構。

為提高系統效率,對鍵盤(pán)(或旋轉式光電編碼開(kāi)關(guān)) 的操作響應可采用中斷的方式進(jìn)行。進(jìn)入鍵中斷服務(wù)程序后,先判別是增建、減鍵、確認鍵(或旋轉式光電編碼開(kāi)關(guān)的左旋右旋按下選定) 的哪一個(gè)鍵碼觸發(fā)中斷;接著(zhù)判別當前系統所處的狀態(tài)(當前的顯示屏號win 及選項號opt ) ; 再由鍵碼key ,系統狀態(tài)win 和opt 決定執行什么作業(yè)。程序框圖如圖5 所示。值得一提的是,對那些不適合在中斷服務(wù)程序中執行或執行時(shí)間過(guò)長(cháng)的作業(yè)(如打印等) ,可在中斷服務(wù)程序中置位該作業(yè)的啟動(dòng)標志,待中斷返回后在主程序中再執行選中的作業(yè),完成后清除該作業(yè)的啟動(dòng)標志。

圖5  基于界面的交互過(guò)程

圖5 基于界交互過(guò)程

4 操作界上位機介入

電子技術(shù)的飛速發(fā)展,使嵌入式系統中的存儲器體積越來(lái)越小、容量越來(lái)越大。但是,如果要在一臺試驗用的儀器上進(jìn)行日積月累的試驗數據的查詢(xún)和管理,如果要使儀器的實(shí)時(shí)試驗曲線(xiàn)具有較高的分辨率和對局部曲線(xiàn)進(jìn)行分析,如果要使儀器的操作能遠程控制,那么,儀器單機的資源就略顯不足。

滿(mǎn)足上述要求的通常做法是用PC 機(或筆記本電腦) 作為儀器的上位機,通過(guò)RS232 串口(或USB口) 與儀器通信構成自動(dòng)測試系統,使儀器共享上位計算機的資源,進(jìn)一步增強儀器的性能。

基于界面狀態(tài)的程序結構為上位計算機介入后對儀器的控制提供了很好的軟件平臺。微處理器在響應串口中斷的中斷服務(wù)程序中,首先從接收到的上位機傳來(lái)的信息判斷是何種作業(yè),然后用調用子程序的方法,調用圖4 所示的基于界面狀態(tài)的opt 作業(yè)程序。這樣,原來(lái)基于界面狀態(tài)的程序結構幾乎不用改動(dòng),只要在串口中斷服務(wù)程序中根據上位機的命令來(lái)分支調用子程序就行了。當然,在上位機控制下執行相應作業(yè)時(shí),儀器上的液晶顯示界面仍然將同步顯示當前作業(yè),為遠程操作儀器和實(shí)地監視儀器提供了方便。

5 結 語(yǔ)

大屏幕點(diǎn)陣式液晶顯示器和內置大容量程序存儲器的微處理器的出現,給儀器儀表的化進(jìn)程推波助瀾。上述交互界面的,僅是筆者在工程項目中的初步嘗試,基本達到了結構簡(jiǎn)單、操作方便、編程高效和界面友好的效果。用后臺大量的工作換取前臺操作的極其簡(jiǎn)單和方便,應是儀器儀表業(yè)內同行始終追求的境界。

電能表相關(guān)文章:電能表原理

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>