VB6.0串口操作

合集下载

VB6.0下MSComm控件实现串口通信

VB6.0下MSComm控件实现串口通信

VB6.0下用MSComm控件实现串口通信MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能,以下先对其属性进行详细的说明后再举一个例子进行说明:1基本属性CommPortO mPort[=value]Object为MSComm控件,value为整数值,标志端口号。

说明:该属性设置并返回通讯端口号,value的值可以设为1-16间的任意数(默认为1)。

在打开端口之前必须先设置CommPort属性,当端口不存在时,如果用PortOpen属性打开它,MSComm控件会产生错误68(即设备无效的错误)。

SettingsObjiect.Setting[=value]Object为MSComm控件,value为字符串类型,表示通讯端口的设置值。

说明:本属性用来设置并返回端口的波特率、奇偶校验位、数据位和停止位参数。

当端口打开时,如果指定的value参数非法,则MSComm控件产生380号(非法属性值)错误。

有效的value参数值由四个设置值组成,有如下格式:“BBBB,P,D,S”,其中BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。

Value的默认值为:“9600,N,8,1”,下面给出合法的波特率、奇偶校验位、数据位和停止位参数:波特率:110,300,600,1200,2400,4800,9600(默认),14400,19200,28800,38400,56000,57600,115200,128000,256000。

奇偶校验值:E(偶校验,Even)、M(标记,Mark)、N(默认,Default,None)、O(奇校验,Odd)、S(空格,Space)。

数据位值:4,5,6,7,8(默认),9。

停止位值:1(默认),1.5,2。

PortOpenO bject.PortOpen[=value]Object为MSComm控件。

Value为布尔类型,表明通讯端口的状态。

vb6.0串口通讯上位机开发视频教程下载地址

vb6.0串口通讯上位机开发视频教程下载地址

