祖一康 (黃岡師范學院機電工程學院,湖北黃州 438000)
徐妙婧 (黃岡師范學院電子信息工程學院,湖北黃州 438000)
一種基于單片機和VB的多點溫度監測系統設計
祖一康 (黃岡師范學院機電工程學院,湖北黃州 438000)
徐妙婧 (黃岡師范學院電子信息工程學院,湖北黃州 438000)
基于單片機和VB設計了一個多點溫度監測系統,該系統采用數字式溫度傳感器DS18B20采集溫度,利用LCD1602實時顯示溫度。并采用Visual Basic6.0編寫了上位機溫度監視界面程序,同時給出了系統硬件和軟件的設計方法。實際應用表明,該系統結構簡單、操作方便,能夠進行多點溫度監測且運行穩定。
多點溫度監測系統;單片機;Visual Basic6.0;DS18B20;LCD1602
在工農業生產及日常生活中,溫度是重要的控制量之一。如在冶金、窯爐、糧庫、溫室大棚和居住場所等都需要對溫度進行實時監測。目前,一般通過模擬式溫度傳感器獲取溫度信號,但模擬式溫度傳感器輸出的是模擬信號,且硬件結構復雜,如果擴展到多點監測,會增大硬件、軟件的設計難度[1-3]。下面,筆者采用數字溫度傳感器DS18B20獲取溫度信號,結合STC89C52單片機、LCD1602液晶顯示器、Visual basic6.0構建多點溫度監測系統。
多點溫度監測系統總體架構圖如圖1所示。利用8個溫度傳感器對8個點的溫度信號進行檢測,上位機通過串口經由單片機控制相應溫度傳感器工作,單片機驅動LCD1602實時顯示溫度值,并通過串口將溫度信號傳輸給上位機,實現遠程監測。當被測溫度達到設定的極限值時,單片機驅動蜂鳴器和紅色發光二極管發出聲光報警。

圖1 系統總體架構圖
2.1 多點溫度檢測電路
采用美國Dallas公司生產的1-Wire接口數字式溫度傳感器DS18B20進行溫度檢測,測量范圍為-55~+125℃,增量值為0.5℃,編程設置9~12位的分辨率。該系統采用8個DS18B20實現多點溫度檢測,將它們的VCC引腳相連后接+5V電源、GND引腳相連后接地、DQ引腳相連后接4.7K上拉電阻,并與單片機的P1.0相接(見圖2)。由此可見,DS18B20只占用一根I/O口線即可實現測溫,線路簡單,容易實現。
2.2 溫度顯示電路
采用LCD1602字符型液晶顯示器進行溫度顯示,其工作電壓范圍為3~5V,工作電流為幾微安。LCD1602字符型液晶顯示器可以顯示2行16列字符,其第1行的地址為80H~8FH,第2行地址為C0H~CFH[4-5]。該顯示器有16個引腳,其中Vss引腳接地,VDD接+5V電源引腳,VO引腳接電位器,RS引腳接單片機P2.0引腳,R/W引腳接單片機P2.1引腳,E引腳接P2.2引腳,DB0~DB7引腳接單片機的P0口(見圖2)。

