基于Visual Basic的计算机与单片机串口通信研究

合集下载

用VB来实现单片机与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 取决你使用的串行口,在设备管理器中查看。

基于VB6_0的计算机与单片机之间的串行通信

基于VB6_0的计算机与单片机之间的串行通信
关键词: VB6.0 串行通信 MSCOMM 控件 属性
Ser ial Communication between Computer and Single Chip Micr ocomputer Based on VB
SUN Ying, SHEN Jinghu ( The College of Mechanical and Electronic Engineering , Qingdao University, Qingdao 266071) Abstr act: In this paper, some important properties of Microsoft Communication control ( MSComm) of Visual Basic 6.0 are introduced, and designing method of program for applying MSComm to realize serial communication between Microcomputer and Microprocessor is dealt with Windows. A basic communication program is given combining with a concrete example. Key wor ds:Visual Basic 6.0, Serial Communication, Microsoft Communication Control, Properties
图 2 电机驱动监控系统界面
图 3 控制命令流程图
这个例子用 于 解 决 PC 机 同 单 片 机 之 间 的 通 信 问题, 上位机与单片机之间用 RS—232 串行通信标 准, 以事件驱动方式进行通信, 使用通信控件 MSComm 发送、接收数据。设置计算机串口与 DSP 串 口之间的关于此系统的通信协议如下:

基于VB实现PC机与单片机的串行通讯

基于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 这样的专用芯片即可。

电路结构见下图。

Visual_Basic串口通信实验

Visual_Basic串口通信实验

实验一Visual Basic串口通信实验利用Visual Basic开发串口通信程序既可以使用MSComm控件也可以调用Windows API 函数。

不过,只要MSComm可以被选用,它几乎总是我们推荐的选择,因为MSComm的功能和API调用一样好甚至比它还好且使用起来更加简单。

在本章提供的串口通信程序设计中,除了PC机与PC机串口通信外,PC机与单片机、PC机与智能仪表、PC机与PLC、PC机与GSM短信模块等串口通信任务的实现均采用MSComm控件。

1.1 PC机与PC机串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。

本设计通过两台PC机串口三线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。

1.1.1 设计目的1)掌握PC机与PC机串口通信的线路连接方法。

2)利用MSComm控件实现PC机与PC机串口通信的程序设计方法。

1.1.2 设计用软、硬件本设计用到的硬件和软件清单见表6-1。

1.1.3 硬件线路线路说明:在计算机通电前,按图1-1所示将2台PC机通过串口线连接起来:PC机A 串口COM1端口的TXD与PC机B串口COM1端口的RXD相连;PC机A串口COM1端口的RXD与PC机B串口COM1端口的TXD相连;PC机A串口COM1端口的GND与PC机B串口COM1端口的GND相连。

6.1.4 设计任务利用MSComm控件编写程序实现PC机与PC机串口通信。

216图1-1 PC机与PC机串口通信线路任务要求:两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送字符”命令,信息返回到第一组的计算机。

实际上就是编写一个简单的双机聊天程序。

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类型数变量中。

基于PLC和Visual Basic的串行通信技术的实现

基于PLC和Visual Basic的串行通信技术的实现

b a s is
a nd
t h is
it
a c h ie v e
d
的情 况下
3 2 7 6 7
1 2


D 80 99

的 内 部 脉 冲循 环 增 计 数

其值 0

f Pe q t l e n c y
s t ora
t e s t in g
of
g e ne
of
ra t or
a nd
l e
Tle t w o r k
l 语 言 Vi s u a B a s i c 以 其优 越
, ,
f
本 系 统 主 要 由发 电机
分组 成


电 网 频 率 测 试 和 集 水 井 水位控 制 两 部
P L C
可 鳊程控制 器 P L C 和 可 视化程 序设 计

主 要 功 能是 利 用
实 现 对 发 电机 电 网 频率 的 测 量
再 经 电 阻 转换 成 直流 电压 信 号

麟醺 圈麟魏獭 鬻 瓣戮戳壤黼鹂糕瓣城 翘缴 黼 黪麟 缫
e pr o g r c m m a b l
集 水 井 中的 压 力 传 感 器 将 测 量 所 得 的 水位 模 拟 信 号 转 变成 直

l o g ic a l
c o n t r o lle r ; s e r i a
维普资讯
基于 P
吾 买 尔 吐 尔逊

