|
职称论文发表 | 职称论文发表 专业提供:发表论文、论文发表、毕业论文、职称论... | |
住在汉口网 | 住在汉口网是一个专业提供汉口房产信息、车辆服务、生活服务、招... | |
职称论文网 | 职称论文网提供:发表论文、论文发表、毕业论文、职称论等服务。 | |
|
(三门峡职业技术学院,河南三门峡 472000)
摘要:在WindowsXP下利用VB的串行通讯控件MSComm可实现PC机与单片机之间的串口通信。本文主要阐述如何利用VB6.0中的MSComm控件实现pc机与单片机的通信。
关键词:VB;MSComm;串口通信
中图分类号:TP311.1 文献标识码:A 文章编号:1672—545X(2007)02— —
0 引言
VB6.0是一种功能强大、简单易学的程序设计语言。它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能,方便快捷地利用ActiveX控件MSComm编制适用于数据处理、多媒体等方面的程序,本文使用VB6.0中的MSComm控件开发出了计算机串口的计算机通信程序。
1 MSComm控件的简单介绍
MSComm控件是VB6.0中的一个ActiveX控件,其提供了两种处理通信的方式:一种为事件驱动方式,当串口发生事件或错误时,该控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。另一种为查询方式,主要是定时或不定时的在用户程序中查询该控件的某些属性是否发生变化,从而确定相应处理。该控件常用的属性和方法有: Commport(设置或返回串口号)、Settings(以字符串的形式设置或返回串口通信参数)、Portopen(设置或返回串口状态)、InputMode(设置或返回接收数据的类型)、Output(设置或返回发送缓冲区中等待计算机发送的字符数)、CommEvent(依据产生的事件和错误,MSComm控件为CommEvent属性赋不同的代码,同时产生OnComm事件)等。以上这些属性都是MSComm控件实现串口通信的重要参数。
2 VB中利用Mscomm控件实现串口通信的过程
2.1 发送单片机命令
为了使主机能够对整个检测过程进行实时控制,须要在发送命令(文本方式或二进制代码)以后设定等待的时间或通过条件判断下一步指令是发达还是接收。值得注意的是,当发送的命令是二进制代码时,还要特别注意发送的格式。
当发送命令过程是一个带参过程时,发送命令会变的简便易行。具体程序如下:
Dim command As Byte
\
MSComm1.OutBufferCount=0
MSComm1.Output=输出命令
MSComm1.InBufferCount=0
\
2.2 在OnComm事件中接收数据
OnComm事件主要是检查和处理通讯错误,可以通过检查CommEvent属性的值来查询事件和错误。
\
' 错误
Case comEventBreak /收到 Break/
Case comEventCDTO /CD (RLSD) 超时/
Case comEventCTSTO /CTS Timeout/
Case comEventDSRTO /DSR Timeout/
Case comEventFrame /Framing Error/
作者简介:董萍(1980—),女,河南淮阳人,本科,三门峡职业技术学院教师,从事计算机方面的教学工作。
Case comEventOverrun /数据丢失/
Case comEventRxOver /接收缓冲区溢出/
Case comEventRxParity /Parity 错误/
Case comEventTxFull /传输缓冲区已满/
Case comEventDCB /获取DCB时意外错误/
' 事件
Case comEvCD /CD 线状态变化/
Case comEvCTS /CTS 线状态变化/
Case comEvDSR /DSR 线状态变化/
Case comEvRing /Ring Indicator 变化/
Case comEvReceive /收到 RThreshold # of chars/
Case comEvSend /传输缓冲区有 Sthreshold 个字符/
Case comEvEof /输入数据流中发现 EOF 字符/
\
3 串口通信过程中发生错误信息的处理
由于外界干扰或电压波动等原因,PC机和单片机之间的通讯可能会出现错误,如接收缓冲区溢出、网络端口超速等。这些事件都可能在代码中引起运行错误。OnComm事件可以捕捉和处理错误。在MSComm控件中就提供了一个事件OnComm,该事件可以截取串口的任何消息,转入事件处理程序。OnComm可以捕获通信时发生的串口事件和错误信息,当有串口事件或错误发生时,VB会立刻触发一个OnComm事件,程序就会自动转入OnComm事件处理程序中。而在OnComm事件中,CommEvent属性是OnComm事件的指示器,它存有最近事件或错误的数值代码,在程序中可以随时读取CommEvent属性值来了解通信的状况。但该属性在设计时是不能使用的,而且在程序运行时也是以只读形式存在的。
OnComm事件是和CommEvent属性一起使用的。当任何一个OnComm事件或错误发生时,都会使得CommEvent属性值改变,在OnComm事件处理过程中,可以通过判断CommEvent属性值,对于不同的属性值转入不同的事件处理过程,常采用的办法是
SELECT CASE
\
END SELECT。
因此,通信错误的处理程序为:
\
Case ComReceive 'Receive data /自动数据接收、监视总线通信信息/
Select Case In_buffer $
Call A
Label.Enabled=“正在执行任务1”
Call B
\
End Select
Case comFrame /通信错误处理/
X=MsgBox(“Framing Error!”,16)
\
4 结束语
运用MSComm控件有效地实现了pc机与单片机的通信,而且这种实现方法在解决各类通信问题中也具有一定的普遍性。
参考文献
[1]李华.单片机通用接口技术[M].北京:北京航空航天大学出版社,1999.
On Making True SCI according to Making Use of
MSComm ActiveX in VB
Dong Ping
(Sanmenxia Polytechnic, Henan, Sanmenxia, 472000,China)
Abstract: It can make true the serial communication interface between PC and single-chip in making use of the SCI ActiveX under Windows XP. This article elaborates making use of MSComm ActiveX of VB6.0 makes true the Correspondence between personal computer and single-chip.
Key words: VB; MSComm ; communication
收稿日期:2006—11—28
作者介绍:董萍(1980—),女,河南淮阳人,本科,三门峡职业技术学院教师,从事计算机方面的教学工作。
职称论文发表网http://www.issncn.com
职称论文发表网http://www.issncn.com
|
|
|
|