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'.