0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于labVIEW与单片机的上位机与下位机通信

电子设计 作者:工程师飞燕 2018-09-17 08:25 次阅读

单片机控制系统中,经常会涉及到上位机与下位机的通信。本文主要通过一个简单的实例来介绍labVIEW与单片机的串口通信实现过程,包括下位机单片机的硬件与软件设计,上位机LabVIEW的前面板和程序框图设计。

1.概述

在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式。下位机主要是用来采集数据,可以通过嵌入式控制器、单片机控制器、PLC等来实现。上位机主要是图形界面,用来实时显示采集数据,并进行数据分析及处理,同时可以控制下位机。上位机的实现可以通过各种高级语言,比如VB、Delphi等以及NI公司的图形化虚拟仪器软件开发环境LabVIEW.由于LabVIEW采用的是图形化的编程方法,所以无论你是否有过编程经验,都可以快速、高效地设计用户界面,实现与控制硬件的通信,并进行数据分析和处理。如今LabVIEW已经渗透到工业测量的各个领域,与此同时在嵌入式、FPGADSP、实时控制等领域也发挥着巨大的作用。

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++;

}

4.上位机LabVIEW前面板与程序框图

(1)相关函数介绍

在做LabVIEW串口通信的时候首先要安装VISA驱动,驱动可以从网上下载。LabVIEW对串口的操作主要是读操作和写操作。本实例主要是接受数据,也就是读操作,在这里首先介绍一下与此实例相关控件和函数。

①VISA资源名称

在“新式”控件选项卡下“I/O”子选项卡下有“VISA资源名称”控件。安装好VISA驱动后,与硬件连接好后,该控件下可以列出相应的COM口,可以选择合适的COM口。

②VISA配置串口函数

该函数位于函数选项卡下的“仪器I/O”

子选项卡下,主要用来对串口进行参数配置,包括波特率、数据比特、奇偶校验等。

③VISA读取和VISA关闭函数

VISA读取函数的功能是从VISA资源名称所指定的设备或接口中读取指定数量的字节,并将数据返回至读取缓冲区。VISA关闭函数的功能是关闭VISA资源名称指定的设备会话句柄或事件对象。

(2)程序框图设计

程序框图设计如图1所示。

基于labVIEW与单片机的上位机与下位机通信

5.测试

将硬件连接好后,上电,下载程序,运行labVIEW,我们可以看到在读取缓冲区里接收到了单片机发送来的字符串“你好!LavVIEW”.如图2所示。

基于labVIEW与单片机的上位机与下位机通信

6.总结

利用LabVIEW进行上位机设计,其界面美观,实现起来较容易,可以很方便的运用于各种测量监控系统中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5998

    文章

    43963

    浏览量

    620691
  • LabVIEW
    +关注

    关注

    1918

    文章

    3619

    浏览量

    316953
  • 串口通信
    +关注

    关注

    32

    文章

    1577

    浏览量

    54858
  • 上位机
    +关注

    关注

    26

    文章

    858

    浏览量

    54030
  • STC89C54RD
    +关注

    关注

    3

    文章

    1

    浏览量

    2386
收藏 人收藏

    评论

    相关推荐

    PC作为上位单片机作为下位,让上下位之间通过串口

    中,上下位连通通信后,上位就发送一些简单的数字就可以了,下位
    发表于 04-09 15:47

    我想用labview做一个上位下位单片机的通讯的程序

    我想用labview做一个上位下位单片机的通讯的程序,那位大侠有相关的资料给指点下呀?我刚
    发表于 10-06 20:24

    我想用labview做一个上位下位单片机的通讯的程序

    我想用labview做一个上位下位单片机的通讯的程序,请好心人指教,提供相关例子参考,重谢
    发表于 10-06 20:27

    labview单片机通信

    大家好,这是我写的labview单片机串口通信程序,labview上位程序,
    发表于 12-26 11:02

    上位VC与下位单片机之间串口通信Proteus仿真

    使用上位软件VC++编写串口通信小软件,实现与下位单片机之间的串口
    发表于 01-07 18:48

    新人,单片机作为一个上位,利用485通信传到下位

    新人毕业设计求助,单片机作为一个上位,通过按键发送不同的指令利用485通信传到下位,并且解析
    发表于 05-09 16:27

    LABVIEW上位单片机下位控制步进电机正反转的源程序

    LABVIEW上位的源程序,与单片机下位控制步进电机正反转的源程序
    发表于 10-18 14:54

    labview温度测试上位单片机串口,RS485采集下位

    labview温度测试上位单片机串口,RS485采集下位毕业设计代做:QQ 3939963
    发表于 04-23 22:47

    Labview上位单片机通信

    我现在正在学习Labview单片机通信,用Labview上位,51
    发表于 03-17 23:49

    Labview上位与51单片机通信

    我现在正在学习Labview单片机通信,用Labview上位,51
    发表于 03-17 23:52

    如何实现单片机labview做的上位通信?求救

    需求:把单片机(英飞凌的)采集的信号(比如电压值)实时传送到labview搭建的上位中。问题:上位
    发表于 05-02 20:24

    上位下位通信问题

    最近在做一个项目。上位用可以联网的笔记本,里面装有ububtu系统,打算在里面安装一个ROS(机器人操作系统);下位采用一个Beaglebone black开发板,里面装个debi
    发表于 10-01 10:50

    labview2018与下位单片机通讯问题

    我想用labview做一个上位软件监控下位单片机)的参数并控制,我想用网线通过modbus
    发表于 07-24 16:48

    实现基于Qt的上位下位进行串口通信

    Qt实现与单片机直接的通信上位+单片机代码测试环境项目目标实现效果关键通信类 QSerialport总结这是我大二下学期的
    发表于 12-08 07:26

    上位下位概念

    最近要做一个串口通信的系统,那必然会联系到上位下位概念,那单片机又是什么呢?我们一起来看一
    发表于 02-16 06:19