单片机与电脑串口通信软件VB制作

上位机加下位机的形式,广泛应用于数据采集和控制行业。上位机是指电脑,下位机一般指单片机、PLC等控制器。电脑上一般需要一个软件来与单片机通信,这个软件常被称为上位机软件。电脑与单片机通信,大部分情况采用串口通信。在以前的电脑上,串口是标准的配置,但是现在,串口只存在于工控电脑身上了,在家庭电脑上,再也看不到串口的身影。

上位机软件可用VB、VC、LabVIEW等编写。下面,我们讲解一下利用VB做一个简单的上位机软件与单片机串口通信。

1.打开VB,新建一个窗口,并保存工程。

2.在工具栏下面右击鼠标,在弹出的菜单中选择第一项“部件”,如下图所示:

VB菜单部件

3.弹出一个窗口,选择Microsoft Comm Control 6.0,如下图所示:

VB Comm Control控件

4.点击确定后,会发现在工具栏里面多了一个工具。

VB Comm control控件

5.把这个MSComm空间拖放到窗口中。

MSComm控件拖放到窗口中

6.在窗口中,放入一个Combo控件、一个Shape控件、一个按钮控件。如下图所示:

VB串口界面

7.修改Shape的属性,改为黑绿色圆形。如下图所示:

VBShape属性修改

上面一共改了3个地方,Shape改为3-Circle、FillStyle改为0-Solid、FillColor改为&H00008000&。修改后的效果如下图所示:

VB串口界面1

8.该写代码了。双击窗口空白处,进去写代码窗口,在里面写入如下代码

Private Sub Form_Load()
'添加通信端口号
For I = 1 To 16
 Combo1.AddItem "COM" & I
Next I
Combo1.ListIndex = 0
End Sub

9.这时候,点击运行按钮,可以看到Combo下拉菜单,可以选择COM1到COM16。

10.修改按钮属性,把按钮上的字修改为“开启”,如下图所示:

VB开启按钮

修改后的按钮:

修改后的VB开启按钮

11.在窗口中,双击“开启”按钮,进去代码编辑界面,在代码中,加入如下代码:

Private Sub Command1_Click()
 If Shape1.FillColor = &H8000& Then '如果没有启动,按下此按键,代表用户想启动
 MSComm1.CommPort = Combo1.ListIndex + 1 '设置com端口
 MSComm1.Settings = "9600,N,8,1"
 MSComm1.InputLen = 0
 MSComm1.InBufferSize = 512
 MSComm1.OutBufferSize = 512
 MSComm1.SThreshold = 0
 MSComm1.RThreshold = 12
 MSComm1.InputMode = comInputModeBinary
 MSComm1.InBufferCount = 0
 MSComm1.OutBufferCount = 0
 MSComm1.Handshaking = comNone '无握手协议
 MSComm1.DTREnable = False
 MSComm1.RTSEnable = False
 On Error Resume Next
 MSComm1.PortOpen = True
 If Err Then
 ' MSComm1.PortOpen = False
 MsgBox "通讯端口选择错误!" + vbCrLf + "正确的串口号在这里看:" + vbCrLf + "桌面->我的电脑->属性->硬件->设备管理器->端口"
 Else
 Shape1.FillColor = &HFF00& '把启动指示灯打开
 Command1.Caption = "关闭"
 End If
 Else '如果启动了,按下此按键,代表用户想关闭
 MSComm1.PortOpen = False '关闭串口
 Shape1.FillColor = &H8000& '关闭启动指示灯
 Command1.Caption = "开启"
 End If
 End Sub

12.点击运行按钮。就可以看到完成的效果了。

VB串口界面2

VB串口界面3

13.如果选择了一个不正确或者不存在的串口号,将会有一个提示,如下图所示:

VB串口选择错误