王 娟,謝 檬
(西安交通大學城市學院電氣與信息工程系,陜西西安710018)
溫度是人們在工農業和日常生活中的一項重要生產生活指標,有著極其重要的作用,尤其是一些特殊場合,對溫度的精度測量也會有一定的要求,而熱電阻傳感器適用于對溫度檢測精度要求比較高的場合,熱電阻傳感器能夠用于檢測-200℃~+600℃范圍內的溫度[1-4]。而單片微型計算機(即單片機)憑借其豐富的接口,以及軟件程序實現硬件功能的特性,彌補了熱電阻單獨測溫時不能滿足工業要求精度的劣勢[5-6]。文中設計的基于89C52單片機的高精度熱電阻溫度采集測量模塊,使得溫度控制精度大大提高,滿足工業控制和日常生活對測溫的要求。
本設計硬件系統主要由單片機主控模塊、溫度采集模塊、A/D轉換模塊、LCD顯示模塊、矩陣鍵盤模塊等組成。溫度測試儀的硬件結構框圖如圖1所示。

圖1 溫度測試儀的硬件結構框圖
溫度采集模塊,也就是測溫與信號放大模塊電路,如圖2所示,該測溫模塊主要由PT100鉑熱電阻和LM358芯片組成。
LM358內部有兩個高增益的雙運算放大器,運放U1A將VREF轉換為恒流源,電流流過PT100時在其上產生壓降,再通過U1B將該微弱信號放大,即輸出期望的電壓信號,可直接用于AD轉換。LM358的封裝形式有貼片式和直插式,但是貼片式的封裝不利于電路的焊接,所以本設計中選用的封裝方式是雙列直插式。等效恒流源輸出的電流最好不超過1 mA,以免電流大使得PT100電阻自身發熱造成測量溫度不準確[7-9]。
由熱電阻的恒流源調理電路可知,電路放大倍數為10倍,VREF為基準電壓[10]。本設計中基準電壓是4.096 V,采用TO-92封裝方式的基準電壓芯片MCP1541產生,信號穩定且便于電路的焊接。

圖2 測溫與信號放大電路
A/D轉換模塊主要由A/D芯片TLC2543及其外圍電路組成,其硬件電路圖如圖3所示。

圖3 A/D轉換電路
A/D轉換模塊主要由A/D芯片TLC2543及其外圍電路組成,本設計中只使用一路A/D轉換通道,這里選擇通道0即AIN0。TLC2543芯片的各種功能由控制字節來控制實現,比如選擇使用哪個模擬量輸入通道等,控制字節存放在控制寄存器中,是從低位D0到高位D7的8位數據,通過配置這8位數據可以控制TLC2543芯片使用哪路A/D通道、數據輸出的格式和位數等等功能[11-12]。
D0決定了轉換出的結果輸出的格式;
D1為0時,輸出數據格式為高位在前,D0為1時,輸出格式為低位在前;
D2和D3為01時,輸出的數據為8位數據,D2、D3為11時,輸出的數據為16位數據,D2、D3為X1時,輸出的數據為12位數據;
D4、D5、D6、D7為 1100-1110的時候,芯片檢測片內電壓。當它們為1111時,芯片的電流為25 μA,進入休眠低功耗模式。
最初,CS為高電平,時鐘輸入輸出和數據輸入都被禁止了且都為高阻抗狀態。CS由高電平到低電平時開始序列轉換,時鐘輸入輸出和數據輸入的高祖抗狀態被刪除,功能被開啟。輸入數據是一個8位數據流和4比特組成的模擬通道地址(D7-D4)還有2比特的數據長度,選擇(D3-D2),一個輸出MSB和LSB,第1位(D1),和一個單極或雙極輸出選擇(D0)應用于數據輸入。在這個轉變過程中,I/O時鐘序列也從之前的輸出數據得出轉換結果。
人機交互對話最通用的方法就是通過鍵盤和LCD顯示進行的,操作者通過鍵盤向系統發送各種指令或置入必要的數據信息,并將結果通過LCD屏顯示出來。
本設計中選擇使用矩陣鍵盤連接方式[13],硬件設計圖上的P13、P14、P15、P16是接在單片機引腳上的。
本設計采用的LCD1602低功耗、體積小、顯示內容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應用系統中。單片機內部P1口、P2口、P3口都有內部上拉電阻,而P0口沒有內部上拉電阻,設計中P0口連接LCD1602顯示模塊,所以在電路中給P0口加了10K的上拉電阻。
系統軟件主要對A/D模塊傳遞的數值進行計算,計算出PT100鉑熱電阻的阻值,然后根據該阻值通過查表法得出相應的溫度數值,再將溫度數值在LCD上顯示出來。按鍵可以變換溫度的顯示模式,分別是攝氏溫度、華氏溫度、開氏溫度。如果沒有按鍵按下,LCD將顯示攝氏溫度;如果有按鍵按下,根據按鍵值,LCD將顯示相應的溫度模式。系統軟件流程圖如圖4所示。

