摘 要: 在简 要 介绍 图 形 化虚 拟 仪 器平 台 LabVIEW 的 基 础 上, 分 析 AT89S51 单 片 机 与 LabVIEW 之间的串口通信模式,并结合应用实例给出串口通信的软、硬件设计。
关键词: 单片机; LabVIEW; 串口通信
0 引 言
利用 LabVIEW 设计的数据采集系统, 可模拟采集各种实际信号, 并对其进行分析得出有用信息,然后将测量结果和应用程序进行分享。 通 过 开 放 的LabVIEW 环境和与之无缝集成的硬件, 能够方便地将设计从理论阶段带入实现阶段, 完成系统辨识、控制设计、动态系统仿真以及实时系统实现。
1 串口通信模式及硬件设计
1.1 串行接口电路硬件设计
串行接口硬件电路由 RS232 串行接口、MAX232芯片和 AT89S51 单片机三部分构成。 其中,RS232 串行接口用于连接上位 PC 的 RS232 串 行 接 口 ,MAX232 芯片用于衔接 RS232 串行接口与 AT89S51单片机,实现AT89S51 单片机输入输出的串口信息到上位PC的RS232 串行接口信息的转换 , 即AT89S51 单片机信号的 TTL 电平到 RS232 电平的转换,从而实现二者之间电气特性上的兼容。 具体串行接口硬件电路如图 1 所示。
1.2 单片机接口程序设计
单片机接口程序采用 C51 语言编写,这是专门为
51 系 列单片机设计 的 高 效 率 C 语 言 编 译 器, 符 合
ANSI 标准,生成的程序代码运行速度极高,所需要的
存储器空间极小,汇编语言更简单易用。 接口程序编
写时,首先进行串口的初始化,即在 SCON 寄存器中
赋值 #050H,将波特率设置为 9600,用定时器 1 产生
波特率,串口工作在方式 1,无奇偶校验。 下面给出串
口信息收发控制程序段。

图 1 串行接口硬件电路

2 LabVIEW串口设置及 HMI 设计
2.1 VISA 简介
虚拟仪器软件体系结构(VISA,Virtual InstrumentSoftware Architecture),采用通用 I / O 标准,具 有 与 仪器硬件接口和具体计算机无关的特性,即 VISA 是面向器件功能, 而不是面向接口总线的, 在控制 VXI,GPIB,RS 232 等 仪 器 时, 不必考虑接口总线类型。
2.2 串口通讯函数
本文用到的主要串口通讯调用函数为:FunctionsInstrument I/O VISA Advanced Interface Specific Serial,如图 2 所示。

图2 串口通讯函数
该函数主要用于串口的初始化,其主要参数意义如下:
VISA resource name:VISA 资源名称,本文指串口号;
baud rate:波特率,默认为 9600;
data bits:一帧信息中的位数,LabVIEW 中允许5~8 位数据,默认值为 8 位;
stop bits:一帧信息中的停止位的位数,可为 1位、1 位半或 2 位;
Parity:奇偶校验设置。 可为无校验、奇校验或偶校验;
flow control:该参数数据类型为簇,用于串行通讯中的握手方式。
VISA Write 模块把 Write buffer 中的字符串写入指定的设备,返回实际传送的字节数。 VISA Read 根据指定读取的字节数读入设备中的数据,返回实际传送的字节数。 VISA Close 关闭与指定设备的通讯过程,释放系统资源。
本文在实现 LabVIEW 与 AT89S51 单片机串口通信的串口通讯设置上,采用波特率为 9600,无奇偶校验,8 位数据位,1 位停止位,禁止软、硬件握手。
2.3 HMI 设计
LabVIEW 中的前面板就是图形化用户界面,用于设置数值输入和输出量观察。 以 AT89S51 单片机实 现 超 声 测 距 为 例, 设 计 了 LabVIEW 串 口 设 置 及HMI 界面,如图 3 所示。 通过设置与 AT89S51 单片机串口通信匹配的波特率、串口号、数据位和停止位,实现 LabVIEW 与 AT89S51 单片机串口通信, 并用数值显示控件和波形输出空间控件显示测量的时间、距离、环境温度以及超声波的回波波形。

图 3 LabVIEW 串口设置及 HMI
3 结 语
通 过LabVIEW 实现单片机与上位机的信息交互,利用虚拟仪器软件绘制图形面板,在上位机上模拟出与之功能相对应的控制面板, 实现对仪器的控制、数据的分析处理等功能,完成系统辨识、控制设计、动态系统仿真以及实时系统实现,具有一定的实际应用值。