任志華,李永紅
(中北大學,山西太原 030051)
隨著社會的進步和工業技術的發展,人們越來越重視溫度這一因素,許多產品對溫度要求嚴格,而目前市場上普遍存在的溫度檢測儀器大都是單點測量,同時還有溫度信息傳遞不及時、精度不夠的特點,不利于工業控制者根據溫度變化及時做出決定[1-2]。在這樣的形式下,開發一種能夠同時測量多點,并且實時性高、精確度高,能夠綜合處理多點溫度信息的測量系統就很有必要。
本文采用單總線數字溫度傳感器DS18B20和單片機AT89C51構成的溫度測量裝置,它可直接輸出溫度的數字信號[3]。測溫系統結構簡單,體積也不大,而且AT89C51可以帶多個DSB1820,可以非常容易實現多路測溫,輕松的組建傳感器網絡。
本系統由單片機AT89C51、顯示電路、串口通訊電路、報警電路、數據存儲和上位機組成。單片機AT89C51的I/O線作為總線可以掛接多個溫度傳感器DS18B20,I/O總線處于高電平時,可以為數字溫度傳感器提供電源。單片機AT89C51通過巡回檢測,獲取各點溫度,貯存在數據存儲卡上,通過MAX232串行通信接口接上位機,同時可以送顯示器進行顯示,并且溫度超限時可以報警。系統硬件整體結構設計框圖如圖1所示。

圖1 硬件整體結構框圖
本文為多路溫度測試,因此DS18B20采用外部供電方式,理論上可以在一根數據總線上掛256個DS18B20,但實踐應用中發現,如果掛接25個以上的DS18B20仍舊有可能產生功耗問題。另外單總線長度也不宜超過80 m,否則也會影響到數據的傳輸。在這種情況下我們采用分組的方式,用單片機的多個I/O來驅動多路DS18B20。在實際應用中還可以使用一個MOSFET將I/O口線直接和電源相連,起到上拉的作用。
在本文中選擇液晶顯示模塊LCD1602,它是一種可編程器件,可以顯示兩行,每行16個字符,采用單+5 V電源供電,外圍電路配置簡單,價格便宜,具有很高的性價比,可以定時循環檢測和通過LCD1602顯示多路的溫度,因此選擇LCD1602。
AT89C51有一個全雙工的串行通訊口,所以單片機和電腦之間可以方便地進行串口通訊。進行串行通訊時要滿足一定的條件,比如電腦的串口是RS232電平的,而單片機的串口是TTL電平的,兩者之間必須有一個電平轉換電路,我們采用了專用芯片MAX232進行轉換,雖然也可以用幾個三極管進行模擬轉換,但是還是用專用芯片更簡單可靠。其電路如圖2所示。
在實際的工作中,工作的溫度可能會超出設定值的范圍,在本文中,如果外界溫度低于9℃或高于85℃,系統將產生報警聲音,并且對應的LED同步閃爍,LED-YELLOW為低溫閃爍,LED-RED為高溫閃爍。
整體電路圖如圖2所示。

圖2 整體電路圖
整個系統的功能是由硬件電路配合軟件來實現的,軟件設計部分采用模塊化設計和C語言編程,主程序流程圖如圖3所示。

圖3 主程序流程圖

圖4 溫度采集流程圖
通過對多個DS18B20進行操作就能實現對溫度的采集,程序中對DS18B20的操作主要有幾個步驟:初始化;搜索DS18B20;匹配DS18B20;發送溫度轉換指令;讀取溫度值[5]。其溫度采集流程圖如圖4所示。
通過對各個部分電路的設計,本文基本上實現了對4路溫度的測量和控制。以AT89C51作為控制主機,以單總線數字溫度傳感器DS18B20作為現場測溫元件,當外界溫度低于-20℃或高于70 ℃時,具有報警功能。

數字溫度傳感器DS18B20具有測量速度快、精度高、智能化等特點,以AT89C51作為控制主機組成的多路溫度采集系統可靠性高、維修方便、抗干擾性能好、具有CRC校驗功能,適用于各種溫度檢測和控制系統。因此,在大型倉庫、工廠、醫療與健診等系統需要多點溫度檢測中有著廣闊的應用前景。
[1]吳東霞,陳天勝,王佳.基于MCS-51的多路溫度檢測系統的硬件設計[J].科技信息,2009(35).
[2]劉岑俐,張明.多路溫度檢測系統的設計[J].四川大學學報,2008(10).
[3]朱群峰,黃磊,唐杰,王躍球.基于DSl8B20的單總線多路溫度采集系統[J].儀表技術,2008(12).
[4]黃宇飛,吳江,秦旭,等.單片機單總線技術[J].單片機與嵌入式系統應用,2001(1): 22-25,47.
[5]月霞,孫傳友.DS18B20 硬件連接及軟件編程[J].傳感器世界,2001(12):25-29.
[6]王玲,王中訓,王恒.基于MSP430單片機的多路無線溫度檢測系統[J].現代電子技術,2011,34(1).
[7]張慧坤.溫度檢測系統的設計與實現[J].北京電力高等專科學校學報:自然科學版,2011,28(5).
[8]東耀,汪仁煌.數字溫度傳感器在倉庫溫度檢測系統的應用[J].傳感器世界,2001(12):30-33.