VB串口通信程序设计典型实例(3)

2019-08-31 23:45

Visual Basic数据采集与串口通信测控应用实战

MsgBox \无效设备 DCB 块 \错误: \ retval = CloseHandle(ComNum) Init_Com = False Exit Function End If

Init_Com = True handelinitcom: Exit Function End Function '关闭程序

Private Sub BTNCloseCom_Click() Unload Me End Sub '关闭端口

Private Sub Form_Unload(Cancel As Integer) CloseHandle (ComNum) End Sub

4.运行程序

程序设计、调试完毕,执行菜单“运行/启动”命令或单击工具栏快捷按钮“启动”,运行程序。

(1)首先在程序窗体中发送字符区输入要发送的字符,单击“发送数据”按钮,发送区的字符串通过COM1口发送出去。

(2)另一台计算机发送数据,本计算机自动读入并显示在接收数据区中。

程序运行界面如图6-5所示。

图6-5 程序运行界面

6.1.5.3 利用MSComm控件实现PC双串口互通信

如果一台计算机有两个串口,可通过串口线将两个串口连接起来:COM1端口的TXD与COM2端口的RXD相连,COM1端口的RXD与COM2端口的TXD相连,COM1端口的GND与COM2端口的GND相连,如图6-6(a)所示,这是串口通信设备之间的最简单连接(即三线连接),图中的2号接收脚与3号发送脚交叉连接是因为在直连方式时,把通信双方都当作数据终端设备看待,双方都可以发送也可以接收。

COM15 9 COM2 1 6 43 8 2 7 6 1 5 43 8 2 5 43 8 2 7 6 1 9 7 9 (a) (b)

图6-6 串口设备最简单连接

– 182 –

第6章 VB串口通信程序设计典型实例

如果一台计算机只有一个串行通信端口可以使用,那么将第2脚与第3管脚短路,如图6-6(b)所示,那么第3脚的输出信号就会被传送到第2脚,用以发送到同一串行端口的输入缓冲区,程序只要再由相同的串行端口上作读取的操作,即可将数据读入,一样可以形成一个测试环境。

设计的参考代码如下:

' 串口初始化

' 串口1与串口2的通信参数应一致 Private Sub Form_Load()

MSComm1.CommPort = 1 ' 设置通信端口号为COM1 MSComm1.Settings = \ ' 设置串口1参数 MSComm1.InputMode = 0 ' 接收文本型数据

MSComm1.PortOpen = True ' 打开通信端口1 //设置串口 MSComm2.CommPort = 2 ' 设置通信端口号为COM2 MSComm2.Settings = \ ' 设置串口2参数 MSComm2.InputMode = 0 ' 接收文本型数据 MSComm2.PortOpen = True ' 打开通信端口2 End Sub

' 把字符通过串口发送出去 ' 启动定时器

Private Sub Cmdsend_Click()

MSComm1.Output = Trim(Textsend.Text) //发出数据 Timer1.Enabled = True End Sub ' 接收字符

Private Sub Timer1_Timer() Dim buf$

Timer1.Enabled = False

buf = Trim(MSComm2.Input) ' 将缓冲区内的数据读入buf变量中 If Len(buf) = 0 Then ' 判断缓冲区内是否存在数据 TextReceive.Text = \ Else

TextReceive.Text = buf End If End Sub

' 停止程序运行

Private Sub Cmdquit_Click() Unload Me End Sub

' 关闭通信端口,

Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False MSComm2.PortOpen = False End Sub

程序运行界面如图6-7所示。

图6-7 程序运行界面

– 183 –

Visual Basic数据采集与串口通信测控应用实战

6.2 PC与单片机串口通信程序设计

目前,在许多单片机应用系统中,上、下位机分工明确,作为下位机核心器件的单片机往往只负责数据的采集和通信,而上位机通常以基于图形界面的Windows系统为操作平台。为便于查询和保存数据,还需要数据库的支持,这种应用的核心是数据通信,它包括单片机和上位机之间、客户端和服务器之间以及客户端和客户端之间的通信,而单片机和上位机之间数据通信则是整个系统的基础。

单片机和PC的通信是通过单片机的串口和PC串口之间的硬件连接实现的。

图6-8是本设计使用的单片机实验板。有关单片图6-8 单片机实验板 机实验板的详细信息请查询电子开发网http://www.dzkfw.com/。

6.2.1 PC与单片机串口通信程序实训目的

(1)掌握PC与单片机串口通信的线路连接方法。

(2)掌握PC与单片机串口通信的Keil C51和VB程序设计方法。

6.2.2 PC与单片机串口通信程序设计用软、硬件

本设计用到的硬件和软件清单如表6-4所示。

表6-4 序 号 1 2 3 4 PC(计算机) 单片机实验板(AT89C51、MAX232等) 串口通信线(三线制) VB 6.0 设计用软、硬件 名 称 数 量 1 1 1 1 6.2.3 PC与单片机串口通信程序硬件线路图

