<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 測(cè)控系統(tǒng)的微機(jī)化監(jiān)控程序設(shè)計(jì)

          測(cè)控系統(tǒng)的微機(jī)化監(jiān)控程序設(shè)計(jì)

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

          33.jpg

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

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

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

          1.jpg

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

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

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

          表2中,各按鍵的FNKYC 值NUMB=數(shù)。數(shù)字鍵所對(duì)應(yīng)的NUMB值就是該鍵所規(guī)定的數(shù)字, 例如, [3] 的NUMB為3;[GHz] [MHz] [kHz] [Hz] 規(guī)定為10、11、12、13;其他鍵的NUMB值統(tǒng)一規(guī)定為0。

          2.jpg

          表2 按鍵的FNKYC值對(duì)照表

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

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

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

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

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

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

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

          44.jpg

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

          2.2.5 流程

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

          55.jpg

          圖5 流程

          3 結(jié)論

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

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

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

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


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

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();