VB实现PC与单片机串口通信

发布者:变形金刚最新更新时间:2016-10-23 来源: eefocus关键字:PC  单片机  串口通信 手机看文章 扫描二维码
随时随地手机看文章

VB进行串口的关键在于MScomm控件,下面小厮先就MScomm控件进行介绍。

每个MSComm控件对应于一个串行端口。使用多个串行口时,要使用多个MSComm控件。MSComm控件的主要属性及说明如下。

属性 说明
CommPort 设置并返回通信端口号
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位
PortOpen 设置并返回通信端口的状态。也可以打开和关闭端口
Input 从接收缓冲区返回字符
Output 向传输缓冲区写一个字符

 

 

“工程”——“部件”,选中Microsoft Comm control 6.0,“确定”,完成MSComm控件的添加。

有两种处理通信的方式:

  (1)事件驱动。利用OnComm事件捕获并处理通信事件,所有的通信事件和通信错误列表都包含在控件的CommEvent属性中。

  (2)查询方式。在程序关键功能之后,通过检查CommEvent的值来查询事件和错误。

  下面小厮就自己编写的一简单程序展开讲解。

1.添加MScomm控件,并在窗体装入时进行初始化

Private Sub Form_Load()

Timer1.Enabled = False

MSComm1.InBufferSize = 40 '初始化串口

MSComm1.InBufferCount = 0

MSComm1.InputMode = comInputModeBinary '二进制方式

MSComm1.CommPort = 1

MSComm1.Settings = "9600,N,8,1"

MSComm1.RThreshold = 1

MSComm1.InputLen =                                 '每次读入缓冲区所有字符

If MSComm1.PortOpen = False Then

MSComm1.PortOpen = True                          '打开串口

End If

End Sub

2.添加8个Check并分别命名为LED1——LED8 ,用于控制单片机的8个灯的状态

  添加一个命令按钮Command“应用”用于确认信息无误后发送。

Private Sub Command1_Click()

Dim A,B

A =Check1(0).Value + Check1(1).Value * 2 + Check1(2).Value * 4 + Check1(3).Value * 8

B = Check1(4).Value + Check1(5).Value * 2 + Check1(6).Value * 4 + Check1(7).Value * 8

If MSComm1.PortOpen = False Then

MSComm1.PortOpen = True          '打开串口

End If

MSComm1.OutBufferCount = 0

MSComm1.Output = Chr(CInt(B))              '向单片机发送数据

MSComm1.OutBufferCount = 0

MSComm1.Output = Chr(CInt(A))

End Sub

本程序用了二进制方式传送数据,但传送的数据不能大于128,否则就会出错,所以小厮通过两次发送数据来实现(先发高四位,后发低四位),单片机接收到数字之后再进行相应的处理,转化为8位码控制灯的状态。

3.添加Text,用于显示单片机返回的数据(在此只是为了演示接收)

Private Sub MSComm1_OnComm()

If MSComm1.CommEvent = comEvReceive Then

Text1.Text = AscB(MSComm1.Input)

             End If

MSComm1.InBufferCount = 0

End Sub

写好单片机程序后,连接串口,运行即可。


关键字:PC  单片机  串口通信 引用地址:VB实现PC与单片机串口通信

上一篇:51单片机控制液晶12864源代码
下一篇:51单片机的边沿触发及电平触发的区别

推荐阅读最新更新时间:2024-03-16 15:16

