VB6.0在PC机与单片机串行通信中应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB6.0在PC机与单片机串行通信中应用

VB6.0在PC机与单片机串行通信中应用    [摘要] 在开发微机控制及数据采集系统中,要实现PC机与单片机中的串行通信,经常用到的是RS232接口。我们普通PC机后面的COM端口即RS232接口。VB6.0提供了MSCOMM通信控件,只需编写少量的程序代码,即可在Windows环境下轻松实现串口的数据交换。本文以笔者曾研制的压力测定系统为例简单介绍通过VB实现计算机串口通信的方法。   [关键词] 串口通信 RS232 VB6.0      随着计算机技术的迅速发展及其在各领域的广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。而单片机具有价格低,功能强,抗干扰能力好,以及面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。   一、VB6.0实现串行通信方法   VB提供的通信控件Mscomm32.ocx,使用前只需从Project菜单下的Components中选择Microsoft Comm Control 6.0把Mscomm32.ocx控件调入工具框中即可使用。利用该控件可对串行通信的数据发送和接收进行设置,还可对串口状态及串行通信的信息格式和协议进行设置。在通信过程中可以通过触发OnComm事件来追踪、处理通信和错误事件的发生。由于每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。   硬件连接:   (1)当单片机以RS232接口为端子连接时,单片机与计算机的连接如下图:   (2)当仪表以RS485接口(其它接口如422等类同)为端子连接时,单片机与计算机的连接如下图:   2.MSCOMM控件简介   为支持串行通信的实现,VB6.0中Mscomm控件提供了众多的串行通信属性,但首先必须要熟悉的几个属性主要包括:   CommPort:设置并返回通讯端口号。   Settings:以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。   PortOpen: 设置并返回通讯端口的状态。也可以打开和关闭端口。   Input:从接收缓冲区返回和删除字符。   Output:向传输缓冲区写一个字符串。   此外,还包括如下等属性:   InputLen:输入缓冲区数据长度;   InputMode:输入模式,ASCII字符或二进制数据;   InBufferSize:设置并返回接收缓冲区的字节数;   OutBufferSize:设置并返回输出缓冲区的字节数;   OnComm:在发生通讯事件或错误时,将触发OnComm事件,CommEvent属性值将被改变;   Rthreshold:引发接收事件的字节数,为0时不引发接收事件;   Sthreshold:引发发送事件的字节数,为0时不引发发送事件;   ……   二、实例   本例主要介绍以MCS-51系列单片机为基础的智能化仪表与微机的数据通信软件的设计方法。系统主站为一台微机,子站为6个以单片机为主并利用串口可收发数据的智能仪表组成,每块仪表提供采用RS485通信标准的半双工通信模式。各子站通讯端子之间采用并联结构通过JR485转换器与PC机串行通信端口相连。为了避免争夺通信权现象,以主站主动访问每一站地址方式进行数据通信。由于6个子站与主站的同一串口连接,通信时,由上位机首先发一指令,建立连接,下位机在接收到上位机发来的命令后,及时作出应答,如果上位机发出的命令不正确或不存在(包括校验核不正确),仪表将没有回答。此外,仪表自动判断计算机发出的命令中是否含有校验核,如果命令中有校验核,则仪表顺答时自动外加2个字符的校验核。其中,命令的校验核等于所有命令ASCII码值的和,超过范围保留余数;回答的校验核等于所有回答ASCII码值的和再加上本仪表地址的ASCII码值,超过范围保留余数。   在系统软件窗体(Form)中加入一个通信控件(Mscomm)和二个定时器控件(Timer)。通信控件用于发送和接收数据,定时器控件(Timer1)用于控制计算机定时向仪表发送读取命令,定时器控件(Timer2)用于接收仪表向计算机所作应答,并进行计算机对仪表的数据写入。   1.Mscomm控件的初始化   在窗体事件中对Mscomm的一些属性进行设置   Mscomm.Commport=1利用串口COM1进行通讯   Mscomm .Setting=19200,s,8,1 设置通信控件传输波特率、奇偶校验、数据位、停止位   Mscomm.InputLen=0 读取接收缓冲区的所有字

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档