基于VB和MSP430FG4618的温度智能监测系统

2017-11-08 05:46江汉大学物理与信息工程学院艾红朝漆为民段金杰
电子世界 2017年20期
关键词:下位控件上位

江汉大学物理与信息工程学院 艾红朝 漆为民 段金杰

基于VB和MSP430FG4618的温度智能监测系统

江汉大学物理与信息工程学院 艾红朝 漆为民 段金杰

本文以16位超低功耗MSP430系列单片机为下位机处理核心,研制一套温度监控系统。该系统采用具有16位分辨率的DS18B20作为温度传感器,能够很精确的采集温度信号。通过串口将采集到的数据在LCD上显示出来,并且发送给上位机,上位机利用VB6.0设计出一套监测界面,能够实时的观测到当前温度值以及历史温度值,最终实现人机交互。通过现场调试结果证明,该系统通讯可靠性高,且节约资源,在现实生活中有一定的利用价值。

DS18B20;MSP430FG4618;PC机

引言

温度是基本的物理量之一,不管是工农业领域还是在日常生活中都是需要经常测试的重要参数[1],常用的测温方法有电阻式、热电偶式、辐射式等等,但检测电路复杂且结果精确度不高。而有些环境对温度的要求则非常高[2]。比如化工过程控制领域、生物反应领域等。传统的测温已经不能满足要求,而DS18B20温度传感器分辨率能够达到0.0625,测温范围为-55--125ºC,在温度为-10--85ºC时精度为±0.5ºC[3]。以MSP430为下位机作为核心控制系统,负责处理现场温度值,上位机通过串口与MSP430进行通信联络以及人机交互,从而对温度做到实时的监控。

1.系统总体设计

该系统控制核心采用的是德州仪器公司的MSP430FG4618单片机,该单片机内部具有80个通用I/O 引脚、12位 A/D 转换器、16位定时器、同步/ 异步通讯接口(USART)、DMA等。能够满足数据采集和处理要求[4]。该嵌入式系统总体设计如图1所示。系统由LCD显示部分、温度采集部分、报警处理部分、MSP430核心部分、PC机等共同构成。温度传感器DS18B20获取温度值。单片机对数据进行处理,一方面与DS18B20内部事先设定的最高和最低温度比较,如果所测温度高于或者低于设定值,则进行报警处理,并把当前温度通过LCD显示出来;另一方面通过MAX232将数据分高八位和低8位发送给PC机,VB先对数据进行计算,然后通过界面显示,能够非常清楚的观测到温度变化情况。

图1 系统总体设计

2.下位机软件设计

下位机采用MSP430为主控制核心,MSP430是一种性价比非常高的单片机,采用简单易懂的C语言来编写程序,大大缩短了开发时间。软件设计过程中用模块化设计方法,便于调试以及后期对系统做进一步的扩展。软件编程由主程序、LCD显示程序、温度复位程序、报警程序、温度读取程序,串口通信等构成,下位机软件设计如图2所示,下面简要介绍温度连接电路和温度转换部分程序。

图2 下位机软件设计

2.1 温度连接电路

DS18B20只有三个引脚,其中VCC接地,VDD接3.3V电压,通过单总线端口DQ进行数据的传输,对时序的精确要求比较高,硬件连接十分简洁,MSP430FG4618的P1.6端口与DS18B20的DQ口连接。温度连接电路如图3所示。

图3 温度连接电路

2.2 温度转换部分程序

Reset_18B20(); //初始化

WriteSkip_18B20(0xcc); //发送跳过读取产品ID号命令

WriteConvert_18B20(0x44); //发送温度转换命令

Delay();

Reset_18B20();

WriteSkip_18B20(0xcc);

WriteRead_18B20(0xbe); //发送温度转换命令

3.上位机软件设计

上位机采用VisualBasic6.0进行界面设计,用Frame将界面分块处理,在工程中添加MSFlexGrid控件用来显示历史数据、两个Text框显示当前温度值和系统状况、串口设置、MSComm控件实现与下位机之间的数据传输[5]等。

