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