利用vb实现pc机与多单片机通讯

利用vb实现pc机与多单片机通讯

ID:20754271

大小:59.00 KB

页数:5页

时间:2018-10-15

利用vb实现pc机与多单片机通讯_第1页
利用vb实现pc机与多单片机通讯_第2页
利用vb实现pc机与多单片机通讯_第3页
利用vb实现pc机与多单片机通讯_第4页
利用vb实现pc机与多单片机通讯_第5页
资源描述:

《利用vb实现pc机与多单片机通讯》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、利用VB实现PC机与多单片机通讯

2、第1...lunal>关键词:通讯属性事件前言在采用以PC机为控制中心的数据采集自动化控制系统中,通常需要单片机采集数据,然后用异步串行通讯方式传给PC机,PC对单片机进行定时控制,需要多个单片机协同工作。如果系统不很复杂,可通过定时器控件控制收发过程,在必要的地方自动接收装置,使定时控制和通讯过程完美地结合起来。这样,可以免去“握手”协议的繁琐过程,简化编程,提高速度。VB具有面向对象的设计方法,友好的用户界面,简单方便的串行通讯和实用性强等优点,无论借用其他语言就可以开发出优

3、秀的控制系统通讯软件。本文介绍在sm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。Msm控件的主要属性如下:(1)mport设置并返回通讯端口号。端口号可以设置为1~16的任何数,如Msm.mport=2表示设置当前通讯端口为2。(2)Setting设置并返回波特率、奇偶校验、数据位、停止位。格式为Msm.Setting=String。String是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格

4、校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。Setting属性的缺省值为“9600,N,8,1”。(3)Portopen设置并返回通讯端口的状态,也可以打开和关闭端口。(4)Input从接收缓冲区返回和删除字符。该属性在运行时为只读。(5)InputLen设置并返回每次Input属性从接收缓冲区中读取的字符数。InputLen属性的缺省值为0。设置InputLen为0时,Input将读取接收缓冲区的全部字符。(6)Output向传送缓冲区写数据。要传送的

5、数据可是文本数据或二进制数据。(7)mEvent返回最近的通讯事件或错误。只要有通讯错误或事件发生错误时就会产生Onm事件。mEvent属性中存有该错误或事件的数值代码。Timer控件的主要属性如下:(1)Enabled返回或设置一个值,该值用来确定一个窗体或控件否能够对用户产生的事件作出反应。通过把Enabled设置为“Galse”来使Timer控件成为无效,将取消由控件的Interval属性所建立的倒计时数。(2)Interval返回或设置对Timer控件的计时事件调用间的毫秒数。Timer控件的Enable

6、d属性决定该控件是否对时间的推移作出响应。将Enabled设置为“False”会关闭Timer控件,设置为“True”则打开Timer控件。当Timer控件置为有效时,倒计时总是从其Interval属性设置值开始。创建Timer事件程序。可通知VB在每次Interval到时该做什么。Timer控件和Enabled属性设置为“True”时,VB将在Interval时间到后自动访问Timer_Timer过程。为实现通讯程序,须在VB开发环境下设置一个用做控制通讯的窗体。窗体上主要有一个通讯控件Msml和两个Timer

7、控件。VB的特点是事件驱动,定时器控件会定时触发相应事件的驱动程序。1.发送单片机命令为了使主机能够对整个检测过程进行实时控制,须要在发送命令以后设定等待的时间,也可以通过条件判断下一步是发达还是接收命令。对发送的命令,可能是文本方式或二进制代码。在发送二进制代码时,应特别注意发送的格式。发送命令过程是一个带参过程,这样可使发送命令简便易行。具体程序如下:Sub发送单片机命令过程(mandAsByte)Dim输出命令(1To1)AsByteDoEvents输出命令(1)=mandMSm1.OutBufferCou

8、nt=0MSm1.Output=输出命令MSm1.InBufferCount=0EndSub2.接收数据接收数据是一个被动的过程,可以通过函数来实现,由定时器开启。在接收过程中,多数用特征字符,如“OK”、“#”等。这些需要在通讯协议中约定。Function接收数据()DoDoEventsIn_buffer$=In_buffer$MSm2.InputLoopUntilInStr(_buffer$,“OK”)'从串行端口读“OK”响应'In_buffer=Left(In_buffer,len(In_buffer)-

9、2)接收数据=In_buffer$EndFunction3.Timer控件控制通过Timer控件来控制通讯中的发送命令和接收数据过程,在通讯程序中设置两个Timer控件分别控制发送单片机命令和接收单片机数据。为了实现一台PC机和多单片机之间的通讯,可在一个Timer控件的过程中,在发送命令之前设定命令参数和要接收数据的单片机号,然后发送单片机命令;在另一个Timer控件的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。