|
摘 要:本文用晶體管pn結(jié)作溫度傳感器,用集成電路icl7135等作a/d轉(zhuǎn)換器,以at89c51為控制器,制作了測量精度可達(dá)0.01℃的數(shù)字溫度計。主要介紹了本數(shù)顯溫度計的硬件結(jié)構(gòu)和軟件編程實現(xiàn)的方法,通過實驗測試說明,所設(shè)計的溫度計能達(dá)到要求。 關(guān)鍵詞:單片機(jī)at89c51 數(shù)顯溫度計 溫度傳感器 a/d轉(zhuǎn)換器 溫度測量在物理實驗、醫(yī)療衛(wèi)生、食品生產(chǎn)等領(lǐng)域,尤其在熱學(xué)實驗(如:物體的比熱容、汽化熱、熱功當(dāng)量、壓強(qiáng)溫度系數(shù)等教學(xué)實驗)中,有特別重要的意義。現(xiàn)在所使用的溫度計通常都是精度為1℃和0.1℃的水銀、煤油或酒精溫度計。這些溫度計的刻度間隔通常都很密,不容易準(zhǔn)確分辨,讀數(shù)因難,而且它們的熱容量還比較大,達(dá)到熱平衡所需的時間較長,因此很難讀準(zhǔn),并且使用非常不方便。而利用晶體三極管3dg6c的基極與集電極之間正向電壓降ubc隨溫度t呈線性變化的關(guān)系作為溫度傳感器,以op07構(gòu)成放大器,以 位a/d轉(zhuǎn)換器icl7135作a/d轉(zhuǎn)換器設(shè)計的數(shù)顯溫度計可以解決這些問題[1]。筆者根據(jù)實際使用的需要,設(shè)計了以at89c51為控制核心,具有測量間隔可設(shè)定、測量結(jié)果可自動記錄、可查詢,并經(jīng)簡單擴(kuò)展就具有報警能力和同pc機(jī)進(jìn)行數(shù)據(jù)交換的0.01℃數(shù)顯溫度計,并用于熱學(xué)實驗取得成功。 1硬件電路和工作原理 1.1電路框圖 整機(jī)電路由溫度信號采集放大電路、a/d轉(zhuǎn)換電路、cpu控制與顯示電路三部分組成,其框圖如圖1所示。溫度信號由數(shù)據(jù)采集電路中的溫度傳感器轉(zhuǎn)換為電信號,經(jīng)放大電路后,送入a/d轉(zhuǎn)換器,轉(zhuǎn)換后,以bcd碼形式送入cpu,再由程序控制其輸出顯示,鍵盤完成各項設(shè)置。

1.2數(shù)據(jù)采集、放大電路 如圖2所示,晶體三極管q1(3dg6c)的be極相連,利用基極與集電極之間正向電壓降ubc隨溫度呈線性變化的關(guān)系作為溫度傳感器[1]。mc1403(ic1)的輸出(2.5v)作為供電電源,以滿足電壓穩(wěn)定性及測量精度較高的要求。由具有低失調(diào)、低噪聲、低漂移的高精度集成運(yùn)算放大器op07 (ic2)[2]及r2、r3組成差動放大器,將溫度傳感器檢測到的與溫度有關(guān)的電信號進(jìn)行適當(dāng)放大后再輸出到由r6送入ic5(icl7315)的10腳,以進(jìn)行a/d轉(zhuǎn)換。 運(yùn)算放大器op07反相輸入端接入的信號是隨溫度變化的pn結(jié)壓降u1,同相輸入端加一固定不變的電壓u2。u2表示0℃時pn結(jié)上的壓降,它可以通過精密可調(diào)電阻rp2進(jìn)行調(diào)節(jié)。在該放大器中,取r2=r4和r3=r5,則輸出電壓uo表示為: uo = (r3/r2)*(u2– u1) 放大器的放大倍數(shù)設(shè)計成5倍,將q1的be極之間電壓變化2mv/℃放大到10mv/℃。mc1403同時為icl7135提供基準(zhǔn)電壓源。
圖2 數(shù)據(jù)采集、放大電路 
圖3 a/d轉(zhuǎn)換電路 1.3 a/d轉(zhuǎn)換電路 a/d轉(zhuǎn)換電路的核心是icl7135(ic4)。icl7135是具有高準(zhǔn)確度、通用型的cmos單片 位雙積分式a/d轉(zhuǎn)換器,量程為2.0000v,bcd碼輸出,輸出信號與ttl電平兼容。其工作的基準(zhǔn)電壓為1v,由mc1403經(jīng)過分壓后提供。如圖3所示,c2是自調(diào)零電容,c4基準(zhǔn)電容,r9和c3是自積分輸入電阻和電容。icl7135工作的時鐘頻率是125khz,由74hc00(ic2)構(gòu)成的多諧振蕩器提供。10腳輸入進(jìn)來的是op07的輸出信號,其電壓大小表示了溫度的大小,經(jīng)a/d轉(zhuǎn)換后輸出bcd碼,接入at89c51。d1~d5是led的位選信號,不直接接led,而是同at89c51相接,統(tǒng)一由at89c51提供led的位選信號。 1.4 cpu控制與顯示電路 如圖4所示,cpu控制與顯示電路核心是at89c51(ic5)。為保證其可靠復(fù)位,采用max814 (ic6)硬件復(fù)位。p0.0~p0.3接從icl7135送來的bcd碼,p0.4~p0.7和p3.4接icl7135的d1~d5。p1口接led顯示碼位,提供相應(yīng)的顯示信息。led的位選信號

