基于VB6.0 的MSP430 单片机与PC 机串口通信设计

发布者:caoda143最新更新时间:2013-08-06 来源: dzsc关键字:VB6.0  MSP430  单片机  串口通信 手机看文章 扫描二维码
随时随地手机看文章

  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 下串行通信编程。通过对此控件的属性和事件进行编程, 从而实现数据的发送和接收。

  MSComm 控件通过串行端口传输和接收数据, 为应用程序提供串行通信功能。MSComm 控件提供下列两种处理通信的方式: 事件驱动方式和查询方式。

  (1) 事件驱动方式

  事件驱动通信是处理串行端口交互作用的一种非常有效的方法。在许多情况下, 在事件发生时需要得到通知, 例如, 在串口接收缓冲区中有字符, Carrier Detect 或Request To Send 线上的一个字符到达或一个变化发生时。在这种情况下可以利用MSComm 控件的OnComm 事件捕获并处理这些通信事件。

  OnComm 事件还可以检查和处理通信错误, 以及所有通信事件和通信错误的列表。

  (2) 查询方式

  查询方式实质上还是事件驱动, 但在有些情况下, 这种方式显得更为便捷。在程序的每个关键功能之后, 可以通过检查CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的, 这种方法可能是更可取的。通过比较故采用的是事件驱动方式。

  2.2 MSComm 控件属性

  CommPort 属性:用于设置或返回串口号连接的串行端口号,Windows 将会利用该串口和外界通信。默认值为1,即对COM1 进行操作,最大值为16.

  Settings 属性:以字符串的形式设置或返回串口通信参数。包括串口通信的比特率,奇偶校验,数据位长度、停止位等。其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8 位数据位,1 个停止位。

  PortOpen 属性:设置或返回串口状态。值为True 时打开串口,值为False 时关闭串口。

  InPut 属性:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。寄存器的特性是先进先出。

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

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

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

  Input Mode 属性:设置或返回接收数据的类型。若值为0时则表示以文本形式读取;若值为1 时则表示以二进制形式读取。通常PLC 和PC 构成的通信系统都采用二进制接收方式。

  InBuffer Count 属性:设置或返回接收缓冲区中等待计算机接收的字符数。当将其值设为0 时,则输入寄存器将被清空。

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

  OutBufferCount 属性:设置或返回发送缓冲区中等待计算机发送的字符数。当将其值设为0 时,则输出寄存器将被清空。

  Rthreshold 属性:该属性为一阀值。当接收缓冲区中字符数达到该值时, MSComm 控件设置Commevent 属性为ComEvReceive,并产生OnComm 事件。用户可在OnComm 事件处理程序中进行相应处理。若Rthreshold 属性设置为0,则不产生OnComm 事件。

  SThreshold 属性:在发生OnComm 事件之前传输缓冲区中的最小字符数。MSComm1.SThreshold = 0 数据传输事件不产生OnComm 事件;若设MSComm1.RThreshold = 1 则表示传输\\ 缓冲区全空时, MSComm 控件产生OnComm 事件。

  Handshaking 属性:设置或返回硬件握手协议, 0 表示没有握手协议, 不考虑流量控制;1 表示在数据流中嵌入控制符来进行流量控制; 2 表示由信号线RTS 自动进行流量控制; 3 表示1、2 两者皆可。

  通信初始化程序如下:

  If MSComm1.PortOpen <> True Then

  MSComm1.PortOpen=True

  End If

  MSComm1.CommPort = 1

  MSComm1.Settings=“ 9600,N,8,1”

  MSComm1.InputLen=0

  MSComm1.InBufferCount=0

  MSComm1.InputMode=comInputMode Binary

  MSComm1. RThreshold =1

  MSComm1.Handshaking=comNone[page]

    2.3 MSP430 单片机

  就目前来看,高性能16 位单片机主要有凌阳系列、飞思卡尔系列、美国德州仪器(TI) 公司的MSP430 系列等类型的单片机。本文推荐选用美国德州仪器(TI) 公司的MSP430 系列单片机,MSP430 系列单片机是美国德州仪器(TI) 1966 年开始推向市场的一种16 位超低功耗的混合信号处理器(Mixed signal Processor) 称之为混合信号处理器,主要是由于其针对实际应用需求,把许多模拟电路、数字电路和微处理器集成在一个芯片上,以提供“单片”解决方案。随着Flash技术的迅速发展,在2001 年7 月到2002 年又推出了带LCD控制器的Flash 单片机F41X、F43X、F44X 系列。本系统所选的MSP43OF449 是一个16 位的、具有精简指令集的、超低功耗的混合型单片机,自问世以来,由于它具有极低的功耗,丰富的片内外设和方便灵活的开发手段,得到广泛的应用。

  (1) 低电压超低功耗工作电压为1.8~3.6V,1MHz 的时钟条件下运行,耗电电流因不同的工作模式而不同。活动模式为280uA,待机模式为1.1uA,掉电模式为0.1uA.具有16 个中断源,并且可以任意嵌套,使用灵活方便。用中断请求将CPU 唤醒只要6us,可编制出实时性特别高的源代码;5 种节电模式;可将CPU 置于省电模式,用中断模式唤醒程序。

  (2) 强大的处理能力16 位精简指令结构,15Ons 指令周期,具有丰富的寻址方式,简洁的27 条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可参加多种运算;还有高效的查表处理方法。

  (3) 丰富的片内外设将大量的外围模块集成到片内,称之为片内外设。不同型号器件的片内外设不同,但其相同模块的工作原理基本相同,主要的片内外设有:时钟模块、I/O 端口、定时器、通信模块、液晶驱动模块、模数转换器、硬件乘法器、模拟比较器和Flash 存储器等。MSP430 单片机的时钟由高速晶体、低速晶体、数字控制振荡器DCO、锁频环FLL 以及锁频环增强版本FLL+等构成。

  2.4 串口通信模块

  通用串行同步异步通信接口USART (Unversal SynchronousAsynchronous Receive/Transmit ) 是一个串行通道,它允许7或8 位串行位流经预先编程的速率或外部时钟确定的速率移入、移出MSP430.

  USART 可进行配置,以便同时支持同步( SPI) 与异步(UART) 操作,并且可从几个内部及外部时钟源(与CPU 时钟无关) 中进行选择,所用的是异步(UART) 操作。在UART 模式下,速率也可达到2Mbps.在UART 模式下,实现可靠通信至少要求每位3 或4 个时钟。例如, 8MHz 时钟除以4 可以支持高达2Mbps 的速率。波特率发生器是用波特率选择寄存器和调整控制寄存器来产生串行数据位定时。

  波特率的计算:波特率=BRCLK/(UBR+ ( M7+M6+M5+M4+M3+M2+M1+M0)) ;其中BRCLK 为晶振频率,UBR 为分频因子的整数,即晶振频率除以波特率的整数部分,而M7,M6,M5,M4,M3,M2,M1,M0 分别为调整位,是分别写在UMCTL 中的,如果置位,则对应的时序时间只能波特率分频器的输入时钟扩展一个时钟周期,每接受或发送一位,在调整控制寄存器的下一位被用来决定当前位的定时时间。

  3 MSP430 单片机与PC 机串口通信

  设计MSP430 系列单片机的通信软件,实际上是对MSP430 系列单片机的串行口的设计,这里采用Visual Basic 6.0 语言来设计,在PC 机上运行的界面如图1 所示。

