LabVIEW与STC89C54单片机串口通信实现
扫描二维码
随时随地手机看文章
1.概述
在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式。下位机主要是用来采集数据,可以通过嵌入式控制器、单片机控制器、PLC等来实现。上位机主要是图形界面,用来实时显示采集数据,并进行数据分析及处理,同时可以控制下位机。上位机的实现可以通过各种高级语言,比如VB、Delphi等以及NI公司的图形化虚拟仪器软件开发环境LabVIEW.由于LabVIEW采用的是图形化的编程方法,所以无论你是否有过编程经验,都可以快速、高效地设计用户界面,实现与控制硬件的通信,并进行数据分析和处理。如今LabVIEW已经渗透到工业测量的各个领域,与此同时在嵌入式、FPGA、DSP、实时控制等领域也发挥着巨大的作用。
2.本实例实现的功能
首先利用单片机STC89C54通过串口发送“你好,LabVIEW”,LabVIEW将单片机发送到数据进行显示。通过这个实例来了解LabVIEW的串口通信设计。
3.下位机硬件设计与软件设计
(1)硬件设计
单片机串口通信硬件电路设计比较简单,主要包括单片机STC89C54最小系统以及MAX232和九针串口。
(2)软件设计
设计源码如下:
#include
#define uchar unsigned char
#define uint unsigned int
void SendStr(unsigned char *s);//发送
字符串
void DelayMs(uint xms)//延时子函数
{
uint i,j;
for(i=xms;i>0;i-)
for(j=110;j>0;j-);
}
void InitUART(void) //串口初始化
{
SCON=0×50; //SCON:模式
1,8-bitUART,使能接收
TMOD|=0×20; //TMOD:timer 1,mode
2,8-bit重装
TH1=0xFD; // TH1:重装值9600波
特率 晶振11.0592MHz
TR1=1; //TR1:timer 1打开
EA=1; //打开总中断
}
void main(void)
{
InitUART();
while(1)
{
SendStr(“你好!LabVIEW!”);
DelayMs(240);
DelayMs(240);
}
}
void SendByte(unsigned char dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
void SendStr(unsigned char *s)
{
while(*s!='\0‘)//\0表示字符串结束
标志,//通过检测是否字符串末尾
{
SendByte(*s);
s++;
}[!--empirenews.page--]
4.上位机LabVIEW前面板与程序框图
(1)相关函数介绍
在做LabVIEW串口通信的时候首先要安装VISA驱动,驱动可以从网上下载。LabVIEW对串口的操作主要是读操作和写操作。本实例主要是接受数据,也就是读操作,在这里首先介绍一下与此实例相关控件和函数。
①VISA资源名称
在“新式”控件选项卡下“I/O”子选项卡下有“VISA资源名称”控件。安装好VISA驱动后,与硬件连接好后,该控件下可以列出相应的COM口,可以选择合适的COM口。
②VISA配置串口函数
该函数位于函数选项卡下的“仪器I/O”
子选项卡下,主要用来对串口进行参数配置,包括波特率、数据比特、奇偶校验等。
③VISA读取和VISA关闭函数
VISA读取函数的功能是从VISA资源名称所指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区。VISA关闭函数的功能是关闭VISA资源名称指定的设备会话句柄或事件对象。
(2)程序框图设计
程序框图设计如图1所示。
5.测试
将硬件连接好后,上电,下载程序,运行labVIEW,我们可以看到在读取缓冲区里接收到了单片机发送来的字符串“你好!LavVIEW”.如图2所示。
6.总结
利用LabVIEW进行上位机设计,其界面美观,实现起来较容易,可以很方便的运用于各种测量监控系统中。