測量儀表的非線性處理技術(shù)
單片機結(jié)構(gòu)的測量儀表,經(jīng)常需要對測量變量進行非線性處理。比如,工業(yè)測量中經(jīng)常使用的熱電阻感溫元件的電阻(電壓)與溫度的關(guān)系就是非線性的。計算機對這類測量變量進行工程值轉(zhuǎn)換時,通常是將它們的電壓/電流信號值及對應(yīng)工程值的非線性列表(表1)存入計算機中,然后,當(dāng)檢測該變量時,通過查表比較,換算出對應(yīng)的工程值。當(dāng)然,查表換算所需的分段轉(zhuǎn)換斜率也應(yīng)存入計算機。
查表法用高級程序語言很容易處理,但在匯編語言中實現(xiàn)卻比較困難。我們注意到,MCS-51單片機指令系統(tǒng)雖然沒有單獨的比較指令,但設(shè)計了多條比較轉(zhuǎn)移指令,它們既有比較功能,又能根據(jù)比較結(jié)果控制程序轉(zhuǎn)移。特別是CJNEA,direct,rel指令,具有A和direct兩個可變參數(shù)的單元,可以說是這類指令中功能最強的指令。將測量信號的A/D轉(zhuǎn)換值放入直接地址單元direct,累加器A用來依次取查表值,就可以很方便地實現(xiàn)查表比較,我們設(shè)計查表循環(huán)結(jié)構(gòu)就以該指令為核心來實現(xiàn)。
對程序的數(shù)據(jù)結(jié)構(gòu)進行合理設(shè)計,也可以大大簡化和優(yōu)化程序。為了便于讀取表值,可在程序初始化時,就將Xi表值從外部存儲器讀入8031片內(nèi)RAM工作區(qū),并使其地址碼與Yi表對應(yīng),這樣可以共用一個地址指針。如圖1所示。Xi/Yi表各包含16個參數(shù),由于查表時讀取Xi的操作最頻繁,將Xi表調(diào)入片內(nèi)RAM無疑會提高程序的運行效率。
為了提高計算精度,我們在外部存儲器中除保存轉(zhuǎn)換表外,還存儲了Xi+1-Xi的差值,沒有直接使用轉(zhuǎn)換斜率Ki。
在此數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)上,該程序流程圖設(shè)計如圖2。
入口:被測信號經(jīng)數(shù)字濾波后的計數(shù)值→RAM6AH單元
出口:經(jīng)過非線性轉(zhuǎn)換的工程值→RAM6BH單元該程序清單如下:
可以在儀表面板設(shè)置一個“參數(shù)設(shè)定”鍵,用于輸入和保存轉(zhuǎn)換表的參數(shù)。保存參數(shù)的外部存儲器可以選用6264RAM。目前各種非易失存儲器芯片已獲得廣泛應(yīng)用,其中DS1225芯片與6264完全兼容,它自帶鋰電池,保存數(shù)據(jù)的有效期為10年。將轉(zhuǎn)換表存儲在該芯片中就更加方便實用,同時DSl225還可用于保存歷史數(shù)據(jù)。
參考文獻
[1]孫涵芳,徐愛卿.MCS-51/96系列單片機原理及應(yīng)用[M].北京:北京航空航天出版社,1988.
發(fā)布人:2009/12/16 11:49:00856
發(fā)布時間:2009/12/16 11:49:00
此新聞已被瀏覽:856次