线路说明,如图6-9所示,数据通信的硬件上采用三线制,将单片机和PC串口的3个引脚(RXD、TXD、GND)分别连在一起,即将PC和单片机的发送数据线TXD与接收数据RXD交叉连接,两者的地线GND直接相连,而其他信号线如握手信号线均不用,采用软件握手的方式,这样既可以实现预定的任务又可以简化电路设计。

但由于单片机的TTL逻辑电平和RS-232C的电气特性完全不同,RS-232C的逻辑0电平规定为+3~+15V之间,逻辑1电平为?3~?15V之间,因此,在将PC和单片机的RXD和TXD交叉连接时必须进行电平转换,这里使用的是MAX232电平转换芯片。

– 184 –

第6章 VB串口通信程序设计典型实例

PC机MAX232RXDCOM1TXDGNDTOUTRINTINROUTTXDRXDGNDAT89C51 图6-9 PC与单片机串口通信线路

单片机系统有LED显示器模块、继电器输出模块、蜂鸣器模块等。

6.2.4 设计任务

利用Keil C51和VB编写程序实现PC与单片机串口通信。任务要求。 1.设计任务1

PC通过串行口将数字(00,01,02,03…,FF,十六进制)发送给单片机,单片机收到后回传这个数字,PC接收到回传数据后显示出来,若发送的数据和接收到的数据相等,则串行通信正确,否则有错误。启始符是数字00,结束符是数字FF。

2.设计任务2

(1)测试通信状态。

先在文本框中输入字符串“Hello”,单击“测试”按钮,将字符串“Hello”发送到单片机,若PC与单片机通信正常,在PC程序的文本框中显示字符串“OK!”;否则,显示字符串“ERROR!”。

(2)循环计数。

单击“开始”按钮,文本框中数字从0开始累加,0、1、2、3??,并将此数发送到单片机的显示器上显示。当累加到10时,回到0重新开始累加,依次循环。任何时候,单击“停止”按钮,PC程序中和单片机显示器都停止累加,再单击“开始”按钮,接着停下的数继续累加。

(3)控制指示灯。

在单片机继电器接线端子的两个通道上分别接上两个指示灯,在PC程序界面上选择指示灯号,如1号灯,单击界面“打开”按钮,单片机上1号灯亮,同时蜂鸣器响;单击界面“关闭”按钮,1号灯灭,蜂鸣器停止响;同样控制2号灯的亮灭(蜂鸣器同时动作)。

6.2.5 任务实现

单片机和PC通信,在程序设计上涉及两个部分的内容。

一是单片机的C51程序,二是PC的串口通信程序和界面的编制。

6.2.5.1 利用Keil C51实现单片机与PC串口通信任务1

– 185 –

Visual Basic数据采集与串口通信测控应用实战

网络详细地址为:http://www.china-pub.com/51161。

6.2.5.2 利用VB实现PC与单片机串口通信任务1

1.程序界面设计

运行VB,创建标准的工程项目文件,设计程序窗体。设计的程序界面如图6-11所示。 (1)添加一个MSComm控件:默认的工具箱中没有MSComm串口通信控件,因此,首先要把它添加到工具箱中,再将MSComm控件添加到程序窗体上。

(2)添加两个按钮控件CommandButton,用于发送数字和关闭程序。

(3)添加一个框架控件Frame,用于功能显示。 图6-11 程序窗体界面 (4)添加一个文本控件TextBox,用于输入数字。 (5)添加一个标签控件Label,用于显示通信状态。

2.属性设置

程序窗体、控件对象的主要属性设置如表6-5所示。

表6-5 控 件 类 型 Form Frame TextBox Label CommandButton CommandButton MSComm

网络详细地址为:http://www.china-pub.com/51161。

名 称 MainForm Frame1 numText Label1 Cmdsend Cmdquit MSComm1 窗体、控件对象的主要属性设置

主 要 属 性 BorderStyle = 3 Caption = PC与单片机串口通信 Caption = 输入数据 Text = 0 Caption = 通信状态? Caption = 发送 Caption = 关闭 在程序中设置 功 能 运行时窗体固定大小 窗体标题栏显示程序名称 测试功能区 数据输入框 显示串口通信状态 发送数据命令 关闭程序命令 串口参数设置 6.2.5.3 利用Keil C51实现单片机与PC串口通信任务2(方法1)

网络详细地址为:http://www.china-pub.com/51161。

6.2.5.4 利用VB实现PC与单片机串口通信任务2(方法1)

1.程序界面设计

运行VB,创建标准的工程项目文件,设计程序窗体。

– 186 –


VB串口通信程序设计典型实例(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:(鄂教版)四年级品德与社会上册教案 和好书交朋友

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: