|
本文介紹了一種溫度傳感器選用LM35、單片機選用AT89C52的溫度測量系統(tǒng)。該系統(tǒng)的溫度測量范圍為0~99℃,可以精確到一位小數(shù),可適用于工業(yè)場合及日常生活中。 1 系統(tǒng)結(jié)構(gòu) 本測溫系統(tǒng)由溫度傳感器電路、信號放大電路、A/D轉(zhuǎn)換電路、單片機系統(tǒng)、溫度顯示系統(tǒng)構(gòu)成。其基本工作原理:溫度傳感器電路將測量到的溫度信號轉(zhuǎn)換成電壓信號輸出到信號放大電路,與溫度值對應的電壓信號經(jīng)放大后輸出至A/D轉(zhuǎn)換電路,把電壓信號轉(zhuǎn)換成數(shù)字量送給單片機系統(tǒng),單片機系統(tǒng)根據(jù)顯示需要對數(shù)字量進行處理,再送溫度顯示系統(tǒng)進行顯示。 |
 |
2 硬件電路設(shè)計
 |
2.1 溫度傳感器電路 溫度傳感器采用的是NS公司生產(chǎn)的LM35,他具有很高的工作精度和較寬的線性工作范圍,他的輸出電壓與攝氏溫度線性成比例,且無需外部校準或微調(diào),可以提供±1/4℃的常用的室溫精度。
LM35的輸出電壓與攝氏溫度的線形關(guān)系可用下面公式表示,0℃時輸出為0 V,每升高1℃,輸出電壓增加10 mV。其電源供應模式有單電源與正負雙電源兩種,其接法如圖3與圖4所示。正負雙電源的供電模式可提供負溫度的測量,單電源模式在25℃下電流約為50 mA,非常省電。本系統(tǒng)采用的是單電源模式。
2.2 信號放大電路
由于溫度傳感器LM35輸出的電壓范圍為0~0.99 V,雖然該電壓范圍在A/D轉(zhuǎn)換器的輸入允許電壓范圍內(nèi),但該電壓信號較弱,如果不進行放大直接進行A/D轉(zhuǎn)換則會導致轉(zhuǎn)換成的數(shù)字量太小、精度低。系統(tǒng)中選用通用型放大器μA741對LM35輸出的電壓信號進行幅度放大,還可對其進行阻抗匹配、波形變換、噪聲抑制等處理。系統(tǒng)采取同相輸入,電壓放大倍數(shù)為5倍,電路圖如圖5所示。
|
2.3 A/D轉(zhuǎn)換電路 A/D轉(zhuǎn)換電路選用8位AD轉(zhuǎn)換器ADC0809。ADC0809是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,可處理8路模擬量輸入,且有三態(tài)輸出能力。圖5中運算放大器的輸出電壓V,送入ADC0809的模擬通道IN0。單片機AT89C52控制ADC0809的開始轉(zhuǎn)換、延時等待A/D轉(zhuǎn)換結(jié)束以及讀出轉(zhuǎn)換好的8位數(shù)字量至單片機進行處理。
2.4 單片機系統(tǒng)
單片機選用的是ATMEL公司的AT89C52,主要完成對A/D轉(zhuǎn)換電路的控制、對轉(zhuǎn)換后的數(shù)字量的處理以及對顯示模塊的控制,并且為ADC0809提供工作時鐘。同時AT89C52外接鎖存器74LS373,對AT89C52的P0口的地址信號進行鎖存。74LS373的Q2,Q1,Q0接ADC0809的C,B,A,實現(xiàn)對模擬通道的選擇。AT89C52的晶振選擇3 MHz,則其ALE引腳的輸出頻率為0.5 MHz,小于ADC0809的時鐘頻率最高值640 kHz,正好為其提供工作時鐘。其具體連接電路如圖2所示,單片機的晶振電路及復位電路較簡單,圖中未給出。
2.5 溫度顯示系統(tǒng)
該溫度顯示系統(tǒng)較為簡單,由可編程并行輸入輸出芯片8255A的A,B,C端口外接3個8段LED顯示器來實現(xiàn)。AT89C52的P2.6為8255提供片選信號,74LS373的Q7,Q6接8255的A1,A0,可得到8255的A,B,C及控制口的地址為BF3FH,BF7FH,BFBFH,BFFFH。AT89C52處理好的溫度數(shù)據(jù)輸出至8255,并由AT89C52對8255編程控制其A,B,C端口輸出高電平或低電平,以便從8段LED顯示器顯示實際溫度。8段LED顯示器選用共陽極,8255的A,B,C端口與8段LED顯示器之間接限流電阻,圖2中只畫出了PA口,PB,PC口的接法類似。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件部分用51匯編語言編程,采用模塊化結(jié)構(gòu),主要由A/D轉(zhuǎn)換模塊、單片機內(nèi)部數(shù)據(jù)處理模塊、溫度顯示模塊等3部分構(gòu)成,便于修改和維護。
3.1 A/D轉(zhuǎn)換模塊
根據(jù)測量系統(tǒng)要求不同以及單片機的忙閑程度,通常可采用3種軟件編程方式:程序查詢方式,延時方式和中斷方式。本系統(tǒng)采用延時方式。延時程序?qū)嶋H上是無條件傳送I/O方式,當向A/D轉(zhuǎn)換器發(fā)出啟動命令后,即進行軟件延時,延時時間稍大于進行一次A/D轉(zhuǎn)換所需要的時間,之后打開A/D轉(zhuǎn)換器的輸出緩沖器讀數(shù)即為轉(zhuǎn)換好的數(shù)字量。A/D轉(zhuǎn)換時間為64個時鐘周期,因為系統(tǒng)中ADC0809的工作時鐘為500 kHz,故A/D轉(zhuǎn)換時間為128 μs,延時時間可大致選擇160μs。程序段如下:

為了使采樣數(shù)據(jù)更穩(wěn)定可靠,系統(tǒng)還采用了8次采樣平均值的方法以消除干擾。 3.2 單片機內(nèi)部數(shù)據(jù)處理模塊
系統(tǒng)通過ADC0809轉(zhuǎn)換的數(shù)字量是與實際溫度成正比的數(shù)字量,但系統(tǒng)最后顯示的是實際溫度值,因此需要對數(shù)據(jù)進行處理再通過8255輸出到LED顯示。
設(shè)所測溫度值為T,A/D轉(zhuǎn)換后的數(shù)字量為X,則有:
VOUT=0.01 V/℃×T℃
VOUT為LM35的輸出電壓,即運放μA741的輸入電壓,μA741的輸出電壓用V1表示。因為μA741的放大倍數(shù)為5,則有:
V1=5×VOUT=0.05×T
根據(jù)系統(tǒng)設(shè)置,溫度傳感器輸出電壓0~5 V對應于轉(zhuǎn)換后的數(shù)字量0~255,則有: 0.05T/5=X/255
可以近似寫為: 0.05T/5=X/256
這樣除以256可通過把被除數(shù)右移8位來實現(xiàn),編程較簡單。由此可以得出X和T的關(guān)系:
T=100×X/256
程序段如下:

3.3 溫度顯示模塊 單片機處理好的溫度數(shù)據(jù)通過8255的3個端口輸出到3個LED上顯示,8255的A,B,C口的工作方式均設(shè)置為方式0,輸出。編程時只需分別從40H,41H,42H單元取數(shù)據(jù)送A,B,C口輸出即可。
4 結(jié) 語
該測溫系統(tǒng)經(jīng)過多次測試,工作穩(wěn)定可靠,體積小、集成度高、靈敏度高、響應時間短、抗干擾能力強等特點。此外該系統(tǒng)成本低廉,器件均為常規(guī)元件,有很高的工程價值。如稍加改動,該系統(tǒng)可以很方便地擴展為集溫度測量、控制為一體的產(chǎn)品,具有一定工程應用價值。如對該系統(tǒng)進一步擴展,還可以實現(xiàn)利用USB協(xié)議標準與PC機進行數(shù)據(jù)通信,能夠把監(jiān)測到的溫度值保存到PC機中。
本文來源:現(xiàn)代電子技術(shù) 作者:青島科技大學 信息學院 王景景