圖2 硬件電路原理圖
2.3 通信和報警電路
單片機輸入輸出的邏輯電平為TTL電平,而PC機RS-232C標準接口的邏輯電平為負邏輯,所以單片機與PC機間的通信要添加電平轉換電路[6]。該系統采用MAX232芯片來實現電平轉換(見圖2)。當溫度達到設定極限時發出聲光報警,聲光報警通過單片機P2.3引腳驅動蜂鳴器、P2.4引腳驅動發光二極管來實現。
系統軟件設計內容包括溫度檢測程序、溫度顯示程序以及上位機監測程序等,基本設計思想如下: ①8個DS18B20按1~8的順序編號,在將DS18B20溫度傳感器接入系統前,分別讀出8個DS18B20序列號,放入8個數組中,比如sn1[8]、sn2[8]、…、sn8[8];②上位機通過串口發送DS18B20的編號給單片機以控制相應的溫度傳感器工作;③LCD1602第1行顯示溫度傳感器的編號,第2行顯示溫度值。系統主程序如圖3所示。
3.1 溫度檢測子程序
由于溫度檢測是系統實現的關鍵,因而對DS18B20的讀寫應遵照嚴格的時序。在進行溫度檢測時必須經過以下步驟,即初始化、寫字節和讀字節操作。每一次讀寫操作前都要先將DS18B20初始化,3個步驟缺一不可。溫度檢測子程序如圖4所示。采用以下方式處理溫度信號:定義變量templ存放溫度低8位,變量temph存放溫度高8位。如果temph高5位全為1,則為負數,需取反加1后才能轉換為實際溫度,具體代碼如下:

3.2 溫度顯示子程序
利用LCD1602字符型液晶顯示器進行溫度顯示,具體包括4種基本操作,即寫命令、寫數據、讀狀態和讀數據,由該顯示器的3個引腳RS、R/W和E的不同組合狀態確定。在進行寫命令、寫數據和
讀數據操作前,必須先進行讀狀態操作,查詢忙標志,當忙標志為0時,方可進行上述操作[7]。

圖3 系統主程序流程圖

圖4 溫度檢測子程序
溫度的整數部分顯示需將其分解,設數組dis[6]用于存放待顯示的數,具體代碼如下:

3.3 上位機程序設計
采用微軟公司研發的可視化軟件Visual Basic 6.0編寫上位機監視界面。可視化軟件Visual Basic 6.0有許多控件提供給編程者選用,筆者選用MSComm控件實現通信功能,MSComm控件屬性設置如下:


采用Keil u Vision 4編寫單片機程序,結合Proteus7.7和Visual Basic 6.0聯合調試,對系統進行驗證(見圖5)。通過下拉列表選擇傳感器編號,單擊“發送”按鈕,將編號發送給單片機驅動相應編號的傳感器工作;單擊“接收”按鈕,單片機將溫度值通過串口發送給上位機(圖5中顯示的是3號溫度傳感器的溫度值,可在Proteus中點擊3號傳感器的溫度上升或下降鍵觀察運行情況)。實際應用表明,該系統能夠進行多點溫度監測且運行穩定。

圖5 溫度檢測界面圖
基于單片機和VB設計了多點溫度監測系統。該系統用單總線數字式溫度傳感器DS18B20采集溫度、LCD1602顯示溫度,上位機和單片機采用串口通信。實際應用表明,該系統結構簡單、操作方便,能夠進行多點溫度監測且運行穩定,具有很好的具有市場應用前景。
[1]陳杰,黃鴻.傳感器與檢測技術[M].北京:高等教育出版社,2002.
[2]王慶利,袁建敏.單片機設計案例實踐教程[M].北京:電子工業出版社,2010.
[3]朱奕丹,倪浩如.基于單片機控制的高精度多點溫度檢測顯示系統[J].自動化儀表,2008,29(8):58-64.
[4]王靜霞.單片機應用技術(C語言版)[M].北京:電子工業出版社,2009.
[5]劉勇軍,張新鋒.基于C51的溫度測量與顯示系統設計[J].洛陽理工學院學報(自然科學版),2011,21(4):65-67.
[6]郭天祥.新概念51單片機C語言教程——入門、提高、開發、拓展全攻略[M].北京:電子工業出版社,2009.
[7]李江全,魏中巖,姚帥,等.單片機通信與控制應用編程實例[M].北京:中國電力出版社,2012.
[編輯]李啟棟
TP368.1
A
1673-1409(2014)19-0050-04
2014-02-14
祖一康(1983-),男,碩士,講師,現主要從事智能檢測與控制和網絡化控制方面的教學與研究工作。