3.1 MSComm控件简介[6]

MSComm控件是微软公司提供的一种通信控件,部分属性如下:

(1)ComPort 通信端口的设置。本系统设其为5。

(2)Settings 串口相关设置,其格式为:“BBBB,P,D,S”其中,BBBB表示波特率;P表示奇偶位判断方法;D表示数据位;S表示停止位。本系统设其为“9600,N,8,1”。

(3)Input 读取接收缓冲区的数据。

(4)Potropen 通信串口的状态。Potropen=True(打开):Potropen=Fasle(关闭)

(5)InputLen用于设置一次性从接收缓冲区读取字节数。

(6)RThreshold为一阈值。控制接收缓冲区字符的多少,当达到设定值时产生OnComm事件。

3.2 上位机程序设计

上位机程序设计主要负责与下位机进行串口的通信设置以及对接收到的数据进行处理。上位机程序设计如图4所示。下面简要介绍串口初始化程序和上位机通信程序。

图4 上位机软件设计

3.2.1 串口初始化程序

该程序主要用于串口部分的初始化,如通信端口的选择、串口的设置、数据接收类型等等。部分程序的代码如下:

With MSComm1

.CommPort = 5 ‘

.Settings = “9600,N,8,1” ‘

.InputMode = comInputModeBinary

.RThreshold =1 ‘接收一个字节后产生OnComm事件,处理相关事件

.SThreshold = 0

.PortOpen = True ’打开端口

End With

3.2.2 上位机通信程序

inbuf = MSComm1.Input

onbuf = MSComm1.Input

num = UBound(inbuf)

ReDim indata(0 To num) As Long

For i = 0 To num

indata(i) = inbuf(i) * 256 + onbuf(i) ‘合并高低8位

Next

4.调试及结语

4.1 调试

系统上电后,点击“运行”按钮即可出现温度监测系统界面,如图5所示。显示当前日期,进行相应的端口设置后点击“开始接收”按钮,下位机通过串口将数据送给上位机,通过监测系统界面能够及时了解温度的情况,点击“开始记录”按钮,则会保存历史温度值,记录温度值的时间间隔可通过VB6.0中的Timer控件来设置,也可以停止记录,点击“清空数据”按钮,则会清空历史温度值。经过调试,该系统能够达到预期结果。

图5 温度监测系统界面

4.2 结语

VB是一种简单易懂而高效地开发应用软件的工具,只需在设计工程中对不同的控件写入少量的程序即可,广泛地运用在PC机和单片机之间的通信,MSP430系列单片机最显著的特点就是其超低功耗,且功能十分强大,该系统根据不同的需要可以运用到多种温度监测系统中。

[1]郑惟辉.单片机智能温度控制系统的设计[J].黄山学院学报,2008,10(5):23-24.

[2]张军,陈慧丽.基于MSP430单片机和DS18B20的数字温度计[J].电子设计工程,2010,18(11):106-107.

[3]江太辉,邓展威.DS18B20数字式温度传感器的特性与应用[J].电子技术,2003,(12):46-48.

[4]王晓银,王彦瑜,蒋锋.基于MSP430F149单片机的温度监测系统的设计[J].微计算机信息,2006,22(72):77-78

[5]郭武滔.基于VB和PLC温度循环测试系统的研究与实现[D].上海:东华大学出版社,2014.25-30

[6]吴爱萍.基于VB与单片机的温度测控系统的设计[J].现代电子技术,2010,8(319):207-209

江汉大学研究生科研创新基金项目(008-2015-03)。

艾红朝(1990—),男,研究生,研究方向:化工过程检测及自动化。

艾红朝。

猜你喜欢
下位控件上位
发射机房监控系统之下位机
关于.net控件数组的探讨
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
景洪电厂监控系统下位机数据传输网络改造
围观党“下位”,吐槽帝“登基”
以新思路促推现代农业上位
CAN总线并发通信时下位机应用软件设计
ASP.NET服务器端验证控件的使用