在PC 机上运行的界面

  在发送数据文本框中输入一个“0~255”之间的整数,并单击发送数据按钮,单片机将接收到该数据并显示这个数据, 然后作除4 处理,结果再经串口返回到PC 机端。例如当发送数据160 时,单片机电路中数码管上显示160,同时单片机对160 作除4 处理,得到40 返送回PC 机上显示。

  由于PC 机端的RS232 电平与MSP430 单片机端的TTL 电平不匹配, 故必须进行电平转换,这里采用美信MAX232 芯片完成。电路其他部分为单片机常规电路。以下是MSP430 单片机与PC 机串口通信VB6.0 程序代码如下:

  (1) PC 机端VB 程序代码初始化部分代码:

  发送功能代码:

  Private Sub Form_load ()

  MSComm1.CommPort = 1 \' 设置1 号串口

  MSComm1.Settings =“9600,N,8,1”‘ 设置参数

  MSComm1.PortOpen = True \' 打开串口

  End Sub

  发送功能代码:

  Private Sub Command1_Click ()

  Dim Number As Integer \' 发送的数据变量

  Dim OutByte (0) As Byte \' 发送字节数组

  Number = Val (Text1.text) \' 类型转换

  OutByte (0) =CByte (Number) \' 转换为二进制

  MSComm1.OutBufferCount=0\' 清空发送缓冲

  MSComm1.Output = OutByte \' 发送数据

  End Sub