基于C8051F120单片机实现虚拟仪器测试系统的设计
1、 引言 虚拟仪器是基于计算机的仪器。计算机和仪器密切结合,构建虚拟仪器代替复杂笨重的模拟仪器是目前仪器发展的趋势。与传统仪器相比,虚拟仪器在智能化、处理能力、性价比、可操作性等方面都具有明显优势,能将分散的仪器设备集中管理,实现生产流程的自动化管理,提高生产效率,降低成本。 2、 系统组成 本系统设计是一种新型的虚拟仪器测试系统,它是由数据采集系统和数据通讯子系统组成,其结构框图如图1所示。数据采集系统是以C8051F120单片机为核心,C8051F120单片机功能强大,可实现对目标信号精确采集、数字滤波和通过串口RS-232高速向上位机传输采集的数据通讯,上位机用LabVIEW完成数据的转换处理、分析、显示。数据采集系统
[测试测量]
基于C8051F120<font color='red'>单片机</font>实现虚拟仪器测试系统的设计
51单片机 LED流水灯
使用位定义实现LED流水灯 #include reg52.h #define time 20000 sbit LED1=P2^0; sbit LED2=P2^1; sbit LED3=P2^2; sbit LED4=P2^3; sbit LED5=P2^4; sbit LED6=P2^5; sbit LED7=P2^6; sbit LED8=P2^7; void delay(unsigned int i) { while(i--); } void main() { while(1) { LED8=1; LED1=0; delay(time); LED1=1;
[单片机]
单片机C语言程序设计:10s 的秒表
/* 名称:10s 的秒表 说明:首次按键计时开始,再次按键暂停,第三次按键清零。 */ #include reg51.h #define uchar unsigned char #define uint unsigned int sbit K1=P3^7; uchar i,Second_Counts,Key_Flag_Idx; bit Key_State; uchar DSY_CODE ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //延时 void DelayMS(uint ms) { uchar t; while(m
[单片机]
<font color='red'>单片机</font>C语言程序设计:10s 的秒表
单片机晶振电路原理作用
每个单片机系统里都有晶振,全程是叫晶体震荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。 晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。高级的精度更高。有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。 晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。 晶振通常与
[单片机]
AVR单片机的SD卡接口程序设计
/*SDCodeforM32L*/ /*Bypasyong*/ /*BaseICC6.31A*/ /************************************************************/ #include #include #include“1011.h” #defineucharunsignedchar #defineuintunsignedint #defineMMC_CS_PINBIT(4)//PORTB.4 #defineMMC_PORTPORTB ucharreading=0,a=0,pointer=0; voidsd_port_init() { MMC_PORT|=MMC_CS_
[单片机]
AVR<font color='red'>单片机</font>的SD卡接口程序设计
AVR复习笔记--AVR单片机SPI多机通讯
最近决定复习下AVR单片机,其实也是为了借此复习下几种简单的通信协议,包括串口,SPI,I2 C等。 本来以为一两个晚上就能搞定的事儿,没想到竟耗费了一周晚上空余的时间。 当然主要是这次的要求要提高点,实现SPI的多机通信, 不但要发数据还要回传数据。 实际中还是遇到了比我想象中要大的多的困难。 即使是现在的实现方式也不是很理想。 下面是spi部分的代码,由于spi接收发送用的同一终端,感觉使用起来形式不怎么样,还是采用了轮询标志位的方式 Code #include spi.h static char mode=1; void spi_init(char flag) { char tmp=0;
[单片机]
AVR复习笔记--AVR<font color='red'>单片机</font>SPI多机通讯
基于MCS-51单片机的三个存储空间及划分解析
1.前言 MCS-51的存储器有片内RAM、片外RAM 和 ROM 三个空间。 MCS-51单片机在物理结构上有四个存储空间 1、片内程序存储器(片内ROM) 2、片外程序存储器(片外ROM) 3、片内数据存储器(片内RAM) 4、片外数据存储器(片外RAM) 在逻辑上(即从用户的角度上)MCS-51单片机有三个存储空间 1、片内外统一编址的64K的程序存储器(ROM)地址空间(MOVC) 2、256B的片内数据存储器(片内RAM)的地址空间(MOV) 3、以及64K片外数据存储器(片外RAM)的地址空间(MOVX) 注:在访问三个不同的逻辑空间时,应采用不同形式的指令以产生不同的存储器空间的选通信号。 2.存储空间划分
[单片机]
车载MCU,又要变天了
要说MCU未来两年还能怎么变?除了加入AI加速器,或者从Cortex-M核心切换到RISC-V核心,就是集成新型存储器。 2月28日,英飞凌宣布新一代MCU AURIX TC4x 即将量产,与传统MCU不同,本代产品引入 RRAM 非易失存储介质(NVM)。无独有偶,ISSCC 2024上,瑞萨宣布已开发出用于嵌入式(包括MCU)的STT-MRAM电路技术的测试芯片。而早在2022年,意法半导体就发布Stellar P6车规MCU,彼时产品中就采用了PCM。 这预示着新型存储的MCU终于要正式和我们见面,这意味着,MCU制程技术要全面朝28nm以下进发,而第一个将要改变的市场,就是车载MCU市场。 车载MCU升级的另
[汽车电子]
车载<font color='red'>MCU</font>,又要变天了
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved