用labview设计一个计算器虚拟仪器共15页.docx
《用labview设计一个计算器虚拟仪器共15页.docx》由会员分享,可在线阅读,更多相关《用labview设计一个计算器虚拟仪器共15页.docx(14页珍藏版)》请在冰豆网上搜索。
用labview设计一个计算器虚拟仪器共15页
虚拟仪器实验报告
科目:
姓名:
学号:
院系:
类别:
(学术、专业)
实验一Labview计算器
一、实验目的
通过利用labview设计一个简易计算器熟练的掌握labview基本功能和基本操作方法。
二、实验要求
利用设计的计算器可以进行简单的四则运算、可以进行平方、开根号和倒数运算、计算器可以进行清零和关闭计算器操作、在输入数据时不慎将某个数字输错可以运用BackSpace清除该值等一些基本简单的运算。
三、实验原理和框图
1、前面板设计
前面板是LabVIEW的图形用户界面,在LabVIEW环境中可以对这些对象的外观和属性进行设计,LabVIEW提供了非常丰富的界面对象,可以方便地设计出生动、直观、操作方便的用户界面。
本系统中前面板显示程序的输入和输出对象,即,控件和显示器。
本程序中控件主要是按钮,显示器主要是文本显示。
在前面板设计过程中先在前面板整齐排列放置22个确定按钮,将这22按钮的标签隐藏,然后修改这22个确定按钮的名字分别为:
0~9十个数字、小数点、正负号、加、减、乘、除、等号、倒数、根号、清零、退格和X的Y次方。
前面板还包括一个文本显示控件用于显示计算的结果和计算器的某些提示,通过改变显示控件的大小使之于计算器的大小相适应。
计算器的前面板还有程序框图中while循环的停止按钮,当按钮按下时计算器停止工作退出到LabVIEW的编辑界面。
为了前面板的美观和防止按钮的移动,分别将前面板的各个按钮和文字进行组合和对前面板进行装饰,装饰采用修饰中的平面框。
如下图所示:
2.后面板设计
程序框图对象包括接线端和节点,将各个对象连线连接便创建了程序框图,接线端的颜色和符号表明了相应输入控件或显示控件的数据类型。
程序框图是程序的核心,程序要实现的功能都是通过程序框图反应出来的。
本课程设计的程序框图主要运用了while循环、时间结构、条件结构和平铺顺序等结构。
通过上图可以看出当小数点按钮按下时,0.和存临时数据通过字符串连接控件将两者连接到一起;小数点按钮没有按下时,临时数据和小数点通过字符串连接按钮也将两者连接在一起,将连接到一起的数据送到显示控件
。
数值控件与运算按钮没有直接的连线,这就需要对控件进行引用,将引用后的结果经过属性节点和字符串至十进制转换将按下的按钮扫描到临时数据进行临时保存。
图3-3四则运算的除法运算
在四则运算的过程中,通过运算符按钮对四则运算进行控制,在进行除法运算当除数为零时,会出现错误的提示。
当除数不为零时,除法运算跟加减乘的运算是一样的。
图3-4清零操作
清零操作就是将运算符、小数点、显示和操作等控件的局部变量返回到计算前的设定值,以便于进行下一步的运算。
图3-5退格操作
当输入的数据较大或者在进行连续运算时,不慎将某个数输入错误如果进行清零操作就会导致以前的工作全部功亏于溃,这是只需进行退格操作将输入错误的数值清除即可,不过计算后的结果不能进行退格操作。
图3-6开根号运算
开根号是计算器最基本的功能,在进行开根号运算之前应该先对开根号的数值进行判断是否满足开根号的条件。
当根号下的数值小于零时,会显示出“错误:
被开放数小于零!
”;根号下的数值大于等于零时,会通过计算显示出正确的结果。
图3-7x的y次幂运算
在进X的Y次幂操作时,先输入的为底数后输入的为幂数。
X的Y次幂运算已经在前面定义过了,在这里只需调用就可以了。
图3-8倒数运算
倒数运算跟除法运算非常相似,只需将除法运算中的被除数改为固定数1就可以了,同时还必须考虑除数为零的情况,这按除法运算的设计方法就可以了。
四、系统调试:
1.四则运算。
此运算利用+、—、×、÷可以进行一些基本简单的混合运算;
2.开平方(Sqrt)。
此按键的功能是对某个数进行开方运算;
3.清除按键(Backspace)。
此按键的功能是当输入有误时,用此按键可以清楚错误输入;
4.清零按键(CE)。
此按键的功能是直接将显示数据清零,从新开始新的运算;
5.x的y次方运算(x∧y)。
此按键的功能是进行x的y次方运算;
6.取倒数(1/x)。
此按键的功能是求x的倒数。
五、总结
利用本次计算器课程设计实验,我对虚拟仪器技术有了更加一步的了解,在全球数据采集(DAQ)市场中长期保持领先地位的NI数据采集系列产品专门针对绝对精度、高速性能、易用性和安全性等方面进行优化设计。
通过创造性地将模拟和数字设计相结合,NI数据采集设备可以帮助工程师们轻松满足各种测量要求。
实验二模拟输入
一、实验目的
1了解LabVIEW中进行数据采集的过程;
2掌握基本的数据采集模块的使用;
3学会使用中级数据采集模块进行编程;
4学会用软件触发显示实时波形。
二、实验要求
通过BNC-2120连接器和P6014E采集卡,实现单通道多点采集,用软件触发显示实时波形。
三、实验原理及框图
1单通道连续数据采集
本程序需调用IntermediateVI中的AIConfigVI、AIStratVI及AIReadVI等来实现,其程序如图1所示,首先在AIConfigVI中需要指定缓冲区长度Buffersize,其余参数可采用默认值。
在AIStartVI中需要设置扫描速率scanrate,即指定采样频率;此外,需将通道列表扫描的次数numberofscanstoacquire设为0,以实现连续采集。
程序中设置了一个While循环,开始采集后,在循环中不断读取缓冲区中数据,并送往示波器加以显示。
用AIClearVI来清除模拟输入操作和缓冲区的配置,并释放DAQ卡上的资源。
图1单通道连续数据采集程序
2软件触发数据采集
软件触发是在数据采集时,对A/D转化的信号进行比较监测,当满足软件触发的条件时开始将采集数据读取到数据缓冲区,并在采集结束后将数据传输到计算机。
即信号采集一直在进行,但只对满足条件的数据进行处理。
其程序如图2所示,主要需要对AIReadVI的conditionalretrieval进行配置,包括触发电平、触发方式等。
图2软件触发数据采集程序
四实验结果
1单通道连续数据采集
以1kHz为采样频率,对正弦波信号源进行连续采样,所得结果如图3所示。
2软件触发数据采集
以1V为触发电平,在上升沿和下降沿到来时进行数据采集,所得结果如图4
图3单通道连续数据采集结果
图4软件触发数据采集结果
五实验总结
通过本次实验,我初步了解了虚拟仪器的数据采集功能,学会了在LabVIEW中编写简单的数据采集程序,基本达到了实验目的,为以后学习和实验打下了基础。
实验三、模拟输出
一、实验目的
在数据采集的基础上,进一步熟悉数据输出的各种模块了解它们的作用和接方式能够正确运用DDS原理产生单通道的正弦波信号,并能够对频率和幅度进行调节。
二、实验要求
输出频率f可调,且频率分辨率
可调的正弦波。
以固定100KS/s采样率采集并实时显示输出波形。
三实验原理及框图
1DDS原理介绍
DDS就是直接数字合成技术。
在数据输出中,先产生一系列的正弦波数据,存储到buffer中,然后通过参数的配置,输出不同频率和幅度的正弦波,如图1所示:
图1DDS原理框图
首先产生N个的正弦波的值存储到buffer中,n表示这N个正弦波值采集了多少个正弦波的周期。
输出波形的频率为:
(1)
(2)
其中:
表示输出信号的频率,
表示DA的updaterate,
表示步长,
表示buffer里面存储的正弦波值的周期,
表示buffer的大小。
2、波形输出配置
DDS是整个程序的主要部分,接下来将产生的DDS数组输入到write模块中,具体模块如图2所示:
图2波形输出配置框图
config模块中对通道以及buffer的大小进行配置,接着write模块中将上一步产生的DDS数组输入,该模块的作用就是将输入DDS数组写入到采集卡的buffer中,为下一步的数据输出做准备。
Start模块主要有2个参数配置,如上图所示。
该模块则是将在buffer中的数据不停的输出,0表示不停的连续输出,而30000则是updaterate就是在DDS中提到的Fs。
这是一个比较重要的参数,对输出信号波形的好坏有很大的影响。
比如用30K的的updaterate输出一个频率为2K的信号,那么一个周期内就有15个点,基本上能比较完整的表示一个正弦波,而通过实验表明本采集卡的最大updaterate略大于30K,在产生3K信号的时候效果不是太好。
3)实时参数更改
实验要求能够对输出的波形实时的更改其频率以及幅度。
因此在程序中加入了一个while循环,如图3所示。
图3while循环设置
循环左面的局部变量是为了判断频率或者步长是否发生变化,如果发生了变化就产生新的DDS信号,重新对buffer写入。
在进入write模块以前可以对幅度进行调节。
如果没有变化,就不对buffer进行操作。
一直循环到按下stop键。
要注意步长的更改,因为在设计上将Fs固定,所以在改变步长以后N也发生了变化,也就是buffer的大小发生了变化,所以必须对采集卡重新进行配置。
四实验结果
调频率分辨率为2019,调频率为20,采样率fs的值为1000,所以计算得t=0.1s,即f=10Hz,下图为输出波形图,
改变输入参数,使得调频率分辨率为2019,调频率K为40,采样率fs的值为1000,所以计算得t=0.05s,即f=20Hz,下图为输出波形图,符合。
五实验总结
通过本次实验,我初步了解了虚拟仪器的数据输出功能,学会了在LabVIEW中编写简单的数据输出程序,基本达到了实验目的,为以后学习和实验打下了基础。