2023年12月31日发(作者:)
.
VB6.0串口操作
职业 2010-12-22 11:30:58 阅读60 评论0 字号:大中小 订阅
一直想通过计算机人机界面来控制单片机,感觉用软件控制硬件,即计算机控制是一件比较有意思的事情。
计算机与单片机的连接,是通过串口来实现的。如何实现,我想应该明白VB怎样来操作串口,实现VB操作串口,就可以把单片机串口线接入计算机,从而实现真正的计算机控制单片机。
这其他是别人早已实现了的,我因为是刚接触,就写下来留作纪念吧。。。
开发软件:Visual Basic 6.0企业版(VB6)
新建一个工程:标准EXE。
接下来做Form界面。
代码:
Private Sub Combo1_Click()
If en = True Then '如果串口打开先关闭后再进行其他操作
en = False
End If
rt = dex + 1
End Sub
Private Sub Command1_Click()
Dim Temp(0) As Byte
Dim strBuff As String
If = True Then '如果显示16进制发送则进行16进制处理 ,这里只发送一个
Temp(0) = "&H" & Text1
= Temp '发送一个16进制
Else
strBuff = Text1
End If
1 / 5'.
.
If en = False Then
MsgBox "请打开串口"
End If
On Error GoTo uerror
= strBuff
uerror: End Sub
Private Sub Command2_Click()
On Error GoTo uerror '发现错误跳转到错误处理
If n = "关闭串口" Then
en = False
n = "打开串口" '按钮文字改变
lor = &HFFFFC0 '灯颜色改变
Else
en = True
n = "关闭串口"
lor = &HFF
End If
Exit Sub
uerror:
msg$ = "无效端口号" '错误显示
Title$ = "串口调试助手"
x = MsgBox(msg$, 48, Title$) '48标示显示警告图标
End Sub
Private Sub Command3_Click()
= ""
End Sub
Private Sub Command4_Click()
= ""
End Sub
Private Sub Form_Load()
If en = True Then
en = False
Else
End If
m "COM1"
m "COM2"
m "COM3"
2 / 5'.
.
m "COM4"
m "COM5"
m "COM6"
m "COM7"
m "COM8"
m "COM9"
m "COM10"
m "COM11"
m "COM12"
m "COM13"
m "COM14"
m "COM15"
m "COM16"
dex = 0
rt = dex + 1
gs = "9600,n,8,1"
n = "打开串口"
lor = &HFFFFC0
= True
= True
m "256000"
m "128000"
m "115200"
m "57600"
m "38400"
m "28800"
m "19200"
'm "14400"
'm "12800"
'm "11520"
m "9600"
m "4800"
m "2400"
m "1200"
m "600"
m "无None"
m "奇Odd"
m "偶Even"
m "4"
m "5"
m "6"
3 / 5'.
.
m "7"
m "8"
m "1"
m "2"
End Sub
Private Sub MSComm1_OnComm()
Dim BytReceived() As Byte
Dim strBuff As String
Dim i As Integer
Select Case ent '事件发生
Case 2
Cls
en = 0 '读入缓冲区全部内容
strBuff = '读入到缓冲区
If ode = comInputModeBinary Then
BytReceived() = strBuff '如果是二进制接收模式则进行数据处理,否则直接显示字符串
For i = 0 To UBound(BytReceived)
If Len(Hex(BytReceived(i))) = 1 Then
strData = strData & "0" & Hex(BytReceived(i)) & " " '如果只有一个字符,则前补0,如F显示0F,最后补空格
Else '方便显示观察如: 00 0F FE
strData = strData & Hex(BytReceived(i)) & " "
End If
Next
Text2 = Text2 & strData
strData = ""
Else
Text2 = Text2 & strBuff
End If
End Select
End Sub
Private Sub Option1_Click()
ode = comInputModeBinary
End Sub
Private Sub Option2_Click()
ode = comInputModeText
End Sub
4 / 5'.
.
重要:
一。添加新的VB控件:在控件 工具箱点鼠标右键:部件 添加:Microsoft Comm Control 6.0 (Mscomm1)
二、设置 Mscomm1
选中Mscomm1
改:RThreshold 0--->1
LThreshold 0----->1
其他可不用改,默认。
OK,以上基本可以完成这个小程序的设计,这样点发送就可以发送一个字符了。
如果有单片机,在单片机里编好接收程序,则可以实现一定的控制,如实现LED灯的亮与灭,数码管显示,这在以后我会努力搞定发表的。
附:上面程序界面中命名:信息
(1)发送区:用frame3 (必须用,这样隔离option1,2)..
Text1 (发送文本框) option3(16进制发送) option 4 (字符格式发送)
发送(command1) 清空发送区(command4)
(2)接收区:Frame1 (必须用,隔离option3,4,)
Text2(接收文本框,要多行,即:属性:MultiLine:True)
option1(16进制接收) option2(字符格式接收) command3(清空接收区:Text2)
(3)端口设置区:(在Form_load里设置的初值)
combo1(端口,Text:COM1) combo2(波特率) combo3(校验位) combo4(数据位) combo5(停止位)
Label1~Label5标示名字 : 即:Label1:端口 Label2:波特率Label3:校验位Label4:数据位Label5:停止位
(4)command2 :打开串口,
(5)Mscomm1(添加的VB6.0串口控件)
(6)添加一Shape1(圆形的用 3-Circle) 通过设置其FillColor(颜色变化)来标示COM口是否打开
以上基本完成。
其他功能大家相互学习吧。
5 / 5'.


发布评论