资料1第一章VisualBasic6基本介绍1. 菜单栏的使用2. 属性窗口的使用3. 创建工程4.窗体的操作5. 属性值的设定6. 程序代码编写7. 制作一个简单应用程序8. 窗体属性(1)9. 窗体属性(2)10. 窗体事件11. 方法第二章VisualBasic6的数据类型与运算符表达式12.数据类型(1)13. 数据类型(2)14. 运算符表达式(1)15.运算符表达式(2)16. 运算符表达式(3)第三章VisualBasic6的内部函数17.常用内部函数(1)18.常用内部函数(2)19. 常用内部函数(3)20. 常用内部函数(4)21. 常用内部函数(5)22. 常用内部函数(6)23. 常用内部函数(7)24. 常用内部函数(8)25. 常用内部函数(9)26. 常用内部函数(10)第四章VisualBasic6的基本语句27.基本语句(1)28. 基本语句(2)29. 基本语句(3)30. 基本语句(4) 、31.基本语句(5)32. 基本语句(6)33. 基本语句(7)34. 基本语句(8)35. 基本语句(9)36. 基本语句(10)37. 基本语句(11)38. 基本语句(12)第五章VisualBasic6的数组39.数组(1)40.数组(2)41. 数组(3)42. 数组(4)43. 数组(5)44. 数组(6)45. 数组(7)46. 数组(8)第六章VisualBasic6的过程47.过程(1)48.过程(2)49. 过程(3)50. 过程(4)51. 过程(5)52. 过程(6)53. 过程(7)54. 过程(8)55. 过程(9)56. 过程(10)第七章VisualBasic6的标准控件57. 1111标准控件(1)58.标准控件(2)59. 标准控件(3)60. 标准控件(4)61. 标准控件(5)62. 标准控件(6)63. 标准控件(7)64. 标准控件(8)65. 标准控件(9)66. 标准控件(10)67. 标准控件(11)68. 标准控件(12)69. 标准控件(13)70. 标准控件(14)71. 标准控件(15)72. 标准控件(16)73. 标准控件(17)74. 标准控件(18)75. 标准控件(19)76. 标准控件(20)77. 标准控件(21)78. 标准控件(22)第八章VisualBasic6的界面设计79.界面设计(1) 880.0. 界面设计(2)81. 界面设计(3)82. 界面设计(4)83. 界面设计(5)84. 界面设计(6)85. 界面设计(7)86. 界面设计(8)87. 界面设计(9)88. 界面设计(10)第九章VisualBasic6的开发绘图程序89.开发绘图程序(1)90. 开发绘图程序(2)91. 开发绘图程序(3)92.开发绘图程序(4)93. 开发绘图程序(5)94. 开发绘图程序(6)95. 开发绘图程序(7)96. 开发绘图程序(8)97. 开发绘图程序(9)98. 开发绘图程序(10)99. 开发绘图程序(11)100.开发绘图程序(12)101.开发绘图程序(13)102.开发绘图程序(14)第十章VisualBasic6的文件操作103.文件操作(1)104.104.文件操作(2)105.105.文件操作(3)106.文件操作(4)107.文件操作(5)107.108.文件操作(6)109.文件操作(7)110.文件操作(8)111.文件操作(9)112.文件操作(10)第十一章VisualBasic6的键盘事件113.键盘事件(1)114.键盘事件(2)115.键盘事件(3)第十二章VisualBasic6的鼠标事件116.鼠标事件(1)117.鼠标事件(2)118.鼠标事件(3)119 鼠标事件(4)120.鼠标事件(5)121.鼠标事件(6)122.鼠标事件(7)123.鼠标事件(8)124.鼠标事件(9)第十三章VisualBasic6的开发数据库管理程序125.开发数据库管理程序(1)126.开发数据库管理程序(2)127.开发数据库管理程序(3)128.开发数据库管理程序(4)129.开发数据库管理程序(5)130.开发数据库管理程序(6)131.开发数据库管理程序(7)132.开发数据库管理程序(8)133.开发数据库管理程序(9)134.开发数据库管理程序(10)135.开发数据库管理程序(11)136.开发数据库管理程序(12)137.开发数据库管理程序(13)138.开发数据库管理程序(14)139.开发数据库管理程序(15)140.开发数据库管理程序(16)141.开发数据库管理程序(17)142.开发数据库管理程序(18)143.开发数据库管理程序(19)144.开发数据库管理程序(20)145.开发数据库管理程序(21)146.开发数据库管理程序(22)147.开发数据库管理程序(23)148.开发数据库管理程序(24)149.开发数据库管理程序(25)150.开发数据库管理程序(26)第十四章VisualBasic6的开发多媒体应用程序151.开发多媒体应用程序(1)152.开发多媒体应用程序(2)153.开发多媒体应用程序(3)154.开发多媒体应用程序(4)155.开发多媒体应用程序(5)156.开发多媒体应用程序(6)157.开发多媒体应用程序(7)158.开发多媒体应用程序(8)159.开发多媒体应用程序(9)160.开发多媒体应用程序(10)161.开发多媒体应用程序(11)162.开发多媒体应用程序(12)163.开发多媒体应用程序(13)164.开发多媒体应用程序(14)165.开发多媒体应用程序(15)166.开发多媒体应用程序(16)167.开发多媒体应用程序(17)168.开发多媒体应用程序(18)169.开发多媒体应用程序(19)170.开发多媒体应用程序(20)171.开发多媒体应用程序(21)172.开发多媒体应用程序(22)第十五章VisualBasic6的开发网络应用程序173.开发网络应用程序(1)174.开发网络应用程序(2)175.175.开发网络应用程序(3)176.开发网络应用程序(4)177.开发网络应用程序(5)178.开发网络应用程序(6) 179.开发网络应用程序(7) 180.开发网络应用程序(8) 181.开发网络应用程序(9) 182.开发网络应用程序(10) 183.开发网络应用程序(11) 184.开发网络应用程序(12) 185.开发网络应用程序(13) 186.开发网络应用程序(14) 187.开发网络应用程序(15) 188.开发网络应用程序(16) 189.开发网络应用程序(17) 190.开发网络应用程序(18) 191.开发网络应用程序(19) 192.开发网络应用程序(20) 193.开发网络应用程序(21) 194.开发网络应用程序(22) 195.开发网络应用程序(23) 196.开发网络应用程序(24) 197.开发网络应用程序(25) 198.开发网络应用程序(26) 199.开发网络应用程序(27) 200.开发网络应用程序(28) 201.开发网络应用程序(29) 202.开发网络应用程序(30) 203.开发网络应用程序(31) 204.开发网络应用程序(32) 205.开发网络应用程序(33) 206.开发网络应用程序(34) 207.开发网络应用程序(35) 208.开发网络应用程序(36) 209.开发网络应用程序(37) 210.开发网络应用程序(38) 211.开发网络应用程序(39) 212.开发网络应用程序(40) 213.开发网络应用程序(41) 214.开发网络应用程序(42) 215.开发网络应用程序(43) 216.开发网络应用程序(44) 217.开发网络应用程序(45) 218.开发网络应用程序(46) 219.开发网络应用程序(47)以上资源是本人花RMB在淘宝上买来的,现在分享给大家。

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术