L C
和V is
严继松
u a
l
B
a s
ic

串行 通 信 技 术 的 实 现

Visual Basic串口通信程序设计实例

Visual Basic串口通信程序设计实例

第6章Visual Basic串口通信程序设计典型实例利用Visual Basic开发串口通信程序既可以使用MSComm控件也可以调用Windows API 函数。

不过,只要MSComm可以被选用,它几乎总是我们推荐的选择,因为MSComm的功能和API调用一样好甚至比它还好且使用起来更加简单。

在本章提供的串口通信程序设计中,除了PC机与PC机串口通信外,PC机与单片机、PC机与智能仪表、PC机与PLC、PC机与GSM短信模块等串口通信任务的实现均采用MSComm控件。

6.1 PC机与PC机串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需三根线(发送线、接收线、信号地线)便可实现全双工异步串行通信。

本设计通过两台PC机串口三线连接,介绍了利用API函数和MSComm控件设计串口通信程序的方法,包括字符与文件的发送与接收。

6.1.1 设计目的1)掌握PC机与PC机串口通信的线路连接方法。

2)利用MSComm控件和VB-API函数实现PC机与PC机串口通信的程序设计方法。

6.1.2 设计用软、硬件本设计用到的硬件和软件清单见表6-1。

6.1.3 硬件线路线路说明:在计算机通电前,按图6-1所示将2台PC机通过串口线连接起来:PC机A 串口COM1端口的TXD与PC机B串口COM1端口的RXD相连;PC机A串口COM1端口的RXD与PC机B串口COM1端口的TXD相连;PC机A串口COM1端口的GND与PC机B串口COM1端口的GND相连。

6.1.4 设计任务利用MSComm控件和Visual Basic API函数编写程序实现PC机与PC机串口通信。

图6-1 PC机与PC机串口通信线路任务要求:两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123”,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123”,单击“发送字符”命令,信息返回到第一组的计算机。

Basic实现PC与89C51单片机之间的串行通信

Basic实现PC与89C51单片机之间的串行通信

运用Visual Basic实现PC与89C51单片机之间的串行通信作者:沈飙夏海燕摘要在Visual Basic开发环境下,运用VB提供的通信控件,实现PC机与89C51单片机之间的串行通信。

关键词Visual Basic89C51单片机串行通信A/D D/A转换Serial Communication between PCand 89C51 with Visual BasicAbstract:Serial communication between PC and 89C51 single-chip-computer by MSCOMM control box of Visual Basic is introduced.Key Words:Visual Basic89C51Serial communication A/D D/A1系统简介在中科院等离子体物理研究所受控核聚变物理实验装置控制系统中,我们开发设计了以计算机控制为基础的各种信号予置系统,系统原理如图1所示。

图1系统原理图系统上位机由一台(PC586)微机构成,软件采用Visual Basic编程,作出十分直观的人机界面,并通过串行口将所需的各种予置信号(数字信号)传给单片机系统,再由单片机系统产生实际的模拟信号经线性光电隔离器送到现场。

予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。

同时,现场实测信号经过线性光电隔离器,也可以实时显示在本系统的检测数字表头上和PC机的界面上。

如此设计界面直观,而且利于对现场信号进行实时监测。

因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。

我们将分硬件和软件两方面分别介绍该系统的情况。

2硬件介绍从系统原理图上可见,本系统关键的硬件部分是单片机系统的设计,上位机PC机则直接利用它的RS232串行口即可。

系统硬件原理如图2所示。

图2系统硬件原理图本系统采用CPU为89C51的单片微机,89C51本身带有2K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单、方便等优点,而且完全兼容MCS 51系列单片机的所有功能。

用VisualBasic实现串口通信的三种方法

用VisualBasic实现串口通信的三种方法

