祖一康 (黃岡師范學(xué)院機(jī)電工程學(xué)院,湖北黃州 438000)
徐妙婧 (黃岡師范學(xué)院電子信息工程學(xué)院,湖北黃州 438000)
一種基于單片機(jī)和VB的多點(diǎn)溫度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)
祖一康 (黃岡師范學(xué)院機(jī)電工程學(xué)院,湖北黃州 438000)
徐妙婧 (黃岡師范學(xué)院電子信息工程學(xué)院,湖北黃州 438000)
基于單片機(jī)和VB設(shè)計(jì)了一個(gè)多點(diǎn)溫度監(jiān)測(cè)系統(tǒng),該系統(tǒng)采用數(shù)字式溫度傳感器DS18B20采集溫度,利用LCD1602實(shí)時(shí)顯示溫度。并采用Visual Basic6.0編寫了上位機(jī)溫度監(jiān)視界面程序,同時(shí)給出了系統(tǒng)硬件和軟件的設(shè)計(jì)方法。實(shí)際應(yīng)用表明,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、操作方便,能夠進(jìn)行多點(diǎn)溫度監(jiān)測(cè)且運(yùn)行穩(wěn)定。
多點(diǎn)溫度監(jiān)測(cè)系統(tǒng);單片機(jī);Visual Basic6.0;DS18B20;LCD1602
在工農(nóng)業(yè)生產(chǎn)及日常生活中,溫度是重要的控制量之一。如在冶金、窯爐、糧庫、溫室大棚和居住場(chǎng)所等都需要對(duì)溫度進(jìn)行實(shí)時(shí)監(jiān)測(cè)。目前,一般通過模擬式溫度傳感器獲取溫度信號(hào),但模擬式溫度傳感器輸出的是模擬信號(hào),且硬件結(jié)構(gòu)復(fù)雜,如果擴(kuò)展到多點(diǎn)監(jiān)測(cè),會(huì)增大硬件、軟件的設(shè)計(jì)難度[1-3]。下面,筆者采用數(shù)字溫度傳感器DS18B20獲取溫度信號(hào),結(jié)合STC89C52單片機(jī)、LCD1602液晶顯示器、Visual basic6.0構(gòu)建多點(diǎn)溫度監(jiān)測(cè)系統(tǒng)。
多點(diǎn)溫度監(jiān)測(cè)系統(tǒng)總體架構(gòu)圖如圖1所示。利用8個(gè)溫度傳感器對(duì)8個(gè)點(diǎn)的溫度信號(hào)進(jìn)行檢測(cè),上位機(jī)通過串口經(jīng)由單片機(jī)控制相應(yīng)溫度傳感器工作,單片機(jī)驅(qū)動(dòng)LCD1602實(shí)時(shí)顯示溫度值,并通過串口將溫度信號(hào)傳輸給上位機(jī),實(shí)現(xiàn)遠(yuǎn)程監(jiān)測(cè)。當(dāng)被測(cè)溫度達(dá)到設(shè)定的極限值時(shí),單片機(jī)驅(qū)動(dòng)蜂鳴器和紅色發(fā)光二極管發(fā)出聲光報(bào)警。
圖1 系統(tǒng)總體架構(gòu)圖
2.1 多點(diǎn)溫度檢測(cè)電路
采用美國(guó)Dallas公司生產(chǎn)的1-Wire接口數(shù)字式溫度傳感器DS18B20進(jìn)行溫度檢測(cè),測(cè)量范圍為-55~+125℃,增量值為0.5℃,編程設(shè)置9~12位的分辨率。該系統(tǒng)采用8個(gè)DS18B20實(shí)現(xiàn)多點(diǎn)溫度檢測(cè),將它們的VCC引腳相連后接+5V電源、GND引腳相連后接地、DQ引腳相連后接4.7K上拉電阻,并與單片機(jī)的P1.0相接(見圖2)。由此可見,DS18B20只占用一根I/O口線即可實(shí)現(xiàn)測(cè)溫,線路簡(jiǎn)單,容易實(shí)現(xiàn)。
2.2 溫度顯示電路
采用LCD1602字符型液晶顯示器進(jìn)行溫度顯示,其工作電壓范圍為3~5V,工作電流為幾微安。LCD1602字符型液晶顯示器可以顯示2行16列字符,其第1行的地址為80H~8FH,第2行地址為C0H~CFH[4-5]。該顯示器有16個(gè)引腳,其中Vss引腳接地,VDD接+5V電源引腳,VO引腳接電位器,RS引腳接單片機(jī)P2.0引腳,R/W引腳接單片機(jī)P2.1引腳,E引腳接P2.2引腳,DB0~DB7引腳接單片機(jī)的P0口(見圖2)。
圖2 硬件電路原理圖
2.3 通信和報(bào)警電路
單片機(jī)輸入輸出的邏輯電平為TTL電平,而PC機(jī)RS-232C標(biāo)準(zhǔn)接口的邏輯電平為負(fù)邏輯,所以單片機(jī)與PC機(jī)間的通信要添加電平轉(zhuǎn)換電路[6]。該系統(tǒng)采用MAX232芯片來實(shí)現(xiàn)電平轉(zhuǎn)換(見圖2)。當(dāng)溫度達(dá)到設(shè)定極限時(shí)發(fā)出聲光報(bào)警,聲光報(bào)警通過單片機(jī)P2.3引腳驅(qū)動(dòng)蜂鳴器、P2.4引腳驅(qū)動(dòng)發(fā)光二極管來實(shí)現(xiàn)。
系統(tǒng)軟件設(shè)計(jì)內(nèi)容包括溫度檢測(cè)程序、溫度顯示程序以及上位機(jī)監(jiān)測(cè)程序等,基本設(shè)計(jì)思想如下: ①8個(gè)DS18B20按1~8的順序編號(hào),在將DS18B20溫度傳感器接入系統(tǒng)前,分別讀出8個(gè)DS18B20序列號(hào),放入8個(gè)數(shù)組中,比如sn1[8]、sn2[8]、…、sn8[8];②上位機(jī)通過串口發(fā)送DS18B20的編號(hào)給單片機(jī)以控制相應(yīng)的溫度傳感器工作;③LCD1602第1行顯示溫度傳感器的編號(hào),第2行顯示溫度值。系統(tǒng)主程序如圖3所示。
3.1 溫度檢測(cè)子程序
由于溫度檢測(cè)是系統(tǒng)實(shí)現(xiàn)的關(guān)鍵,因而對(duì)DS18B20的讀寫應(yīng)遵照嚴(yán)格的時(shí)序。在進(jìn)行溫度檢測(cè)時(shí)必須經(jīng)過以下步驟,即初始化、寫字節(jié)和讀字節(jié)操作。每一次讀寫操作前都要先將DS18B20初始化,3個(gè)步驟缺一不可。溫度檢測(cè)子程序如圖4所示。采用以下方式處理溫度信號(hào):定義變量templ存放溫度低8位,變量temph存放溫度高8位。如果temph高5位全為1,則為負(fù)數(shù),需取反加1后才能轉(zhuǎn)換為實(shí)際溫度,具體代碼如下:
3.2 溫度顯示子程序
利用LCD1602字符型液晶顯示器進(jìn)行溫度顯示,具體包括4種基本操作,即寫命令、寫數(shù)據(jù)、讀狀態(tài)和讀數(shù)據(jù),由該顯示器的3個(gè)引腳RS、R/W和E的不同組合狀態(tài)確定。在進(jìn)行寫命令、寫數(shù)據(jù)和
讀數(shù)據(jù)操作前,必須先進(jìn)行讀狀態(tài)操作,查詢忙標(biāo)志,當(dāng)忙標(biāo)志為0時(shí),方可進(jìn)行上述操作[7]。
圖3 系統(tǒng)主程序流程圖
圖4 溫度檢測(cè)子程序
溫度的整數(shù)部分顯示需將其分解,設(shè)數(shù)組dis[6]用于存放待顯示的數(shù),具體代碼如下:
3.3 上位機(jī)程序設(shè)計(jì)
采用微軟公司研發(fā)的可視化軟件Visual Basic 6.0編寫上位機(jī)監(jiān)視界面??梢暬浖isual Basic 6.0有許多控件提供給編程者選用,筆者選用MSComm控件實(shí)現(xiàn)通信功能,MSComm控件屬性設(shè)置如下:
采用Keil u Vision 4編寫單片機(jī)程序,結(jié)合Proteus7.7和Visual Basic 6.0聯(lián)合調(diào)試,對(duì)系統(tǒng)進(jìn)行驗(yàn)證(見圖5)。通過下拉列表選擇傳感器編號(hào),單擊“發(fā)送”按鈕,將編號(hào)發(fā)送給單片機(jī)驅(qū)動(dòng)相應(yīng)編號(hào)的傳感器工作;單擊“接收”按鈕,單片機(jī)將溫度值通過串口發(fā)送給上位機(jī)(圖5中顯示的是3號(hào)溫度傳感器的溫度值,可在Proteus中點(diǎn)擊3號(hào)傳感器的溫度上升或下降鍵觀察運(yùn)行情況)。實(shí)際應(yīng)用表明,該系統(tǒng)能夠進(jìn)行多點(diǎn)溫度監(jiān)測(cè)且運(yùn)行穩(wěn)定。
圖5 溫度檢測(cè)界面圖
基于單片機(jī)和VB設(shè)計(jì)了多點(diǎn)溫度監(jiān)測(cè)系統(tǒng)。該系統(tǒng)用單總線數(shù)字式溫度傳感器DS18B20采集溫度、LCD1602顯示溫度,上位機(jī)和單片機(jī)采用串口通信。實(shí)際應(yīng)用表明,該系統(tǒng)結(jié)構(gòu)簡(jiǎn)單、操作方便,能夠進(jìn)行多點(diǎn)溫度監(jiān)測(cè)且運(yùn)行穩(wěn)定,具有很好的具有市場(chǎng)應(yīng)用前景。
[1]陳杰,黃鴻.傳感器與檢測(cè)技術(shù)[M].北京:高等教育出版社,2002.
[2]王慶利,袁建敏.單片機(jī)設(shè)計(jì)案例實(shí)踐教程[M].北京:電子工業(yè)出版社,2010.
[3]朱奕丹,倪浩如.基于單片機(jī)控制的高精度多點(diǎn)溫度檢測(cè)顯示系統(tǒng)[J].自動(dòng)化儀表,2008,29(8):58-64.
[4]王靜霞.單片機(jī)應(yīng)用技術(shù)(C語言版)[M].北京:電子工業(yè)出版社,2009.
[5]劉勇軍,張新鋒.基于C51的溫度測(cè)量與顯示系統(tǒng)設(shè)計(jì)[J].洛陽理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,21(4):65-67.
[6]郭天祥.新概念51單片機(jī)C語言教程——入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.
[7]李江全,魏中巖,姚帥,等.單片機(jī)通信與控制應(yīng)用編程實(shí)例[M].北京:中國(guó)電力出版社,2012.
[編輯]李啟棟
TP368.1
A
1673-1409(2014)19-0050-04
2014-02-14
祖一康(1983-),男,碩士,講師,現(xiàn)主要從事智能檢測(cè)與控制和網(wǎng)絡(luò)化控制方面的教學(xué)與研究工作。