基于Labview的环境参数检测系统.docx
- 文档编号:28745388
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:47
- 大小:74.36KB
基于Labview的环境参数检测系统.docx
《基于Labview的环境参数检测系统.docx》由会员分享,可在线阅读,更多相关《基于Labview的环境参数检测系统.docx(47页珍藏版)》请在冰豆网上搜索。
基于Labview的环境参数检测系统
电气与控制工程学院
综合实验
题目:
基于Labview的环境参数检测系统
院(系):
电气与控制工程学院
专业班级:
姓名:
学号:
指导教师:
摘要
本文主要描述了利用PC机与STC89C52单片机之间的通信程序设计实现对环境参数的检测。
由传感器采集温度,湿度,光照强度三路信号,将信号发送给上位机用Labview进行显示,单片机程序用C语言编写,同时拥有液晶显示功能,实现上位机与下位机同步显示三路环境参数信号。
关键词:
单片机STC89C52,温湿度采集,光照强度采集,Labveiw上位机,LCD1602显示
基于Labview的环境参数检测系统
1.概述
温湿度测量,光照强度测量是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。
随着传感器在生产和生活中的更加广泛的应用,在生产中,温湿度,光照强度的高低对产品的质量影响很大。
因此,能够确保快速、准确地测量环境参数的技术及其装置普遍受到各国的重视。
近年来,利用智能化数字式传感器以实现环境参数的在线检测已成为温湿度,光照强度检测技术的一种发展趋势。
本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现环境温度、湿度的检测,光照传感器BH1750实现对环境光照强度的检测。
将温度湿度及光照强度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机进行数据的分析和处理,在LCD1602液晶屏上显示当前温湿度。
用按键控制切换对温度、湿度及光照强度的显示,将信号发送给PC上位机,利用Labview显示。
2.总体方案设计
2.1系统总体方案设计
本系统以52单片机为控制核心,来对各个模块进行控制,总体方案设计如图1所设。
图1总体方案图
从图1可知,本系统的各个模块均由52单片机来控制,用智能集成温温度传感器DHT11主要实现温度、湿度的检测,用环境光照传感器BH1750实现光照强度的检测,将温度、湿度、光照强度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52进行数据的分析和处理,并在LCD1602上显示,并通过按键进行切换显示环境温度、湿度及光照强度。
通过RS232将信号传到上位机用Labview进行显示。
2.2主控芯片的选择
方案一:
使用ARM控制器
方案二:
使用STC89C52单片机
本系统采集的参数均为数字量,即只需要高低电平,考虑到经济性和统一性,最终选择使用STC89C52单片机。
2.3温湿度传感器的选择
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
实物如图2所示。
原理图如图3所示。
图2DHT11温湿度传感器
图3DHT11温湿度传感器原理图
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上。
产品为4针单排引脚封装,连接方便。
2.4光照传感器的选择
BH1750环境光照传感器内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。
这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。
这款环境光传感器能够直接通过光度计来测量。
光强度的单位是流明"lx"。
当物体在均匀的光照下它能够在每平方米获得1lx的光通量,它们的光强度是1lx。
实物图如图4所示,原理图如图5所示。
图4BH1750光照传感器
图5BH1750光照传感器原理图
3.硬件设计
3.1单片机最小系统
本设计选取单片机作为系统的控制器。
所谓最小系统,也称为最小应用系统,是指一个真正可用的单片机最小配置系统。
选取STC89C52为单片机,最小系统主要有复位电路和晶振电路构成,具体电路图如图6所示。
图6最小系统电路图
由图6可知,单片机最小系统的时钟电路有一个用于构成振荡器的高增益反放大器,引脚XTAL1和XTAL2分别是反相放大器的输入端和输出端。
通常,经由片外晶体振荡器或陶瓷谐振器与两个匹配电容一起构成一个自激振荡电路。
本课题由片外晶体振荡器与两个匹配电容一起构成了一个内部时钟振荡电路,为单片机提供时钟源。
复位电路采用上电自动复位电路当上电时,电容通过并联的电阻迅速放电,然后,RC电路充电,能够保证RST端能够维持一段时间的高电平。
3.2按键模块
按键电路是切换LCD1602显示界面的关键,本设计有一个按键,每按一次切换一路显示参数,按键与单片机P2.6口相接,电路图如图7所示。
图7按键电路图
3.3温湿度采集模块
DHT11的供电电压为3-5.5V,传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
数据用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分。
如图2.2所示,本电路上拉电阻为5.1K,数据端接P2.3(接受温湿度数据)。
如图8所示。
图8温度采集电路图
3.4光照采集模块
BH1750引脚有五个,威力方便微处理器同时采集多路光照强度,BH1750设置了ADDR引脚,由于本系统只有一个光照传感器,因此4号引脚ADDR悬空即可。
进行环境光照度采集后显示到液晶屏上,它的时钟引脚SCL接P2.4口,数据引脚SDL接P2.5口。
如图9所示。
图9光照采集电路图
3.5液晶显示模块
本设计采用串行,用于显示环境的三路参数,P2.0口接LCD1602的RS端,P2.1口接LCD1602的RW端,P2.2口接LCD1602的EN端。
如图10所示。
图10显示电路图
4.软件设计
4.1主程序
主程序采用子程序调用的结构,单片机上电后,主程序对系统进行初始化,然后对各个模块进行调用,这些模块主要包括:
温度、湿度、光照的采集,显示,报警,串口通信。
主程序流程图如图11所示。
图11主程序流程图
4.2参数采集子程序
本设计的环境参数采集流程为:
首先进行串口配置,在对传感器采集的数字量进行处理,将数据输出到液晶屏时显示,同时判断环境参数是否超过上下限,超限,则报警,不超限则将数据保存,如图12所示。
图12参数采集流程图
4.3上位机设计
上位机前面板设计如图13所示,前面板中有三路环境参数采集的实时曲线,有当前温度显示,以十进制进行显示,还有数据接收去显示,记录所有接收到的参数数据。
还有对串口资源的配置。
同时可设定三路参数上下限报警值,实现三路参数上下限报警以及历史数据报表生成。
图13前面板设计图
如图14所示,“0”界面进行串口资源配置,波特率设定为9600,数据位8位,校验位无,停止位1。
图14程序面板串口配置原理图
图15上位机数据处理界面
如图16所示,以温度参数的显示为例,首先经过属性节点,读取下位机传送来的VISA属性资源。
图16温度数据显示
经过VISA读取函数,VISA读取函数是指从VISA资源名称指定的设备或接口中读取指定数量的字节,并使数据返回至读取缓冲区。
如图17所示。
图17VISA读取函数各端口说明
而后通过截取字符串函数,如图18所示,以温度为例,从第0位起截取2位字符。
图18截取字符串函数各端口说明
在经过十进制数字符串至数值转换函数,如图19所示,使字符串中的数字字符转换为十进制整数,通过数字返回。
图19十进制数字符串至数值转换函数各端口说明
将转化为数字的参数,连接到报表显示,示波器及仪表盘,同时与输入的上下限进行比较,超限后报警灯闪烁。
图20定时界面
4.4通信模块设计
RS-232是PC机与通信工业中应用最广泛的一种串行接口。
RS-232被定义为一种在低速率串行通信中增加通讯距离的单端标准。
RS-232采取不平衡传输方式,即所谓单端通讯。
收、发端的数据信号是相对于信号地。
典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。
当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。
接收器典型的工作电平在+3~+12V与-3~-12V。
由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。
RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kΩ。
所以RS-232适合本地设备之间的通信。
图21串口通信流程图
5.系统调试
系统调试调试结果如下图所示,系统调试结果与预期要求相同,实现了下位机对环境温度、湿度、光照强度的实时采集,液晶显示。
同时也实现了上位机与下位机之间的通信,上位机数据记录,数据绘图,报警功能。
如图22、图23、图24、图25所示。
图22上位机三路环境参数显示界面
图23三路环境参数历史数据报表
图24LCD1602显示温湿度
图25LCD1602显示光照强度
6.心得体会
本次设计我负责软件编程部分,通过对本系统的研究和设计,使我对单片机的使用有了更深一层次的理解和掌握。
整个系统设计过程用到的主要硬件有STC89C52,温湿度传感器DHT11,光照传感器BH1750。
通过对这些硬件的学习和了解,不仅扩展了自己的知识面,也是自己对单片机的外围电路有了进一步的学习。
设计过程中我们遇到了很多问题,例如上位机与下位机进行串口通信的程序如何编写等等,都通过老师和同学的帮助以及自身学习得到了解决,也锻炼了自己独立思考问题的能力,并增强了自己的动手操作能力,这对我将来的毕业设计以及未来的学习都有很大的帮助。
感谢老师们的指导和同学们的帮助。
7.参考文献
[1]梅晓榕,柏桂珍,张卯瑞.自动控制元件及线路[M].北京:
科学出版社,2007
[2]1985赵亮.液晶显示模块LCD1602应用[J].电子制作,2007(3)
[3]马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计[M].北京航天航空大学出版社,2003
[4]胡汉才.单片机原理与接口技术[M].清华大学出版社,1996.
[5]黄贤斌,郑筱霞.传感器原理与应用[M].北京:
高等教育出版社.成都:
电子科技大学出版社,2004,3(2009.1重印)
[6]何立民.单片机应用系统设计[M].北京:
北京航天航空出版社.1990,50-490
[7]刘笃仁,韩保君.传感器原理及应用技术[M].机械工业出版社.2003,8
[8]王勇等.凌阳单片机原理及其毕业设计精选[M].科学出版社
附录一原理图
图26电路原理图
附录二程序清单
#include
#include
#include"lcd1602.c"
#defineuintunsignedint
#defineucharunsignedchar
sbitTRH=P2^3;//1号温湿度传感器data数据端
sbitSCL=P2^4;//IIC时钟引脚定义
sbitSDA=P2^5;//IIC数据引脚定义
sbitkey1=P2^6;//按键
intnum=0;
#defineSlaveAddress0x46//定义器件在IIC总线中的从地址,根据ALTADDRESS地址引脚不同修改
//ALTADDRESS引脚接地时地址为0xA6,接电源时地址为0x3A
typedefunsignedcharBYTE;
typedefunsignedshortWORD;
BYTEBUF[8];//接收数据缓存区
ucharge,shi,bai,qian,wan;//显示变量
intdis_data;//变量
ucharTH_data,TL_data;
ucharRH_data,RL_data;
voidconversion(uinttemp_data);
voidSingle_Write_BH1750(ucharREG_Address);//单个写入数据
ucharSingle_Read_BH1750(ucharREG_Address);//单个读取内部寄存器数据
voidMultiple_Read_BH1750();//连续的读取内部寄存器数据
voidconversion(uinttemp_data)//数据转换出个,十,百,千,万
{
wan=temp_data/10000+0x30;
temp_data=temp_data%10000;//取余运算
qian=temp_data/1000+0x30;
temp_data=temp_data%1000;//取余运算
bai=temp_data/100+0x30;
temp_data=temp_data%100;//取余运算
shi=temp_data/10+0x30;
temp_data=temp_data%10;//取余运算
ge=temp_data+0x30;
}
/**************************************
起始信号
**************************************/
voidBH1750_Start()
{
SDA=1;//拉高数据线
SCL=1;//拉高时钟线
Delay5us();//延时
SDA=0;//产生下降沿
Delay5us();//延时
SCL=0;//拉低时钟线
}
/**************************************
停止信号
**************************************/
voidBH1750_Stop()
{
SDA=0;//拉低数据线
SCL=1;//拉高时钟线
Delay5us();//延时
SDA=1;//产生上升沿
Delay5us();//延时
}
/**************************************
发送应答信号
入口参数:
ack(0:
ACK1:
NAK)
**************************************/
voidBH1750_SendACK(bitack)
{
SDA=ack;//写应答信号
SCL=1;//拉高时钟线
Delay5us();//延时
SCL=0;//拉低时钟线
Delay5us();//延时
}
/**************************************
接收应答信号
**************************************/
bitBH1750_RecvACK()
{
SCL=1;//拉高时钟线
Delay5us();//延时
CY=SDA;//读应答信号
SCL=0;//拉低时钟线
Delay5us();//延时
returnCY;
}
/**************************************
向IIC总线发送一个字节数据
**************************************/
voidBH1750_SendByte(BYTEdat)
{
BYTEi;
for(i=0;i<8;i++)//8位计数器
{
dat<<=1;//移出数据的最高位
SDA=CY;//送数据口
SCL=1;//拉高时钟线
Delay5us();//延时
SCL=0;//拉低时钟线
Delay5us();//延时
}
BH1750_RecvACK();
}
/**************************************
从IIC总线接收一个字节数据
**************************************/
BYTEBH1750_RecvByte()
{
BYTEi;
BYTEdat=0;
SDA=1;//使能内部上拉,准备读取数据,
for(i=0;i<8;i++)//8位计数器
{
dat<<=1;
SCL=1;//拉高时钟线
Delay5us();//延时
dat|=SDA;//读数据
SCL=0;//拉低时钟线
Delay5us();//延时
}
returndat;
}
//*********************************
voidSingle_Write_BH1750(ucharREG_Address)
{
BH1750_Start();//起始信号
BH1750_SendByte(SlaveAddress);//发送设备地址+写信号
BH1750_SendByte(REG_Address);//内部寄存器地址,请参考中文pdf22页
BH1750_Stop();//发送停止信号
}
voidMultiple_read_BH1750(void)
{
uchari;
BH1750_Start();//起始信号
BH1750_SendByte(SlaveAddress+1);//发送设备地址+读信号
for(i=0;i<3;i++)//连续读取6个地址数据,存储中BUF
{
BUF[i]=BH1750_RecvByte();//BUF[0]存储0x32地址中的数据
if(i==3)
{
BH1750_SendACK
(1);//最后一个数据需要回NOACK
}
else
{
BH1750_SendACK(0);//回应ACK
}
}
BH1750_Stop();//停止信号
DelayMs(5);
}
//初始化BH1750,根据需要请参考pdf进行修改****
voidInit_BH1750()
{
Single_Write_BH1750(0x01);
}
/***********************12us级延时程序************************************/
voiddelay_us()
{
uchari;
i--;
i--;
i--;
i--;
i--;
i--;
}
/*************1号温湿度传感器DHT11收发信号检测,数据读取*********************/
ucharreceive()
{
ucharcom_data;
ucharrespond,temp;
uchari;
com_data=0;
for(i=0;i<8;i++)
{
respond=2;
while((!
TRH)&&respond++);
delay_us();//这3个大概延时40us
delay_us();
delay_us();
if(TRH)
{
temp=1;
respond=2;
while((TRH)&&respond++);
}
else
{temp=0;}
com_data<<=1;
com_data|=temp;
}
return(com_data);
}
ucharCK_data;
voidread_TRH()
{
ucharTH_temp,TL_temp,RH_temp,RL_temp,CK_temp,untemp;
ucharrespond;
//主机拉低18ms
TRH=0;
DelayMs(18);
TRH=1;
//DATA总线由上拉电阻拉高主机延时50us左右
delay_us();
delay_us();
delay_us();
delay_us();
if(!
TRH)
{
respond=2;
while((!
TRH)&&respond++);
respond=2;
//等待DHT11发出80us的高电平结束,然后进入接收状态
while(TRH&&respond++);
//数据接收状态
RH_temp=receive();
电气与控制工程学院
综合实验
题目:
基于Labview的环境参数检测系统
院(系):
电气与控制工程学院
专业班级:
姓名:
学号:
指导教师:
摘要
本文主要描述了利用PC机与STC89C52单片机之间的通信程序设计实现对环境参数的检测。
由传感器采集温度,湿度,光照强度三路信号,将信号发送给上位机用Labview进行显示,单片机程序用C语言编写,同时拥有液晶显示功能,实现上位机与下位机同步显示三路环境参数信号。
关键词:
单片机STC89C52,温湿度采集,光照强度采集,Labveiw上位机,LCD1602显示
基于Labview的环境参数检测系统
1.概述
温湿度测量,光照强度测量是现代检测技术的重要组成部分,在保证产品质量、节约能源和安全生产等方面起着关键的作用。
随着传感器在生产和生活中的更加广泛的应用,在生产中,温湿度,光照强度的高低对产品的质量影响很大。
因此,能够确保快速、准确地测量环境参数的技术及其装置普遍受到各国的重视。
近年来,利用智能化数字式传感器以实现环境参数的在线检测已成为温湿度,光照强度检测技术的一种发展趋势。
本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现环境温度、湿度的检测,光照传感器BH1750实现对环境光照强度的检测。
将温度湿度及光照强度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机进行数据的分析和处理,在LCD1602液晶屏上显示当前温湿度。
用按键控制切换对温度、湿度及光照强度的显示,将信号发送给PC上位机,利用Labview显示。
2.总体方案设计
2.1系统总体方案设计
本系统以52单片机为控制核心,来对各个模块进行控制,总体方案设计如图1所设。
图1总体方案图
从图1可知,本系统的各个模块均由52单片机来控制,用智能集成温温度传感器DHT11主要实现温度、湿度的检测,用环境光照传感器BH1750实现光照强度的检测,将温度、湿度、光照强度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52进行数据的分析和处理,并在LCD1602上显示,并通过按键进行切换显示环境温度、湿度及光照强度。
通过RS232将信号
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Labview 环境参数 检测 系统