基于AT89C51控制ICL7135的0.01℃數(shù)顯溫度計
溫度測量在物理實驗、醫(yī)療衛(wèi)生、食品生產(chǎn)等領(lǐng)域,尤其在熱學實驗(如:物體的比熱容、汽化熱、熱功當量、壓強溫度系數(shù)等教學實驗)中,有特別重要的意義?,F(xiàn)在所使用的溫度計通常都是精度為1℃和0.1℃的水銀、煤油或酒精溫度計。這些溫度計的刻度間隔通常都很密,不容易準確分辨,讀數(shù)因難,而且它們的熱容量還比較大,達到熱平衡所需的時間較長,因此很難讀準,并且使用非常不方便。而利用晶體三極管3DG6C的基極與集電極之間正向電壓降Ubc隨溫度T呈線性變化的關(guān)系作為溫度傳感器,以OP07構(gòu)成放大器,以位A/D轉(zhuǎn)換器ICL7135作A/D轉(zhuǎn)換器設計的數(shù)顯溫度計可以解決這些問題[1]。筆者根據(jù)實際使用的需要,設計了以AT89C51為控制核心,具有測量間隔可設定、測量結(jié)果可自動記錄、可查詢,并經(jīng)簡單擴展就具有報警能力和同PC機進行數(shù)據(jù)交換的0.01℃數(shù)顯溫度計,并用于熱學實驗取得成功。
1硬件電路和工作原理
1.1電路框圖
整機電路由溫度信號采集放大電路、A/D轉(zhuǎn)換電路、CPU控制與顯示電路三部分組成,其框圖如圖1所示。溫度信號由數(shù)據(jù)采集電路中的溫度傳感器轉(zhuǎn)換為電信號,經(jīng)放大電路后,送入A/D轉(zhuǎn)換器,轉(zhuǎn)換后,以BCD碼形式送入CPU,再由程序控制其輸出顯示,鍵盤完成各項設置。
1.2數(shù)據(jù)采集、放大電路
如圖2所示,晶體三極管Q1(3DG6C)的BE極相連,利用基極與集電極之間正向電壓降Ubc隨溫度呈線性變化的關(guān)系作為溫度傳感器[1]。MC1403(IC1)的輸出(2.5V)作為供電電源,以滿足電壓穩(wěn)定性及測量精度較高的要求。由具有低失調(diào)、低噪聲、低漂移的高精度集成運算放大器OP07 (IC2)[2]及R2、R3組成差動放大器,將溫度傳感器檢測到的與溫度有關(guān)的電信號進行適當放大后再輸出到由R6送入IC5(ICL7315)的10腳,以進行A/D轉(zhuǎn)換。
運算放大器OP07反相輸入端接入的信號是隨溫度變化的PN結(jié)壓降U1,同相輸入端加一固定不變的電壓U2。U2表示0℃時PN結(jié)上的壓降,它可以通過精密可調(diào)電阻RP2進行調(diào)節(jié)。在該放大器中,取R2=R4和R3=R5,則輸出電壓Uo表示為:
Uo = (R3/R2)*(U2– U1)
放大器的放大倍數(shù)設計成5倍,將Q1的BE極之間電壓變化2mv/℃放大到10mv/℃。MC1403同時為ICL7135提供基準電壓源。
圖2 數(shù)據(jù)采集、放大電路
圖3 A/D轉(zhuǎn)換電路
1.3 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換電路的核心是ICL7135(IC4)。ICL7135是具有高準確度、通用型的CMOS單片 位雙積分式A/D轉(zhuǎn)換器,量程為2.0000V,BCD碼輸出,輸出信號與TTL電平兼容。其工作的基準電壓為1V,由MC1403經(jīng)過分壓后提供。如圖3所示,C2是自調(diào)零電容,C4基準電容,R9和C3是自積分輸入電阻和電容。ICL7135工作的時鐘頻率是125KHz,由74HC00(IC2)構(gòu)成的多諧振蕩器提供。10腳輸入進來的是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)。為保證其可靠復位,采用MAX814 (IC6)硬件復位。P0.0~P0.3接從ICL7135送來的BCD碼,P0.4~P0.7和P3.4接ICL7135的D1~D5。P1口接LED顯示碼位,提供相應的顯示信息。LED的位選信號
圖4 CPU控制與顯示電路
由P3.5~P3.7經(jīng)74H138(IC7)譯碼后提供。顯示溫度時,只需5位,但考慮到某些情況下可能要顯示其它信息(如時鐘),LED采用6位。P2口接16個按鍵,以完成對此溫度計的設置和控制功能。當顯示所測試的溫度時,整個系統(tǒng)為量程為2V的直流電壓表,將溫度傳感器檢測到的溫度信號變?yōu)橄鄳碾妷盒盘?,放大后,輸入到此電壓表,即可由電壓大小表示出溫度的大小,因為電壓表的最小讀數(shù)是0.1mV,所以,用電壓表示溫度時可以讀出的最小溫度是0.01℃。
2軟件設計[3]
軟件設計是本設計的關(guān)鍵之一。和直接利用ICL7315來制作的溫度計相比,正是由于AT89C51可靈活編程實現(xiàn)各種控制功能,可滿足不同的實際需要。本設計編寫的程序可實現(xiàn)具有測量間隔可設定、測量結(jié)果可自動記錄、可查詢的功能。
程序主要由五大部分組成:主函數(shù)、定時器中斷函數(shù)(調(diào)度器內(nèi)核)部分、掃描鍵盤與處理鍵盤函數(shù)、顯示刷新函數(shù)、從ICL7135讀取數(shù)據(jù)函數(shù)、時間刷新函數(shù)。主函數(shù)初始化系統(tǒng),然后添加四個任務:掃描與處理鍵盤、刷新顯示、讀取數(shù)據(jù)、刷新時間;最后把控制權(quán)交給調(diào)度器內(nèi)核,在不需要運行任務的時候,微控器進入休眠模式以降低功耗,如圖5所示。
因為溫度計對精度要求高,對速度要求低,故用定時器中斷來作調(diào)度器內(nèi)核,主要任務是計算什么時刻要運行什么任務,然后調(diào)用相應的任務函數(shù),如圖6所示。
掃描鍵盤函數(shù)在調(diào)度器的調(diào)度下每20ms執(zhí)行一次,利用此20ms的時間間隔正好用延時消除抖動來消除鍵盤抖動。鍵盤設計成行列矩陣式,功能有:設定時間、設定測量時間間隔、切換時鐘狀態(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í)行一次,運行此函數(shù)時, 單片機 從ICL7135中讀取一次數(shù)據(jù)。程序流程如圖8所示。
時間刷新函數(shù)在調(diào)度器的調(diào)度下每1s執(zhí)行一次,進行計時。
3溫度計定標與數(shù)據(jù)測試
溫度計定標時用數(shù)字電壓表測量ICL7135第2、3兩腳之間的電壓值(基準電壓),調(diào)節(jié)R5,使其在2V左右;將傳感器Q1放入冰水混合物中,經(jīng)過充分攪拌達到熱平衡后調(diào)節(jié)R6,使顯示讀數(shù)為0.00(標定0℃);利用氣壓計讀出當時當?shù)氐拇髿鈮簭?,并根?jù)大氣壓強,當?shù)刂亓铀俣扔嬎愠霎敃r的實際壓強;根據(jù)沸點與壓強的關(guān)系查出沸點溫度.把傳感器放入沸水中,待顯示讀數(shù)穩(wěn)定后仔細調(diào)節(jié)R5,使顯示器顯示讀數(shù)等于當?shù)禺敃r的沸點溫度后定標工作結(jié)束[1]。本溫度計的量程為-50~150℃,讀數(shù)精度為0.01℃,考慮到實際使用一般在0℃~100℃。我們用0℃~50℃和50℃~100℃的精密水銀溫度計作撿驗標準,測量結(jié)果見表1。其中T水銀為水銀溫度計的測量值,最后一位是估計值,T數(shù)字為數(shù)字溫度計測量值,最后一位是顯示值。由測試結(jié)果可知,所設計的溫度計能達到要求
4結(jié)束語
本數(shù)顯溫度計具有讀數(shù)方便,精度高的特點。引入 單片機 AT89C51控制后,可以通過不同的軟件設計以完成不同的使用要求。系統(tǒng)設計時保留引腳P3.2,如在該引腳外接一揚聲器,可通過軟件編程實現(xiàn)溫度超限報警,作為溫度報警器用。通過保留的串口,可以實現(xiàn)與PC機的通訊,增加串口通訊程序模塊就可用作多點溫度檢測系統(tǒng)的下位機。
參 考 文 獻
[1] 潘學軍.0.01℃的數(shù)顯溫度計[J].物理實驗.2003(5):22~25
[2] 談文心,錢聰,宋云購.模擬集成電路原理及應用[M].西安:西安交通大學出版社,1995.16~39.
[3] 何立民. MCS-51 單片機 應用系統(tǒng)設計[M]. 北京:北京航空航天大學出版社 1995.9