2. 利用通信控件的实例
Sub Form1 —load ()
form1. show ′设置 COM1
comm1. commport = 1
comm1. Setting = " 9600 ,o ,8 ,1" ′波特率 : 9600 奇校验 ,8
位数据 ,1 位停止位
comm1. Inputlen = 0
一 、利用通信控件( MSCOMM) 完成串口通信
VB 提供了通信控件 MSCOMM,文件名为 MSCOMM. VBX。 该控件可设置串行通信的数据发送和接收 ,对串口状态及串 行通信的信息格式和协议进行设置 。在通信过程中可以触发 OnComm 事件 ,在该事件过程进行数据检验处理及检错 ,还可 以通过编程访问 CommEvent 属性来了解通信的情况 ,进行收 发数据的处理 。每个通信控件对应一个串口 ,如果要访问多 个通信口 ,则要设计多个通信控件 。
利用 VB 提供的这些功能 ,我们可以有三种方法完成串 口通信 。一种是用 VB 提供的具有强大功能的通信控件 ;另一 种方法是调用 WINDOWS API 函数 ,使用 WINDOWS 提供的 通信函数编写移植性强的应用程序 ;第三是利用文件的输 入/ 输出完成 ,该方法简便易行 ,但有一定的局限性 。
EofChar As String 3 1
·6 ·
参数 As 类型 ]) As 类型 在声明中 :DECLARE 表示声明 DLL 中的函数 ,当声明是
不具有返回值的过程时用 SUB 关键字 ,而如果调用的函数具 有返回值 ,则必须用 FUNCTION 关键字将其声明为函数并在 声明语句的最后用 AS 指明函数返回值的类型 。LIB 关键字表 示当前声明的过程或函数是库名所指定的库中函数而非 VB 本身的函数 。库名 ,就是对应动态链接库的名称 ,其中通信函 数在 USER 库中 。ByVal 关键字将原参数数据类型一一对应到 VB 类型中 。

基于VisualC_6_0的PC机和AT89C51的串行通讯

基于VisualC_6_0的PC机和AT89C51的串行通讯

网络通讯与安全电脑知识与技术电脑知识与技术1引言我们开发的超声—电火花—磨削多功能符合加工机床是利用PC机、PMAC运动控制卡、电火花脉冲电源和超声波发生器组成的多CPU控制系统。

为了实现通过人机交互界面对电火花脉冲电源和超声波发生器进行参数设置,对它们的工作状态进行监视并根据它们的工作状态实现利用PMAC控制卡对运动的控制,使它们之间进行信息的交换。

考虑到串行通讯简单易行和可靠性,我们采用串行通讯进行信息的交换和控制命令的发送。

为了使它们之间的通讯相互协调,我们定义了相互间的通讯协议,包括波特率、数据位数、停止位的个数以及奇偶校验方法和数据格式等。

2相关的API串行通讯的函数和概念2.1打开关闭串口在Windows操作系统中,不允许用户直接对硬件操作,而是把串口和其他通信设备是作为文件进行处理,串口的打开、关闭、读取和写入所用的函数和操作文件的函数完全一致。

2.1.1打开串口CreateFile()函数为读访问或写访问打开串口,打开成功后返回该串口句柄,供读写串口时使用。

HANDLECreateFile(LPCTSTRlpFileName,DWORDdwDe-siredAccess,DWORDfdwShareMode,LPSECURITY_ATTRIBUTESlpSecurityAttributes,DWORDfdwCreation,DWORDfdwAttrsAnd-Flags,HANDLEhTemplateFile);参数lpFileName是要打开文件的逻辑名,串口使用如COM1或COM2;参数dwDesiredAccess指定访问类型,串口通信是双向的,一般设置为:GENERICREAD|GENERICWRITE;参数fdwShare-Mode指定文件共享属性,设为0,不共享;参数lpSecurityAttributes引用安全性属性结构,设为缺省值NULL;参数fdwCreation指定如果CreateFile正被已有的文件调用时应采取的动作,此参数就必须被设置为OPENEXISTING;参数fdwAttrsAndFlags描述了该端口的各种属性,对串口而言设置为FILE_FLAG_OVERLAPPED,该标志表明串口采用异步通信模式,可进行重叠操作,端口I/O可以在后台进行,若值为NULL,则为同步通信方式,在同步方式下,应用程序将始终控制程序流,直到程序结束;参数hTemplateFile是指向模板文件的句柄,当打开串口时,该参数为NULL。

Basic实现PC与89C51单片机之间的串行通信

Basic实现PC与89C51单片机之间的串行通信

运用Visual Basic实现PC与89C51单片机之间的串行通信作者:沈飙夏海燕摘要在Visual Basic开发环境下,运用VB提供的通信控件,实现PC机与89C51单片机之间的串行通信。