基于VB6.0的上位机与PLC实时通信技术一、引言随着自动化技术的不断发展,PLC(可编程逻辑控制器)已经成为自动化领域中不可或缺的设备。

PLC通常用于控制工业生产线上的设备和机器,而上位机则是用来监控和管理PLC系统的设备。

众所周知,实时通信是保证PLC系统正常运行的重要因素之一。

在这篇文章中,我们将重点介绍基于VB6.0的上位机与PLC实时通信技术。

二、VB6.0简介VB6.0是微软公司于1998年发布的一款集成开发环境(IDE),它是一种编程语言,被广泛用于开发Windows平台下的应用程序。

VB6.0具有简单易学、功能丰富、开发效率高等特点,因此在工业领域得到了广泛应用。

考虑到VB6.0的这些优势,我们可以利用它来开发上位机程序,并实现与PLC的实时通信。

三、PLC实时通信技术1. 串口通信PLC通常通过串口与上位机进行通信。

在VB6.0中,我们可以利用MSCOMM控件来实现串口通信。

通过在VB6.0的界面中添加MSCOMM控件,并设置相应的串口参数(如波特率、数据位、校验位、停止位等),就可以实现与PLC的串口通信。

2. Modbus通信Modbus是一种通信协议,被广泛用于工业控制领域。

通过Modbus协议,我们可以实现上位机与PLC之间的实时通信。

在VB6.0中,我们可以使用第三方的Modbus通信库来实现Modbus通信,例如Modbus ActiveX控件等。

通过这些控件,我们可以轻松地实现Modbus通信,从而实现上位机与PLC的实时数据交换。

3. Socket通信1. 配置MSCOMM控件接下来,我们需要编写VB6.0代码,实现与PLC的串口通信。

您可以编写相应的串口通信代码,例如打开串口、发送数据、接收数据等。

示例代码如下:Private Sub Form_Load()mPort = 1 ' 串口号MSComm1.Settings = "9600,n,8,1" ' 波特率、校验位、数据位、停止位MSComm1.PortOpen = True ' 打开串口End SubPrivate Sub Command1_Click()MSComm1.Output = "010*********FF01" ' 发送数据End Sub3. 运行程序并测试您可以运行程序,并测试与PLC的串口通信是否正常。

VB6.0环境下利用Mscomm控件实现串行通信

VB6.0环境下利用Mscomm控件实现串行通信

VB6.0环境下利用Mscomm控件实现串行通信Use Mscomm Control Component to Implement Serial Communication under Visual Basic摘要: 本文简要介绍了VB6.0中Mscomm通信控件的属性和使用方法,并结合具体实例给出了基本的通信程序。

主题词:串行通信Visual Basic Mscomm .vbx控件Abstract: This paper briefly introduces the principle and method of Mscomm object of Visual basic 6.0, and with a real example basic program codes are given.Key Words:Serial Communication; Visual Basic; Mscomm .vbx control component随着计算机技术的飞速发展及其广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。

微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。

而单片机具有价格低,功能强,抗干扰能力好,温限宽和面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。

在需要对采集的数据进行分析处理或在远程需要对控制对象的控制过程进行统计或有条件控制时,采用数据库访问技术能有效地解决这类问题。

Visual Basic 6.0以其强大的功能、使用简单、能在短时间内开发出高效的通信程序而成为Windows系统开发的主要编程语言。

首先表现在VB可直接使用户自定义控件VBX或OCX文件;其次表现在VB可通过调用动态链接库(DLL,dynamic link library)来加快应用程序关键部分的执行速度。

用vb6实现仪器串口通信及检测功能

用vb6实现仪器串口通信及检测功能

1 设计用户界面第一新建一个“标准EXE”工程,然后选择“工程/部件”菜单项,在“部件”对话框当选择Microsoft Comm 即可添加MsComm控件;再在窗体中依次布置如下控件并设置其属性。

控件名称name属性Caption属性Form form1空Frame1frame1空Frame2frame2空Frame3frame3空Command1comd1确定Command2comd2退出Command3comd3确定Command4comd4退出Command5comd5做完退出MSComm msc1空Label 1lab1RS-232接口功能检测Label 2lab2请输入被检仪器程控码控制仪器功能Label 3lab3请输入被检仪器程控码读取仪器数据Text1txt1空Text2txt2空完成后的界面如图1所示图1 用户界面2 编写程序代码编写的程序代码如下:PriVate Sub Form_Load()=1 ’ 使用串行口1’波特率9600,偶校验,8个数据位,1个停止位Msc =“9600,E,8,1”’当使用Msc 时,每次从接收缓冲区取一个字节。

=0 ’读取整个接收缓冲区内码或消除=True ’ 打开串行口End SubPrivate Sub Comd1_Click()On Error Resume Next ’简单的错误处理If = "" Thenx = MsgBox("被检仪器程控码不能为空值", 16)Exit SubEnd If= + Chr$(13)’发送程控码For i = 1 ToNextEnd SubPrivate Sub Comd2_Click()= ""End SubPrivate Sub Comd3_Click()Dim instring As stringinstring == + Chr$(13)DoDoEventsLoop Until >= 20instring = ’ 从接收队列中读入字符串= ""= instring ’ 显示读入的字符串End SubPrivate Sub Comd4_Click()= ""End SubPrivate Sub Comd5_Click()= False ’ 关闭串行口EndEnd Sub3 程序简要说明上述程序设置的端口通信协议为:9600波特率,偶校验,8个数据位,1个停止位。

基于VB6.0的串口通信方法

基于VB6.0的串口通信方法

基于VB6.0的串口通信方法串口通信在数据采集中有着广泛的应用,因为串口通信通信线路简单、灵活方便、数据可靠。

作为快速开发,利用VB开发串口通信程序既可以使用MSComm控件也可以调用WindowsAPI函数实现。

这里我们使用VB6.0提供的MSComm控件,因为MSComm控件的功能和API调用一样强,甚至更好且使用起来更加简单,能很方便地实现所需的串口通信功能。

1.MSComm控件简介MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动方法,当串口通信产生错误时,MSComm控件会触发OnComm事件,程序员可以在OnComm事件处理函数中加入自己的处理代码。

另外一种是查询法。

查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。

在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。

2.MSComm控件的常用属性MSComm控件有很多重要的属性,但首先必须熟悉几个关键属性。

CommPort 设置并返回通讯端口号Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen 设置并返回通讯端口的状态。

也可以打开和关闭端口Input 从接收缓冲区返回和删除字符Output 向传输缓冲区写一个字符串3.程序代码设计利用MSComm控件编写串口通信程序是十分便利和简单的。

下面我就事件驱动方式以VB6.0为平台编写了PC间串口通信程序的实例。

代码如下:'串口初始化PrivateSubForm_Load()mPort=1 '设置通信端口号为COM1MSComm1.Settings="9600,n,8,1" '设置串口参数MSComm1.InputMode=0 '接收文本型数据MSComm1.RThreshold=1'接收缓冲区每收到一个字符都会使MSComm控件触发OnComm事件MSComm1.PortOpen=True '打开通信端口1EndSub'把字符通过串口发送出去'启动定时器PrivateSubCmdsend_Click()IfTextsend.Text=""Thenpp=MsgBox("发送的数据不能为空!",16)ExitSubEndIfMSComm1.Output=Trim(Textsend.Text)EndSub'MSComm的OnComm事件程序'由CommEvent属性值的不同,将各自的程序代码写入相关的子程序中'只要RThresold中的设定字符数到达时便会使得CommEvent属性值变成comEvReceive'因此接收的子程序便会被执行PrivateSubMSComm1_OnComm()Dimbuf$mEvent'通过取代每一个case表达式来处理每个事件与错误CasecomEvCD'CD线的状态发生变化CasecomEvCTS'CTS线的状态发生变化CasecomEvDSR'DSR线的状态发生变化CasecomEvReceivebuf=Trim(MSComm1.Input)'将缓冲区内的数据读入buf变量中CasecomEvSendEndSelectTextReceive.Text=TextReceive.Text&bufEndSub'停止程序运行PrivateSubCmdquit_Click()UnloadMeEndSub'关闭通信端口,PrivateSubForm_Unload(CancelAsInteger)MSComm1.PortOpen=FalseEndSub4结束语本文通过具体实例介绍了如何利用VB6.0中的MSComm控件来实现串口通信。

