基于A(yíng)T89C51和DS18B20溫度測量系統
溫度的測量和控制在激光器、光纖光柵的使用及其他的工農業(yè)生產(chǎn)和科學(xué)研究中應用廣泛。溫度檢測的傳統方法是使用諸如熱電偶、熱電阻、半導體PN結之類(lèi)的模擬溫度傳感器。信號經(jīng)取樣、放大后通過(guò)模數轉換,再交自單片機處理。被測溫度信號從溫敏元件到單片機,經(jīng)過(guò)眾多器件,易受干擾、不易控制且精度不高。因此,本文介紹一種新型的可編程溫度傳感器DS18B20,他能代替模擬溫度傳感器和信號處理電路,直接與單片機溝通,完成溫度采集和數據處理。DS18B20與AT89C51結合實(shí)現最簡(jiǎn)溫度檢測系統,該系統結構簡(jiǎn)單,抗干擾能力強,適合于惡劣環(huán)境下進(jìn)行現場(chǎng)溫度測量,有廣泛的應用前景。
2溫度測量系統硬件
系統結構圖如圖1所示[1]。這里通過(guò)上拉電阻直接驅動(dòng)LED顯示。以增加線(xiàn)路復雜度為代價(jià),減少芯片數量。
2.1數字溫度傳感器DS18B20
DS18B20是美國DALLAS公司推出的單總線(xiàn)數字測溫芯片。他具有獨特的單總線(xiàn)接口方式,僅需使用1個(gè)端口就能實(shí)現與單片機的雙向通訊。采用數字信號輸出提高了信號抗干擾能力和溫度測量精度。他的工作電壓使用范圍寬(3.0~5.5 V),可
以采用外部供電方式,也可以采用寄生電源方式,即當總線(xiàn)DQ為高電平時(shí),竊取信號能量給DS18B20供電。他還有負壓特性,電源極性接反時(shí),DS18B20不會(huì )因接錯線(xiàn)而燒毀,但不能正常工作??梢酝ㄟ^(guò)編程實(shí)現9~12位的溫度轉換精度設置。由表1[2]可見(jiàn),設定的分辨率越高,所需要的溫度數據轉換時(shí)間就越長(cháng),在實(shí)際應用中要將分辨率和轉換時(shí)間權衡考慮。
DS18B20采用3腳TO-92封裝,形如三極管,同時(shí)也有8腳SOIC封裝,還有6腳的TSOC封裝。測溫范圍為-55~+125℃,在一10~85℃范圍內,精度為±0.5℃。每一個(gè)DS18B20芯片的ROM中存放了一個(gè)64位ID號:前8位是產(chǎn)品類(lèi)型編號,隨后48位是該器件的自身序號,最后8位是前面56位的循環(huán)冗余校驗碼。又因其可以采用寄生電源方式供電。因此,一條總線(xiàn)上可以同時(shí)掛接多個(gè)DS18B20,實(shí)現多點(diǎn)測溫系統。另外用戶(hù)還可根據實(shí)際情況設定非易失性溫度報警上下限值TH和TL。DS18B20檢測到溫度值經(jīng)轉換為數字量后,自動(dòng)存入存儲器中,并與設定值TH或TL進(jìn)行比較,當測量溫度超出給定范圍時(shí),就輸出報警信號,并自動(dòng)識別是高溫超限還是低溫超限。
2.2 AT89C51單片機
AT89C51單片機是ATMEL公司生產(chǎn)的高性能8位單片機,主要功能特性如下:
?、偌嫒軲CS-51指令系統;
?、?2個(gè)雙向I/O口,兩個(gè)16位可編程定時(shí)/計數器;
?、?個(gè)串行中斷,兩個(gè)外部中斷源;
?、芸芍苯域寗?dòng)LED;
?、莸凸目臻e和掉電模式;
?、? kB可反復擦寫(xiě)(>1 000次)FLASI ROM;
?、呷o態(tài)操作O~24 MHz;
?、?28×8 b內部RAM。
該款芯片的超低功耗和良好的性能價(jià)格比使其非常適合嵌入式產(chǎn)品應用。
3溫度測量系統軟件
DS18B20簡(jiǎn)單的硬件接口是以相對復雜的接口編程為代價(jià)。由于DS18B20通過(guò)單總線(xiàn)與單片機進(jìn)行通訊,所以其通訊功能是分時(shí)完成的。他與單片機的接口協(xié)議是通過(guò)嚴格的時(shí)序來(lái)實(shí)現的,只有在特定的時(shí)隙,才能實(shí)現DS18B20數據的寫(xiě)入和讀出。這里以AT89C51和一個(gè)DS18B20通訊為例,列出部分通訊的匯編語(yǔ)言代碼。
3.1 初始化子程序(RESET)
與DS18B20的所有通訊都是由一個(gè)單片機的復位脈沖和一個(gè)DS18B20的應答脈沖開(kāi)始的。單片機先發(fā)一個(gè)復位脈沖,保持低電平時(shí)間最少480μs,最多不能超過(guò)960μs。然后,單片機釋放總線(xiàn),等待DS18B20的應答脈沖。DS18B20在接受到復位脈沖后等待15~60μs才發(fā)出應答脈沖。應答脈沖能保持60~240μs。單片機從發(fā)送完復位脈沖到再次控制總線(xiàn)至少要等待480 μs。程序代碼如下:
3.2 WRITE子程序
寫(xiě)時(shí)隙需要15~75 μs,且在2次獨立的寫(xiě)時(shí)隙之間至少需要1μs的恢復時(shí)間。寫(xiě)時(shí)隙起始于單片機拉低總線(xiàn)。以要把單片機A中的數據發(fā)給DS18B20為例,程序代碼如下:
3.3 READ子程序
讀時(shí)隙需15~60 μs,且在2次獨立的讀時(shí)隙之間至少需要1 μs的恢復時(shí)間。讀時(shí)隙起始于單片機拉低總線(xiàn)至少1 μs。DSl8820在讀時(shí)隙開(kāi)始15μs后開(kāi)始采樣總線(xiàn)電平。以單片機讀取2 B的數據為例。程序代碼如下:
4 結 語(yǔ)
用DS18820測量溫度,在其內部就能進(jìn)行A/D轉換,輸出數字量與單片機直接通訊,無(wú)需外加A/D轉換器,轉換速度快,降低了成本,而且簡(jiǎn)化了電路,提高了系統的集成度,使其滿(mǎn)足了最簡(jiǎn)的要求。這個(gè)溫度傳感器稍加改良,配合半導體制冷器還能實(shí)現高精度的溫度控制功能。
半導體制冷相關(guān)文章:半導體制冷原理
評論