圖4 系統軟件流程圖
A/D轉換芯片使用的是TI公司的TLC2543芯片,這款芯片使用SPI串行數據傳輸方式,而本設計中只用到芯片的一路轉換通道。在這個轉變過程中,輸出的數字量數據為Dn=2n×VIN/VREF。
LCD1602能夠同時顯示16x02即32個字符,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。
LCD1602顯示屏使用HD44780控制,該芯片中包含多個寄存器,在顯示之前,需要對相關寄存器進行設置,即LCD初始化。初始化完畢以后,就可以進行數據的傳輸。根據相應的控制方式,將計算出的溫度數值各個位提取出來,方便顯示。顯示子程序流程圖如圖5所示。

圖5 顯示流程圖
系統中鍵盤采用矩陣鍵盤方案。在矩陣式鍵盤中,每條水平線和垂直線在交叉處不直接連通,而是通過一個按鍵加以連接。要使單片機能檢測到矩陣鍵盤中的按鍵按下,需使用鍵盤掃描的方式對按鍵進行檢測,即先將鍵盤逐行置低,在此過程中,逐列檢測,如果檢測到某列連接的引腳為低,說明該行與該列的交叉點的按鍵被按下,根據行值與列值計算鍵值,將鍵值記錄下來。
按鍵設置在行、列線交點上,行、列線分別連接到按鍵開關的兩端。行線通過上拉電阻接到+5 V電源上。無按鍵按下時,行線處于高電平的狀態,當有按鍵按下時,行線電平與此行線相連的列線電平決定。
在本設計鍵盤掃描中,如果檢測到按鍵1按下,則返回值為1;檢測到按鍵2按下,返回值為2;檢測到按鍵3按下,返回值為3;檢測到按鍵4,返回值為4;初始時,沒有按鍵按下,返回值為0。所以在主程序中會根據返回的鍵值來顯示不同的溫度模式:當鍵值為0或者4時,溫度顯示模式普通溫度模式;當鍵值為1時,溫度顯示為攝氏溫度模式;當鍵值為2時,溫度顯示為華氏溫度模式;當鍵值為3時,溫度顯示為開氏溫度模式。
將程序下載到單片機中,LCD1602液晶顯示屏插入正確位置,PT100鉑熱電阻連接至電路板中,安裝好電池,之后打開電源對系統進行功能測試。所選擇比較的標定測試儀器參數指標如下:
測量范圍:-200.0~600.0 ℃;傳感器:PT100;顯示:五位LCD;基本誤差:±0.05%、±0.2%;采樣時間:1~2 s;環境條件:溫度:-40~70 ℃;相對濕度:90%RH。
具體測試步驟:
1)將PT100探測頭端置于冰水混合物中靜置幾分鐘,然后觀察顯示屏數值。
2)將PT100探測頭端與數字溫度計置于同一杯常溫水中靜置一段時間,觀察顯示屏與數字溫度計數值并且進行對比,如圖6所示。

圖6 本系統與數字溫度計同時測溫水溫度
3)將PT100探測頭端與數字溫度計置于同一壺剛燒開的水中,觀察顯示屏數值并讀取數字溫度計數值,如圖7所示。

圖7 本系統與溫度計同時測開水溫度
4)在上一步驟操作完后,將水壺蓋打開散熱,PT100探測頭與數字溫度計放置在水中不變,每隔3分鐘記錄一次顯示屏的數值與數字溫度計的數值。
5)重復上述步驟多次,測量多組數據。
6)對測量的數據進行統計分析。
通過上述的測試步驟,得出了一組測量溫度數據見表1。

表1 測量數據統計表
在以上的測試中,假設數字溫度計測量的數值為溫度的實際數值,那么就有:
絕對誤差=數字溫度計讀取數值-顯示屏顯示數值;
相對誤差=(絕對誤差/顯示屏顯示數值)*100%。
絕對誤差能表示測量的數據與實際數據偏離的數值大小,而相對誤差能表示測量數據的可靠程度[14-15]。由上表數據可知,每一組的絕對誤差很小,即表明系統測量的數據與實際數據相差很小[16]。而每一組的相對誤差都不超過0.5%,說明測量的數據準確可靠,而測量精度也達到了設計要求,說明系統達到設計要求。
根據表1繪制出數字溫度計和實際測試溫度對比坐標圖如圖8所示。
由圖8可以看到上方的虛線是由系統溫度測試儀測試出的溫度值所繪制出的圖形,下方的實線是由數字溫度計測試的溫度值所繪制出的圖形[17],對比圖形可以看出兩條線幾乎一致,
表明設計的高精度溫度測試儀的誤差是非常小的。

圖8 本系統和溫度計測溫對比坐標
本文主要介紹了高精度測溫系統的設計特性,設計中采用最常用的單片機芯片作為CPU,結合鉑熱電阻PT100溫度采集電路,完成了一整套測溫系統的設計,同時對不同的水溫進行多次測量,對測量數據記錄并分析得出結果,結果證明系統工作正常,符合設計要求。