关键词Visual Basic89C51单片机串行通信A/D D/A转换Serial Communication between PCand 89C51 with Visual BasicAbstract:Serial communication between PC and 89C51 single-chip-computer by MSCOMM control box of Visual Basic is introduced.Key Words:Visual Basic89C51Serial communication A/D D/A1系统简介在中科院等离子体物理研究所受控核聚变物理实验装置控制系统中,我们开发设计了以计算机控制为基础的各种信号予置系统,系统原理如图1所示。

图1系统原理图系统上位机由一台(PC586)微机构成,软件采用Visual Basic编程,作出十分直观的人机界面,并通过串行口将所需的各种予置信号(数字信号)传给单片机系统,再由单片机系统产生实际的模拟信号经线性光电隔离器送到现场。

予置数值可以分别显示在PC机软件窗口和单片机系统的予置数字表头上。

同时,现场实测信号经过线性光电隔离器,也可以实时显示在本系统的检测数字表头上和PC机的界面上。

如此设计界面直观,而且利于对现场信号进行实时监测。

因此,采用本系统,大大提高了现场信号予置精度,对实验操作人员来说人机界面良好,简单易懂。

我们将分硬件和软件两方面分别介绍该系统的情况。

2硬件介绍从系统原理图上可见,本系统关键的硬件部分是单片机系统的设计,上位机PC机则直接利用它的RS232串行口即可。

系统硬件原理如图2所示。

图2系统硬件原理图本系统采用CPU为89C51的单片微机,89C51本身带有2K的内存储器,可以在编程器上实现闪烁式的电擦写达几万次以上,比以往惯用的8031CPU外加EPROM为核心的单片机系统在硬件上具有更加简单、方便等优点,而且完全兼容MCS 51系列单片机的所有功能。

visualbasic串口通信及编程实例

visualbasic串口通信及编程实例

visualbasic串口通信及编程实例Visual Basic串口通信及编程实例在实际的工业控制、机器人控制、智能家居等领域中,使用串口通信是一种非常广泛的方式。

Visual Basic (VB) 是一种微软公司开发的高级编程语言,它不仅易于学习,而且拥有丰富的图形界面设计和数据处理功能。

在本篇文章中,我们将深入介绍如何使用VB实现串口通信。

1. 建立串口通信首先,我们需要在VB中创建一个新的窗口(Form),然后打开工具箱,从中拖拽出一个SerialPort(串口)控件。

在控件属性中,我们需要为其指定相关的参数,例如串口名称、波特率、数据位、停止位、校验位等。

通常情况下,这些参数需要根据硬件设备的配置来进行调整。

在VB中实现串口通信的核心部分是对于SerialPort控件的事件监控。

具体来讲,当SerialPort收到一个数据包时,它会触发一个DataReceived事件。

对于这个事件,我们可以在程序中编写回调函数进行处理。

例如:Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e AsSystem.IO.Ports.SerialDataReceivedEventArgs) HandlesSerialPort1.DataReceived'在这里实现对于数据包的解析和处理End Sub2. 数据读取和发送在SerialPort控件中,有几种方法可以实现数据的读取和发送。

下面我们将介绍其中两种方法:(1) ReadExisting这个方法可以从串口中读取所有现有的数据,例如:Dim data As String = SerialPort1.ReadExisting()(2) Write这个方法可以向串口发送数据,例如:SerialPort1.Write("Hello World")注意,这个函数只能发送字符串数据。

用VB实现计算机与单片机的串行通信

用VB实现计算机与单片机的串行通信

用VB实现计算机与单片机的串行通信周子琛,申振宁(武警工程学院,陕西西安710086)摘要:给出了使用VB控件,实现PC机与8031单片机之间串行通信的编程方法,并给出了一个用VB实现PC机同8031通信的应用实例。

1 概述在工业应用中,常常需要进行串行通信,特别是在一些工业控制系统中尤其重要。

早期,人们习惯使用汇编语言来编制通信程序,随着WINDOWS和可视化编程开发环境的出现,如微软的VB、VC等等,给传统的程序开发模式带来了深刻的变化。

其中VISUAL BASIC 由于使用方便,一般工程人员容易掌握、设计软件方便、工作量较小,深受工程人员喜爱。

适用于一些对实时性要求不高的情况下使用。

以下就采用RS232串行接口和8031单片机进行通信为例设计一个由8031单片机采集外部数据,然后送入计算机进行数据处理的处理过程来说明VB在开发串行通信时的使用情况。

