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