新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 用VB 编程语言实现PC机与AVR 单片机的通信

用VB 编程语言实现PC机与AVR 单片机的通信

作者:时间:2013-12-09来源:网络收藏
0  引 言
在当今,网络技术越来越多地应用在各个领域,微机技术及单片机也不断发展,因此,目前大多数小型计算机监控系统都采用以PC 机和单片机构成的串行通信网络来完成监控任务。其中,单片机主要进行对数据的实时采集、处理,再通过串口将数据送入PC 机的缓冲区,然后由PC 机对数据进行进一步处理,以便得到所需的图形、图像及实验结果。采用VB 语言中的通信控件能够很好地完成二者之间的通信功能。
1  系统简介
本系统是一个小型的人体心电监测系统,将心电信号采出后经过A/ D 转换,由PC 机绘制出心电图形,进行实时显示,便于医护人员观察和诊断,系统原理如图1 所示。系统的下位机即单片机系统,将现场采集的信号经A/ D 转换送入系统上位机。系统上位机由一台PC 机构成,采用Vi2sual Basic 编程,做出友好的界面风格,可实时观察心电信号。用VB 编程语言实现PC机与AVR 单片机的通信
图1  系统原理图
2  MSCOMM 控件功能介绍
VB 提供了一个基本通信控件MSCOMM32.OCX ,它具备串行通信的能力,可以通过串口接收
和传输数据。
CommPort :端口号,用于选择通过哪个端口进行通信。
InBufferCount :返回接收缓冲区中等待的字符数,可以通过置0 来清空缓冲区。
InBufferSize :设置并返回接收缓冲区的字节数。
Settings :设置并返回波特率、奇偶校验、数位、停止位参数。通常设置为:“9 600 , n ,8 ,1”。
PortOpen :设置并返回通讯端口的状态(开或关) 。端口打开后,可以直接读写数据流。
Input :返回并删除接收缓冲区中的数据流。
InputLen :设置并返回Input 属性从接收缓冲区读取的字符数。
InputMode :设置或返回Input 属性取回的数据的类型。
Output :往传输缓冲区写数据流。
3  通信协议
1) 上位机与下位机通信的数据格式均为起始位,命令码,帧长,信息段,校验和,停止位。
起始位与停止位标定一次发送,起始位以前和停止位以后的数据均视为干扰信号。
帧长记录了信息段和校验和总共的字节数。
2) 所有的数据均按ASCII 码(十六进制) 操作。
3) 具体定义如下
信息中的每8 位(1 字节) 作为2 个字符发送。每8 位表示成16 进制数,高4 位、低4 位分
别对应一个ASCII 字符0~9 、A~F。
本协议以“:”(ASCII 值为0X3A) 开始,其次为命令码:8 位、信息段:长度由待发数据而定、校验和:8 位,最后以“回车”或“换行”(ASCII值分别为0X0D、0X0A) 结束。其中,校验和的计算方法为256 - [命令码+信息段长度] mod 256 (mod 表示求余) 。
根据功能不同设置了2 个命令码10 (ASCII值分别为0X31 、0X30) 和11 (ASCII 值分别为0X31 、0X31) 。在起始符后即为命令码,判断该值,以便转向相应的处理程序。
4  软件实现
MSCOMM 控件的使用使得用户不需要对通信底层进行操作,简便而有效。它有事件驱动和查询2 种通信方式,由于本系统只是一个小型的监测系统,因此,采用查询方式即可满足要求。放置一个定时器,参数设定为500 ms ,即每0. 5 s 检测一次缓冲区,将数据读入。

单片机相关文章:单片机教程


单片机相关文章:单片机视频教程


单片机相关文章:单片机工作原理


数字通信相关文章:数字通信原理


通信相关文章:通信原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