王 娟,謝 檬
(西安交通大學(xué)城市學(xué)院電氣與信息工程系,陜西西安710018)
溫度是人們在工農(nóng)業(yè)和日常生活中的一項重要生產(chǎn)生活指標(biāo),有著極其重要的作用,尤其是一些特殊場合,對溫度的精度測量也會有一定的要求,而熱電阻傳感器適用于對溫度檢測精度要求比較高的場合,熱電阻傳感器能夠用于檢測-200℃~+600℃范圍內(nèi)的溫度[1-4]。而單片微型計算機(即單片機)憑借其豐富的接口,以及軟件程序?qū)崿F(xiàn)硬件功能的特性,彌補了熱電阻單獨測溫時不能滿足工業(yè)要求精度的劣勢[5-6]。文中設(shè)計的基于89C52單片機的高精度熱電阻溫度采集測量模塊,使得溫度控制精度大大提高,滿足工業(yè)控制和日常生活對測溫的要求。
本設(shè)計硬件系統(tǒng)主要由單片機主控模塊、溫度采集模塊、A/D轉(zhuǎn)換模塊、LCD顯示模塊、矩陣鍵盤模塊等組成。溫度測試儀的硬件結(jié)構(gòu)框圖如圖1所示。
圖1 溫度測試儀的硬件結(jié)構(gòu)框圖
溫度采集模塊,也就是測溫與信號放大模塊電路,如圖2所示,該測溫模塊主要由PT100鉑熱電阻和LM358芯片組成。
LM358內(nèi)部有兩個高增益的雙運算放大器,運放U1A將VREF轉(zhuǎn)換為恒流源,電流流過PT100時在其上產(chǎn)生壓降,再通過U1B將該微弱信號放大,即輸出期望的電壓信號,可直接用于AD轉(zhuǎn)換。LM358的封裝形式有貼片式和直插式,但是貼片式的封裝不利于電路的焊接,所以本設(shè)計中選用的封裝方式是雙列直插式。等效恒流源輸出的電流最好不超過1 mA,以免電流大使得PT100電阻自身發(fā)熱造成測量溫度不準(zhǔn)確[7-9]。
由熱電阻的恒流源調(diào)理電路可知,電路放大倍數(shù)為10倍,VREF為基準(zhǔn)電壓[10]。本設(shè)計中基準(zhǔn)電壓是4.096 V,采用TO-92封裝方式的基準(zhǔn)電壓芯片MCP1541產(chǎn)生,信號穩(wěn)定且便于電路的焊接。
圖2 測溫與信號放大電路
A/D轉(zhuǎn)換模塊主要由A/D芯片TLC2543及其外圍電路組成,其硬件電路圖如圖3所示。
圖3 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換模塊主要由A/D芯片TLC2543及其外圍電路組成,本設(shè)計中只使用一路A/D轉(zhuǎn)換通道,這里選擇通道0即AIN0。TLC2543芯片的各種功能由控制字節(jié)來控制實現(xiàn),比如選擇使用哪個模擬量輸入通道等,控制字節(jié)存放在控制寄存器中,是從低位D0到高位D7的8位數(shù)據(jù),通過配置這8位數(shù)據(jù)可以控制TLC2543芯片使用哪路A/D通道、數(shù)據(jù)輸出的格式和位數(shù)等等功能[11-12]。
D0決定了轉(zhuǎn)換出的結(jié)果輸出的格式;
D1為0時,輸出數(shù)據(jù)格式為高位在前,D0為1時,輸出格式為低位在前;
D2和D3為01時,輸出的數(shù)據(jù)為8位數(shù)據(jù),D2、D3為11時,輸出的數(shù)據(jù)為16位數(shù)據(jù),D2、D3為X1時,輸出的數(shù)據(jù)為12位數(shù)據(jù);
D4、D5、D6、D7為 1100-1110的時候,芯片檢測片內(nèi)電壓。當(dāng)它們?yōu)?111時,芯片的電流為25 μA,進(jìn)入休眠低功耗模式。
最初,CS為高電平,時鐘輸入輸出和數(shù)據(jù)輸入都被禁止了且都為高阻抗?fàn)顟B(tài)。CS由高電平到低電平時開始序列轉(zhuǎn)換,時鐘輸入輸出和數(shù)據(jù)輸入的高祖抗?fàn)顟B(tài)被刪除,功能被開啟。輸入數(shù)據(jù)是一個8位數(shù)據(jù)流和4比特組成的模擬通道地址(D7-D4)還有2比特的數(shù)據(jù)長度,選擇(D3-D2),一個輸出MSB和LSB,第1位(D1),和一個單極或雙極輸出選擇(D0)應(yīng)用于數(shù)據(jù)輸入。在這個轉(zhuǎn)變過程中,I/O時鐘序列也從之前的輸出數(shù)據(jù)得出轉(zhuǎn)換結(jié)果。
人機交互對話最通用的方法就是通過鍵盤和LCD顯示進(jìn)行的,操作者通過鍵盤向系統(tǒng)發(fā)送各種指令或置入必要的數(shù)據(jù)信息,并將結(jié)果通過LCD屏顯示出來。
本設(shè)計中選擇使用矩陣鍵盤連接方式[13],硬件設(shè)計圖上的P13、P14、P15、P16是接在單片機引腳上的。
本設(shè)計采用的LCD1602低功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。單片機內(nèi)部P1口、P2口、P3口都有內(nèi)部上拉電阻,而P0口沒有內(nèi)部上拉電阻,設(shè)計中P0口連接LCD1602顯示模塊,所以在電路中給P0口加了10K的上拉電阻。
系統(tǒng)軟件主要對A/D模塊傳遞的數(shù)值進(jìn)行計算,計算出PT100鉑熱電阻的阻值,然后根據(jù)該阻值通過查表法得出相應(yīng)的溫度數(shù)值,再將溫度數(shù)值在LCD上顯示出來。按鍵可以變換溫度的顯示模式,分別是攝氏溫度、華氏溫度、開氏溫度。如果沒有按鍵按下,LCD將顯示攝氏溫度;如果有按鍵按下,根據(jù)按鍵值,LCD將顯示相應(yīng)的溫度模式。系統(tǒng)軟件流程圖如圖4所示。
圖4 系統(tǒng)軟件流程圖
A/D轉(zhuǎn)換芯片使用的是TI公司的TLC2543芯片,這款芯片使用SPI串行數(shù)據(jù)傳輸方式,而本設(shè)計中只用到芯片的一路轉(zhuǎn)換通道。在這個轉(zhuǎn)變過程中,輸出的數(shù)字量數(shù)據(jù)為Dn=2n×VIN/VREF。
LCD1602能夠同時顯示16x02即32個字符,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。
LCD1602顯示屏使用HD44780控制,該芯片中包含多個寄存器,在顯示之前,需要對相關(guān)寄存器進(jìn)行設(shè)置,即LCD初始化。初始化完畢以后,就可以進(jìn)行數(shù)據(jù)的傳輸。根據(jù)相應(yīng)的控制方式,將計算出的溫度數(shù)值各個位提取出來,方便顯示。顯示子程序流程圖如圖5所示。
圖5 顯示流程圖
系統(tǒng)中鍵盤采用矩陣鍵盤方案。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。要使單片機能檢測到矩陣鍵盤中的按鍵按下,需使用鍵盤掃描的方式對按鍵進(jìn)行檢測,即先將鍵盤逐行置低,在此過程中,逐列檢測,如果檢測到某列連接的引腳為低,說明該行與該列的交叉點的按鍵被按下,根據(jù)行值與列值計算鍵值,將鍵值記錄下來。
按鍵設(shè)置在行、列線交點上,行、列線分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接到+5 V電源上。無按鍵按下時,行線處于高電平的狀態(tài),當(dāng)有按鍵按下時,行線電平與此行線相連的列線電平?jīng)Q定。
在本設(shè)計鍵盤掃描中,如果檢測到按鍵1按下,則返回值為1;檢測到按鍵2按下,返回值為2;檢測到按鍵3按下,返回值為3;檢測到按鍵4,返回值為4;初始時,沒有按鍵按下,返回值為0。所以在主程序中會根據(jù)返回的鍵值來顯示不同的溫度模式:當(dāng)鍵值為0或者4時,溫度顯示模式普通溫度模式;當(dāng)鍵值為1時,溫度顯示為攝氏溫度模式;當(dāng)鍵值為2時,溫度顯示為華氏溫度模式;當(dāng)鍵值為3時,溫度顯示為開氏溫度模式。
將程序下載到單片機中,LCD1602液晶顯示屏插入正確位置,PT100鉑熱電阻連接至電路板中,安裝好電池,之后打開電源對系統(tǒng)進(jìn)行功能測試。所選擇比較的標(biāo)定測試儀器參數(shù)指標(biāo)如下:
測量范圍:-200.0~600.0 ℃;傳感器:PT100;顯示:五位LCD;基本誤差:±0.05%、±0.2%;采樣時間:1~2 s;環(huán)境條件:溫度:-40~70 ℃;相對濕度:90%RH。
具體測試步驟:
1)將PT100探測頭端置于冰水混合物中靜置幾分鐘,然后觀察顯示屏數(shù)值。
2)將PT100探測頭端與數(shù)字溫度計置于同一杯常溫水中靜置一段時間,觀察顯示屏與數(shù)字溫度計數(shù)值并且進(jìn)行對比,如圖6所示。
圖6 本系統(tǒng)與數(shù)字溫度計同時測溫水溫度
3)將PT100探測頭端與數(shù)字溫度計置于同一壺剛燒開的水中,觀察顯示屏數(shù)值并讀取數(shù)字溫度計數(shù)值,如圖7所示。
圖7 本系統(tǒng)與溫度計同時測開水溫度
4)在上一步驟操作完后,將水壺蓋打開散熱,PT100探測頭與數(shù)字溫度計放置在水中不變,每隔3分鐘記錄一次顯示屏的數(shù)值與數(shù)字溫度計的數(shù)值。
5)重復(fù)上述步驟多次,測量多組數(shù)據(jù)。
6)對測量的數(shù)據(jù)進(jìn)行統(tǒng)計分析。
通過上述的測試步驟,得出了一組測量溫度數(shù)據(jù)見表1。
表1 測量數(shù)據(jù)統(tǒng)計表
在以上的測試中,假設(shè)數(shù)字溫度計測量的數(shù)值為溫度的實際數(shù)值,那么就有:
絕對誤差=數(shù)字溫度計讀取數(shù)值-顯示屏顯示數(shù)值;
相對誤差=(絕對誤差/顯示屏顯示數(shù)值)*100%。
絕對誤差能表示測量的數(shù)據(jù)與實際數(shù)據(jù)偏離的數(shù)值大小,而相對誤差能表示測量數(shù)據(jù)的可靠程度[14-15]。由上表數(shù)據(jù)可知,每一組的絕對誤差很小,即表明系統(tǒng)測量的數(shù)據(jù)與實際數(shù)據(jù)相差很小[16]。而每一組的相對誤差都不超過0.5%,說明測量的數(shù)據(jù)準(zhǔn)確可靠,而測量精度也達(dá)到了設(shè)計要求,說明系統(tǒng)達(dá)到設(shè)計要求。
根據(jù)表1繪制出數(shù)字溫度計和實際測試溫度對比坐標(biāo)圖如圖8所示。
由圖8可以看到上方的虛線是由系統(tǒng)溫度測試儀測試出的溫度值所繪制出的圖形,下方的實線是由數(shù)字溫度計測試的溫度值所繪制出的圖形[17],對比圖形可以看出兩條線幾乎一致,
表明設(shè)計的高精度溫度測試儀的誤差是非常小的。
圖8 本系統(tǒng)和溫度計測溫對比坐標(biāo)
本文主要介紹了高精度測溫系統(tǒng)的設(shè)計特性,設(shè)計中采用最常用的單片機芯片作為CPU,結(jié)合鉑熱電阻PT100溫度采集電路,完成了一整套測溫系統(tǒng)的設(shè)計,同時對不同的水溫進(jìn)行多次測量,對測量數(shù)據(jù)記錄并分析得出結(jié)果,結(jié)果證明系統(tǒng)工作正常,符合設(shè)計要求。