单片机与电脑串口通信软件VB制作
上位机加下位机的形式,广泛应用于数据采集和控制行业。上位机是指电脑,下位机一般指单片机、PLC等控制器。电脑上一般需要一个软件来与单片机通信,这个软件常被称为上位机软件。电脑与单片机通信,大部分情况采用串口通信。在以前的电脑上,串口是标准的配置,但是现在,串口只存在于工控电脑身上了,在家庭电脑上,再也看不到串口的身影。
上位机软件可用VB、VC、LabVIEW等编写。下面,我们讲解一下利用VB做一个简单的上位机软件与单片机串口通信。
1.打开VB,新建一个窗口,并保存工程。
2.在工具栏下面右击鼠标,在弹出的菜单中选择第一项“部件”,如下图所示:
3.弹出一个窗口,选择Microsoft Comm Control 6.0,如下图所示:
4.点击确定后,会发现在工具栏里面多了一个工具。
5.把这个MSComm空间拖放到窗口中。
6.在窗口中,放入一个Combo控件、一个Shape控件、一个按钮控件。如下图所示:
7.修改Shape的属性,改为黑绿色圆形。如下图所示:
上面一共改了3个地方,Shape改为3-Circle、FillStyle改为0-Solid、FillColor改为&H00008000&。修改后的效果如下图所示:
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.修改按钮属性,把按钮上的字修改为“开启”,如下图所示:
修改后的按钮:
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.点击运行按钮。就可以看到完成的效果了。
13.如果选择了一个不正确或者不存在的串口号,将会有一个提示,如下图所示: