微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > 基于VB6.0 的MSP430 单片机与PC 机串口通信设计

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

时间:10-04 来源:互联网 点击:

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 表示在数据流中嵌入控制符来进行

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top