于蘭浩 董漢政 王 賀 吳國良
(山東科技大學機械電子工程學院 山東 青島 266590)
基于vb6.0與51單片機的溫度采集與監(jiān)控系統(tǒng)設計
于蘭浩 董漢政 王 賀 吳國良
(山東科技大學機械電子工程學院 山東 青島 266590)
引言
在現(xiàn)代信號采集與監(jiān)控系統(tǒng)中,單片機因具有信號采集方便、操作靈活、成本低等優(yōu)點,廣泛運用于溫度等信號的采集中,而其缺點為單片機的人機交互界面較弱,我們并不能直觀地看到采集到的諸如溫度液位等信號,尤其是當需要采集多路信號并顯示時,用數(shù)碼管來顯示比較繁瑣。而pc機的人機交互界面已發(fā)展的很強大了,vb6.0運行于Windows操作系統(tǒng)下,是一種面向對象的程序設計語言,提供可視化的編程工具,向程序設計人員提供了豐富的圖形對象(窗體、控件、菜單)進行應用程序的界面設計,這就使得其人機交互功能非常強大,彌補了單片機顯示界面不足的缺點。因此我們用單片機采集數(shù)據,用pc機顯示數(shù)據,實現(xiàn)溫度采集與監(jiān)控系統(tǒng)設計。本文主要進行的工作有:用DS18B20數(shù)字式溫度傳感器采集蔬菜大棚溫度,將STC89C52單片機采集到的溫度送到vb6.0中顯示,單片機程序設計,用vb6.0設計pc機溫度顯示界面編程。
(一)傳感器選型及溫度采集電路
根據傳感器工作的環(huán)境以及測量溫度范圍,我們選擇美國DALLAS半導體公司的數(shù)字式溫度傳感器DS18B20,所謂數(shù)字式傳感器意思是無需經過A/D轉化而直接將采集到的溫度轉換為數(shù)字量,輸送到單片機的I/O端口,以數(shù)字碼的方式串行輸出,從而簡化了單片機與傳感器的接口。DS18B20的性能參數(shù)為:電壓范圍在3到5.5V,測溫范圍為-55°到+125°。傳感器與單片機連接:傳感器GND端接地,VCC端接5V電源,并且串4.7kΩ電阻,DQ端與VCC并起來接到P2.6口即可。接口電路如圖1:
(二)串口通信電路
pc機上的串口是RS232口,其電平特性:邏輯1為-3V到-15V,邏輯0為3V到15V。而單片機的串口為TTL電平,邏輯1位5V,邏輯0為0V,因兩者電平不同故不能直接通信,需要用MAX232芯片進行電平轉換,轉換電路圖如圖2:
圖1 圖2
連接好電路后我們就可編程了,論文的主要工作在于單片機編程與vb6.0上位機界面編程,c語言程序如下。
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit ds=P2^6;//溫度傳感器信號線
sbit motor=P2^3;//溫度過低時開啟電機加熱
uint temp;//定義整形溫度變量
float f_temp;//定義浮點型溫度變量
uint lowtepm=250;//溫度下限值,乘以10后結果
void delay(uint z)//延時函數(shù)
{uintx,y;for(x=z;x>0;x——)for(y=110;y>0;y——);}
viod dsrest(void)//DS18B20復位,初始化函數(shù)
{uint i;ds=0;i=103;
while(i>0)i——;
ds=1;i=4;
while(i>0)i——;}
void tempchange(void)//DS18B20開始獲取溫度并轉換
{derest();
delay(1);tempwritebyte(0xcc);tempwrite(0xbe);
a=tempread();b=tempread();temp<<=8;temp=temp|a;//讀低8位,讀高8位,
f_temp=temp*0.0625;temp=f_temp*10+0.5;//分辨率0.0625
return temp;}
void deal(uint t)//溫度低于25°啟動電機
{if(t void init_com()//串口初始化 {TMOD=0X20;PCON=0X00;SCON=0X50;TH1=0XFD;TL1=0XFD;TR1=1;} void comm(char*parr)//串口發(fā)送函數(shù) {do{sbuf=*parr++;while(!TI);TI=0;}while(*parr)}} void main()//主函數(shù) {uchar buff[4],i;init_com(); while(1){tempchange();deal(temp);sprintf(buff,“%f”,f_temp);comm(buff;}}//調用分塊函數(shù) vb左側工具欄常用控件有:文本框,標簽,按鈕,定時器,列表框等,將需要的控件雙擊放到窗體中,運行界面如圖3所示,vb程序設計及注解如圖4所示。 圖3 圖4 該設計已用于蔬菜大棚溫度采集與檢測現(xiàn)場,效果顯著,提高了蔬菜產量。將接口電路改變以及改動程序中參數(shù),可以應用于其他信號的采集。 [1]郭天祥,《51單片機C語言教程》,北京,電子電工出版社,2009 [2]秦曾煌,姜三勇,《電工學》,北京,高等教育出版社,2005 于蘭浩(1993-),男,山東科技大學機械電子工程學院,在讀碩士研究生。三、vb上位機界面開發(fā)及編程
四、結束語