2 硬件组成该系统中,由于计算机串行通信接口和8031单片机的驱动电平不一致,故应使用一个电平转换装置,而MAXIM3223就可以完成这一功能,最简单系统如图1所示。

在使用VB来完成串行通信时,可以使用两种方法:一种是VB调用Windows的API 函数法,另一种是使用VB自带的通信控件MsComm来完成。

3 MsComm控件MsComm控件并未在常用的工具箱内出现,用户可以单击菜单中的“工程”菜单,并选择“部件”命令,在部件对话框中选择“Micosoft comm. Control”即可加入到工具箱内。

MsComm控件提供了一系列标准通信命令使用的界面,可以建立与串行通信端口的连接,并通过串行通信端口完成对单片机,调制解调器等设备的数据采集和发送,以及监视串行通信线路的变化。

MsComm控件有两种处理方式:(1)事件驱动方式,由MsComm控件中的OnComm事件捕获并处理通信事件及错误;(2)查询方式,检查ConEvent属性来处理通信事件及错误。

基于VB6.0的PC机与单片机间的串口通信

基于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等。

visual basic串口通信及测控应用实例详解光盘内容

visual basic串口通信及测控应用实例详解光盘内容

visual basic串口通信及测控应用实例详解光盘内容Visual Basic串口通信及测控应用实例详解串口通信在测控应用领域中经常使用,可实现设备与计算机之间的数据传输与交互。

Visual Basic是一种常用的编程语言,能够方便地实现串口通信功能。

本文将以"Visual Basic串口通信及测控应用实例"为主题,详细介绍串口通信的基本原理和使用方法,并给出一个具体的实例来演示其在测控应用中的应用。

一、串口通信基础知识1. 串口通信的定义串口通信是指通过计算机上的串口与外部设备进行数据交互的过程。

常见的串口类型有RS232、RS485等。

2. 串口通信的基本原理串口通信使用了一对串行线(数据线和时钟线)来进行数据的传输。

数据通过位的形式逐个传输,根据预设的波特率和数据格式进行解析。

3. 串口通信涉及的参数串口通信涉及的参数包括波特率、数据位、停止位和校验位等。

波特率是指数据传输速率,数据位是指每个数据帧中的位数,停止位是数据帧结束的标志,校验位用来检验数据传输的正确性。

二、Visual Basic中的串口通信1. 创建串口通信对象在Visual Basic中,需要引用System.IO.Ports命名空间,并使用SerialPort类来创建串口通信对象。

例如:Imports System.IO.PortsPrivate port As SerialPort = New SerialPort()2. 设置串口参数在创建完串口通信对象后,需要设置串口的相关参数,包括端口名称、波特率、数据位、停止位和校验位等。

例如:port.PortName = "COM1"port.BaudRate = 9600port.DataBits = 8port.StopBits = StopBits.Oneport.Parity = Parity.None3. 打开和关闭串口设置完串口参数后,可以通过Open方法来打开串口,实现与外部设备的连接。

VISUAL BASIC串口通信程序设计

VISUAL BASIC串口通信程序设计

Visual Basic串口通信程序设计1mscomm.vbx通信控件描述mscomm.vbx通信控件可直接从vb的toolbox中加入窗体form,即可用其进行通信。

若toolbox中无此控件,则用tools的custom controls将mscomm.vbx从windows的system子目录中加入vb的toolbox中。

1.1通信方式mscomm.vbx有2种不同的方式来处理和解决各类通信软件的开发和设计问题1、事件驱动。

它与c/c++写windows软件时的窗口回调函数类似,是1种功能强大的处理问题的方法。

在实际工作中,往往要处理许多通信中的相关事件,例如:当线路数据到达本端或cd线和rts信号线状态发生变化时,要求我们使用相应的事件来跟踪和处理,该控件是使用oncomm事件来实现的,它也包括检测和处理通信错误等方面的问题,commevent值返回最近的通信事件或错误的数字代码。

通信控件详细的错误和事件举例有:mscomm-er-break收到1个break signalmscomm-er-cdto cd信号超时……mscomm-ev-cd cd信号改变……2、查询方式。

由程序设计者负责读取commevent的值并处理所发生的错误或事件。

通常简单的应用程序设计可采用这种办法。

1.2通信控件的属性利用通信控件编制通信程序,关键是准确理解设置通信控件的属性。

mscomm.vbx提供了27个关于通信控件方面的属性,例如:commport:设置或返回通信口编号。

settings:设置或返回以字符串形式出现的数据通信格式:波特率、校验、数据位和停止位。

portopen:设置或返回通信口状态(包括打开和关闭1个通信口)……3、实例本程序应用背景为dcc95型静电除尘器自动监控系统软件,解决1个pc工控机(主站)与32个单片机(子站)之间的通信问题。

主站与子站之间这总线式网络结构,采用rs-485通信标准,以问答方式进行数据通信。

用Visual Basic实现PC机与单片机之间的串行通信

用Visual Basic实现PC机与单片机之间的串行通信

用Visual Basic实现PC机与单片机之间的串行通信
赵建周;韩庆妙
【期刊名称】《安阳工学院学报》
【年(卷),期】2003(000)001
【摘要】本文介绍应用VB提供的通信控件实现PC机与单片机之间的串行通信的方法、注意事项和两个实例.
【总页数】3页(P38-40)
【作者】赵建周;韩庆妙
【作者单位】安阳大学,河南,安阳,455000;安阳大学,河南,安阳,455000
【正文语种】中文
【中图分类】TN919.6
【相关文献】
1.基于Visual Basic的PLC与PC机之间串行通信设计 [J], 官平;谢守勇;祝诗平
2.使用VisualBasic实现PC与89C51单片机之间的串行通信 [J], 张润华
3.运用Visual Basic实现PC与89C51 单片机之间的串行通信 [J], 沈飙;夏海燕
4.用BASIC语言实现PC机与MCS—51单片机的串行通信 [J], 张国富
5.基于Visual Basic
6.0下PC机与MCS-51单片机的串行通信 [J], 袁月峰;张树森;姚继权
因版权原因,仅展示原文概要,查看原文内容请购买。

使用VisualBasic实现PC与89C51单片机之间的串行通信

使用VisualBasic实现PC与89C51单片机之间的串行通信

使用VisualBasic实现PC与89C51单片机之间的串行通信张润华
【期刊名称】《产业与科技论坛》
【年(卷),期】2011(000)007
【摘要】在VisualBasic开发环境下,运用VB提供的通信控件,实现Pc机与89C51单片机之间的串行通信。

从而控制继电器的吸合和断开。

上位机用VB编写,下位机用C语言编写,程序调试环境为keiluvision2。

【总页数】2页(P98-99)
【作者】张润华
【作者单位】天津轻工职业技术学院
【正文语种】中文
【中图分类】TP312
【相关文献】
1.运用Visual Basic实现PC与89C51 单片机之间的串行通信 [J], 沈飙;夏海燕
2.用VS2005实现AT89C51单片机与PC的串行通信 [J], 侯艳
3.windows下实现PC机与单片机AT89C51的串行通信 [J], 董晓丹
4.基于DELPHI的PC机和AT89C51单片机的串行通信实现 [J], 刘荣;田淑娟;燕苗;韩琛晔
5.以VisualC++实现PC与89C51之间的串行通信 [J], 徐柳娟;王文东;陈光亮因版权原因,仅展示原文概要,查看原文内容请购买。

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

摘要:本文研究了计算机与单片机串口通信的实现方法。

详细介绍了在Windows环境下用Visual Basic 6.0中的MSComm通讯控件实现计算机与单片机串行通信的编程方法。

最后,利用MCS-51单片机的数字时钟,通过Visual Basic语言编写上位机程序,在PC机终端上显示当前时间。

关键词: 单片机,串行通信,通信控件,Visual Basic 6.0中图分类号: TP311 文献标识码:AStudy on the Serial Communication of Computer and Single-Chip Microcomputer onVisual BasicCheng Lai Xing, Zhang Ying Bo(Huang Shi Polytechnic School, Hebei Huangshi, 435003)Abstract: The serial communication method of the computer and Single-Chip Microcomputer is researched. The programming method of the serial communication method of the computer and Single-Chip Microcomputer is described in detail by MSComm communication control button of Visual Basic 6.0 in the Windows environment. Finally, by the number of Single-Chip Microcomputer Clock, the current time of the Single-Chip Microcomputer Clock is displayed in the PC terminal using Visual Basic language programming.Key words: Single-Chip Microcomputer; Serial Communication; Communication Control; Visual Basic 6.01 前言随着计算机的迅速普及和计算机控制技术的发展,计算机被广泛应用于自动化控制领域之中。

