VB上位机通过串口与单片机通信视频教程
VB环境下实现PC机与单片机的串行通讯
VB环境下实现PC机与单片机的串行通讯随着科技的不断发展,PC机和单片机的联系日益密切,特别是在嵌入式系统领域中,单片机已经成为了必不可少的重要组成部分。
而如何实现PC机和单片机之间的通讯,是一项必须要掌握的技能。
本篇文章主要介绍如何运用VB环境下的串口编程,实现PC机与单片机的串行通讯。
一、概述通讯技术日新月异,各种新的通讯技术层出不穷。
而在普通家庭却使用最为广泛的通讯技术,还是传统的串口通讯。
使用传统的串口通讯,可以实现PC机与单片机之间的数据交互,可靠性高,兼容性强,使用便捷。
要实现PC机与单片机之间的串行通讯,需要掌握两个技能:单片机串行通讯的编程和VB环境下串口编程。
二、单片机串行通讯的编程单片机串行通讯主要是通过寄存器和中断实现的。
单片机通过一个IO口与电脑之间建立一个简单的通讯接口,PC机通过该接口向单片机发送数据,单片机接收到数据,就可以通过该接口把数据返回给PC机。
单片机串口通讯编程的内容主要包括串口数据位、停止位、校验位、波特率等信息,这些信息需要设置在单片机的寄存器中。
同时,还要设置中断信息,以免程序在不接收数据时死等。
三、VB环境下串口编程VB环境下串口编程的关键是掌握控件的使用。
实际上,VB环境下的串口编程非常简单,只需要使用微软提供的MSComm控件就可以实现。
通过MSComm控件的事件和方法,可以轻松地实现数据的读取、发送、接收等功能。
需要注意的是,MSComm控件的BaudRate属性需要与单片机编写的程序的波特率一致,不然可能会出现通讯故障。
四、如何实现串口通讯首先需要硬件上建立好通讯接口。
通常情况下,USB串口转换器和单片机板子都会配套出售,只需要把两者插在一起即可。
其次需要编写单片机的串口通讯程序。
单片机数字口与串口的通讯,就是把串口接到单片机的数字口中,通过串口向外发送数据。
因此,编写单片机的串口通讯程序,需要设置停止位、数据位、奇偶校验位、波特率等参数。
基于VB进行PC机与单片机的串行通信
计算机软件 可 以用 B SC语 言 、C语 言开 发 ,也 可 以 AI 利用 V 、VC e h 等开发平 台。新 一代 面 向对 象的程 序 B 、D l i p 设计 语 言 Vi a B s V s l ai u c( B)是 Widw n o s图形 工 作 环境 与 B SC语言编程简便 性的完美结合 。它 简明易用 ,因而得 到 AI 广泛的应 用。VB提供 一个名 为 M._  ̄. _ OMM3 . X的通信控 2 QC
P C机程序清单:( 语言) Ⅶ
图 2 电平匹配原理 图
S b Fo m u r
—
L a ( od )
RS 3 一2 2信号的 电平 和单 片机串行信 号 的电平不 一致 ,
M S :mm 1 Co (0 . mmPo t 2 r=
收稿 日期 :2 0 0 7—2 0 —2
作者简介 :周桔蓉 (9 8 ,女 ,九江职 业技 术学院电气工程 系教师。 17 一)
维普资讯
2 0 . 07 3
九 江 职 业 技 术 学 院 学 报
( 周桔 蓉 :基 于 V B进 行 P C机 与单 片机 的 串行 通信 )
2 1
基于 V B进 行 P C机 与 单 片 机 的 串行 通 信
周桔 蓉 ,孙 旭 日
( 九江 职业技术学院 ,江西九江 3 20 ) 3 0 7
一
M S mm1 Set g = ” 9 0 Co . ti s n 6 0, N , 8, 1 ” En u dSb S b c rma d u on n l
—
Ci ( lk ) c
MS o C mm l Po t  ̄ =FALS , rOr E
用VB来实现单片机与PC之间通信
VB入门中最简单入门教程基于VB单片机与PC通信一、目的和要求1、掌握利用VB软件制做出通信界面;2、掌握在VB中添加程序并能够写出发送数据的程序;3、掌握单片机串行口通信原理;4、掌握单片机接受串行口通信数据程序;二、设备1、Keilc51软件及电脑一台;2、89C51单片机开发板一块;3、Microsoft Visual Basic 6.0软件;三、实验内容本次课程设计就是利用Microsoft Visual Basic 6.0软件制作一个通信界面在界面上添加三个按钮,当按第一个按钮时单片机上的LED灯正转,当按第二个按钮时单片机上的LED灯反转,当按第三个按钮时单片机上的LED灯闪烁。
单片机能正确接受并显示。
四、原理串口是计算机上一种非常通用设备通信的协议〔不要与通用串行总线Universal Serial Bus或者USB混淆〕。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位〔bit〕发送和接收字节。
尽管比按字节〔byte〕的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比方IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
五、步骤1、在桌面上启动Microsoft Visual Basic 6.0软件弹出对话框,点击标准EXE确定。
2、添加串口控件点击工程-部件-Microsoft Comm control 6.0 即可会在左方的工具栏出现该工具,双击此工具会在form1中出现。
3、初始化串口双击form1中的空白区域添加程序MSComm1.Settings = "9600,n,8,1"mPort = 4MSComm1.PortOpen = TrueMSComm1.RThreshold = 1mPort 取决你使用的串行口,在设备管理器中查看。
VB实现PC机与单片机的通信程序
Private Sub Command1_Click() ' 发送功能代码: Dim Num As Integer ' 发送的数据变量Dim OutB (0) As Byte ' 发送字节数组Num=Val(Text1.text) ' 类型转换OutB (0)=CByte(Num) ' 转换为二进制MSComm1.OutBufferCount=0 ' 清空发送缓冲区MSComm1.Output=OutB ' 发送数据End Sub接收功能代码:Private Sub MSComm1_OnComm()Dim Array1(0) As Byte ' 接收字节数组Select Case mEventCase comEvReceive ' 触发接收事件Dim Buffer As VariantMSComm1.InputLen = 0Buffer=MSComm1.Input ' 接收数据Array1 (0)=AscB(InData) ' 类型转换Text2.text= Array1 (Buffer) ' 显示数据MSComm1.InBufferCount=0 ' 清空接收缓冲区End SelectEnd Sub单片机部分程序代码Private Sub Form_Load()mPort = 11 '使用COM 作为通信端口MSComm1.Settings = "300,N,8,1" '设置通信参数波特率为9600,' 无奇偶校验位, 8 个数据位, 一个停止位MSComm1.InputLen = 0 '读取缓存区的所有字符MSComm1.InBufferSize = 1024 '设置接收缓存区为1024MSComm1.OutBufferSize = 512 '设置发送缓存区为512MSComm1.PortOpen = True '打开串口MSComm1.SThreshold = 1 '不触发发送事件MSComm1.RThreshold = 1 '每一个字符到接收缓存区都触发接受事件MSComm1.InBufferCount = 0 '清除发送缓存区的数据MSComm1.OutBufferCount = 0 '清除接收缓存区的数据MSComm1.InputMode = comInputModeBinary ' 采用二进制方式End SubPrivate Sub Comsend_Click()Dim x As StringIf Textsend.Text = "" Then '发送数据不能为空x = MsgBox("发送数据不能为空", 16)Exit SubEnd IfIf Not MSComm1.PortOpen Then '保证串口打开MSComm1.PortOpen = TrueEnd IfMSComm1.Output = Textsend.Text + Chr$(13)For i = 1 To 20000000 '延时NextEnd SubPrivate Sub Command1_qkfs_Click()Textsend.Text = "" '清空发送缓存区Textsend.SetFocusEnd SubPrivate Sub Command2_qkjs_Click()TextReceive.Text = "" '清空接收缓存区Textsend.SetFocusEnd SubPrivate Sub MSComm1_OnComm()Select Case mEvent '检验串口事件'错误处理Case comEventOverrun '数据丢失Textsend.Text = "" '清空发送缓存区TextReceive.Text = "" '清空接收缓存区Textsend.SetFocusExit SubCase comEventRxOver '接收缓存区溢出Textsend.Text = "" '清空发送缓存区TextReceive.Text = "" '清空接收缓存区Textsend.SetFocusExit SubCase comEventTxOver '发送缓存区已满Textsend.Text = "" '清空发送缓存区TextReceive.Text = "" '清空接收缓存区Textsend.SetFocusExit Sub'事件处理Case comEReceive '接收缓存区内有数据Dim str As Stringsrt = MSComm1.Input '从接收队列中读入字符串TextReceive.Text = TextReceive.Text + str '读出字符串送显End SelectEnd SubPrivate Sub Commandguanbi_Click()MSComm1.PortOpen = FalseUnload MeEnd Sub/share/269187588/12858676890?from=010*******&ref=hotnewsfeed&sf et=110&fin=5&ff_id=269187588。
VB上位机串口通讯
'初始化代码Private Sub Form_Load() '窗体被加载时产生If MSComm1.PortOpen = True Then '串口查看是否打开,打开则关闭MsgBox "端口已经打开", 2'MSComm1.PortOpen = FalseEnd IfWith MSComm1.CommPort = 3 '设置串口3.Settings = "9600,n,8,1".InputLen = 0 '读取接收缓冲区所有字符.InBufferSize = 1024 '设置接收缓冲区1024字节.OutBufferSize = 512 '设置发送缓冲区512字节.InputMode = comInputModeText. '采用文本传输'.PortOpen = True '打开串口.SThreshold = 0 '一发送数据就触发OnComm事件.RThreshold = 1 '接收到一个字节就触发OnComm事件.InBufferCount = 0 '清除发送缓冲区数据.OutBufferCount = 0 '清除接收缓冲区数据End WithText_send.Text = ""Text_recv.Text = ""Text_send_16.Text = ""End Sub'清空对话框数据Sub Command3_Click(Index As Integer)Text_send.Text = ""Text_recv.Text = ""Text_send_16.Text = ""End Sub'通讯端口选择Private Sub Combo1_Click()If Combo1.Text = "com1" Then '通讯端口号设置mPort = 1'Text1 = 1ElseIf Combo1.Text = "com2" ThenmPort = 2'Text1 = 2ElseIf Combo1.Text = "com3" ThenmPort = 3'Text1 = 3ElseIf Combo1.Text = "com4" ThenmPort = 4'Text1 = 4ElsemPort = 5'Text1 = 5End IfEnd SubPrivate Sub Combo2_Click()If Combo2.Text = "9600,e,8,1" ThenMSComm1.Settings = "9600,e,8,1"ElseIf Combo2.Text = "9600,n,8,1" ThenMSComm1.Settings = "9600,n,8,1"ElseIf Combo2.Text = "57600,n,8,1" ThenMSComm1.Settings = "57600,n,8,1"End IfEnd Sub'发送数据Private Sub Command1_Click(Index As Integer)'判断是否选择了端口与通讯方式If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2Exit SubEnd If'保证串口打开If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd If'发送数据MSComm1.Output = Text_send.Text'延时For i = 1 To 2000000Next iEnd Sub'发送16进制数据Private Sub Command4_Click(Index As Integer)'判断是否选择了端口与通讯方式If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2Exit SubEnd If'保证串口打开If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd If'发送数据Dim a, b As String'Dim a As Long, b As Stringa = Text_send_16.Textb = CLng("&H" & a)MSComm1.Output = b'延时For i = 1 To 2000000Next iEnd SubPrivate Sub Command2_Click(Index As Integer)'判断是否选择了端口与通讯方式If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2Exit SubEnd If'保证串口打开If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd If'接受数据Dim str As Stringstr = MSComm1.Input '从接收队列中读入字符串Text_recv.Text = Text_recv.Text & str '读出字符串送显Text_recv.Text = Text_recv.Text & "" & vbCrLf '文本换行符End Sub。
VB上位机通过串口与单片机通信视频教程
1.你还有为购买昂贵的硬件而烦恼吗?PROTUES仿真帮助你解决这个问题
2.你还在为数据采集而烦恼吗?你还在为上位机控制单片机烦恼吗?
3.这套视频将从头到尾解决你所遇到的上位机数据采集和控制单片机的问题,使你触类旁通。
东电隆重推出VB上位机控制单片机视频教程
地址:
或:
店内搜索:VB上位机通过串口与单片机通信
视频截图1—实现的功能
视频截图2—实现功能界面
视频截图3—单片机数据采集界面
视频截图4—添加网络号
视频截图5—添加元件
视频截图6—概况
视频截图7—编写程序1
视频截图8—编写数据采集程序2
视频截图9—编写程序
视频截图10—采集数据成功
视频截图11—添加串口
视频截图12—编写串口程序
视频截图13—编写串口程序
视频截图14—串口接收数据
视频截图15—串口调试助手控制发光二极管的亮和灭
视频截图16—编写VB上位机软件
视频截图17—编写VB上位机软件
视频截图18—VB代码编写过程
视频截图19—VB采集数据代码
视频截图20—串口选择
视频截图21—二极管亮灭程序
视频截图22—控制亮
视频截图23—控制灭
视频截图24—VB编写的上位机界面视频截图25—虚拟串口
视频截图26—所有资料。
C51LCD1602VB上位机实现简单通信.
设计基本原理主要功能:上位机和下位机连接好后握手,如果成功,上位机就可以发字符串让下位机的LCD显示出来,如果没有握手就不显示上位机发来的内容.下位机设计:主程序首先初始化串口和LCD,然后进入一个死循环,这个循环往LCD写dataArray这个数组中的数据,因此只要改变了这个数组中的第0-31位的内容就相当于改变了屏幕上显示的内容. 当串口发来消息的时候,执行中断号为4(串口中断)的服务子程序.这时候还不能让上位机往下位机传字符串,因此需要判断是否已经握手,判断的标志就是dispEn (display enable),如果等于0说明还没有握手,就把用户发来的数据当成是控制字control,如果是等于1说明之前已经握过手了,就把用户发来的数据放到dataArray中.最后判断控制字是否是握手,如果control等于0x00是就握手信号,然后回复0x01.然后把dispEn=1,最后把控制字control改掉(因为下一次中断可能已经不是握手信号了)上位机设计:由于已经把端口号写在vb程序中了,所以要改端口号的话要进vb的代码中把mPort = 4 中的4 改为自己需要的串行端口号.然后运行程序,打开端口,此时没有和下位机握手,所以输入数据后单击发送是没有反应的,所以需要先单击握手按钮,向传哭发送0x00,然后延时800毫秒等待回复,然后接收数据,如果回复的是0x01那就表明握手成功,如果没有回复那就是握手失败.用户点击发送信息,上位机把字符串拆分成字符来发送一次发送一个字符,每个字符发送延时30毫秒避免因为连续发送而造成的乱码.a)原理框图b)硬件电路原理图AT89C521~8:I/OP1口(P1.0~P1.7);9:复位脚(RST/Vpd);10~17:I/OP3口(P3.0=RXD,P3.1=TXD,P3.2=-INT0,P3.3=-INT1,P3.4=T0,P3.5=T1,P3.6=-WR,P3.7=-RD)主要是此引脚;18、19:晶振(18=XTAL2,19=XTAL1);20:地(Vss);21~28:I/OP2口(P2.0~P2.7);29:-PSEN;30:ALE/-PROG;31:-EA/Vpp32~39:I/OP0口(P0.7~P0.0);40:+5V电源。
上位机(vb)单片机与PC通讯程序(自己编的)
Option Explicit Dim count1 As String 'Dim count11 As String Dim flag As Integer 'Dim flag_1 As Integer Dim jinji_flag As Integer Dim jinji_flag1 As Integer Dim dxbian As Integer Dim nbbian As Integer Dim count_sheding As Integer Dim count_shedingnb As Integer Dim strData As String '串口变量 'Dim flag As Integer Dim sj(0 To 4 As Integer Dim sj1(0 To 4 As Integer Dim sj2(0 To 4 As Integer Dim sj3(0 To 4 As Integer Private Sub Command2_Click( MSComm1.PortOpen = False Unload Me End Sub Private Sub Form_Load( count1 = count_sheding count_sheding = 60 dxbian =count_sheding count_shedingnb = 60 nbbian = count_shedingnb Text1.Text = ""Text5.Text = "" ' flag = 0 ' jinji_flag = 1 Text9 = "" '串口初始化 mPort = 1 MSComm1.InputMode = comInputModeBinary '数据通过 Input 属性以文本形式取回。
利用VB实现电脑与单片机通讯
VB实现电脑跟单片机通讯任务说明:电脑端通过串口将数字(00,01,….,FF,十六进制)发送给单片机,单片机收到后回传这个数字,电脑接收到回传数据后显示出来,若发送的数据和接受的数据一致,则串口通讯正常,否则错误。
起始符是数字00,结束符是数字FF。
一、软件界面设计如下:二、VB程序代码如下:'将数字(0,1,2,3...255,转换为16进制)传给单片机,单片机收到后回传这个数字,PC机接收到回传数据后显示出来,'若发送和接收的数据相同,显示通信正常,否则通信不正常'发送以00开始,以FF结束'定义变量Dim data, data1 As V ariant '串口初始化'在窗体的Load事件中加入下列代码对串口进行初始化:Private Sub Form_Load()mPort = 1MSComm1.InputMode = 1MSComm1.RThreshold = 1MSComm1.SThreshold = 1MSComm1.Settings = "9600,n,8,1"MSComm1.PortOpen = Truesenddata.Text = "00"End Sub'单击清空文本框Private Sub senddata_Click()senddata.Text = ""Cmdsend.Enabled = TrueEnd SubPrivate Sub senddata_Change()senddata.Text = UCase(senddata.Text)End SubPrivate Sub senddata_KeyPress(KeyAscii As Integer)If (KeyAscii >= Asc("a") And KeyAscii <= Asc("f")) ThenKeyAscii = KeyAscii - 32End IfEnd Sub'向单片机发送数据Private Sub Cmdsend_Click()If Len(senddata.Text) <> 2 ThenMsgBox ("请输入2位16进制数!")Exit SubEnd Ifc = senddata.TextIf (c = "FF") Thendata1 = "&H" & cdata = Chr(data1)Elsea = Left(c, 1) '截取senddata左边字符b = Right(c, 1) '截取senddata右边字符data1 = "&H" & senddata.Text 'data1没有将senddata中的字符拆开data = Chr("&H" & a) & Chr("&H" & b) '将senddata中的字符拆开存入data中,这样就会解决例如A1接收不正确的问题End IfMSComm1.Output = dataCmdsend.Enabled = FalseEnd Sub'获取温度测量值并显示'每发送一次指令,触发下面事件,返回数据串Private Sub MSComm1_OnComm()Dim Inbyte() As ByteDim buffer As Variant'读取仪表返回数据串Select Case mEventCase comEvReceiveInbyte = MSComm1.InputFor i = LBound(Inbyte) To UBound(Inbyte)buffer = buffer + Hex(Inbyte(i))Next iCase comEvSendEnd SelectIf Len(Trim(buffer)) = 1 Thenreturndata.Text = Str("0") & bufferElsereturndata.Text = bufferEnd IfIf "&H" & buffer = data1 ThenLabel1.ForeColor = QBColor(13)Label1.Caption = "通信正常!"End IfIf "&H" & buffer <> data1 ThenLabel1.ForeColor = QBColor(12)Label1.Caption = "通信不正常!"Label1.Caption = "未接收到数据"End IfIf Trim(buffer) = "FF" ThenLabel1.ForeColor = QBColor(12)Label1.Caption = "输入00重新开始!"End IfEnd Sub'当退出程序时,关闭串行口Private Sub Cmdquit_Click()Unload MeEnd SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) MSComm1.PortOpen = False '关闭串口End Sub三、单片机代码:。
VB实现PC机与单片机_8051_的串行通讯
《自动化技术与应用》2007年第26卷第11期94 | T echniques of Automation & Applications 经验交流Technical CommunicationsVB 实现PC 机与单片机(8051)的串行通讯刘艳美, 姜 波(新疆大学电气工程学院 新疆 乌鲁木齐 830008)摘 要:本文主要论述PC机与单片机之间实现异步串行通讯需要解决的问题以及如何利用VB提供的串行通讯控件MSComm来实现PC机与51单片机的通讯。
关键词:MSComm; 串行通讯; 波特率中图分类号:TP368.1 文献标识码:B 文章编号:1003-7241(2007)11-0094-03Implementation of Serial Communication between PC andMicroprocessor by Using VBLIU Yan-mei, JIANG Bo(XinJiang University Electronical Institute,Urumchi 830008 China)Abstract: This paper discusses the asynchronous serial communication between PC and the Microprocessor and the use of VBmodule of MSComm to imdement this serial communication.Key words: MSComm; serial communication; Baud rate收稿日期:2007-03-271 引言PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通讯,是许多测控系统中常用的一种通信解决方案。
本文将论述在VB环境下PC机与单片机之间实现异步串行通讯需要解决的问题并给出其部分通讯程序。
用VB开发PC与单片机通信的上位机程序
串口通信是MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境有不少,诸如VB、VC++,Delphi、LABVIEW等等,不过无论黑猫还是白猫,能够抓到老鼠的就是好猫,用VB无疑是最快速最简便的,实现的功能也足够强大,足以满足我们的基本需要了。
我最近用VB写出了一个用于数据采集的串口上位机程序,实现数据的接收和实时绘图,这里和大家分享一下,让大家也体验一下单片机和PC通信的乐趣。
整个程序只需要不到30行程序,我将会给这30行程序加上最为详备的注释,这样即使你从未使用VB制作过上位机程序,也能照猫画虎的编写出属于自己的上位机程序。
一,制定设计思路首先,我们要制定一下自己的串口通讯协议,为了方便设计,通讯协议中将采用字符型数据(遵循ASCII字符集)进行传输,一共5个字节数据,下位机按照从第一字节到第五字节的顺序以1 符号位2 百位3 十位4 个位注释:1,符号符,+(2B)或—(2D),表示数据的正负2,3,4,百位,十位,和个位数字5,结束符,用大写字母A(41)表示接着,我们就要明确设计思路了,这个程序的设计将采用Microsoft Visual Basic 6.0(以下简称VB6.0)作为m,通过编译环境,运用串口通讯控件MSCom计时器控件实现以查询方式编写的串口数据的接收和实时绘图。
二,程序界面设计(1)创建一个标准EXE工程:启动VB6.0,在自动弹出的“新建工程”窗口中单击“标准EXE”图标,然后单击“打开”按钮即可创建一个标准EXE工程。
将弹出的窗体的Caption属性设置为串口通讯与实时绘图程序。
[attachment=1364699](1)添加串口通信控件MSComm:VB的串口通信控件MSComm并不会主动出现在工具箱中,当我们需要MSComm控件时,首先要把它加入工具箱中,选择“工程”菜单下的“部件...”子菜单,在弹出的“部件”对话框中,在“控件”选项卡属性中选中“Microsoft Comm Control 6.0”,单击“确定”按钮后,在工具箱中就出现了一个形似电话的图标,这就是MSComm控件,选择MSComm控件的图标,将它添加到适当位置,采用默认名称MSComm1。
用VB Active X 控件实现PC与单片机的串行通信
用VB Active X 控件实现PC与单片机的串行通信
刘鹏;于复生;刘迎春
【期刊名称】《兵工自动化》
【年(卷),期】2004(023)002
【摘要】用VB ActiveX控件可实现单片机与上位PC间的串行通讯.上位机用VB6.0编程,打开VB项目,添加Mscomm、Label、TextBox等控件并设置控件属性,再进行代码设计.下位机用汇编语言编程,设置串行口的工作方式与波特率、发送并接收数据.单片机从EEPROM中读取数据,通过RS-232将其传入PC进行校验,校验正确回送校验指令1,单片机继续发送数据并将数据存储,校验不正确,回送数据0,单片机重发数据直到正确为止.
【总页数】3页(P70-72)
【作者】刘鹏;于复生;刘迎春
【作者单位】山东建工学院,机电系,山东,济南,250014;山东建工学院,机电系,山东,济南,250014;山东潍坊科技职业学院,山东,寿光,262700
【正文语种】中文
【中图分类】TP393.03
【相关文献】
1.用VB实现PC机与MSP430单片机串行通信的研究 [J], 孙瑞杰;吴晓宇;张瑜;马铁华
2.基于VB的PC机与单片机串行通信系统研究与实现 [J], 马壮;吴铮;王永强
3.利用VB8.0实现PC机与多单片机串行通信的方法 [J], 王平根
4.基于VB实现PC机与单片机的串行通信 [J], 王圆妹;许劲;李涛
5.用VC++控件实现PC与单片机之间的串行通信 [J], 马风格;胡书屏;王敏
因版权原因,仅展示原文概要,查看原文内容请购买。
用VB实现计算机与单片机的串行通信
S M f
E bde ytr m eddS s n e
用V B实现计 算机 与单片机 的 串行通信
周 子 琛 , 申 振 宁
( 警工程 学院 ,陵 西 西 安 7 0 6) 武 1 08
摘 要 :给 出了使用 VB控 件 .实现 P C机 8 3 0 1单片机之 串行 通信 的编 程 方法 r井给 出 了 个 H j VB
2 硬 件 组 成
该系统 中, 由于计 算机 串行通 信接 口和 8 3 单 01 片机的驱动 电平 不一致 ,故应 使用一个 电平转换装
置 ,而 MAXI 3 2 M 2 3就 可 以 完 成 这 。 能 , 最 简 功 单系 统 如 图 1 示。 所
件及错 误 ; ( )查询 方式, 查 Co E e t 性 来 2 检 n v n属 处理通 信 事 件及 错 误 。 F 面简要介绍Ms mm控件的主要 属性 以及 响 Co
“ 用 C 使 OM2作 为 通 信 口 , 使 用 查 询 方 式 进 行 通 信 ,每 隔 0 5 查 询 一 次 , 以确 定 是 否 发 送 周 期 .S
到 接 收 缓 冲 区 内字 节 个 数 达 到 或 超 过 该 设 置 值 时 就 产 生 On o c mm 事 件 。 门) n uln: 设 置 或 返 回接 收 缓 冲 区 内用 I . lp t e n p t 八 的个数 。 n 读 () n u : 表 示 从 接 收 缓 冲 区 内 读 出 的 串字 8 Ip t
( )P rOp I 串 行 L打 开 与 否 , 为 布 尔 案 。 3 o t e1 : J ( ) n feSz : 设 置 或 返 回缓 冲 区 的 人 小 , 4 IBu fr ie 政省值 为 l 2 0 4字 节 。 ( ) n u fr o n: 返 同 缓 冲 区 等 待 读 取 字 节 5 IB f C u t e
2021VB语言下上位机与单片机串口通讯的的延时方法范文3
2021VB语言下上位机与单片机串口通讯的的延时方法范文vb设计论文六篇:VB语言下上位机与单片机串口通讯的的延时方法 摘要:PC机与单片机之间通讯时,要制定延时方案, 以保证通讯高效、准确。
本文介绍了时钟控件Timer和Get Tick Count函数延时方法, 并编写设计延时方案。
最后通过实例介绍了两种方法组合使用, 实例已经过长时间的考验, 运行稳定可靠。
对于设计同类型的延时方案有借鉴意义。
关键词:延时;时钟控件Timer; GetTickCount; 在信息技术高速发展的时代,通讯技术是其关键问题, 其中控制更是系统稳定运行的核心。
现今多以PC为上位机, 单片机将所需的数据通过串口发送给上位机, 由上位机进行分析、处理。
上位机根据实际数据, 通过串口发出命令进行干预、控制。
在这个过程有很多处理方法和规则, 其中延时方案尤为重要。
延时方案设计的是否合理, 直接影响到数据传输的正确性和效率, 也影响到整个系统的运行是否稳定。
在PC中有各种可以实现串口通讯的语言,本文选用VB6.0作为开发语言。
Visual Basic采用可视化的图像用户界面、面向对象的程序设计思想、事件驱动的工作机制和结构化的高级程序设计语言。
可高效、快速的开发出WINDOWS环境下功能强大、图形界面丰富的应用软件[1]。
Visual Basic6.0通过调用MSComm控件进行串口通讯, 其中有几种延时方法, 本文就HEW互感器误差管理系统各个版本中的用到的两种延时方法进行阐述。
一、上位机与单片机串口通讯实现 上位机与单片机之间以串行总线接口为RS-232。
VB6.0通过调用控件MSComm来实现通讯传输。
通过属性CommPort设置COM口, 属性Settings设置通讯参数, 如:波特率, 数据位, 校验位等。
由Outpu向单片机发送命令, 属性Input将接收的数据进行处理。
一个简单的例子,使用通讯端口COM1, 波特率为9600, 无奇偶校验码, 8位数据位, 1位停止位, 发送字符“A”。
VBmscomm串口控件及及51单片机通讯使用指南
一、概述串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。
提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。
实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB中,一样能够实现串口通讯,甚至其实现方法和C、汇编相比,要更加快捷方便。
下面,笔者就介绍一下在VB中实现串口通讯的方法。
在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件。
我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。
下面,笔者就简要地介绍一下MSComm控件的使用方法。
二、MSComm控件的主要属性、事件1、MSComm的属性常用属性和方法利用MSComm控件实现计算机通信的关键是理解并正确设置MSComm控件众多属性和方法。
以下是MSComm控件的常用属性和方法:●Commport:设置通讯所占用的串口号。
如设成1(默认值),表示对Com1进行操作。
语法 mPort[value ] (value 一整型值,说明端口号。
)说明在设计时,value 可以设置成从 1 到 16 的任何数(缺省值为 1)。
但是如果用PortOpen 属性打开一个并不存在的端口时,MSComm 控件会产生错误 68(设备无效)。
注意:必须在打开端口之前设置 CommPort 属性。
●CTSHolding 属性:确定是否可通过查询 Clear To Send (CTS) 线的状态发送数据。
Clear To Send 是调制解调器发送到相联计算机的信号,指示传输可以进行。
该属性在设计时无效,在运行时为只读。
语法: object.CTSHolding(Boolean)Mscomm 控件的 CTSHolding 属性设置值:True Clear To Send 线为高电平。
教你如何使用Labview与单片机通信(串口)
第 13 章 LabVIEW 串口通信程序设计
环结构的条件端子 设置为“真时停止(Stop if True)” ,则不需要添加非(Not)函数。 (11)添加两个条件结构:编程(Programming)→结构(Structures)→ 条件结构(Case
Structure)。添加理由:发送字符时,需要单击按钮“发送字符”,因此需要判断是否单击了 发送按钮;接收数据时,需要判断串口接收缓冲区的数据个数是否不为 0。
(2)添加 4 个数值常量:编程(Programming)→数值(Numeric)→ 数值常量(数值常量 (Numeric Constant),值分别为 9600(波特率)、8(数据位)、0(校验位,无)、1(停止位)。
(3)添加两个关闭串口函数:编程(Programming)→仪器 I/O(Instrument I/O)→串口 (Serial)→VISA 关闭(VISA Close)。
(2)将数值常量 9600、8、0、1 分别与串口配置(VISA Configure Serial Port)函数的输 入端口波特率(baud rate)、数据比特(data bits)、奇偶(parity)、停止位(stop bits)相连。
(3)将数值常量(值为 500)与等待下一个整数倍毫秒(Wait Until Next ms Multiple)函 数的输入端口毫秒倍数(millisecond multiple)相连。
第 13 章 LabVIEW串口通信程序设计
以 PC 作为上位机,以调制解调器(Modem)、串行打印机、各种监控模块、PLC、摄像 头云台、数控机床、单片机及智能设备等作为下位机广泛应用于测控领域。本章举几个典型 实例,详细介绍利用 LabVIEW 实现 PC 与各种下位机设备串口通信的程序设计方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.你还有为购买昂贵的硬件而烦恼吗?PROTUES仿真帮助你解决这个问题
2.你还在为数据采集而烦恼吗?你还在为上位机控制单片机烦恼吗?
3.这套视频将从头到尾解决你所遇到的上位机数据采集和控制单片机的问题,使你触类旁通。
东电隆重推出VB上位机控制单片机视频教程
地址:
或:
店内搜索:VB上位机通过串口与单片机通信
视频截图1—实现的功能
视频截图2—实现功能界面
视频截图3—单片机数据采集界面
视频截图4—添加网络号
视频截图5—添加元件
视频截图6—概况
视频截图7—编写程序1
视频截图8—编写数据采集程序2
视频截图9—编写程序
视频截图10—采集数据成功
视频截图11—添加串口
视频截图12—编写串口程序
视频截图13—编写串口程序
视频截图14—串口接收数据
视频截图15—串口调试助手控制发光二极管的亮和灭
视频截图16—编写VB上位机软件
视频截图17—编写VB上位机软件
视频截图18—VB代码编写过程
视频截图19—VB采集数据代码
视频截图20—串口选择
视频截图21—二极管亮灭程序
视频截图22—控制亮
视频截图23—控制灭
视频截图24—VB编写的上位机界面视频截图25—虚拟串口
视频截图26—所有资料。