<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-04-17 來(lái)源:網(wǎng)絡(luò ) 收藏

33.jpg

圖3 鍵語(yǔ)狀態(tài)圖

2.2.3 建立鍵語(yǔ)狀態(tài)表

根據鍵語(yǔ)狀態(tài)圖就可以制作出鍵語(yǔ)狀態(tài)表。狀態(tài)表中規定:當儀器設備處于某一狀態(tài)(現態(tài))時(shí),若滿(mǎn)足一定的條件就必須脫離該狀態(tài)而進(jìn)入另一個(gè)指定的狀態(tài)(次態(tài)),以及儀器設備所應采取的行動(dòng)。該系統的部分狀態(tài)表如表1所列。

1.jpg

表1 鍵語(yǔ)狀態(tài)表

對于每個(gè)按鍵, 可以用2個(gè)變量描述其特征:

FNKYC = 功能性鍵碼(functional keycode),用來(lái)代替每一按鍵的實(shí)際鍵碼編碼。功能相同的按鍵可以賦予相同的FNKYC 值, 例如一切數字鍵的FNKYC值為1。各按鍵的FNKYC值如表2所列。

表2中,各按鍵的FNKYC 值NUMB=數。數字鍵所對應的NUMB值就是該鍵所規定的數字, 例如, [3] 的NUMB為3;[GHz] [MHz] [kHz] [Hz] 規定為10、11、12、13;其他鍵的NUMB值統一規定為0。

2.jpg

表2 按鍵的FNKYC值對照表

2.2.4 建立狀態(tài)索引表

根據狀態(tài)表可以建立狀態(tài)索引表,狀態(tài)索引表為兩級表。其中,第一級狀態(tài)索引表中為每一狀態(tài)的轉移命令;第二級狀態(tài)索引表中,為該狀態(tài)下按下某一鍵后進(jìn)入的次態(tài)和執行的子程序號。

如圖3所示, 系統共有7 種不同的狀態(tài),可以在內存的一塊連續空間中存儲這7 種狀態(tài)的特征,這就是第一級狀態(tài)索引表。而對應于每一狀態(tài)的相關(guān)參數可以用下面幾個(gè)變量來(lái)描述。

① FNKYT: 狀態(tài)表中所列的功能性鍵碼。將根據實(shí)際按下的鍵的FNKYC 值, 查找狀態(tài)表中是否有一個(gè)與之相符的FNKYT值。

② NEXST: 下一個(gè)狀態(tài)(NEXT STATE)。它指出當某一FNKYC 與FNKYT 相符時(shí), 系統應進(jìn)入哪一個(gè)狀態(tài)。

③ ACTN: 行動(dòng)子程序號碼。它指出當系統處于某一狀態(tài)時(shí)所應執行的行動(dòng)。

這3個(gè)參量就建立了第二級狀態(tài)索引表。該系統的狀態(tài)索引表如圖4所示。

44.jpg

圖4 狀態(tài)索引表

2.2.5 流程

現在可以設計鍵語(yǔ)分析程序。首先,要有一個(gè)識鍵程序來(lái)識別所按下的按鍵,從所獲得的實(shí)際鍵碼中求出其對應的FNKYC 和NUMB 值, 這可以利用查表法或適當的算法得到;然后,根據當前的狀態(tài)PREST在第一級狀態(tài)索引表中得到對應當前狀態(tài)的第二級索引表的入口地址,在第二級狀態(tài)索引表中將FNKYC與表中的FNKYT逐項比較,當二者相同時(shí)得到對應該按鍵的下一個(gè)狀態(tài)NEXST, 以及所對應的行動(dòng)ACTN; 隨后, 把這個(gè)NEXST 值替換為當前狀態(tài)PREST。如果FNKYT為0時(shí)始終沒(méi)有與FNKYC對應的FNKYT,就意味著(zhù)該FNKYT是一個(gè)非法鍵, 應該不予理睬; 反之, 則是有效鍵, 程序就轉移到相應的子程序去執行。具體設計流程如圖5所示。

55.jpg

圖5 流程

3 結論

用狀態(tài)法進(jìn)行多義鍵的設計,有以下幾方面的優(yōu)點(diǎn):

① 應用一張狀態(tài)表, 統一處理任何一組按鍵和狀態(tài)的組合, 化繁為簡(jiǎn), 降低了的難度, 增強了程序的可讀性。

② 翻譯、解釋按鍵程序和執行子程序完全分離,避免了兩者之間的相互交叉和混淆。

③ 當系統的功能發(fā)生改變時(shí), 主控程序的結構不變, 只需對狀態(tài)表進(jìn)行修改。


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

關(guān)鍵詞: 測控系統 微機 監控 程序設計

評論


相關(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>