没有合适的资源?快使用搜索试试~ 我知道了~
首页使用VB的MSCOMM控件
使用VB的MSCOMM控件
5星 · 超过95%的资源 需积分: 10 19 下载量 30 浏览量
更新于2023-03-03
评论
收藏 3.2MB DOC 举报
在串口通信中,利用Visual Basic 的MSCOMM控件采集数据.
资源详情
资源评论
资源推荐
第
第
6
6
章
章
VB
VB
串口通信程序设计典型实例
串口通信程序设计典型实例
利用 VB 开发串口通信程序既可以使用 MSComm 控件也可以调用 Windows API 函数实
现。不过,只要 MSComm 控件可以被选用,我们推荐选择此控件实现,因为 MSComm 控
件的功能和 API 调用一样强,甚至比它还好且使用起来更加简单。
在本章提供的串口通信程序设计中,除了 PC 与 PC 串口通信外,PC 与单片机、PC 与
智能仪表、PC 与 PLC、PC 与 GSM 短信模块等串口通信任务的实现均采用 MSComm 控件。
6.1 PC 与 PC 串口通信程序设计
当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需 3 根线
(发送线、接收线、信号地线)便可实现全双工异步串行通信。
本设计通过两台 PC 串口 3 线连接,介绍了利用 API 函数和 MSComm 控件设计串口通
信程序的方法,包括字符与文件的发送与接收。
6.1.1 PC 与 PC 串口通信程序设计目的
(1)掌握 PC 与 PC 串口通信的线路连接方法。
(2)利用 MSComm 控件和 API 函数实现 PC 与 PC 串口通信的程序设计方法。
6.1.2 PC 与 PC 串口通信程序设计用软、硬件
本设计用到的硬件和软件清单如表 6-1 所示。
表 6-1 设计用软、硬件
序 号 名 称 数 量
1
PC 或 IPC
2
2
串口通信线(三线制)
1
3 Visual Basic 6.0 1
6.1.3 PC 与 PC 串口通信程序硬件线路图
线路说明,在计算机通电前,按图 6-1 所示将两台 PC 通过串口线连接起来:计算机 A
串口 COM1 端口的 TXD 与计算机 B 串口 COM1 端口的 RXD 相连,计算机 A 串口 COM1 端
口的 RXD 与计算机 B 串口 COM1 端口的 TXD 相连,计算机 A 串口 COM1 端口的 GND 与
Visual Basic 数据采集与串口通信测控应用实战
计算机 B 串口 COM1 端口的 GND 相连。
图 6-1 PC 与 PC 串口通信线路
6.1.4 设计任务
利用 MSComm 控件和 VB API 函数编写程序实现 PC 与 PC 串口通信。
任务要求,两台计算机互发字符并自动接收,如一台计算机输入字符串“ Please return
abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送
字符”命令,信息返回到第一组的计算机。
实际上就是编写一个简单的双机聊天程序。
6.1.5 任务实现
6.1.5.1 利用 MSComm 控件实现字符型数据发送与接收
1.建立新工程
VB 使用“工程”来管理每一个应用程序要使用的所有文件,每建立一个新程序,就要新
建一个工程。一个工程由窗体、标准模块、控件及应用所需的开发环境设置等组成。
运行 VB 程序,出现“新建工程”对话框,选择“标准 EXE”,单击“打开”命令按钮,进入
VB 工程集成开发环境,窗体设计器中自动出现一个名为 Form1 的空白窗体。
2.程序界面设计
向空白窗体添加各种控件,以完成预定的各种功能。开始一个项目的设计时,VB 的工
具箱中会有许多默认的控件让设计者予以选用,这些原本就出现在工具箱中的控件是内置控
件,它提供了一些基本的系统设计组件给设计者,但功能比较特别的控件就不会出现在其中,
如用来设计串口通信功能的控件 MSComm 就不在其中。
(1)添加串口通信控件 MSComm。
由于 VB 的串行通信组件并不会主动出现在工具箱里中,当我们需要 MSComm 控件时,
首先要把它加入到工具箱中。
让 MSComm 控件出现在工具箱中的步骤如下。
选择“工程”菜单下的“部件…”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中
选中“Microsoft Comm Control 6.0”复选框,单击“确定”按钮后,在工具箱中就出现了一个形
– 173 –
计算机 A 计算机 B
第 6 章 VB 串口通信程序设计典型实例
似“电话”的图标,它就是 MSComm 控件。
工具箱中有了 MSComm 控件,就可以选择 MSComm 控件的图标后将其添加到程序窗
体上,利用该控件编程,PC 就可以通过 VB 实现与串口设备的串口通信了。
由于每个使用的 MSComm 控件对应着一个串行端口,如果应用程序需要访问多个串行
端口,必须添加多个 MSComm 控件。
(2)为了实现连续的自动接收,将工具箱中的 Timer
控件添加到程序窗体上。
(3)添加两个文本框控件:Text1 和 Text2,用于输入
要发送的字符和显示要接收的字符。
(4)添加两个标签控件:Label1 和 Label2,作为发送
和接收字符区的标签。
(5)添加一个按钮控件:Command1 执行发送字符命令。
程序设计界面如图 6-2 所示。
3.属性设置
从属性窗口设置属性时,只需从对象列表框中选择待设置属性的对象,然后从属性列
表的左列选择属性,最后在属性列表的右列中输入或选择新的属性值。
程序窗体、控件对象的主要属性设置如表 6-2 所示。
表 6-2 窗体、控件对象的主要属性设置
控 件 类 型 主 要 属 性 功 能
Form
(名称) = COMForm 窗体控件
BorderStyle = 3
运行时窗体固定大小
Caption = PC 与 PC 串口通信 窗体标题栏显示程序名称
Label
(名称) = Label1 标签控件
Caption = 显示接收字符区: 标签文本
Label
(名称) = Label2 标签控件
Caption = 输入发送字符区: 标签文本
TextBox
(名称) = Textsend 文本框控件
MultiLine = True
允许多行显示
ScrollBars = 2-Vertical
垂直滚动条可用
TextBox
(名称) = TextReceive 文本框控件
MultiLine = True
允许多行显示
ScrollBars = 2-Vertical
垂直滚动条可用
CommandButton
(名称) = Cmdsend 按钮控件
Caption = 发送字符 手动发送字符
– 174 –
图 6-2 程序窗体界面
Visual Basic 数据采集与串口通信测控应用实战
MSComm
(名称) = MSComm1 串口通信控件
其他属性在程序中设置
Timer
(名称) = Timer1 时钟控件
Enabled = True
时钟初始可用
Interval = 500
设置发送周期(ms)
两台计算机中 VB 程序界面及属性设置应完全相同,尤其 MSComm 控件的 InputMode 和
Settings 属性值应相同。
4.程序代码设计
程序要实现自动发送或读取,在 VB 程序中有两个方式可以达到,一是查询方式,利用
查询事件是否发生,当发生时,去执行默认的程序代码。可以使用计时器控件(Timer),
该控件属性中的 Interval 可以控制计时器被启动的时间间隔,当时间间隔一到,便会执行原
先放在计时器中的程序代码。
下面是利用查询方式编写的 PC 与 PC 串口通信的参考程序,代码如下所示:
' 串口初始化
Private Sub Form_Load()
MSComm1.CommPort = 1 ' 设置通信端口号为 COM1
MSComm1.Settings = "9600,n,8,1" ' 设置串口 1 参数
MSComm1.InputMode = 0 ' 接收文本型数据
MSComm1.PortOpen = True ' 打开通信端口 1
End Sub
' 把字符通过串口发送出去
Private Sub Cmdsend_Click()
If Textsend.Text = "" Then
pp = MsgBox("发送的数据不能为空!", 16)
Exit Sub
End If
MSComm1.Output = Trim(Textsend.Text)
For i = 1 To 20000000
Next i
End Sub
' 通过时钟控制来自动接收字符
Private Sub Timer1_Timer()
Dim buf$
buf = Trim(MSComm1.Input) ' 将缓冲区内的数据读入 buf 变量中
If Len(buf) <> 0 Then ' 判断缓冲区内是否存在数据
TextReceive.Text = TextReceive.Text + Chr(13) + Chr(10) + buf //回车换行
– 175 –
第 6 章 VB 串口通信程序设计典型实例
End If
End Sub
' 关闭通信端口,停止程序运行
Private Sub Cmdquit_Click()
MSComm1.PortOpen = False
Unload Me
End Sub
在 Windows 系统环境下,串口是系统资源的一部分。应用程序要使用串口进行通信,
必须在使用之前向操作系统提出资源申请要求(打开串口),通信完成后必须释放资源(关
闭串口)。在 Windows 系统的系统函数中,均包含了支持通信中断的功能。
二是使用事件方式。MSComm 控件提供事件回应功能,可以利用此功能达到自动发送/
接收的目的。下面是利用事件方式编写的 PC 与 PC 串口通信的参考程序,界面设计与图 6-2
基本相同,区别是事件方式不需要时间控件。
'串口初始化
Private Sub Form_Load()
MSComm1.CommPort = 1 '设置通信端口号为 COM1
MSComm1.Settings = "9600,n,8,1" '设置串口参数
MSComm1.InputMode = 0 '接收文本型数据
MSComm1.RThreshold = 1 '接收缓冲区每收到一个字符都会使 MSComm 控件触发 OnComm 事件
MSComm1.PortOpen = True '打开通信端口 1
End Sub
'把字符通过串口发送出去
'启动定时器
Private Sub Cmdsend_Click()
If Textsend.Text = "" Then
pp = MsgBox("发送的数据不能为空!", 16)
Exit Sub
End If
MSComm1.Output = Trim(Textsend.Text)
End Sub
'MSComm 的 OnComm 事件程序
'由 CommEvent 属性值的不同,将各自的程序代码写入相关的子程序中
'只要 RThresold 中的设定字符数到达时便会使得 CommEvent 属性值变成 comEvReceive
'因此接收的子程序便会被执行
Private Sub MSComm1_OnComm()
Dim buf$
Select Case MSComm1.CommEvent
'通过取代每一个 case 表达式来处理每个事件与错误
Case comEvCD ' CD 线的状态发生变化
Case comEvCTS ' CTS 线的状态发生变化
– 176 –
剩余40页未读,继续阅读
w_g_x_b
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论3