当前位置:文档之家› VB6.0串口操作

VB6.0串口操作

VB6.0串口操作职业2010-12-22 11:30:58 阅读60 评论0 字号:大中小订阅一直想通过计算机人机界面来控制单片机,感觉用软件控制硬件,即计算机控制是一件比较有意思的事情。

计算机与单片机的连接,是通过串口来实现的。

如何实现,我想应该明白VB怎样来操作串口,实现VB操作串口,就可以把单片机串口线接入计算机,从而实现真正的计算机控制单片机。

这其他是别人早已实现了的,我因为是刚接触,就写下来留作纪念吧。

开发软件:Visual Basic 6.0企业版(VB6)新建一个工程:标准EXE。

接下来做Form界面。

代码:Private Sub Combo1_Click()If MSComm1.PortOpen = True Then '如果串口打开先关闭后再进行其他操作MSComm1.PortOpen = FalseEnd IfmPort = Combo1.ListIndex + 1End SubPrivate Sub Command1_Click()Dim Temp(0) As ByteDim strBuff As StringIf Option3.Value = True Then '如果显示16进制发送则进行16进制处理,这里只发送一个Temp(0) = "&H" & Text1MSComm1.Output = Temp '发送一个16进制ElsestrBuff = Text1End IfIf MSComm1.PortOpen = False ThenMsgBox "请打开串口"End IfOn Error GoTo uerrorMSComm1.Output = strBuffuerror: End SubPrivate Sub Command2_Click()On Error GoTo uerror '发现错误跳转到错误处理If Command2.Caption = "关闭串口" ThenMSComm1.PortOpen = FalseCommand2.Caption = "打开串口" '按钮文字改变Shape1.FillColor = &HFFFFC0 '灯颜色改变ElseMSComm1.PortOpen = TrueCommand2.Caption = "关闭串口"Shape1.FillColor = &HFFEnd IfExit Subuerror:msg$ = "无效端口号" '错误显示Title$ = "串口调试助手"x = MsgBox(msg$, 48, Title$) '48标示显示警告图标End SubPrivate Sub Command3_Click()Text2.Text = ""End SubPrivate Sub Command4_Click()Text1.Text = ""End SubPrivate Sub Form_Load()If MSComm1.PortOpen = True ThenMSComm1.PortOpen = FalseElseEnd IfCombo1.AddItem "COM1"Combo1.AddItem "COM2"Combo1.AddItem "COM3"Combo1.AddItem "COM4"Combo1.AddItem "COM5"Combo1.AddItem "COM6"Combo1.AddItem "COM7"Combo1.AddItem "COM8"Combo1.AddItem "COM9"Combo1.AddItem "COM10"Combo1.AddItem "COM11"Combo1.AddItem "COM12"Combo1.AddItem "COM13"Combo1.AddItem "COM14"Combo1.AddItem "COM15"Combo1.AddItem "COM16"Combo1.ListIndex = 0mPort = Combo1.ListIndex + 1 MSComm1.Settings = "9600,n,8,1"Command2.Caption = "打开串口"Shape1.FillColor = &HFFFFC0Option2.Value = TrueOption4.Value = TrueCombo2.AddItem "256000"Combo2.AddItem "128000"Combo2.AddItem "115200"Combo2.AddItem "57600"Combo2.AddItem "38400"Combo2.AddItem "28800"Combo2.AddItem "19200"'Combo2.AddItem "14400"'Combo2.AddItem "12800"'Combo2.AddItem "11520"Combo2.AddItem "9600"Combo2.AddItem "4800"Combo2.AddItem "2400"Combo2.AddItem "1200"Combo2.AddItem "600"Combo3.AddItem "无None"Combo3.AddItem "奇Odd"Combo3.AddItem "偶Even"Combo4.AddItem "4"Combo4.AddItem "5"Combo4.AddItem "6"Combo4.AddItem "7"Combo4.AddItem "8"Combo5.AddItem "1"Combo5.AddItem "2"End SubPrivate Sub MSComm1_OnComm()Dim BytReceived() As ByteDim strBuff As StringDim i As IntegerSelect Case mEvent '事件发生Case 2ClsMSComm1.InputLen = 0 '读入缓冲区全部内容strBuff = MSComm1.Input '读入到缓冲区If MSComm1.InputMode = comInputModeBinary ThenBytReceived() = strBuff '如果是二进制接收模式则进行数据处理,否则直接显示字符串For i = 0 To UBound(BytReceived)If Len(Hex(BytReceived(i))) = 1 ThenstrData = strData & "0" & Hex(BytReceived(i)) & " " '如果只有一个字符,则前补0,如F显示0F,最后补空格Else '方便显示观察如:00 0F FEstrData = strData & Hex(BytReceived(i)) & " "End IfNextText2 = Text2 & strDatastrData = ""ElseText2 = Text2 & strBuffEnd IfEnd SelectEnd SubPrivate Sub Option1_Click()MSComm1.InputMode = comInputModeBinaryEnd SubPrivate Sub Option2_Click()MSComm1.InputMode = comInputModeTextEnd Sub重要:一。

添加新的VB控件:在控件工具箱点鼠标右键:部件添加:Microsoft Comm Control 6.0 (Mscomm1)二、设置Mscomm1选中Mscomm1改:RThreshold 0--->1LThreshold 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口是否打开以上基本完成。

相关主题