用VB实现计算机与单片机的串行通信.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文档。上传文档
查看更多
用VB实现计算机与单片机的串行通信

用VB实现计算机与单片机的串行通信?? 周子琛,申振宁 (武警工程学院,陕西 西安 710086)   摘要:给出了使用VB控件,实现PC机与8031单片机之间串行通信的编程方法,并给出了一个用VB实现PC机同8031通信的应用实例。?? ? ?? ? 1 概述   在工业应用中,常常需要进行串行通信,特别是在一些工业控制系统中尤其重要。早期,人们习惯使用汇编语言来编制通信程序,随着WINDOWS和可视化编程开发环境的出现,如微软的VB、VC等等,给传统的程序开发模式带来了深刻的变化。其中VISUAL BASIC由于使用方便,一般工程人员容易掌握、设计软件方便、工作量较小,深受工程人员喜爱。适用于一些对实时性要求不高的情况下使用。以下就采用RS232串行接口和8031单片机进行通信为例设计一个由8031单片机采集外部数据,然后送入计算机进行数据处理的处理过程来说明VB在开发串行通信时的使用情况。 2 硬件组成   该系统中,由于计算机串行通信接口和8031单片机的驱动电平不一致,故应使用一个电平转换装置,而MAXIM3223就可以完成这一功能,最简单系统如图1所示。   在使用VB来完成串行通信时,可以使用两种方法:一种是VB调用Windows的API函数法,另一种是使用VB自带的通信控件MsComm来完成。 3 MsComm控件   MsComm控件并未在常用的工具箱内出现,用户可以单击菜单中的“工程”菜单,并选择“部件”命令,在部件对话框中选择“Micosoft comm. Control”即可加入到工具箱内。MsComm控件提供了一系列标准通信命令使用的界面,可以建立与串行通信端口的连接,并通过串行通信端口完成对单片机,调制解调器等设备的数据采集和发送,以及监视串行通信线路的变化。MsComm控件有两种处理方式:(1)事件驱动方式,由MsComm控件中的OnComm事件捕获并处理通信事件及错误;(2)查询方式,检查ConEvent属性来处理通信事件及错误。   下面简要介绍MsComm控件的主要属性以及响应事件的类型。   (1) CommPort:设置或返回串行端口号,其取值范围1~99,缺省值为1。   (2) Setting:设置或返回串行通信口的波特率、奇偶校验位、数据位数、停止位数。   (3) PortOpen:串行口打开与否,为布尔量。   (4) InBufferSize:设置或返回缓冲区的大小,缺省值为1024字节。   (5) InBufferCount:返回缓冲区等待读取字节数。   (6) Rthreshold:该属性为一个阈值,当查询到接收缓冲区内字节个数达到或超过该设置值时就产生Oncomm事件。   (7) Inputlen :设置或返回接收缓冲区内用Input读入的个数。   (8) Input:表示从接收缓冲区内读出的一串字符。   (9) OutBufferSize:设置或返回缓冲区,缺省值为512字节。   (10) OutBufferCounter:返回发送缓冲区内等待发送的字节数,可用来清空缓冲区。   (11) EofEnable:若设置为True,则当输入中出现Eol时,就停止输入并产生OnComm事件。   在通信中可能会产生错误或事件,它们都可以引发OnComm事件,并改变其属性,由CommEvent属性代码来反映错误类型,在通信程序的设计中可以根据CommEvent属性的不同来执行不同的操作。 4 编程实例   本例用于解决PC机同8031单片机之间的通信问题,上位机(PC)与单片机之间采用RS232串行通信标准,以查询的方式进行通信,通信设置波特率为9600,无奇偶校验位,8位数据位,1位停止位,使用通信控件MsComm发送数据,数据传递采用事件驱动的通信方式。以下为通信的VB编程部分:   (1) 始化程序,主要是设置通信口的工作参数。 Sub Form_load()   MsComm1.Commport=2;   MsComm1.Setting=”9600,N,8,1”;   MsComm1.InputLen=0;   MsComm1.InBufferSize=1024;   MsComm1.PortOpen=Ture;   MsComm1.InBufferCount=0;   Perval=1000;   NonPerval=500;   Cmdp.Enable=False;   During.Periodic=False;   During.NonPeriodic=False; Endsub   “使用COM2作为通信口,使用查询方式进行通信,每隔0.5s查询一次,以确定是否发送周期命令。同初始化发送缓冲区和接收缓冲区。”   (2) 非周期发送程序。根据

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档