[page]

    接收功能代码:

  Private Sub MSComm1_OnComm ()

  Dim InData As Variant \' 变体变量

  Dim Arr (0) As Byte \' 接收字节数组

  Select Case MSComm1.CommEvent

  Case comEvReceive \' 触发接收事件

  InData = MSComm1.Input \' 接收数据

  Arr (0) = AscB (InData) \' 类型转换

  Text2.text = Arr (0) \' 显示数据

  MSComm1.InBufferCount = 0 \' 清空接收缓

  End Select

  End Sub

  (2) MSP430 单片机的部分程序

  单片机的编程包括: 设置串行口的工作方式; 波特率的设置; 发送数据并接收数据。以下为串行口的初始化程序:

  CKCSH MOV1B # SWRST, & U 1CT L; 先在SWRST= 1 时,

  设置串口

  BIS. B # CHAR, &U 1CTL

  MOV. B # SSEL1+ SSEL0, & U 1TCTL;

  MOV. B # 045H, & U1BR0; 波特率为9600

  MOV. B # 00H, & U1BR1;

  MOV. B # 055H, & U1MCT L;

  BIS. B # U TXE1+ U RXE1, & ME2;

  BIC. B # SWRST, & U1CTL;

  4 结语

  串口通信是一项广泛应用到各个领域的通信技术, 尤其是单片机与PC 机间的通信。在实践中VB6.0 以其好学易用性得到广泛的应用,MSP430 系列单片机以低功耗等特点被应用在测控系统中,两者结合能够快速构筑以单片机采集数据和计算机快速处理的系统

关键字:VB6.0  MSP430  单片机  串口通信 引用地址:基于VB6.0 的MSP430 单片机与PC 机串口通信设计

上一篇:流量检测中MSP430单片机的应用分析
下一篇:单片机外部接口分析与存储器扩展

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