Visual+Basic串口通讯调试方法

Visual+Basic串口通讯调试方法

Visual Basic串口通讯调试方法现有电子秤一台,使用串口与计算机进行通讯。

编写VB程序来访问串口,达到读取电子秤上显示的数据。

该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。

所有字符均发送11位ASCII码,一个起始位。

在VB 中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。

具体程序如下:控件简称:MSCDim Out(12) As Byte '接收var中的值Dim var As Variant '接收MSC.input中的数值Dim nRece As Integer '计算MSC.inputbuffer的个数Dim i As Integer, j As Integer '随即变量,计算循环****************************************************************************Private Sub Form_Load()ClearTextWith MSC.CommPort = 1 '设置Com1为通信端口.Settings = "9600,E,7,2" '设置通信端口参数9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。

含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit).InBufferSize = 40 '设置缓冲区接收数据为40字节.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1.RThreshold = 1 '设置接收一个字节就产生OnComm事件End WithEnd Sub****************************************************************************Private Sub ClearText()Text3.Text = ""Text2.Text = "5"Text1.Text = ""End SubPrivate Sub Command1_Click()ClearText' nRece = 0 '计数器清零With MSC.InputMode = comInputModeBinary '设置数据接收模式为二进制形式.InBufferCount = 0 '清除接收缓冲区If Not .PortOpen Then.PortOpen = True '打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnComm()DelayTime ‘用来延续时间ClearTextWith MSCSelect Case .CommEvent '判断通信事件Case comEvReceive: '收到Rthreshold个字节产生的接收事件SwichVar 1If Out(1) = 2 Then '判断是否为数据的开始标志.RThreshold = 0 '关闭OnComm事件接收End IfDoDoEventsLoop Until .InBufferCount >= 3 '循环等待接收缓冲区>=3个字节' nRece = nRece + 1For i = 2 To 12SwichVar iText1.Text = Text1.Text & Chr(Out(i))NextText1.Text = LTrim(Text1.Text)Text2.Text = Text2.Text & CStr(nRece).RThreshold = 1 '打开MSComm事件接收Case Else' .PortOpen = FalseEnd SelectEnd WithEnd Sub****************************************************************************Private Sub DelayTime()Dim bDT As BooleanDim sPrevious As Single, sLast As SinglebDT = TruesPrevious = Timer (Timer可以计算从子夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分)Do While bDTIf Timer - sPrevious >= 0.3 Then bDT = FalseLoopbDT = TrueEnd Sub(通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序)Private Sub SwichVar(ByVal nNum As Integer)DelayTimevar = Nullvar = MSC.InputOut(nNum) = var(0)End Sub(设置接收数据模式采用二进制形式,即InputMode=comInputModeBinary,但用Input 属性读取数据时,不能直接赋值给Byte 类型变量,只能通过先赋值给一个Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。

Visual Basic 6MSComm控件

Visual Basic 6MSComm控件

Visual Basic6.0(以下简称VB)是一种功能强大、简单易学的程序设计语言。

它不但保留了原先Basic语言的全部功能,而且还增加了面向对象程序设计功能。

它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。

本文结合计算机通信的两个例子,详细介绍如何在VB中使用MSComm控件。

处理方式MSComm控件提供了两种处理通信的方式:一种为事件驱动方式,该方式相当于一般程序设计中的中断方式。

当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。

本文的两个例子均采用该方式。

另一种为查询方式,在用户程序中设计定时或不定时查询MSComm控件的某些属性是否发生变化,从而确定相应处理。

在程序空闲时间较多时可以采用该方式。

常用属性和方法利用MSComm控件实现计算机通信的关键是理解并正确设置MSComm控件众多属性和方法。

以下是MSComm 控件的常用属性和方法:●Commport:设置或返回串口号。

●Settings:以字符串的形式设置或返回串口通信参数。

●Portopen:设置或返回串口状态。

●InputMode:设置或返回接收数据的类型。

●Inputlen:设置或返回一次从接收缓冲区中读取字节数。

●InBufferSize:设置或返回接收缓冲区的大小,缺省值为1024字节。

●InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。

●Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。

●OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。

●OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。

●Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。

●Rthreshold:该属性为一阀值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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口是否打开以上基本完成。

相关文档
最新文档