用VB来实现单片机与PC之间通信
VB环境下实现PC机与单片机的串行通讯
VB环境下实现PC机与单片机的串行通讯随着科技的不断发展,PC机和单片机的联系日益密切,特别是在嵌入式系统领域中,单片机已经成为了必不可少的重要组成部分。
而如何实现PC机和单片机之间的通讯,是一项必须要掌握的技能。
本篇文章主要介绍如何运用VB环境下的串口编程,实现PC机与单片机的串行通讯。
一、概述通讯技术日新月异,各种新的通讯技术层出不穷。
而在普通家庭却使用最为广泛的通讯技术,还是传统的串口通讯。
使用传统的串口通讯,可以实现PC机与单片机之间的数据交互,可靠性高,兼容性强,使用便捷。
要实现PC机与单片机之间的串行通讯,需要掌握两个技能:单片机串行通讯的编程和VB环境下串口编程。
二、单片机串行通讯的编程单片机串行通讯主要是通过寄存器和中断实现的。
单片机通过一个IO口与电脑之间建立一个简单的通讯接口,PC机通过该接口向单片机发送数据,单片机接收到数据,就可以通过该接口把数据返回给PC机。
单片机串口通讯编程的内容主要包括串口数据位、停止位、校验位、波特率等信息,这些信息需要设置在单片机的寄存器中。
同时,还要设置中断信息,以免程序在不接收数据时死等。
三、VB环境下串口编程VB环境下串口编程的关键是掌握控件的使用。
实际上,VB环境下的串口编程非常简单,只需要使用微软提供的MSComm控件就可以实现。
通过MSComm控件的事件和方法,可以轻松地实现数据的读取、发送、接收等功能。
需要注意的是,MSComm控件的BaudRate属性需要与单片机编写的程序的波特率一致,不然可能会出现通讯故障。
四、如何实现串口通讯首先需要硬件上建立好通讯接口。
通常情况下,USB串口转换器和单片机板子都会配套出售,只需要把两者插在一起即可。
其次需要编写单片机的串口通讯程序。
单片机数字口与串口的通讯,就是把串口接到单片机的数字口中,通过串口向外发送数据。
因此,编写单片机的串口通讯程序,需要设置停止位、数据位、奇偶校验位、波特率等参数。
基于VB6.0的PC机与单片机串口通讯的实现
基于VB6.0的PC机与单片机串口通讯的实现魏延萍【期刊名称】《信息技术》【年(卷),期】2011(000)007【摘要】RS-232 serial port is used to carry out the communication between PC and singlechip microcomputer. The hardware connection scheme and the associated communication protocols are designed in details. The MSComm component is researched, and the communication program based on VB6.0 is developed, and the detailed programming is presented. An example proved that the design is stable and reliable, and can satisfy the design requirement and function, and the system is provided with a good reference value for developing similar system.%应用RS-232串口实现PC机与单片机之间的通讯,设计了其硬件连接电路及相关通讯协议.研究了MSComm控件,并编写了基于VB6.O的通讯软件程序,给出了详细的程序设计.通过实例,证明该设计运行稳定可靠,能满足设计的需求和功能,对于开发类似的系统具有很好的参考价值.【总页数】3页(P38-40)【作者】魏延萍【作者单位】宝鸡文理学院物理与信息技术系,宝鸡721007【正文语种】中文【中图分类】TP311.1【相关文献】1.基于VC6.0的多台MSP430单片机和PC机串口通讯实现方案 [J], 周辉军;许亮;韩瑞宁2.基于VB6.0的PC机与多单片机串行通信设计与实现 [J], 孔德刚;肖海荣;安国建;刘文江3.利用VB6.0实现PC机与单片机的串口通讯 [J], 付旭;方康玲4.基于VB6.0实现单片机与PC机的串口通信 [J], 陈代胜;张莉君;;;5.基于VB6.0实现PC机与单片机的串行通讯 [J], 杨佩璐因版权原因,仅展示原文概要,查看原文内容请购买。
基于VB的单片机和PC机串口通信设计
总成绩个性化教育系列工程设计报告设计题目基于VB的单片机与PC串口通信设计学院电气信息学院专业班级自动化081班学生姓名陈凯学生学号*********说明1.个性化教育周结束后,每个学生都必须认真撰写《工程设计报告》。
通过撰写工程设计报告,系统地回顾和总结工程设计的全过程,将实践性教学的感性认识升华到一定的理论高度,从而提高个性化教育教学效果。
2.工程设计报告应包括:设计题目、设计说明书及总结、参考文献、附件等几部分。
设计说明书及总结是报告的主体,该部分至少应包括:软、硬件设计;性能指标;调试说明;工程设计的收获与体会等几部分。
3.工程设计报告要求条理清晰,内容详尽,数据准确。
字数不少于5000字。
4.工程设计报告的撰写是工程设计的重要组成部分,它是成绩评定的主要依据之一。
学生在工程设计完成后需按指导教师要求提交合格的工程设计报告。
不交工程设计报告者不得参加成绩评定。
5.工程设计报告至少应分:设计期间的工作表现和工程设计报告质量两部分,指导教师应分别按百分制评定成绩。
各设计平台可根据需要添加其它评价内容。
6.工程设计各环节所占比例由各设计平台指导小组自行确定。
7.学生成绩评定表中的总成绩应为各环节分数与所占比例乘积的算术和。
8.封面成绩为五级分制成绩,量化标准按学校有关文件执行。
9.工程设计报告可打印也可下载格式后手写,工程设计报告完成后应按封面,说明,工程设计报告内容的顺序进行装订成册。
10.个性化教育周完成后将工程设计报告交学院教学办公室保存。
学生成绩评定表基于VB的单片机和PC机串口通信设计一、设计目的:1.熟悉并掌握串口标准及通信原理。
2.掌握51单片机的串口编程。
3.熟悉上位机软件VB6.0的编程环境,能够应用其进行程序的编写和调试,掌握MSCOMM组件的设置方法。
二、设计要求:1.对四路模拟量进行AD采集,并将转换结果送1602液晶进行实时显示。
2.将采集结果通过串口发送给PC机,在上位机软件上进行数据的监控显示。
用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_与单片机通信
关于使用VB 与单片机通信一、电脑和单片机通信(以MCS51 为例),必须进行电平转换,推荐使用单5V 供电的MAX232CPE ,只需简单地外接几个电容就可实现,具体电路可参考《单片机原理及接口技术》(P382 )。
二、使用VB 与单片机通信,可以利用VB 提供的MSCOMM 控件。
1 、如果工具箱中没有MSComm 控件,其外形是一个小电话,则需要添加该控件。
选择“Project ”菜单的Commponent 项,弹出一个对话框,在控件列表中找到Mircosoft Coun confrol 6.0 ,点击左边的方框,确定即可。
2 、MSCOMM 控件的主要属性。
( 1 )CommPort 设置或返回通讯端口号。
格式为:mPort [ =PortNumber] 。
在设计时,PortNumber 可以设置成从1 到16 的任何数(缺省值为1 )。
但是如果用PorOpen 属性打一个并不存在的端口时,就会产生错误。
还需注意的是必须在打一开端口之前设置CommPort 属性。
例如:mPort=2, 即设置当前通信串口为COM2 口。
( 2 )Settings 以字符串形式设置或返回波特率、奇偶校验、数据位和停止位。
格式为:MSComm.Settings[=ParaString] 。
ParaString 是一个包含四部分的字符串。
第一部份为波特率,其可选值为110 ,300 ,600 ,1200 ,2400 ,9600 ,14400 ,19200 ,28800 。
第二部份为奇偶校验,N 表示不校验,E 表示偶校验,O 表示奇校验,S 表示空格检验,M 表示符号校验。
第三部份为数据位位数,其可选值为4 , 5 ,6 ,7 ,8 ,。
第四部份为停止位位数,其可选值1 ,1.5 ,2 。
Settings 属性的缺省值为“9600 ,N ,8 ,1 ”。
(3 )handshaking 设置或返回硬件握手协议,指的是PC 机与Modem 之间为了控制流通而约定的内部协议。
基于VB实现PC机与单片机的串行通讯
基于VB实现PC机与单片机的串行通讯
引言
随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片
机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。
PC
机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC 机的RS-232 串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。
因此如何实现PC 机与单片机之间的通讯具有非常重要的现实
意义。
本文将论述在VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案。
PC 机的通讯程序使用Visual Basic 编写,VB 是Microsoft 公司推出的Windows 应用程序开发工具,因其具有界面友好,编程简便等优点而受到广泛的使用,而且Visual Basic 6.0 版本带有专门实现串行通讯的MSCOMM 控件。
1、硬件原理
目前的PC 机都有至少一个串行通讯端口RS-232,RS-232 端口可用于两台计算机之间进行通讯,RS-232 的逻辑电平用正负电压表示,且信号使用负逻辑,逻辑0 的电压范围是+5V~+15V,而逻辑1 的电压范围是-5V~ -15V,RS-232 端口是计算机与其他设备沟通的最常用的接口,不但实作简单,而且价格便宜。
在8051 单片机的内部有一个全双工的异步串行I/O 口,它的输入和输出使用5V 逻辑而不是RS-232 电压,如何进行两种信号的转换,是连接时需要解决的问题,事实上,解决的方法很简单,只需使用一个诸如MAX232 这样的专用芯片即可。
电路结构见下图。
利用VB6.0实现PIC单片机与PC串行通信
蓑 VB6.0交 握 协议 援定
RA1为 TXD 串行通 信 硬件 连 接 如 图 1所 示 。
一
一 ———————露嚣霭鳕
图中 R=10K Q,C=10 F,Vcc=5V
Buffer字符串变量中。
(5).Output:将 一 个 字符 或字 符 串 写入 传输 缓 冲 区 。
如 :MSComm1.Ou ̄ut= “ABCD 。此 即将 ABCD 5个 字
符通 过 串行 端 El传 送 出去 。 f6、.Invut1_.en .}旨常由由行 口谴 人的主篇由
(3).PortOpen:设定 并返 回通 信 端 口的 状态 。使用
MSComm 控 件 的调 出
串行 端 口之 前 必须 先 打开 该端 口(PortOen=True),而 在
VB 6.0的 MSComm控 件 并 不会 主 动 出现 在 工具 箱 使 用 完毕 后 必须 关 闭该 端 口(PonOpen=False)。
(2).Settings:设 定 通信 端 口初 始化 参 数 。其 格式 为
接 方式 是 相 同的 ,PIC单 片机 的 程序 设 计也 是相 同的 。本 “Baud,P,D,S”,其 中 Baud为波 特率 ,可 设为 1200、2400、
文 以 VB 6.0为例 ,说 明 PIC单 片机 与 PC机 串行通 信 的硬 9600、 14400、 19200 28800等 几种 I P为校 验 位 (E表 示 、
VB 6.0的 版 本 分 为 普 及 版 、专 业 版 及 企 业 版 , 值 为 4、5、6、7、8(默 认 值 );S表 示停 止位 数 ,可选 值
MSComm控 件 包含 在 专业 版 及企 业版 中 ,如 果是 普 及版 , 为 I、 I.5、2。
上位机(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三、单片机代码:。
基于VB6_0实现PC机与单片机的串行通讯
2009.04(上)ChinaCollectiveEconomy集体经济·摘要:文章介绍利用VB6.0的串行通讯控件可实现PC 机与多单片机之间的串行通讯,并结合实例使用RS-232接口进行串行通信的基本程序。
基于高级语言实现的PC 机与单片机的通讯提高了单片机的开发水平,同时也降低了单片机的开发难度,我们以此为开发工具并用于多种医疗器械的中心控制部分,对推动已有医疗器械的更新换代和新型医疗器械的研发都具有重要的实用价值。
同时,也为单片机在其他应用领域的开发展示了更为广阔的前景。
关键词:VB6.0;单片机;串行通讯;MSComm 控件;医疗器械控制一、前言当前,信息技术在医疗行业的应用越来越多。
随着计算机技术特别是单片微型机技术的发展,在各种单片机应用系统的设计中,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。
而串行通信是指按照逐位顺序传递数据的通信方式,在控制领域的现场监测、分布控制等场合有着重要的应用价值。
鉴于PC 机具有强大的监控和管理功能,单片机则具有快速以及容易控制的特点,通过PC 机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。
因此,如何实现PC 机与单片机之间的通讯具有非常重要的现实意义。
在VB 环境下PC 机与单片机之间实现串行通讯的软硬件方案十分关键。
PC 机的通讯程序使用Visual Basic 编写,VB 是Microsoft 公司推出的Win -dows 应用程序开发工具,因其具有面向对象的设计方法,友好的用户界面、编程高效、数据处理及驱动底层硬件功能强等优点而受到广泛的使用,而且VisualBasic 6.0版本带有专门实现串行通讯的MSCOMM 控件,成为许多用户开发PC机与单片机串行通信程序的首选工具。
本文PC 机通讯程序利用VB 提供的MsComm 串行通讯控件来完成,单片机的程序用汇编语言来写。
利用VB6.0实现网络远程PC与单片机通信
在各种单片机应用系统的设计中,常常遇到单片机与PC的通信问题,在速度要求不高、传送距离不远的场合一般采用RS 232标准串行接口实现,在传送距离较远的场合,也有学者研究通过网络实现PC间的通信。
但是,要同时满足高速度和远距离PC与单片机通信这是一个迫切需要解决的问题。
随着信息技术的发展,计算机和网络越来越普及,对单片机的远程控制与测量的要求也越来越多。
本文在结合现有研究的基础上,对相关的设计进行一定的改进和创新,设计一个远程通信系统,他由3部分构成:远端PC、本地端PC和单片机系统。
通过VB 可视化编程,远端PC利用局域网向本地端PC发出命令,本地端PC接到命令后,自动与单片机通过打印机接口以EPP1.9协议进行通信(串行接口作为备用通信口),并将接到的单片机数据实时传送给远端PC,以实现高速远程情况下PC与单片机通信的要求。
1 系统结构与设计系统构成如图1所示,远端PC通过局域网和本地PC通信,在通信中使用Winsock控件和TCP/1P协议;本地端PC通过并行通信接口或串行通信接口与单片机通信,在并口通信中使用WINIO并口通信驱动程序、EPP协议和LPT打印机接口,在串口通信中使用MsComm控件、RS 232C协议和COM口。
在此结构中,本地PC端起到中继的作用,当本地端PC接收到从远端PC传送过来的命令,在选择通信方式后,与单片机通信,使单片机向远端PC传送数据。
2 远端PC与本地端PC通信设计TCP/IP是目前在网络通信中广泛采用的一组完整的网络协议,该协议的核心是TCP,IP和UDP协议。
TCP/IP网络环境下应用程序通过网络系统编程界面套接字(Socket)实现与内核的交互。
利用Socket通信编程接口编写程序,其目的是在TCP/IP所组建网络的不同机器之间利用客户/服务器模式建立通信连接,开发人员只要提供一些基本的连接信息,其余由操作系统内核完成。
WinSock(Windows Socket)是Windows操作系统下的通用的TCP/IP应用程序的网络编程接口,通过调用WinSock的接口函数来调用TCP/IP的各种功能。
用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 6.0实现网络远程PC与单片机通信-精品文档
利用VB6.0实现网络远程PC与单片机通信Realization of Longdistance Network PC′s Communication with Single Chip Computer by VB 6.0 ZHANG Guangnan1,2,MA Shengqian1(1.College of Physics and ElectronicEngineering,Northwest NormalUniversity,Lanzhou,730070,China;2.Arts and Science of BaojiUniversity,Baoji,721007,China):According to the requirements of longdistance network control of single chip microcomputer,fully using the unique features of VB visual programming,the advanced network technology,parallel and serial communication,by integrated with Winsock network controls,WINIO parallel communication drivers and MsComm serial communication controls in the VB 6.0 software environment.This paper designs a system which can implement longdistance network PC′s communication with single chip computer.Keywords:VB 6.0;WinSock;WINIO;MsComm;EPP;single chip microcomputer在各种单片机应用系统的设计中,常常遇到单片机与PC的通信问题,在速度要求不高、传送距离不远的场合一般采用RS 232标准串行接口实现[1],在传送距离较远的场合,也有学者研究通过网络实现PC间的通信[2]。
基于VB6.0的PC机与单片机间的串口通信
基于VB6.0的PC机与单片机间的串口通信摘要:串口通信是一项广泛应用于各领域使用的通信方式,如打印机、逻辑分析仪、磁盘等,都很普遍地采用了串口方式交换数据。
为了可以更方便地控制电脑关机、重新启动、打开我的电脑等功能,系统采用以单片机为核心介绍了基于VB6.0的PC机与单片机间的串口通信,将接收到的红外遥控器所发出的信号通过串口通信技术,然后利用VB开发的虚拟软件在电脑屏幕上显示相应的控制功能。
关键词:串口通信VB6.0 单片机Visual Basic6.0是一种功能强大、可视化的程序设计语言,是Microsoft公司在Quick Basic的基础上为开发Windows应用程序而提供的强有力的开发环境和开发工具,是具有良好的图形用户界面的程序设计语言。
它采用面向对象和事件驱动的编程机制,把过程化和结构化编程思想结合在一起。
Visual Basic即可视Basic 语言,缩写为VB。
它以Basic语言为基础,它的可视化(Visual)特性,还为应用程序的界面设计提供了更迅速便捷的途径。
Visual Basic提供的可视化设计工具,把Windows界面设计的复杂性“封装”起来,不必为界面设计而编写大量的程序代码,只需按设计要求的屏幕布局,在屏幕上画出各种“部件”,即图形对象,并设计这些图形对象的属性,Visual Basic就会自动产生界面设计代码,只需要编写实现程序功能的那部分代码,因此,可以大大提高程序设计的效率。
其中MSComm通信控件提供了一系列标准通信命令的接口,它允许上位机与其他通信设备建立串口连接,还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以利用它创建高效实用的串行通信程序。
MSComm控件封装了串口通信的API函数,适用于Windows的各种操作平台,使串口通信编程变得简单、方便。
该控件不仅可在VB下使用,而且还适用于VC、Delphi等。
基于VB6.0的MSP430单片机与PC机串口通信设计
基于VB6.0的MSP430单片机与PC机串口通信设计
1 引言
随着计算机技术的不断发展,计算机应用在其发展过程中逐步形成两大分支,一是通用计算机,PC机为代表,着眼于高速数值运算和数据处理,但实时测控能力较弱。
二是嵌入式微机,以单片机为代表,着重发展测控技术,但其数值运算和数据处理能力较弱。
目前,在工业控制以及数据采集和数据处理的大型系统中,由于PC 机软件资源丰富,人机交互方便等优点。
以PC 机作为上位机,以单片机组成的控制单元作为下位机,较好地实现测控及显示,又能较快地实现数据采集和处理。
逐渐成为现代工业控制领域的一个优化方案。
故提出了基于VB6.0 的PC 机与MSP430单片机串行通信的实现方法。
以RS485 接口为基础,以PC机为上位机,以MSP430 系列单片机为下位机。
通过VB6.0 实现了对各个下位机控制参数的实时监控和管理,解决了长期以来单片机与PC机互连中编程难度大,运行效率低的瓶颈。
2 MSComm 控件与MSP430 单片机
2.1 MSComm 控件
计算机编程语言中,Visual Basic 6.0是Microsoft 公司推出的面向对象的可视化开发编程工具,具有丰富的数据类型和结构化程序结构,开发效率高,界面制作美观方便等优点,且应用日益广泛,故Visual Basic 6.0 语言做到了真正的面向对象编程。
其中,MSComm 控件全称为Microsoft CommunicationControl, 是微软公司提供的ActiveX 控件,目的是为了简化Windows 下串行通信编程。
通过对此控件的属性和事件进行编程,从而实。
利用VB实现PC机与多单片机通讯
利用VB实现PC机与多单片机通讯利用VB实现PC机与多单片机通讯摘要:在Windows98下利用VB的串行通讯控件可实现PC机与多单片机之间的通讯。
采用定时器控制大大加快了自动化进程,克服了往多“握手”协议造成的通讯速度缓慢的缺点。
本文以PS1016单片机为例,详细介绍了PC机与单片机之间的串行通讯、数据的发送和接收。
关键词:通讯属性事件前言在采用以PC机为控制中心的数据采集自动化控制系统中,通常需要单片机采集数据,然后用异步串行通讯方式传给PC机,PC对单片机进行定时控制,需要多个单片机协同工作。
如果系统不很复杂,可通过定时器控件控制收发过程,在必要的地方自动接收装置,使定时控制和通讯过程完美地结合起来。
这样,可以免去“握手”协议的繁琐过程,简化编程,提高速度。
VB具有面向对象的设计方法,友好的用户界面,简单方便的串行通讯和实用性强等优点,无论借用其他语言就可以开发出优秀的控制系统通讯软件。
本文介绍在Windows 98环境下如何利用VB来实现PC机与多个PS1016单片机之间的串行通讯。
VB环境下通讯程序的设计VB提供了串行端口控制Mscomm来为应用程序提供串行通讯。
该控件屏蔽了通信过程中的底层操作,程序员可以设置、监视Mscomm控件的属性和事件,结合Timer控件即可完成对串行口的初始化和数据的输入输出工作。
Mscomm控件的主要属性如下:(1)Commport 设置并返回通讯端口号。
端口号可以设置为1~16的任何数,如mport=2表示设置当前通讯端口为COM2。
(2)Setting 设置并返回波特率、奇偶校验、数据位、停止位。
格式为Mscomm.Setting=String。
String是一个包含四部分的字符串:第一部分为波特率;第二部分为奇偶校验,N表示不校验,M表示符号校验,E表示偶校验,O表示奇校验,S表示空格校验;第三部分为数据位数,其可选值为4,5,6,7,8;第四部分为停止位位数,其可选值为1,1.5,2。
VB6.0在PC机与单片机串行通信中的应用
VB6.0在PC机与单片机串行通信中的应用[摘要] 在开发微机控制及数据采集系统中,要实现pc机与单片机中的串行通信,经常用到的是rs232接口。
我们普通pc机后面的com端口即rs232接口。
vb6.0提供了mscomm通信控件,只需编写少量的程序代码,即可在windows环境下轻松实现串口的数据交换。
本文以笔者曾研制的压力测定系统为例简单介绍通过vb实现计算机串口通信的方法。
[关键词] 串口通信 rs232 vb6.0随着计算机技术的迅速发展及其在各领域的广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。
微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。
而单片机具有价格低,功能强,抗干扰能力好,以及面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。
一、vb6.0实现串行通信方法vb提供的通信控件mscomm32.ocx,使用前只需从project菜单下的components中选择microsoft comm control 6.0把mscomm32.ocx控件调入工具框中即可使用。
利用该控件可对串行通信的数据发送和接收进行设置,还可对串口状态及串行通信的信息格式和协议进行设置。
在通信过程中可以通过触发oncomm事件来追踪、处理通信和错误事件的发生。
由于每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。
硬件连接:(1)当单片机以rs232接口为端子连接时,单片机与计算机的连接如下图:(2)当仪表以rs485接口(其它接口如422等类同)为端子连接时,单片机与计算机的连接如下图:2.mscomm控件简介为支持串行通信的实现,vb6.0中mscomm控件提供了众多的串行通信属性,但首先必须要熟悉的几个属性主要包括:commport:设置并返回通讯端口号。
用VB 编程语言实现PC机与AVR 单片机的通信
用VB 编程语言实现PC机与AVR 单片机的通信0 引 言在当今,网络技术越来越多地应用在各个领域,微机技术及单片机也不断发展,因此,目前大多数小型计算机监控系统都采用以PC 机和单片机构成的串行通信网络来完成监控任务。
其中,单片机主要进行对数据的实时采集、处理,再通过串口将数据送入PC 机的缓冲区,然后由PC 机对数据进行进一步处理,以便得到所需的图形、图像及实验结果。
采用VB 语言中的通信控件能够很好地完成二者之间的通信功能。
1 系统简介本系统是一个小型的人体心电监测系统,将心电信号采出后经过A/ D 转换,由PC 机绘制出心电图形,进行实时显示,便于医护人员观察和诊断,系统原理如图1 所示。
系统的下位机即单片机系统,将现场采集的信号经A/ D 转换送入系统上位机。
系统上位机由一台PC 机构成,采用Vi2sual Basic 编程,做出友好的界面风格,可实时观察心电信号。
图1 系统原理图2 MSCOMM 控件功能介绍VB 提供了一个基本通信控件MSCOMM32.OCX ,它具备串行通信的能力,可以通过串口接收和传输数据。
CommPort :端口号,用于选择通过哪个端口进行通信。
InBufferCount :返回接收缓冲区中等待的字符数,可以通过置0 来清空缓冲区。
InBufferSize :设置并返回接收缓冲区的字节数。
Settings :设置并返回波特率、奇偶校验、数位、停止位参数。
通常设置为:“9 600 , n ,8 ,1”。
PortOpen :设置并返回通讯端口的状态(开或关) 。
端口打开后,可以直接读写数据流。
Input :返回并删除接收缓冲区中的数据流。
InputLen :设置并返回Input 属性从接收缓冲区读取的字符数。
InputMode :设置或返回Input 属性取回的数据的类型。
Output :往传输缓冲区写数据流。
3 通信协议1) 上位机与下位机通信的数据格式均为起始位,命令码,帧长,信息段,校验和,停止位。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MSComm1.Output = "1"
MSComm1.Output = "2"
MSComm1.Output = "3"
5、运行
6、烧录单片机接收程序
#include<reg51.h>
unsigned char flag;
三、实验内容
本次课程设计就是利用Microsoft Visual Basic 6.0软件制作一个通信界面在界面上添加三个按钮,当按第一个按钮时单片机上的LED灯正转,当按第二个按钮时单片机上的LED灯反转,当按第三个按钮时单片机上的LED灯闪烁。单片机能正确接受并显示。
四、原理
串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据;)
{
P1=0xff;
for(j=0;j<10000;j++);
P1=0x00;
for(j=0;j<10000;j++);
}
}
注:波特率9600,;
使用的I/O口:P1口接LED灯;
7、连接调试
将单片机通过串口线和PC相连,通过调试优化,即可实现。
六、感想
七、参考书目
VB入门中
最简单入门教程
基于VB单片机与PC通信
一、目的和要求
1、掌握利用VB软件制做出通信界面;
2、掌握在VB中添加程序并能够写出发送数据的程序;
3、掌握单片机串行口通信原理;
4、掌握单片机接受串行口通信数据程序;
二、设备
1、Keilc51软件及电脑一台;
2、89C51单片机开发板一块;
3、Microsoft Visual Basic 6.0软件;
unsigned char w,i;
unsigned int j;
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0x50;
PCON=0x00;
EA=1;
ES=1;
while(1);
}
void ser() interrupt 4
{
RI=0;
flag=SBUF;
添加程序
MSComm1.Settings = "9600,n,8,1"
mPort = 4
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
mPort取决你使用的串行口,在设备管理器中查看。
4、添加命令按钮并添加程序
双击左方工具栏commnd button添加三个按钮
if(flag=='1')
{
w=0xfe;
for(i=0;i<8;i++)
{
w=~((~w)<<i);
P1=w;
for(j=0;j<10000;j++);
}
}
else if(flag=='2')
{
w=0x7f;
for(i=0;i<8;i++)
{
w=~((~w)>>i);
P1=w;
for(j=0;j<10000;j++);
09电子科学与技术本一班
吴帆
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
五、步骤
1、在桌面上启动Microsoft Visual Basic 6.0软件
弹出对话框,点击标准EXE确定。
2、添加串口控件
点击工程-部件-Microsoft Comm control 6.0即可
会在左方的工具栏出现该工具,双击此工具会在form1中出现。
3、初始化串口
双击form1中的空白区域