圖4 cpu控制與顯示電路 由p3.5~p3.7經(jīng)74h138(ic7)譯碼后提供。顯示溫度時,只需5位,但考慮到某些情況下可能要顯示其它信息(如時鐘),led采用6位。p2口接16個按鍵,以完成對此溫度計的設(shè)置和控制功能。當(dāng)顯示所測試的溫度時,整個系統(tǒng)為量程為2v的直流電壓表,將溫度傳感器檢測到的溫度信號變?yōu)橄鄳?yīng)的電壓信號,放大后,輸入到此電壓表,即可由電壓大小表示出溫度的大小,因為電壓表的最小讀數(shù)是0.1mv,所以,用電壓表示溫度時可以讀出的最小溫度是0.01℃。 
2軟件設(shè)計[3] 軟件設(shè)計是本設(shè)計的關(guān)鍵之一。和直接利用icl7315來制作的溫度計相比,正是由于at89c51可靈活編程實現(xiàn)各種控制功能,可滿足不同的實際需要。本設(shè)計編寫的程序可實現(xiàn)具有測量間隔可設(shè)定、測量結(jié)果可自動記錄、可查詢的功能。 程序主要由五大部分組成:主函數(shù)、定時器中斷函數(shù)(調(diào)度器內(nèi)核)部分、掃描鍵盤與處理鍵盤函數(shù)、顯示刷新函數(shù)、從icl7135讀取數(shù)據(jù)函數(shù)、時間刷新函數(shù)。主函數(shù)初始化系統(tǒng),然后添加四個任務(wù):掃描與處理鍵盤、刷新顯示、讀取數(shù)據(jù)、刷新時間;最后把控制權(quán)交給調(diào)度器內(nèi)核,在不需要運(yùn)行任務(wù)的時候,微控器進(jìn)入休眠模式以降低功耗,如圖5所示。 因為溫度計對精度要求高,對速度要求低,故用定時器中斷來作調(diào)度器內(nèi)核,主要任務(wù)是計算什么時刻要運(yùn)行什么任務(wù),然后調(diào)用相應(yīng)的任務(wù)函數(shù),如圖6所示。 掃描鍵盤函數(shù)在調(diào)度器的調(diào)度下每20ms執(zhí)行一次,利用此20ms的時間間隔正好用延時消除抖動來消除鍵盤抖動。鍵盤設(shè)計成行列矩陣式,功能有:設(shè)定時間、設(shè)定測量時間間隔、切換時鐘狀態(tài)和溫度計狀態(tài)、開始和結(jié)束溫度測量、查詢以前測量的溫度數(shù)據(jù)。其流程如圖7所示。顯示刷新函數(shù)在調(diào)度器的調(diào)度下每4ms執(zhí)行一次,顯示刷新函數(shù)用于動態(tài)顯示七段led顯示管。讀取數(shù)據(jù)函數(shù)在調(diào)度器的調(diào)度下每1s執(zhí)行一次,運(yùn)行此函數(shù)時,單片機(jī)從icl7135中讀取一次數(shù)據(jù)。程序流程如圖8所示。  
時間刷新函數(shù)在調(diào)度器的調(diào)度下每1s執(zhí)行一次,進(jìn)行計時。

3溫度計定標(biāo)與數(shù)據(jù)測試 溫度計定標(biāo)時用數(shù)字電壓表測量icl7135第2、3兩腳之間的電壓值(基準(zhǔn)電壓),調(diào)節(jié)r5,使其在2v左右;將傳感器q1放入冰水混合物中,經(jīng)過充分?jǐn)嚢柽_(dá)到熱平衡后調(diào)節(jié)r6,使顯示讀數(shù)為0.00(標(biāo)定0℃);利用氣壓計讀出當(dāng)時當(dāng)?shù)氐拇髿鈮簭?qiáng),并根據(jù)大氣壓強(qiáng),當(dāng)?shù)刂亓铀俣扔嬎愠霎?dāng)時的實際壓強(qiáng);根據(jù)沸點與壓強(qiáng)的關(guān)系查出沸點溫度.把傳感器放入沸水中,待顯示讀數(shù)穩(wěn)定后仔細(xì)調(diào)節(jié)r5,使顯示器顯示讀數(shù)等于當(dāng)?shù)禺?dāng)時的沸點溫度后定標(biāo)工作結(jié)束[1]。本溫度計的量程為-50~150℃,讀數(shù)精度為0.01℃,考慮到實際使用一般在0℃~100℃。我們用0℃~50℃和50℃~100℃的精密水銀溫度計作撿驗標(biāo)準(zhǔn),測量結(jié)果見表1。其中t水銀為水銀溫度計的測量值,最后一位是估計值,t數(shù)字為數(shù)字溫度計測量值,最后一位是顯示值。由測試結(jié)果可知,所設(shè)計的溫度計能達(dá)到要求 4結(jié)束語 本數(shù)顯溫度計具有讀數(shù)方便,精度高的特點。引入單片機(jī)at89c51控制后,可以通過不同的軟件設(shè)計以完成不同的使用要求。系統(tǒng)設(shè)計時保留引腳p3.2,如在該引腳外接一揚(yáng)聲器,可通過軟件編程實現(xiàn)溫度超限報警,作為溫度報警器用。通過保留的串口,可以實現(xiàn)與pc機(jī)的通訊,增加串口通訊程序模塊就可用作多點溫度檢測系統(tǒng)的下位機(jī)。 參 考 文 獻(xiàn) [1] 潘學(xué)軍.0.01℃的數(shù)顯溫度計[j].物理實驗.2003(5):22~25 [2] 談文心,錢聰,宋云購.模擬集成電路原理及應(yīng)用[m].西安:西安交通大學(xué)出版社,1995.16~39. [3] 何立民. mcs-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計[m]. 北京:北京航空航天大學(xué)出版社 1995.9
|