基于TeeChart的89C51与PC串口通信与数据曲线绘制

2016-08-31 06:35沈一凡李晨辉长安大学电控学院
数码世界 2016年8期
关键词:波特率PC机控件

赵 峰 沈一凡 李晨辉长安大学电控学院

基于TeeChart的89C51与PC串口通信与数据曲线绘制

赵峰沈一凡李晨辉
长安大学电控学院

在控制系统中,有时候需要对采样所得数据的曲线进行绘制以便对被研究对象进行建模、数据分析。同时,图像分析的方法由于它独特的优点被广泛的运用,实时绘图技术就显得十分重要。

Teechart 曲线绘制 串口

1 引言

近些年来,由于控制工程发展的实际需要,控制过程中需要依赖上位机对某些重要数据进行记录、分析与处理,有的控制过程需要对所得数据进行精确的绘图用以追踪数据变化曲线。目前现有的绘图软件也不少,但是主要是由于各种产品的制作风格,设计功能千差万别,很多时候难以满足控制工程人员的需求。这对标准化、模块化、个性化、多元化的绘图程序设计软件提出了要求,而TeeChart控件作为一款优秀的绘图控件,兼容多种程序语言可以降低软件开发的难度,同时也兼顾了缩短了软件开发周期,也提高了系统的可靠性等优点。

2 硬件介绍

单片机开发板核心采用的是STC公司的89c52开发板,内部ROM为8Kb,256个字节的RAM,通过MAX232芯片与单片机连接并进行电平转换后通过RS232直接与PC机串口连接。电路如下图所示:

3 下位机程序设计

3.1程序说明

设计一个可以使得单片机持续向PC机发送ASCII码的程序,波特率设置为9600,这主要是因为PC上位机与下位机是以ASCII码的形式通信,人为的在单片机端进行16进制与ASCII码转换,保持51单片机一直向串口发送数据“25”。程序流程图如下:

4 上位机程序设计思路

4.1程序特征说明

采用VS2010开发环境中的C++语言进行设计,通过建立MFC程序以调用较多的附加库函数,其强大的MSCOMM串口通信控件可以满足相当多的通信要求,诸如,串口数据开放与关断、接收与处理等相关的库函数,同时子函数的调用与开发很方便,可以大大降低编程的。

4.2TeeChart软件设计

(1)串口号与相应波特率的选择

在表格里设置两个下拉菜单栏,波特率从300设置到43000变化,串口号从1到15,这样,串口选择可以更加灵活,为了方便起见,预设波特率为9600与单片机通信速率相同。程序添加在MFC图表程序初始化程序中:

m_comsel.SetCurSel(0);//预置COM口

m_bandratesel.SetCurSel(5);//预置波特率为”9600”

(2)串口开放与关闭程序设计

在图表框中程序中加入两个按钮,分别用于控制串口开通与关断。

(3)在图表框程序中加入两个编辑框,分别用recieve与send表示,一方面可以用于检验得到的数据是否正确,另一方面可以判断串口输入的数据与图像进行比较。在后期处理的过程中,可以将两个编辑框缩小或直接去除。

(4)设置Teechart曲线的横轴与纵轴,以及部分数据的初始化,这些处理程序可以放入MSCOMM处理函数中,时间轴从电脑当前时间选择作为参考,但是进行处理后均默认从0时0分

CSeries(m_chart.Series(0)).Clear();//清空曲线

CPage(m_chart. get_Page()).p u t_ MaxPointsPerPage(80);//设 置80个数据点

COleDateTime CurTime = COleDateTime::GetCurrentTi me();//获取当前时间

COleDateTimeSpan tmSpan= COleDateTimeSpan(0,0,1,0);//设置时间间隔为1分钟。

(5)读取时间与缓冲区的字符,由于图像处理程序嵌入到了串口通信程序中,所以数据一被接受便被处理并暂存在PC机内。

(6)绘图部分中不仅执行绘图功能,在绘图结束后进行延时设计,这里不使用精确延时功能,一方面对于短时间的检测(这里是1s)间隔而言使用Sleep函数或定时器对于程序造成的停滞非常严重,所以这里采用GetTickCount函数编写延时程序,每隔1s检测串口端是否有数据,若不是则继续保持等待,当然这样的等待时间相对程序工作时间来说是微不足道的。

上位机程序流程图如下图所示:

5 最终曲线图像与总结

结束总结:本文主要针对单片机与PC机通信并进行实时通信绘制曲线进行分析,搭建了一个基本功能齐备的曲线处理程序,特别是针对8位的单片机提供了一个较好的图像处理平台,可以为相关工作人员进行单片机与PC机进行图像数据处理提供参考。实际上机测试通过,程序可以实现功能,实际测序测试结果如下图所示。

[1]刘战坤,曾水平,基于DSP28335与TeeChart控件的数据采集与显示系统[J].中国科技信息2013.11; 113-114

[2]梁增欣,李维嘉,TeeChart控件介绍及在实时监控系统中的应用[J].工业控制计算机2010,23(12);9-10

猜你喜欢
波特率PC机控件
UART 波特率检测电路的FPGA 设计算法与实现
基于.net的用户定义验证控件的应用分析
CAN 总线波特率自适应程序设计
浅谈西门子S7—400与S7—200的通讯实现方法
关于.net控件数组的探讨
基于WiFi技术的智能手机双控视频小车
用VC++实现PC机与单片机的串行通信
单片机与PC机串行数据通信的工程实践
基于单片机与PC机的电气量采集系统设计
基于嵌入式MINIGUI控件子类化技术的深入研究与应用