新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 測控系統的微機化監控程序設計

        測控系統的微機化監控程序設計

        作者: 時間:2012-04-17 來源:網絡 收藏

        引言

        本文引用地址:http://www.104case.com/article/194041.htm

        程序負責系統中全部硬件和軟件資源的分配、調度工作,是系統設計中的一個重要組成部分。它提供用戶接口, 使用戶獲得友好的工作環境, 使計算機獲得很高的效率和高度的自動化。隨著系統結構的日益復雜和功能的全面, 其程序的設計難度也越來越大。程序的質量直接影響系統的操作和運行,一個高質量的監控程序應是功能齊全、鍵數合理、操作方便、容錯性好。監控程序在一定的意義上就是鍵盤分析程序,因此如何在面積較小的面板上設計一個功能多、操作簡便的鍵盤操作系統成為智能儀器設計中非常重要的任務之一。

        鍵盤上的按鍵可分為2類:單義鍵和多義鍵。單義鍵,是指按鍵的含義是固定的,一個按鍵代表一個命令或一個數字,執行一種功能,即一鍵一義;多義鍵是指一個按鍵的鍵義不是單一的,而是具有多重含義,多個鍵互相配合才產生一個動作,執行一種功能,即一鍵多義。下面結合實例介紹這2種鍵盤監控程序的設計。

        1 單義鍵監控程序的設計

        CPU對鍵盤管理的方式一般有3種,即查詢法、中斷法和定時查詢法。這3種方式的主要差別在于CPU轉向鍵盤處理程序的方法。如果從邏輯講,都是“有鍵按下則轉去處理”。因此它們的鍵盤管理程序是可以相互轉化的。下面以查詢法為例,介紹一鍵一義鍵盤管理程序的設計。

        微處理器周而復始地掃描鍵盤,當發現按鍵時,首先判別是命令鍵還是數字鍵。若是數字鍵,則把按鍵讀數讀入存儲器,通常還進行顯示;若是命令鍵,則根據按鍵讀數查閱轉移表,以獲得處理子程序的入口。設一4×8的鍵盤,其中下面16個鍵為數字鍵,上面16個鍵為功能鍵。通過鍵盤掃描已經獲得按鍵的編碼,并且將該編碼存儲于累加器A中。那么,當鍵碼小于10H時為數字鍵,否則為功能鍵。具體程序如下:

        MOV R1,A

        CLR C

        SUBB A,#10H

        JC DIGIT

        MOV DPTR,#TBJ2

        MOV A,R1

        ANL A,#0FH

        ADD A,A

        JMP @A+DPTR

        TBJ2: AJMP PROG1

        AJMP PROG2

        ……

        AJMP PROGn

        DIGIT:……

        一鍵一義鍵盤管理的核心是一張一維的轉移表,在轉移表內順序登記了各個處理子程序的轉移命令。

        2 多義鍵監控程序的設計

        對于功能復雜的化系統,若仍然采用“一鍵一義”,則按鍵使用往往過多,不但增加了費用,而且面板難以布置,操作也不方便。因此,有些鍵盤設計成一鍵多義方式。在一鍵多義的情況下,一個命令不是由按鍵,而是由一個按鍵序列組成。也就是說,對于一個按鍵的解釋除了本次的按鍵外,還取決于這之前按了一些什么鍵。一鍵多義的監控程序有2種方法,即轉移表法和狀態轉移法。下面對這兩種方法進行介紹。

        2.1 轉移表法實現多義鍵監控程序

        多義鍵的監控程序仍然可以采用轉移表法進行設計,不過這時要用多張轉移表。首先,要判斷一個按鍵序列是否構成了一個合法的命令。若已經構成了合法命令,則根據前幾個按鍵把控制引向某張合適的轉移表,根據最后一個按鍵編碼查閱該轉移表,就找到了要求的子程序入口。

        以一個8回路溫控儀為例。該系統中有6個按鍵:C(回路號為1~8,第8回路為環境溫度補償,其余為控溫點)、P(參數號,有實測值、設定值、P、I、D參數,上下限報警值,輸出控制值等8個參數)、 Δ(加1)、Δ(減1)、R(運行)和S(停止運行)。顯然,這些按鍵都是一鍵多義的。 Δ和Δ鍵的工作執行與否,取決于前面按過的C和P鍵;R鍵的功能執行與否,取決于當前的C值。用轉移表法實現這些功能的流程如圖1所示。

        11.jpg

        圖1 轉移表法實現多義鍵監控程序流程

        從流程圖可以看出,用轉移表法實現多義鍵的設計需要兩級轉移表。

        一級轉移表

        TBJ1 AJMP RUM

        AJMP STOP

        AJMP INCR

        AJMP DECR

        AJMP CHAL

        AJMP PARA

        二級轉移表

        TBJ2 AJMP C1P0

        ……

        AJMP C1P7

        AJMP C2P0

        ……

        AJMPC7P7

        2.2 狀態轉移法實現多義鍵監控程序

        狀態轉移法是整體地來考慮應用系統,把它看作是一個系統,從而引入“狀態”的概念。將系統工作過程劃分為若干個“狀態”,在任一狀態下,每個按鍵都有一個確定的含義,即執行某一個子程序且變遷到下一個狀態(稱為“次態”,NEXST)。因此,就需要在存儲器內開辟一個單元記住當前狀態(稱為“現態”,PREST),根據當前狀態和當前按鍵這兩個關鍵詞,就能對當前按鍵的含義作出正確的解釋。用狀態轉移法設計的監控程序,其程序基本框架是相同的,具有通用性強、修改方便、便于閱讀的優點。本文結合“多功能波形發生器”應用實例,詳細介紹了狀態轉移法的監控過程。

        2.2.1 鍵語分析的定義

        鍵語必須有明確的定義, 而且應有一套無二意的語法規則。假設多功能波形發生器的按鍵如圖2 所示,且各按鍵的定義如下: AMPL(幅度)、FREQ(頻率)、FUNC(函數)、OFST(偏移)、MODE(模式)、UNIT(單元號)、ON(開)、OFF(關)、CHS(換符號)、DIG(數字鍵統稱)、MULT(乘法)。

        22.jpg

        圖2 多功能波形發生器的按鍵

        2.2.2 建立鍵語狀態圖

        用普通語言對全部鍵語做出詳盡準確的規定是很困難的, 可以用鍵語狀態圖的方法對全部的鍵語做出完備的定義。這里用圖3所示的鍵語狀態圖來描述鍵語的完備集。狀態圖中每一個方框表示一個狀態(按過一次鍵), 框內的數字是狀態的代號。箭頭表示狀態變遷的方向, 箭頭上的標語是一個按鍵的代名, 表示變遷的條件, 其中非法鍵統稱為“*”。假設最初開機時初始化使系統處于0態, 只要按過一個鍵之后, 系統就不可能再處于0態。假定系統現在處于0態,按下AMPL鍵后系統就轉入了1態。在1態中,如果按下CHS或者DIG鍵就可以進行幅值的設定;如果按下其他的鍵,則為無效鍵,系統重新回到0態。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南川市| 永州市| 庄浪县| 吴川市| 佳木斯市| 裕民县| 讷河市| 安福县| 桓仁| 平定县| 日照市| 石泉县| 普兰县| 河东区| 陈巴尔虎旗| 洪泽县| 长丰县| 牡丹江市| 兴和县| 巴彦淖尔市| 马边| 关岭| 聂荣县| 大冶市| 黑龙江省| 阿克| 齐河县| 舒兰市| 嘉禾县| 运城市| 资中县| 泗洪县| 郁南县| 祁连县| 常山县| 分宜县| 嘉祥县| 海南省| 汉中市| 安多县| 若羌县|