- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符
?????? 现有电子秤一台,使用串口与计算机进行通讯。编写VB程序来访问串口,达到读取电子秤上显示的数据。该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。所有字符均发送11位ASCII码,一个起始位。在VB中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。具体程序如下:控件简称:MSC
Dim Out(12) As Byte 接收var中的值
Dim var As Variant 接收MSC.input中的数值
Dim nRece As Integer 计算MSC.inputbuffer的个数
Dim i As Integer, j As Integer 随即变量,计算循环
****************************************************************************
Private Sub Form_Load()
ClearText
With MSC
.CommPort = 1 设置Com1为通信端口
.Settings = 9600,E,7,2 设置通信端口参数 9600赫兹、偶校验、7个数据位、2个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。
含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit)
.InBufferSize = 40 设置缓冲区接收数据为40字节
.InputLen = 1 设置Input一次从接收缓冲读取字节数为1
.RThreshold = 1 设置接收一个字节就产生OnComm事件
End With
End Sub
****************************************************************************
Private Sub ClearText()
Text3.Text =
Text2.Text = 5
Text1.Text =
End Sub
Private Sub Command1_Click()
ClearText
nRece = 0 计数器清零
With MSC
.InputMode = comInputModeBinary 设置数据接收模式为二进制形式
.InBufferCount = 0 清除接收缓冲区
If Not .PortOpen Then
.PortOpen = True 打开通信端口
End If
End With
End Sub
Private Sub MSC_OnComm()
DelayTime ‘用来延续时间
ClearText
With MSC
Select Case .CommEvent 判断通信事件
Case comEvReceive: 收到Rthreshold个字节产生的接收事件
SwichVar 1
If Out(1) = 2 Then 判断是否为数据的开始标志
.RThreshold = 0 关闭OnComm事件接收
End If
Do
DoEvents
Loop Until .InBufferCount = 3 循环等待接收缓冲区=3个字节
nRece = nRece + 1
For i = 2 To 12
SwichVar i
Text1.Text = Text1.Text Chr(Out(i))
Next
Text1.Text = LTrim(Text1.Text)
Text2.Text = Text2.Text CStr(nRece)
.RThreshold = 1 打开MSComm事件接收
Case Else
.PortOpen = False
End Select
End With
End Sub
****************************************************************************
Private Sub DelayTime()
Dim bDT As Boolean
Dim sPrevious As Single, sL
文档评论(0)