EDN China > 设计实例 > 嵌入式系统 > MCU(单片机应用) > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) 基于VB与单片机的温度测控系统设计

现代电子技术 吴爱萍?? 2010年06月21日 ?? 收藏0

  0 引言

  在现代测控系统中,由于PC机具有强大的数据处理能力和良好的用户交互界面,单片机具有较强的现场抗干扰能力及良好的性价比,因此以PC机为上位机实施用户控制和以单片机为下位机进行实时数据采集的分布式智能化控制系统无疑具有很好的应用前景。本文中单片机实现了温度检测,具有较好的实时性;PC机完成了数据显示、存储及统计分析,绘制了实时温度曲线,并对系统目前所处状况做出了评判。两者之间以串行口进行通信联络。

  l 数据采集系统的硬件基础

  该系统的下位机选择Atreel公司的AT89S51单片机作为控制核心,负责采集现场温度值。温度传感器将温度转换为电压信号,经模/数转换器ADC0809转换成8位数字量,并经AT89S51的P1口进入单片机保存。上位PC机通过串行口与下位机联络,向下位机发送控制命令和接收下位机上传的数据以及进行人机交互。上位机采用VB 6.0进行人机交互界面设计,并利用其MSComm控件实现与下位机简单而高效的串行通信。充分发挥了单片机在实时数据采集和PC机对图形处理、显示以及数据库管理上的优点。使得单片机的应用已不仅仅局限于传统意义上的自动监测或控制,而是形成了以网络为核心的分布式多点系统的发展趋势。由于上下位机串行口工作电平不一致,它们之间通过MAX232芯片将单片机TTL电平转换为RS 232电平,构成如图1所示的系统结构框图。

温度检测系统结构框图

  2 VB环境下串行通信的实现方法

  VB可视化界面的设计风格具有简单、易学、高效的特点,已成为众多开发人员采用的工具,且被广泛应用到各个领域。VB的MSComm通信控件,只需用户编写少量的程序代码即可完成通信软件的开发过程。

  2.1 MSComm控件简介

  MSComm控件是Microsoft公司提供的串行通信ActiveX控件,MSComm控件通过串行口发送和接收数据,为应用程序提供串行通信功能。MS-Comm通信控件的主要属性如下:

  (1)CommPort属性用于设置或返回通信连接端口。在设计时,CommPort属性值可以设置成从1~16的任何数(缺省值为1)。

  (2)Settings属性用于设置初始化参数。以字符串的形式设置或返回联机速率、奇偶校验、数据位、停止位等4个参数。其格式为:“BBBB,P,D,S”。其中,BBBB表示联机速率;P表示奇偶校验位检查方式;D表示数据位数;S表示停止位数。该系统设其为“9600,N,8,l”。

  (3)Portopen属性用于设置或返回通信串口的状态(开或关)。Portopen属性为Boolean类型,当值为True时,表示打开串口;当值为False时,表示关闭串口,并清空接收和发送缓冲区。

  (4)Input属性用于从接收缓冲区读取数据。

  (5)Output属性用于向发送缓冲区写入数据。

  (6)InputMode属性用于读取或设置从接收缓冲区读取数据的格式,当InputMode=O时,数据以文字形式读取;当InputMode=1时,数据以二进制形式读取。

  2.2 上位机程序设计

  上位机主要负责发送控制命令,以及数据的接收、处理、计算、数据的显示等功能。上位机程序分为四个部分:界面设计、程序初始化、数据通信、数据处理。程序流程如图2所示。

程序流程图

  主操作界面主要分为四个组成部分,如图3所示。为使界面清晰明了,用frame控件将其隔开。

主操作界面

  其中,温度界限部分主要用来显示用户自己设定的温度上下限;数据接收部分采用外部控件MSFlexGrid来显示已经接收过来的数据;统计计算部分用来显示对数据分析后的结果,如最大值、最小值、平均值等,最后对当前系统状况作出综合评判;温度曲线部分显示当前所有温度的变化情况,每个温度值对应曲线突出的一点,其中两条虚线内的点代表温度值在界限范围内,两条虚线外的两个点则表示该温度值超出了界限范围。

  进入主界面后,用户首先单击“开始联络”,此时上位机会向下位机发出联络信号,下位机受到预先设定的联络信号后,会将数据发送过来;然后单击“接收数据”命令,此时会在MSFlexGrid控件中按先后顺序依次显示接收到的数据;在进行数据处理之前,用户可根据自身需求进行温度界限的设定,仅单击“界限设置”命令即可实现;最后进行数据处理,单击相应命令按钮后,会在界面绘出当前温度曲线,并计算出各种统计参数。

  2.3 串口通信初始化程序

  该程序主要用于对数据缓冲区以及串口部分的初始化,如串口的选择、串口的数据格式等。这部分程序的代码如下:

程序


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

VB? 单片机? 温度测控? MSComm?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