




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z.电气与控制工程学院综合实验题目:基于Labview的环境参数检测系统院系:电气与控制工程学院专业班级:*:*:指导教师:-. z.摘要本文主要描述了利用PC机与STC89C52单片机之间的通信程序设计实现对环境参数的检测。由传感器采集温度,湿度,光照强度三路信号,将信号发送给上位机用Labview进展显示,单片机程序用C语言编写,同时拥有液晶显示功能,实现上位机与下位机同步显示三路环境参数信号。关键词:单片机STC89C52,温湿度采集,光照强度采集,Labveiw上位机,LCD1602显示目录TOC o 1-3 h u HYPERLINK l _Toc184051.概述 PAGER
2、EF _Toc18405 1HYPERLINK l _Toc93772.总体方案设计 PAGEREF _Toc9377 1HYPERLINK l _Toc189812.1系统总体方案设计 PAGEREF _Toc18981 1HYPERLINK l _Toc63632.2 主控芯片的选择 PAGEREF _Toc6363 1HYPERLINK l _Toc224352.3温湿度传感器的选择 PAGEREF _Toc22435 1HYPERLINK l _Toc83222.4光照传感器的选择 PAGEREF _Toc8322 1HYPERLINK l _Toc257143. 硬件设计 PAGER
3、EF _Toc25714 1HYPERLINK l _Toc292883.1单片机最小系统 PAGEREF _Toc29288 1HYPERLINK l _Toc232733.2按键模块 PAGEREF _Toc23273 1HYPERLINK l _Toc192423.3温湿度采集模块 PAGEREF _Toc19242 1HYPERLINK l _Toc67283.4光照采集模块 PAGEREF _Toc6728 1HYPERLINK l _Toc137594. 软件设计 PAGEREF _Toc13759 1HYPERLINK l _Toc203724.1主程序 PAGEREF _Toc
4、20372 1HYPERLINK l _Toc269664.2参数采集子程序 PAGEREF _Toc26966 1HYPERLINK l _Toc88304.3上位机设计 PAGEREF _Toc8830 1HYPERLINK l _Toc284634.4通信模块设计 PAGEREF _Toc28463 1HYPERLINK l _Toc159455. 系统调试 PAGEREF _Toc15945 1HYPERLINK l _Toc62456. 心得体会 PAGEREF _Toc6245 1HYPERLINK l _Toc161357.参考文献 PAGEREF _Toc16135 1HYPE
5、RLINK l _Toc19122附录一原理图 PAGEREF _Toc19122 1HYPERLINK l _Toc3500附录二程序清单 PAGEREF _Toc3500 1-. z.基于Labview的环境参数检测系统1.概述温湿度测量,光照强度测量是现代检测技术的重要组成局部,在保证产品质量、节约能源和平安生产等方面起着关键的作用。随着传感器在生产和生活中的更加广泛的应用,在生产中,温湿度,光照强度的上下对产品的质量影响很大。因此,能够确保快速、准确地测量环境参数的技术及其装置普遍受到各国的重视。近年来,利用智能化数字式传感器以实现环境参数的在线检测已成为温湿度,光照强度检测技术的一种
6、开展趋势。本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现环境温度、湿度的检测,光照传感器BH1750实现对环境光照强度的检测。将温度湿度及光照强度信号通过传感器进展信号的采集并转换成数字信号,再运用单片机进展数据的分析和处理,在LCD1602液晶屏上显示当前温湿度。用按键控制切换对温度、湿度及光照强度的显示,将信号发送给PC上位机,利用Labview显示。2.总体方案设计2.1系统总体方案设计本系统以52单片机为控制核心,来对各个模块进展控制,总体方案设计如图1所设。图1总体方案图从图1可知,本系统的各个模块均由52单片机来控制,用智能集成温温度传感器DHT11主要实现温度、湿
7、度的检测,用环境光照传感器BH1750实现光照强度的检测,将温度、湿度、光照强度信号通过传感器进展信号的采集并转换成数字信号,再运用单片机STC89C52进展数据的分析和处理,并在LCD1602上显示,并通过按键进展切换显示环境温度、湿度及光照强度。通过RS232将信号传到上位机用Labview进展显示。2.2 主控芯片的选择方案一:使用ARM控制器方案二:使用STC89C52单片机本系统采集的参数均为数字量,即只需要上下电平,考虑到经济性和统一性,最终选择使用STC89C52单片机。2.3温湿度传感器的选择DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的
8、数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。实物如图2所示。原理图如图3所示。图2 DHT11温湿度传感器图3 DHT11温湿度传感器原理图传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为准确的湿度校验室中进展校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上。产品为 4 针单排引脚封装,连接方便。
9、2.4光照传感器的选择BH1750环境光照传感器内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。这款环境光传感器能够直接通过光度计来测量。光强度的单位是流明l*。当物体在均匀的光照下它能够在每平方米获得1l*的光通量,它们的光强度是1l*。实物图如图4所示,原理图如图5所示。图4 BH1750光照传感器图5 BH1750光照传感器原理图硬件设计3.1单片机最小系统本设计选取单片机作为系统的控制器。所谓最小系统,也称为最小应用系统,是指一个真正可用的单片机最小配置系统。选取STC89C52为单片
10、机,最小系统主要有复位电路和晶振电路构成,具体电路图如图6所示。图6最小系统电路图由图6可知,单片机最小系统的时钟电路有一个用于构成振荡器的高增益反放大器,引脚*TAL1和*TAL2分别是反相放大器的输入端和输出端。通常,经由片外晶体振荡器或陶瓷谐振器与两个匹配电容一起构成一个自激振荡电路。本课题由片外晶体振荡器与两个匹配电容一起构成了一个内部时钟振荡电路,为单片机提供时钟源。复位电路采用上电自动复位电路当上电时,电容通过并联的电阻迅速放电,然后,RC电路充电,能够保证RST端能够维持一段时间的高电平。3.2按键模块按键电路是切换LCD1602显示界面的关键,本设计有一个按键,每按一次切换一路
11、显示参数,按键与单片机P2.6口相接,电路图如图7所示。图7按键电路图3.3温湿度采集模块DHT11的供电电压为35.5V,传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚VDD,GND之间可增加一个100nF的电容,用以去耦滤波。数据用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数局部和整数局部。如图2.2所示,本电路上拉电阻为5.1K,数据端接P2.3承受温湿度数据。如图8所示。图8 温度采集电路图3.4光照采集模块BH1750引脚有五个,威力方便微处理器同时采集多路光照强度,BH1750设置了ADDR引脚,由于本系
12、统只有一个光照传感器,因此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.1主程序主程序采用子程序调用的构造,单片机上电后,主程序对系统进展初始化,然后对各个模块进展调用,这些模块主要包括:温度、湿度、光照的采集,显示,报警,串口通信。主程序流程图如图11所示。图11主程序流程图4.2参
13、数采集子程序本设计的环境参数采集流程为:首先进展串口配置,在对传感器采集的数字量进展处理,将数据输出到液晶屏时显示,同时判断环境参数是否超过上下限,超限,则报警,不超限则将数据保存,如图12所示。图12参数采集流程图4.3上位机设计上位机前面板设计如图13所示,前面板中有三路环境参数采集的实时曲线,有当前温度显示,以十进制进展显示,还有数据接收去显示,记录所有接收到的参数数据。还有对串口资源的配置。同时可设定三路参数上下限报警值,实现三路参数上下限报警以及历史数据报表生成。图13前面板设计图如图14所示,0界面进展串口资源配置,波特率设定为9600,数据位8位,校验位无,停顿位1。图14程序面
14、板串口配置原理图图15上位机数据处理界面如图16所示,以温度参数的显示为例,首先经过属性节点,读取下位机传送来的VISA属性资源。图16温度数据显示经过VISA读取函数,VISA读取函数是指从VISA资源名称指定的设备或接口中读取指定数量的字节,并使数据返回至读取缓冲区。如图17所示。图17 VISA读取函数各端口说明而后通过截取字符串函数,如图18所示,以温度为例,从第0位起截取2位字符。图18截取字符串函数各端口说明在经过十进制数字符串至数值转换函数,如图19所示,使字符串中的数字字符转换为十进制整数,通过数字返回。图19十进制数字符串至数值转换函数各端口说明将转化为数字的参数,连接到报表
15、显示,示波器及仪表盘,同时与输入的上下限进展比拟,超限后报警灯闪烁。图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。由于发送电平与接
16、收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点即只用一对收、发设备通讯而设计的,其驱动器负载为37k。所以RS-232适合本地设备之间的通信。图21串口通信流程图系统调试系统调试调试结果如下列图所示,系统调试结果与预期要求一样,实现了下位机对环境温度、湿度、光照强度的实时采集,液晶显示。同时也实现了上位机与下位机之间的通信,上位机数据记录,数据绘图,报警功能。如图22、图23、图24、图25所示。图22上位机三路环境参数显示界面图23三路环境参数历史数据报表图24 LCD1602显示温湿度图
17、25 LCD1602显示光照强度心得体会本次设计我负责软件编程局部,通过对本系统的研究和设计,使我对单片机的使用有了更深一层次的理解和掌握。整个系统设计过程用到的主要硬件有STC89C52,温湿度传感器DHT11,光照传感器BH1750。通过对这些硬件的学习和了解,不仅扩展了自己的知识面,也是自己对单片机的外围电路有了进一步的学习。设计过程中我们遇到了很多问题,例如上位机与下位机进展串口通信的程序如何编写等等,都通过教师和同学的帮助以及自身学习得到了解决,也锻炼了自己独立思考问题的能力,并增强了自己的动手操作能力,这对我将来的毕业设计以及未来的学习都有很大的帮助。感谢教师们的指导和同学们的帮助
18、。7.参考文献1 梅晓榕,柏桂珍,*卯瑞.自动控制元件及线路M.:科学,20072 1985赵亮.液晶显示模块LCD1602应用J.电子制作,2007(3)3 马忠梅,籍顺心,*凯等.单片机的C语言应用程序设计M.航天航空大学,20034 胡汉才.单片机原理与接口技术M.清华大学,1996.5 黄贤斌,*筱霞.传感器原理与应用M.:高等教育. *:电子科技大学,2004,3(2009.1重印)6 何立民.单片机应用系统设计M.:航天航空.1990,50-4907 *笃仁,韩保君.传感器原理及应用技术M.机械工业.2003,8 8 王勇等.凌阳单片机原理及其毕业设计精选M.科学附录一原理图图26
19、电路原理图附录二程序清单#include #include #include lcd1602.c#define uint unsigned int #define uchar unsigned charsbit TRH=P23;/ 1号温湿度传感器data数据端sbitSCL=P24; /IIC时钟引脚定义sbit SDA=P25; /IIC数据引脚定义sbitkey1=P26; / 按键int num=0;#define SlaveAddress 0*46 /定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改 /ALT ADDRESS引脚接地时地址为0*A6,接电源时
20、地址为0*3Atypedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区uchar ge,shi,bai,qian,wan; /显示变量int dis_data; /变量uchar TH_data,TL_data;uchar RH_data,RL_data; void conversion(uint temp_data);void Single_Write_BH1750(uchar REG_Address); /单个写入数据uchar Single_Read_BH1750(uchar REG_Addres
21、s); /单个读取内部存放器数据void Multiple_Read_BH1750(); /连续的读取内部存放器数据void conversion(uint temp_data) / 数据转换出个,十,百,千,万 wan=temp_data/10000+0*30 ; temp_data=temp_data%10000; /取余运算qian=temp_data/1000+0*30 ; temp_data=temp_data%1000; /取余运算 bai=temp_data/100+0*30 ; temp_data=temp_data%100; /取余运算 shi=temp_data/10+0*
22、30 ; temp_data=temp_data%10; /取余运算 ge=temp_data+0*30; /*起始信号*/void BH1750_Start() SDA = 1; /拉高数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 0; /产生下降沿 Delay5us(); /延时 SCL = 0; /拉低时钟线/*停顿信号*/void BH1750_Stop() SDA = 0; /拉低数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 1; /产生上升沿 Delay5us(); /延时/*发送应答信号入口参数:ack
23、(0:ACK 1:NAK)*/void BH1750_SendACK(bit ack)SDA = ack; /写应答信号 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时/*接收应答信号*/bit BH1750_RecvACK() SCL = 1; /拉高时钟线 Delay5us(); /延时 CY = SDA; /读应答信号 SCL = 0; /拉低时钟线 Delay5us(); /延时 return CY;/*向IIC总线发送一个字节数据*/void BH1750_SendByte(BYTE dat) BYTE
24、i; for (i=0; i8; i+) /8位计数器 dat = 1; /移出数据的最高位 SDA = CY; /送数据口 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时 BH1750_RecvACK();/*从IIC总线接收一个字节数据*/BYTE BH1750_RecvByte() BYTE i; BYTE dat = 0; SDA = 1; /使能内部上拉,准备读取数据, for (i=0; i8; i+) /8位计数器 dat = 1; SCL = 1; /拉高时钟线Delay5us(); /延时 dat
25、 |= SDA; /读数据 SCL = 0; /拉低时钟线 Delay5us(); /延时 return dat;/*void Single_Write_BH1750(uchar REG_Address) BH1750_Start(); /起始信号BH1750_SendByte(SlaveAddress); /发送设备地址+写信号 BH1750_SendByte(REG_Address); /内部存放器地址,请参考中文pdf22页 BH1750_Stop(); /发送停顿信号void Multiple_read_BH1750(void) uchar i; BH1750_Start(); /起始
26、信号 BH1750_SendByte(SlaveAddress+1); /发送设备地址+读信号for (i=0; i3; i+) /连续读取6个地址数据,存储中BUF BUFi = BH1750_RecvByte(); /BUF0存储0*32地址中的数据 if (i = 3) BH1750_SendACK(1); /最后一个数据需要回NOACK else BH1750_SendACK(0); /回应ACK BH1750_Stop(); /停顿信号 DelayMs(5);/初始化BH1750,根据需要请参考pdf进展修改*void Init_BH1750() Single_Write_BH175
27、0(0*01); /*12us级延时程序*/void delay_us() uchar i; i-; i-; i-; i-; i-; i-; /*1号温湿度传感器DHT11收发信号检测,数据读取*/uchar receive() uchar _data; uchar respond,temp; uchar i; _data=0; for(i=0; i8; i+) respond=2; while(!TRH)&respond+); delay_us(); / 这3个大概延时40us delay_us(); delay_us(); if(TRH) temp=1; respond=2; while(
28、TRH)&respond+); else temp=0; _data=1; _data|=temp; return(_data); uchar CK_data;void read_TRH() uchar TH_temp,TL_temp,RH_temp,RL_temp,CK_temp,untemp;uchar respond;/ 主机拉低18ms TRH=0;DelayMs(18);TRH=1;/DATA总线由上拉电阻拉高主机延时50us左右delay_us();delay_us();delay_us();delay_us();if(!TRH) respond=2;while(!TRH)& re
29、spond+);respond=2;/ 等待DHT11发出 80us 的高电平完毕,然后进入接收状态while(TRH & respond+);/ 数据接收状态RH_temp = receive(); 电气与控制工程学院综合实验题目:基于Labview的环境参数检测系统院系:电气与控制工程学院专业班级:*:*:指导教师:-. z.摘要本文主要描述了利用PC机与STC89C52单片机之间的通信程序设计实现对环境参数的检测。由传感器采集温度,湿度,光照强度三路信号,将信号发送给上位机用Labview进展显示,单片机程序用C语言编写,同时拥有液晶显示功能,实现上位机与下位机同步显示三路环境参数信号。
30、关键词:单片机STC89C52,温湿度采集,光照强度采集,Labveiw上位机,LCD1602显示目录TOC o 1-3 h u HYPERLINK l _Toc184051.概述 PAGEREF _Toc18405 1HYPERLINK l _Toc93772.总体方案设计 PAGEREF _Toc9377 1HYPERLINK l _Toc189812.1系统总体方案设计 PAGEREF _Toc18981 1HYPERLINK l _Toc63632.2 主控芯片的选择 PAGEREF _Toc6363 1HYPERLINK l _Toc224352.3温湿度传感器的选择 PAGEREF
31、 _Toc22435 1HYPERLINK l _Toc83222.4光照传感器的选择 PAGEREF _Toc8322 1HYPERLINK l _Toc257143. 硬件设计 PAGEREF _Toc25714 1HYPERLINK l _Toc292883.1单片机最小系统 PAGEREF _Toc29288 1HYPERLINK l _Toc232733.2按键模块 PAGEREF _Toc23273 1HYPERLINK l _Toc192423.3温湿度采集模块 PAGEREF _Toc19242 1HYPERLINK l _Toc67283.4光照采集模块 PAGEREF _T
32、oc6728 1HYPERLINK l _Toc137594. 软件设计 PAGEREF _Toc13759 1HYPERLINK l _Toc203724.1主程序 PAGEREF _Toc20372 1HYPERLINK l _Toc269664.2参数采集子程序 PAGEREF _Toc26966 1HYPERLINK l _Toc88304.3上位机设计 PAGEREF _Toc8830 1HYPERLINK l _Toc284634.4通信模块设计 PAGEREF _Toc28463 1HYPERLINK l _Toc159455. 系统调试 PAGEREF _Toc15945 1H
33、YPERLINK l _Toc62456. 心得体会 PAGEREF _Toc6245 1HYPERLINK l _Toc161357.参考文献 PAGEREF _Toc16135 1HYPERLINK l _Toc19122附录一原理图 PAGEREF _Toc19122 1HYPERLINK l _Toc3500附录二程序清单 PAGEREF _Toc3500 1-. z.基于Labview的环境参数检测系统1.概述温湿度测量,光照强度测量是现代检测技术的重要组成局部,在保证产品质量、节约能源和平安生产等方面起着关键的作用。随着传感器在生产和生活中的更加广泛的应用,在生产中,温湿度,光照强
34、度的上下对产品的质量影响很大。因此,能够确保快速、准确地测量环境参数的技术及其装置普遍受到各国的重视。近年来,利用智能化数字式传感器以实现环境参数的在线检测已成为温湿度,光照强度检测技术的一种开展趋势。本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现环境温度、湿度的检测,光照传感器BH1750实现对环境光照强度的检测。将温度湿度及光照强度信号通过传感器进展信号的采集并转换成数字信号,再运用单片机进展数据的分析和处理,在LCD1602液晶屏上显示当前温湿度。用按键控制切换对温度、湿度及光照强度的显示,将信号发送给PC上位机,利用Labview显示。2.总体方案设计2.1系统总体方案
35、设计本系统以52单片机为控制核心,来对各个模块进展控制,总体方案设计如图1所设。图1总体方案图从图1可知,本系统的各个模块均由52单片机来控制,用智能集成温温度传感器DHT11主要实现温度、湿度的检测,用环境光照传感器BH1750实现光照强度的检测,将温度、湿度、光照强度信号通过传感器进展信号的采集并转换成数字信号,再运用单片机STC89C52进展数据的分析和处理,并在LCD1602上显示,并通过按键进展切换显示环境温度、湿度及光照强度。通过RS232将信号传到上位机用Labview进展显示。2.2 主控芯片的选择方案一:使用ARM控制器方案二:使用STC89C52单片机本系统采集的参数均为数
36、字量,即只需要上下电平,考虑到经济性和统一性,最终选择使用STC89C52单片机。2.3温湿度传感器的选择DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。实物如图2所示。原理图如图3所示。图2 DHT11温湿度传感器图3 DHT11温湿度传感器原理图传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为准确的湿度校验室中进展校准。校准系数以程序的形式储存在OT
37、P内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上。产品为 4 针单排引脚封装,连接方便。2.4光照传感器的选择BH1750环境光照传感器内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。这款环境光传感器能够直接通过光度计来测量。光强度的单位是流明l*。当物体在均匀的光照下它能够在每平方米获得1l*的光通量,它们的光强度是1l*。实物图如图4所示,原理图如图5所示。图4 BH1750光照传感器图
38、5 BH1750光照传感器原理图硬件设计3.1单片机最小系统本设计选取单片机作为系统的控制器。所谓最小系统,也称为最小应用系统,是指一个真正可用的单片机最小配置系统。选取STC89C52为单片机,最小系统主要有复位电路和晶振电路构成,具体电路图如图6所示。图6最小系统电路图由图6可知,单片机最小系统的时钟电路有一个用于构成振荡器的高增益反放大器,引脚*TAL1和*TAL2分别是反相放大器的输入端和输出端。通常,经由片外晶体振荡器或陶瓷谐振器与两个匹配电容一起构成一个自激振荡电路。本课题由片外晶体振荡器与两个匹配电容一起构成了一个内部时钟振荡电路,为单片机提供时钟源。复位电路采用上电自动复位电路
39、当上电时,电容通过并联的电阻迅速放电,然后,RC电路充电,能够保证RST端能够维持一段时间的高电平。3.2按键模块按键电路是切换LCD1602显示界面的关键,本设计有一个按键,每按一次切换一路显示参数,按键与单片机P2.6口相接,电路图如图7所示。图7按键电路图3.3温湿度采集模块DHT11的供电电压为35.5V,传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚VDD,GND之间可增加一个100nF的电容,用以去耦滤波。数据用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数局部和整数局部。如图2.2所示,本电路上拉电阻为5
40、.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.1主程序主程序采用子程
41、序调用的构造,单片机上电后,主程序对系统进展初始化,然后对各个模块进展调用,这些模块主要包括:温度、湿度、光照的采集,显示,报警,串口通信。主程序流程图如图11所示。图11主程序流程图4.2参数采集子程序本设计的环境参数采集流程为:首先进展串口配置,在对传感器采集的数字量进展处理,将数据输出到液晶屏时显示,同时判断环境参数是否超过上下限,超限,则报警,不超限则将数据保存,如图12所示。图12参数采集流程图4.3上位机设计上位机前面板设计如图13所示,前面板中有三路环境参数采集的实时曲线,有当前温度显示,以十进制进展显示,还有数据接收去显示,记录所有接收到的参数数据。还有对串口资源的配置。同时可
42、设定三路参数上下限报警值,实现三路参数上下限报警以及历史数据报表生成。图13前面板设计图如图14所示,0界面进展串口资源配置,波特率设定为9600,数据位8位,校验位无,停顿位1。图14程序面板串口配置原理图图15上位机数据处理界面如图16所示,以温度参数的显示为例,首先经过属性节点,读取下位机传送来的VISA属性资源。图16温度数据显示经过VISA读取函数,VISA读取函数是指从VISA资源名称指定的设备或接口中读取指定数量的字节,并使数据返回至读取缓冲区。如图17所示。图17 VISA读取函数各端口说明而后通过截取字符串函数,如图18所示,以温度为例,从第0位起截取2位字符。图18截取字符
43、串函数各端口说明在经过十进制数字符串至数值转换函数,如图19所示,使字符串中的数字字符转换为十进制整数,通过数字返回。图19十进制数字符串至数值转换函数各端口说明将转化为数字的参数,连接到报表显示,示波器及仪表盘,同时与输入的上下限进展比拟,超限后报警灯闪烁。图20定时界面4.4通信模块设计RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。收、发端的数据信号是相对于信号地。典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5+15V,负电平在
44、-5-15V电平。当无数据传输时,线上为TTL,从开场传送数据到完毕,线上电平从TTL电平到RS-232电平再返回TTL电平。接收器典型的工作电平在+3+12V与-3-12V。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。RS-232是为点对点即只用一对收、发设备通讯而设计的,其驱动器负载为37k。所以RS-232适合本地设备之间的通信。图21串口通信流程图系统调试系统调试调试结果如下列图所示,系统调试结果与预期要求一样,实现了下位机对环境温度、湿度、光照强度的实时采集,液晶显示。同时也实现了上位
45、机与下位机之间的通信,上位机数据记录,数据绘图,报警功能。如图22、图23、图24、图25所示。图22上位机三路环境参数显示界面图23三路环境参数历史数据报表图24 LCD1602显示温湿度图25 LCD1602显示光照强度心得体会本次设计我负责软件编程局部,通过对本系统的研究和设计,使我对单片机的使用有了更深一层次的理解和掌握。整个系统设计过程用到的主要硬件有STC89C52,温湿度传感器DHT11,光照传感器BH1750。通过对这些硬件的学习和了解,不仅扩展了自己的知识面,也是自己对单片机的外围电路有了进一步的学习。设计过程中我们遇到了很多问题,例如上位机与下位机进展串口通信的程序如何编写
46、等等,都通过教师和同学的帮助以及自身学习得到了解决,也锻炼了自己独立思考问题的能力,并增强了自己的动手操作能力,这对我将来的毕业设计以及未来的学习都有很大的帮助。感谢教师们的指导和同学们的帮助。7.参考文献1 梅晓榕,柏桂珍,*卯瑞.自动控制元件及线路M.:科学,20072 1985赵亮.液晶显示模块LCD1602应用J.电子制作,2007(3)3 马忠梅,籍顺心,*凯等.单片机的C语言应用程序设计M.航天航空大学,20034 胡汉才.单片机原理与接口技术M.清华大学,1996.5 黄贤斌,*筱霞.传感器原理与应用M.:高等教育. *:电子科技大学,2004,3(2009.1重印)6 何立民.
47、单片机应用系统设计M.:航天航空.1990,50-4907 *笃仁,韩保君.传感器原理及应用技术M.机械工业.2003,8 8 王勇等.凌阳单片机原理及其毕业设计精选M.科学附录一原理图图26电路原理图附录二程序清单#include #include #include lcd1602.c#define uint unsigned int #define uchar unsigned charsbit TRH=P23;/ 1号温湿度传感器data数据端sbitSCL=P24; /IIC时钟引脚定义sbit SDA=P25; /IIC数据引脚定义sbitkey1=P26; / 按键int num=
48、0;#define SlaveAddress 0*46 /定义器件在IIC总线中的从地址,根据ALT ADDRESS地址引脚不同修改 /ALT ADDRESS引脚接地时地址为0*A6,接电源时地址为0*3Atypedef unsigned char BYTE;typedef unsigned short WORD;BYTE BUF8; /接收数据缓存区uchar ge,shi,bai,qian,wan; /显示变量int dis_data; /变量uchar TH_data,TL_data;uchar RH_data,RL_data; void conversion(uint temp_dat
49、a);void Single_Write_BH1750(uchar REG_Address); /单个写入数据uchar Single_Read_BH1750(uchar REG_Address); /单个读取内部存放器数据void Multiple_Read_BH1750(); /连续的读取内部存放器数据void conversion(uint temp_data) / 数据转换出个,十,百,千,万 wan=temp_data/10000+0*30 ; temp_data=temp_data%10000; /取余运算qian=temp_data/1000+0*30 ; temp_data=t
50、emp_data%1000; /取余运算 bai=temp_data/100+0*30 ; temp_data=temp_data%100; /取余运算 shi=temp_data/10+0*30 ; temp_data=temp_data%10; /取余运算 ge=temp_data+0*30; /*起始信号*/void BH1750_Start() SDA = 1; /拉高数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 0; /产生下降沿 Delay5us(); /延时 SCL = 0; /拉低时钟线/*停顿信号*/void BH1750_Stop()
51、SDA = 0; /拉低数据线 SCL = 1; /拉高时钟线 Delay5us(); /延时 SDA = 1; /产生上升沿 Delay5us(); /延时/*发送应答信号入口参数:ack (0:ACK 1:NAK)*/void BH1750_SendACK(bit ack) SDA = ack; /写应答信号 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时/*接收应答信号*/bit BH1750_RecvACK() SCL = 1; /拉高时钟线 Delay5us(); /延时 CY = SDA; /读应答信号
52、 SCL = 0; /拉低时钟线 Delay5us(); /延时 return CY;/*向IIC总线发送一个字节数据*/void BH1750_SendByte(BYTE dat) BYTE i; for (i=0; i8; i+) /8位计数器 dat = 1; /移出数据的最高位 SDA = CY; /送数据口 SCL = 1; /拉高时钟线 Delay5us(); /延时 SCL = 0; /拉低时钟线 Delay5us(); /延时 BH1750_RecvACK();/*从IIC总线接收一个字节数据*/BYTE BH1750_RecvByte() BYTE i; BYTE dat =
53、 0; SDA = 1; /使能内部上拉,准备读取数据, for (i=0; i8; i+) /8位计数器 dat = 1; SCL = 1; /拉高时钟线 Delay5us(); /延时 dat |= SDA; /读数据 SCL = 0; /拉低时钟线 Delay5us(); /延时 return dat;/*void Single_Write_BH1750(uchar REG_Address) BH1750_Start(); /起始信号BH1750_SendByte(SlaveAddress); /发送设备地址+写信号 BH1750_SendByte(REG_Address); /内部存放
54、器地址,请参考中文pdf22页 BH1750_Stop(); /发送停顿信号void Multiple_read_BH1750(void) uchar i; BH1750_Start(); /起始信号 BH1750_SendByte(SlaveAddress+1); /发送设备地址+读信号for (i=0; i3; i+) /连续读取6个地址数据,存储中BUF BUFi = BH1750_RecvByte(); /BUF0存储0*32地址中的数据 if (i = 3) BH1750_SendACK(1); /最后一个数据需要回NOACK else BH1750_SendACK(0); /回应A
55、CK BH1750_Stop(); /停顿信号 DelayMs(5);/初始化BH1750,根据需要请参考pdf进展修改*void Init_BH1750() Single_Write_BH1750(0*01); /*12us级延时程序*/void delay_us() uchar i; i-; i-; i-; i-; i-; i-; /*1号温湿度传感器DHT11收发信号检测,数据读取*/uchar receive() uchar _data; uchar respond,temp; uchar i; _data=0; for(i=0; i8; i+) respond=2; while(!T
56、RH)&respond+); delay_us(); / 这3个大概延时40us delay_us(); delay_us(); if(TRH) temp=1; respond=2; while(TRH)&respond+); else temp=0; _data=1; _data|=temp; return(_data); uchar CK_data;void read_TRH() uchar TH_temp,TL_temp,RH_temp,RL_temp,CK_temp,untemp;uchar respond;/ 主机拉低18ms TRH=0;DelayMs(18);TRH=1;/DAT
57、A总线由上拉电阻拉高主机延时50us左右delay_us();delay_us();delay_us();delay_us();if(!TRH) respond=2;while(!TRH)& respond+);respond=2;/ 等待DHT11发出 80us 的高电平完毕,然后进入接收状态RL_temp = receive(); TH_temp = receive(); TL_temp = receive(); CK_temp = receive();TRH=1; /数据校验untemp=(RH_temp+RL_temp+TH_temp+TL_temp);if(untemp=CK_tem
58、p) RH_data = RH_temp;RL_data = RL_temp;TH_data = TH_temp; TL_data = TL_temp;CK_data = CK_temp; /按键扫描void keyscan()if(key1=0)delay(10);if(key1=0)/切换显示状态num+;if(num =3) num =0;while(!key1);LCD_Clear(); /*串口通讯*/uchar outdata10; /定义发送的字节数uchar indata10;uchar count, count_r=0;uchar str10= RS232 ;SendData(uchar *a)outdata0 = a0; outdata1 = a1;outdata2 = a2;outdata3 = a3;outdata4 = a4;outdata5 = a5;outdata6 = a6;outdata7 = a7;outdata8 = a8;outdata9 = a9;count = 1;SBUF=outdata0;void UART_Init(void)TMOD = 0*20; /定时器T1使用工作方式2TH1 = 253; / 设置初值TL1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省德宏州2024-2025学年高一上学期期末教学质量统一监测英语试题(解析版)
- 小学四年级数学几百几十数乘以一位数水平练习试题带答案
- 海南高职高考试试题及答案
- 问题皮肤考试试题及答案
- 物理生物考试试题及答案
- 眼科知识考试试题及答案
- 菏泽音乐教编考试试题及答案
- 高中教师考试试题及答案
- 2025-2030香油行业投资机会及风险投资运作模式研究报告
- 2025-2030电池驱动的Nutrunner行业市场现状供需分析及重点企业投资评估规划分析研究报告
- 外研版(三起)(2024)三年级下册英语Unit 2 单元测试卷(含答案)
- 国开(内蒙古)2024年《创新创业教育基础》形考任务1-3终考任务答案
- 中考英语补全对话135个必背句型
- 心理社会评估健康评估本科课件
- 结构化思维与表达课件
- 体育心理学(第三版)课件第八章运动技能的学习
- 深信服SDWAN产品介绍
- JT∕T 1431.3-2022 公路机电设施用电设备能效等级及评定方法 第3部分:公路隧道照明系统
- 行政事业单位公务卡使用管理办法模板
- 五年级奥数教程
- 针刺伤的预防及处理(课堂PPT)
评论
0/150
提交评论