vb设计论文第三篇:基于单片机和VB6.0的温湿度监测系统开发
摘要:介绍了一种将单片机与计算机软件编程相结合的温湿度监测系统。运用单片机将温湿度传感器采集到的温湿度信息通过串口发送给PC, PC通过以VB6. 0编写的界面对发送的温湿度进行实时显示和处理。仿真实验结果表明, 该系统能实现所设计的功能。
关键词:温湿度监测系统; 设计; 单片机; 串口; 上位机; VB6. 0编程;
Design of Temperature and Humidity Monitoring System Based on VB6.0
LIN Kaisi ZHANG Lu XING Bingsuo
Department of Electrical Engineering, Tongling Vocation and Technical College
Abstract:A temperature and humidity monitoring system combined SCM with computer software programming is introduced in this paper. The function of SCM is to send the temperature and humidity information collected by sensors to PC through serial port. The temperature and humidity transmitted by SCM are displayed and processed in real time through the interface written by VB6. 0 on PC. Simulation results show that the system can realize the designed function.
工农业生产和科学实验及医疗、气象服务等众多领域都会用到温度和湿度监控技术。现有的温湿度监控系统多以单片机为控制核心, 单片机除了控制传感器采集温湿度信息, 还要进行数据的分析处理与显示, 存在软件编程复杂、硬件设计不易和系统扩展应用不够理想等问题。随着计算机软件技术的发展, 可将单片机技术和软件技术相结合来进行温湿度检测与控制, 这样既可节约资源, 又便于计算机控制[1]。
Visual Basic 6.0是微软开发的一种通用的基于对象的程序设计语言[2]。我们设计了一种基于单片机和VB6.0的温湿度监测系统:单片机对温湿度传感器采集的温湿度信息, 通过串口发送给上位机, 上位机再利用VB6.0编程分析和处理数据。该系统可实时测量并显示环境的温湿度, 绘制并呈现温湿度随时间变化曲线, 在实时温湿度超过设定值时会发出报警信号。
1 系统硬件构成
设计的温湿度监测系统, 硬件部分包括温湿度传感器STH11、STC89C52RC单片机、LCD1602液晶和安装了VB6.0软件的PC机 (见图1) 。采用SHT11温湿度传感器对被测环境进行温湿度测量, 在字符型液晶显示器LCD1602上显示温湿度, 利用单片机将测量的温湿度信息通过串口发送给上位机 (PC机) , PC机通过VB程序读取温湿度信息, 同时对信息进行实时显示、绘制温湿度走势图、设置上下限并进行超限报警。
图1 温湿度监测系统的硬件
SHT11是瑞士Sensirion (盛世瑞恩) 公司推出的二线制接口型温湿度传感器, 可输出经过校准的温湿度数据。SHT11具有超小型、高精度、自校准、多功能和智能化的特点, 得到广泛应用。SHT11的温度测量范围为-40℃~+123.8℃, 测量精度为±0.4℃, 分辨率为0.01℃;相对湿度的测量范围为0~100%RH, 测量精度为±3%RH, 分辨率为0.03%RH。SHT11与单片机的连接比较简单, 如图2所示[3], 将DATA和SCK与单片机的I?O口相连即可。
系统前端由SHT11、LCD1602和单片机最小系统构成。单片机对SHT11采集的温湿度信息, 在本地LCD1602上实时显示, 同时通过串口向PC机发送。常用的串行通信接口有RS-232、RS-422和RS-485等。在通信距离30 m以内, 抗干扰能力要求不高的情况下, 可采用RS-232。在本系统中采用RS-232。采用Protues软件仿真, 仿真硬件电路如图3和图4所示。
图2 SHT11与单片机的连接电路
COMPIM是Protues中非常重要的虚拟元件。COMPIM建立起一个映射, 把仿真电路中的数字量映射到计算机的物理端口。单片机的TXD和RXD与COMPIM相连接, 就可以直接操作映射到物理端口。需要注意的是, TXD和RXD两根信号线是直通方式连接, 而非交叉。由于单片机是TTL电平, 串口是RS-232电平, 两种电平互不兼容, 两者直接对接时必须进行电平转换。本系统采用MAX232芯片进行电平转换[4]。
图3 液晶显示仿真电路
图4 RS-232串口通信仿真电路
2 系统软件设计
需要设计的软件包括单片机程序和PC机上的VB程序。
2.1 单片机程序
单片机程序采用C语言编程, 主要功能包括SHT11温湿度数据采集、温湿度信息液晶显示和利用串口通信将温湿度信息发送给上位机。SHT11程序流程图如图5所示。
2.2 VB程序设计
VB程序主要是利用串行通信控件MSComm实现与单片机的串行通信。利用MSComm控件中的Input和Output属性, 完成串口对信息的接收和发送。除了串行通信外, 程序还要具有以下功能:对单片机发送的温度信息进行实时显示;绘制随时间变化的温湿度曲线图;在Text文本控件中逐条打印温湿度信息;如果采集的温湿度信息超过设置值的上下限, 则通过shape控件发出报警信号。
2.2.1 串口通信初始化
串口通信首先要设置通信端口, 然后设置波特率。通信端口可以根据实际端口进行选择。这里将波特率设置为9 600 b?s, 8位数据位, 没有奇偶校验位, 1位停止位。波特率、数据位、奇偶校验位和停止位, 都可以在程序对话框中根据实际测试情况进行选择。初始化代码为:
通过Settings属性设置通信波特率为9 600 b?s、没有校验位、8位数据位和1位停止位。InputLen表示Input属性从接收缓冲区读取的字符数, 该属性值为0时表示读取缓冲区的全部内容。这里将其设置为1, 表示每次读取1个字符。读取数据的类型 (InputMode) 设为文本 (Text) 。Sthreshold表示On Comm事件产生之前在传输缓冲区中的最小字符数, 这里设为1。
图5 SHT11程序流程
2.2.2 定时器事件处理
VB中的定时器控件Timer是一个在程序运行时不可见的控件, 它有一个重要属性, 就是时间间隔属性 (Interval属性) 。时间间隔属性以ms为单位, 取值范围为0~65 536 ms。具体取值为多少, 用户可通过属性窗口中的Interval文本框进行设置。程序运行时, 每隔一定时间执行一次Timer事件中的相应代码。这里的一定时间, 由Interval属性设置。本系统设置的时间间隔为200 ms, 即每隔200 ms接受一次串口数据。
单片机向PC机发送的温度数据格式为:1位符号位“+”或“-”号, 2位整数位, 1位小数点位, 1位小数位, 结束符为1位空格位, 共6位;发送的湿度数据格式为:3位整数位, 1位小数点位, 1位小数位, 结束符为“%” (采用相对湿度单位) , 一共也是6位数据。为解决单片机发送数据与VB定时器事件扫描串口接收数据的同步问题, 每次以“+”或“-”为有效数据接收的开始位, 以“%”为一次温湿度数据接收的结束位。也就是一共12位, 每12位为一组温湿度信息, 当检测到有效数据的标志位后, n Count记为0。代码为:
2.2.3 温湿度变化曲线
以横坐标表示时间值, 以纵坐标表示采集的温湿度值, 纵横相交就构成一系列的点。用line方法将这些点连接起来, 画出温湿度随时间变化曲线。实现代码为:
其中, x为横坐标, y、y1分别表示温度和湿度前一时刻纵坐标, y0和y2分别表示温度和湿度当前时刻纵坐标。RGB函数设置曲线的颜色, 这里设为红色。
3 仿真测试
实现Protues仿真硬件和PC机的串行通信, 须使用虚拟串口。系统测试使用Virtual Serial Port Driver 6.9虚拟串口软件, 建立一对虚拟串口COM1和COM2。设置单片机为串口COM2, VB为串口COM1。温度和湿度上限初值都设为100, 下限初值都设为0。运行过程中, 可以随时重新设置温湿度上下限值。程序运行结果如图6所示。
实验结果显示, 通过配置通信窗口、设置通信端口和数据格式, 然后点击打开串口, 便可启动串口接收来自单片机发送的数据。系统能实时显示SHT11采集的温湿度信息, 画出温湿度随时间变化的曲线。可以通过文本框随时设置温湿度上下限值。实际温湿度超过设定的上下限值时, 报警灯由绿色变成红色, 显示报警。另外, 温湿度信息还通过数据接收窗口逐条显示出来。点击退出系统按钮, 便可退出系统。
图6 VB运行结果
4 结语
现有温湿度监测系统多以单片机为控制核心, 单片机在进行温湿度数据采集的同时, 还要进行数据的分析处理, 存在编程复杂、硬件应用不够等问题。本次研究设计的温湿度监测系统, 是在VB6.0环境下利用MSComm控件接收来自单片机发送的温湿度信息, 可对接收到的数据信息进行实时显示和记录, 并在实时温湿度超过设定值时发出报警信号。系统中单片机的作用只是控制SHT11采集环境温湿度信息和通过串口发送数据, 而对温湿度信息的监测和报警控制则由VB程序处理。仿真实验结果表明, 该系统能实现所设计的功能。
参考文献
[1]林园胜, 许刚, 江娟娟, 等.基于Lab VIEW的温湿度监测系统设计与实现[J].重庆工商大学学报 (自然科学版) , 2014, 31 (6) :61-67.
[2] 樊超. Visual Basic从入门到精通[M]. 2版.北京:人民邮电出版社, 2015:7-8.
[3] 王东峰, 陈园园, 郭向阳.单片机C语言100应用100例[M].北京:电子工业出版社, 2013:291-292.
[4]皮大能, 党楠, 齐家敏, 等.单片机原理与应用[M].西安:西北工业大学出版社, 2016:178-179.