时间:2012/12/31
签名:
一、 课程设计背景
1. 前言
20 多年前,美国国家仪器公司 NI (National Instruments)提出“软件即是仪器”
的虚拟仪器(VI)概念,引发了传统仪器领域的一场重大革命,使得计算机和网络
技术得以长驱直入仪器领域,和仪器技术结合起来,从而开创了“软件即是仪器”
的先河。LabVIEW 是 NI 推出的虚拟仪器开发平台软件,它们能够以其直观简便
的编程方式、众多的源码级的设备驱动程序、多种多样的分析和表达功能支持,
为用户快捷的构筑自己的实际生产中所需要的仪器系统创造了基础条件。
虚拟仪器由计算机、模块化功能硬件和应用软件三大部分组成,一般而言,
虚拟仪器所用的计算机是通用的计算机,虚拟仪器根据其模块化功能硬件不同,
而有多种构成方式。其中 NI—DAQ 测试系统是构成虚拟仪器 VI 得最常用的最
基本的方式,因为一般而言,这种类型的虚拟仪器成本比较低,它能充分利用计
算机的设计能力,并通过软件实现对数据的显示、存储以及分析处理。
图 1 虚拟仪器系统框架图
2. 工具软件简介
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一 种用图
标代替文本行创建应用程序的图形化编程语言。传统文本编程语言根据语句和指
令的先后顺序决定程序执行顺序,而 LabVIEW 则采用数据流编程方式,程序框
图中节点之间的数据流向决定了 VI 及函数的执行顺序。VI 指虚拟仪器,是
LabVIEW 的程序模块。
LabVIEW 是图形化编程语言,也是第三代的编程语言,LabVIEW 是一种程
序开发环境,由美国国家仪器(NI)公司研制开发的,类似于 C 和 BASIC 开发
环境,但是 LabVIEW 与其他计算机语言的显著区别是:其他计算机语言都是采
用基于文本的语言产生代码,而 LabVIEW 使用的是图形化编辑语言 G 编写程序,
产生的程序是框图的形式。
LabVIEW 提供很多外观与传统仪器(如示波器、万用表)类似的控件,可
用来方便地创建用户界面。用户界面在 LabVIEW 中被称为前面板。使用图标和
连线,可以通过编程对前面板上的对象进行控制。这就是图形化源代码,又称 G
代码。LabVIEW 的图形化源代码在某种程度上类似于流程图,因此又被称作程
序框图代码。以下为某个 LabVIEW 程序的程序框图。
图 2 LabVIEW 程序框图
二、 课程设计任务
1. LabVIEW 课程任务设计题目
1) 基于 LabVIEW 的闹钟程序编写
用 LabVIEW 软件编写一个小的闹钟程序,要满足有以下功能:
可以实现时钟即时显示
添加万年历显示
添加闹钟自动屏蔽周末
可手动设置闹铃工作日
2) 基于 LabVIEW 的串口通信程序
实现串口通信功能
实现串口传输数据的波形显示
3) 基于 LabVIEW 的温度测量程序
用热敏电阻实现室温信号的模拟量采集
实时显示当前室内温度
2. 使用软件及版本
本次设计性课程采用 NI 公司的 LabVIEW 最新版本 LabVIEW2012 进行开发,
另外在串口通讯程序中,需要采用虚拟串口软件,以便于串口通讯的操作。
三、 课程设计过程
1. 闹钟程序设计过程
1) 实时时间的显示
实时时间的显示采用两种方式实现,一种是表盘式,一种是数字显示式,表
盘式的采用 LabVIEW 自带的转盘控件,数字显示采用布尔指示灯做成七段 LED
数码显示管,具体如下图所示。
图 3 量表制成的转盘式钟表
在这里需要说明的是,软件自带的量表控件只有一根指针,需在属性中添加
指针变成三个指针(分针、时针、秒针),但是指针长短是一样的,这样便无法
区分时针分针,这里采用一种简单的办法来实现区分时针、分针的转盘,原理就
是建立两个转盘控件,一个作为秒针以及分针,另一个作为时针,同时时针控件
通过自定义删除除指针之外的所有东西,然后将之覆盖在分针、秒针表盘上面,
变成为如上所示的时钟转盘。
图 4 两个子时钟
如图 4 所示,将两个转盘合并即变为所需的时钟(时针长短与分针区别)。
时钟实时显示程序实现:转盘控件有默认一个输入量,通过小时、分钟、秒
钟信号通过合并信号会和输入转盘,再在转盘设置相应刻度即可实现时钟显示。
图 5 转盘时钟显示程序
图 6 数码管时钟显示程序
数码管显示中,将 7 个布尔指示灯排列成数字式,并放入一个簇中,通过建
立条件结构实现数字 0-9 的显示,如上图所示为两位小时的显示。
2) 万年历显示
万年历显示采用 Windows 系统万年历控件(MonthCalendar),可以通过
LabVIEW .NET 控件调用该控件,实现万年历显示。
3) 闹钟设置
图 7 万年历显示
闹钟设置包含设置工作日,选择时间、选择闹钟音乐等等,闹钟设置采用子
VI 的形式实现,在主程序中只要调用子 VI 便可重复多次设置闹钟。
部分程序实现:这里通过工作日选择说明该部分程序。
图 8 闹钟设置界面
采用顺序程序实现。第一帧为将空字符串赋予工作日显示框,第二帧为工作
日选择赋值,下图中簇内部包含周一到周日的布尔指示灯,如果程序运行时候手
动选择工作日,便会给工作日显示框赋值,在第三帧中变不会进入条件真值中,
显示选择的日期,如果不选择默认显示周一、周二、周三、周四、周五,自动屏
蔽周末。
4) 闹钟设置显示
图 9 工作日选择程序框
闹钟设置显示通过数组实现,建立一个字符串数组,在闹钟设置后通过建立
全局变量或者是子 VI 输出的方式传递设置的闹钟参数。
图 10 闹钟设置及显示
图 11 调用子程序显示闹钟设置参数
5) 闹钟响应部分
通过对比闹钟设置小时、分钟与当前小时分钟对比,触发闹钟事件,触发事
件包括播放设置铃声。
图 12 闹钟响应程序
2. 串口通信程序设计过程
串口通讯程序设计之前,要安装虚拟串口程序,模拟两台电脑之间通过串口
通讯。
串口通讯程序界面如图所示:
图 13 串口通信程序
如上图所示,程序界面包含发送端与接收端,发送端,以及发送设置端,通
过 VISA 控件设置串口传递参数。