完成一个控制过程一般都要利用集散式计算机控制系统。

在这种控制系统中,下位机主要完成对现场数据采集和对设备一级的监控,上位机则要完成对整个系统的采集、分析、处理和控制以及数据、图形显示、打印、人机对话等工作。

上位机与下位机大多是通过PC机的RS-232串行接口实现通信。

随着Windows系统的普及,使得数据采集及工业控制软件也上升到了Windows环境下。

这就给程序员提出了如何编写面向Windows的串行通信程序问题。

Visual Basic 6.0(以下简称VB)是一个Windows下简单易学、高效的可视化软件开发平台,VB不但提供了良好的界面设计能力,而且在串口通信方面也有很强的功能。

它提供的Microsoft Communication control(简称MSComm)通信控件,“隐藏”了大部分串口通信的低层运行过程和许多繁琐的过程,它使用户能够方便地访问Windows下串口通信驱动程序的大多数特性。

所以整个串行通信程序的开发过程变得十分简单易行,程序员不需要处理繁琐的细节,利用该通信控件,只需编写少量的代码就可实现主要应用功能和界面的设计,完成软件的开发过程。

2 基于Visual Basic的串口通信实现方法通信就是两个设备之间的数据交换,是通过电信号来实现的。

计算机工具箱和窗体上的MSComm控件是Microsoft公司提供的主要用于串行通信编程的ActiveX控件。

如果通过C、VC++编写串口通信程序,那么就要使用API函数发送和接收数据。

而VB6.0中的MSComm控件实际上是这些Windows API函数的有机集成,它以属性和事件的形式提供了对Windows 通信驱动程序的API接口,封装了API函数的低层操作,为应用程序提供了通过串行接口收发数据的简便方法[1]。

因此,编程人员只需在程序中设置和监视MSComm控件的属性和事件即可完成对串口的编程。

MSComm控件不在最常用的控件工具箱中出现,故编程的第一步应添加到工具栏上以方便编程。

具体的做法如下:单击VB6.0菜单栏中的“工程”菜单,并选择“部件”命令,则弹出如图1所示的对话框。

在部件对话框中选择Microsoft Comm Control 6.0,在所需要控件前面的复选框上单击,使复选框中出现“√”符号,说明已经选中此控件。

单击“确定”,则响应控件就加载进内存,此时工具箱应出现一个电话图表,这就是MSComm图标,如图2所示。

MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。

MSComm控件提供下列两种处理通信的方式:事件查询方式和事件驱动方式。

图1 部件对话框图2 工具栏中的通信控件3 单片机与计算机串口通信的实例研究单片机与计算机串口通信的实例:“MCS-51单片机的数字时钟在计算机上的显示过程”。

借助MSComm控件,利用Visual Basic语言编写出上位机程序在PC机终端上显示单片机数字时钟的当前时间。

在Visual Basic界面窗口上绘制指针表盘,将单片机串口时间在指针表盘上显示出来,实现计算机与单片机之间的串口通信。

3.1 下位机(单片机)数字显示模块的设计初始化串口包括设置串行口的工作方式。

根据通信要求设置串行口工作方式为1,SCON=0x50。

定时器0和1都工作在方式2,TMOD=0x22。

通过定时器1控制串行口中断。

在串行口工作方式1,定时器1工作在方式2,其波特率式子:波特率=(2SMOD/32)*[(fosc/12)/(256-TL1)]写入时间常数TH1=0xf3,TL1=0xf3来设置波特率,定时器0也工作在方式2,设置初值为TH0=0xce,TL0=0xce,因此每100μs产生一次中断,产生10000次中断秒针值加一。

根据中断优先级,定时器中断优先于串行口中断。

图3 单片机数字钟显示程序框图图4 单片机数字钟显示原理图3.2 上位机(PC机)界面设计及编程(1) 创建应用程序界面建造Visual Basic的应用程序的第一步是创建窗体,然后在创建的窗体上绘制构成界面的图像。

窗体对象是VB应用程序的基本构造模块,是运行运用程序时与用户交互操作的实际窗口。

窗体有自己的属性,事件和方法用于控制其外观和行为[2,3]。