51单片机学习笔记7 -- 超声波测距
1.超声波 蝙蝠和某些海洋动物都能够利用高频率的声音进行回声定位或信息交流。它们能通过口腔或鼻腔把从喉部产生的超声波发射出去,利用折回的声波来定向,并判定附近物体的位置、大小以及是否在移动。超声波是一种频率高于20000赫兹的声波,它的方向性好,穿透能力强,易于获得较集中的声能,在水中传播距离远,可用于测距、测速、清洗、焊接、碎石、杀菌消毒等。在医学、军事、工业、农业上有很多的应用。超声波因其频率下限大于人的听觉上限而得名。科学家们将每秒钟振动的次数称为声音的频率,它的单位是赫兹(Hz)。我们人类耳朵能听到的声波频率为20Hz-20000Hz。因此,我们把频率高于20000赫兹的声波称为“超声波”。通常用于医学诊断的超声波频率为1
[单片机]
51<font color='red'>单片机</font>学习笔记7 -- 超声波测距
单片机在应力磁测装置中的应用
目前,在国民经济许多领域中,各类钢结构材料的应用十分广泛,如钢板压力容器、金属框架及网架建筑物等。在这些钢材结构的构件应用中,有时需要了解结构内部的应力状态及分布情况,或者需要了解现场构件的残余应力的大小。目前,对于铁磁性材料应力的测定方法有许多种,磁测方法是一种较为简便而准确度较高的一种方法。它的测量基理是当铁磁性材料所受的应力发生变化时,铁磁性材料内部的磁畴结构及导磁率也要发生变化。这种方法还有一个显著的优点是它的无损性测量,这在工程实际应用中具有很高的实用价值。 1 测量系统的组成 1.1 系统框图 测量系统的框图如图1所示,其各部分说明如下:为了能够测量铁磁材料构件的应力沿层深的分布状况,电涡流传感器的激励信号由80~
[单片机]
<font color='red'>单片机</font>在应力磁测装置中的应用
51单片机中的定时计数器的主体结构及功能解析
1、 主体结构 1)16位加法计数器,由高8位(THi)和低8位(TLi)SFR组成。 2)在用作计数器时,引脚P3。4(T0)和P3。5(T1)分别是两个计数器的外部脉冲输入端。 3)引脚P3。2(/INT0)和P3。3(/INT1)在位GATE=1时可用作T0、T1的门控信号。 4)SFR-TCON和TMOD控制T0和T1的运行状态和工作方式。 2、 控制寄存器TCON(地址88H) D7~D0:TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 高4位与定时/计数器有关,低4位用于控制外部中断。 TFi-定时/计数器溢出标志位;计数溢出时,硬件自动置1,在中断允许条件下,是向CPU请求中断的信号。中断被响
[单片机]
51<font color='red'>单片机</font>中的定时计数器的主体结构及功能解析
MSP430AD转换
对AD转换的理解 对SHI加一个上升沿的信号则初始化AD转换, An analog-to-digital conversion is initiated with a rising edge of the sample input signal SHI. The source for SHI is selected with the SHSx bits and includes the following: The ADC12SC bit The Timer_A Output Unit 1 The Timer_B Output Unit 0 The Timer_B Output Unit 1 The polarity of
[单片机]
51单片机驱动ads774汇编程序
51单片机驱动模数转换器ads774数据采集汇编程序,脉冲6061五个,BCD码78~7B,段码70~73,TIM0用7FH,看门狗P3.3 。 ORG 0 LJMP MAIN ORG 000BH TM1:LJMP TIM0 ORG 0100H MAIN:MOV SP,#30H MOV R0,#20H;20--7F=0 CLR A MOV R7,#60H INB1:MOV @R0,A INC R0 DJNZ R7,INB1 MOV IP,#02H MOV 7FH,#7 MOV TMOD,#11H MOV TL0,#0AEH MOV TH0,#74H SETB TR0 SETB ET0 CLR P3.3 ;WATCH DO
[单片机]
单片机的内外部结构分析(二)
一、 程序的完善   上一次我们的程序实在是没什么用,要灯亮还要重写一下片子,下面我们要让灯不断地闪烁,这就有一定的实用价值了,比如可以把它当成汽车上的一个信号灯用了。怎样才能让灯不断地闪烁呢?实际上就是要灯亮一段时间,再灭一段时间,也就是说要P10不断地输出高和低电平。怎样实现这个要求呢?请考虑用下面的指令是否可行: SETB P10 CLR P10 这是不行的,有两个问题,第一,计算机执行指令的时间很快,执行完SETB P10后,灯是灭了,但在极短时间(微秒级)后,计算机又执行了CLR P10指令,灯又亮了,所以根本分辨不出灯曾灭过。第二,在执行完CLR P10后,不会再去执行SETB P10指令,所以以后再也没
[单片机]
单片机I/O口的状态
单片机有很多引脚,这些引脚负责控制外面的设备。图2-47所示的是用Vcc驱动LED小灯,这个LED小灯可以用发光二极管或者是数码管。 图 2-47 点亮一个发光二极管的电路图 现在当我们把GND去掉,换成I/O口,把VCC去掉,换成I/O口。当I/O口输出大电流时,它是有一定的要求的,把单片机的这个I/O画出来了,如图2-48所示。 图 2-48 单片机引脚内部原理图 这个是单片机的一个I/O口,方框里是单片机的内部,方框外是单片机引脚外部,内部和三极管的原理是一样的,所以我们用三极管来说明,当单片机输出一个高电平时,三极管不会导通,外部也输出一个高电平;当单片机输出一个低电平时,三极管导通,外部I
[单片机]
<font color='red'>单片机</font>I/O口的状态
基于8051单片机和SJAl000芯片实现智能传感器网络的设计
前 言 随着自动化程度的提高和信息的网络化进程, 所需要的测控点和测控参量越来越多, 使得一个自动控制系统日益庞大而复杂。对于一个系统来说, 需要的传感器数目成倍增加。为了使各智能仪表与上位机能实时、高速、准确地通信, 选择较理想的现场总线则是很关键的。现场总线是开放型控制系统, 是用于现场总线仪表与控制室之间的一种全数字化、串行、双向、多站的通讯网络 。CAN 是其中很有发展前景的一种现场总线。在网络化的系统中, 每只传感器作为一个智能节点挂接在CAN 总线上, 整个系统如图1所示。 1、 CAN 总线的技术特点 a) CAN 通信速率为(5kB/s)/10km、(1MB/s)/40m ,其节点数可达110 个, 传输介质采
[单片机]
基于8051<font color='red'>单片机</font>和SJAl000芯片实现智能传感器网络的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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