①在VisualBasic6.0环境下设置通信窗口显示窗体用鼠标单击桌面任务栏中的“开始”按钮,再单击“程序”,将鼠标移动到“Microsoft Visual Basic6.0中文版”上,会出现一个子菜单,然后单击“Microsoft Visual Basic6.0中文版”,即可启动Visual Basic6.0。

②在“文件”菜单中,单击“新建工程”命令,屏幕上出现一个“新建工程”对话框,如图5所示。

③在该对话框中选择“标准EXE”,然后单击“确定”按钮,这时Visual Basic6.0集成开发环境将创建一个名为“工程1”的工程容器窗口,并在窗体设计器中自动创建一个名为“Form1”的窗体文件,这样就创建了一个标准的32位Visual Basic应用程序,Visual Basic 为新建工程清除版面,并在屏幕中央显示空白窗体用于构造用户界面。

Visual Basic6.0的集成开发环境如图6所示。

图5 新建工程对话框图6 VisualBasic6.0的集成开发环境④单击工具箱中的命令按钮(Command Button),把鼠标指针移动到窗体上,选中命令按钮控件之后,当鼠标指针位于窗体上时,它变为十字形状,十字光标用于绘出命令按钮的矩形外框,当按下鼠标左键并拖拽鼠标时,命令按钮对象就使用矩形框的大小并调整到网格位置。

按照此步骤,取出4个命令按钮,并分别设置好其属性,分别设置Caption属性依次为打开端口、关闭端口、推算日期、结束。

⑤绘制表盘:单击工具箱中的Shape按钮,然后把鼠标指针移动到窗体上,选中命令按钮控件之后,当鼠标指针位于窗体上时,它变为十字形状,十字光标用于绘出矩形外框,当按下鼠标左键并拖拽鼠标时,矩形框的大小可调整到网格位置,并在属性窗口中,将Shape的属性设置为3-Circle,这样在窗口中就出现了圆形框,框的大小可以通过属性栏中的位置属性来确定。

将它作为表盘使用,表盘的外观可以通过属性来设置。

⑥指针的绘制:单击工具箱中的Line按钮,然后把鼠标指针移动到窗体上,选中命令按钮控件之后,当鼠标指针位于窗体上时,它变为十字形状,这时在窗体上的表盘圆点处按下鼠标左键,拖拽鼠标,根据自己的需要确定线的长度,在属性窗口中将线的名称改为LineH,作为时针来使用,也可以根据需要设置线的颜色和线的宽度,同理可以确定分针LineM,秒针LineS,这样我们就绘制好了一个表盘。

⑦在工具栏中添加串口通信控件MSComm,用鼠标左键点击工具栏中串口通信控件MSComm,当鼠标指针位于窗体上时,它变为十字形状,十字光标用于绘出串口通信控件的矩形外框,当按下鼠标左键并拖拽鼠标时,松开左键,窗体中就出现了MSComm的图标,根据通信协议,设置好MSComm的属性。

⑧添加Timer时间控件:按照上述同样方法在窗口中添加好时间控件。

然后将Timer的Enabled的属性设置为True。

在VB界面窗口中设计界面背景,可根据自己的喜好选取图片,将图片复制后,回到VB对象窗口,右键点击窗口Form,点击粘贴即可,我们可以根据自己的需要设计出各种背景。

按照以上步骤设置好的窗口界面如下图7所示。

图7 设置好的窗口界面(2) 编写代码并运行运用程序代码将该应用程序所需要的所有内容都设计完毕,把这些内容连接起来,就形成一个可用的应用程序。

3.3 设计程序该设计中重点是要将下位机指令添加到上位机表盘指针显示模块中,进而通过VB程序调用单片机中的数字钟显示。

指针的指示值对应数字钟的时间,通过下面的方法对VB界面进行完善[5]:(1)首先在程序代码窗口声明各变量类型。

(2)对窗口中各个控件设置程序代码,鼠标左键双击窗体中的“结束”按钮,在程序窗口出现标记程序段的开始与结束语句之间,加入End语句做为过程体。

(3)鼠标左键双击对象窗口中“打开端口”命令按钮,窗口跳转到代码窗口,显示符出现在新的标记程序段的开始与结束语句之间,在该过程体中加入MSComm1.PortOpen =True,在“关闭端口”对应的代码窗口中的过程体之间加入MSComm1.PortOpen =False代码语句。

相关文档
最新文档