Labview编程举例.docx
《Labview编程举例.docx》由会员分享,可在线阅读,更多相关《Labview编程举例.docx(16页珍藏版)》请在冰豆网上搜索。
Labview编程举例
虚拟仪器实验报告三
一、实验目的:
LabVIEW编程软件入门学习
二、实验内容:
学习LabVIEW的程序结构
三、实验步骤:
1、顺序结构(SequenceStructure)
2、For循环
3、While循环
4、Case结构
5、事件结构(EventStructure)
6、使能结构
7、公式节点(FormulaNode)
8、跟着实例学—模拟温度采集监测系统
四、实验结果:
练习1建一个VI,计算生成等于某个给定值的随机数所需要的时间
练习2用For循环和移位寄存器计算一组随机数的最大值
练习3使用While循环和图表
练习4使用移位寄存器
练习5使用Case结构
解:
输入为非负数,输出它的平方根
输入为负数,输出-999.且提示出错
练习6使用公式节点
练习7用一个开关控制两个循环
练习8 全局变量的调用
五、实验作业:
1.利用顺序结构和timing面板下的tickcountVI,计算for循环次所需的时间。
解:
用顺序结构实现。
第一帧是tickcountVI计算循环所需的时间;
第二帧是for循环次,用移位寄存器实现,每循环一次,循环次数加一,总循环次数设为1000000次;
第三帧是输出循环所需的时间。
2.用While循环和定时器,实现连续的温度采集监测。
解:
采集连续的摄氏温度,并且设定上限温度为60℃。
点击“开始”,运行系统进行采集,当采集的温度超过了设定温度,报警灯亮,且报警次数加1,未超出设定温度,则只实时显示采集的温度。
点击“暂定”,则系统进入暂停状态,再点击“停止”,则系统关闭,停止采集。
我设计的采集系统存在一些缺陷,只有当“暂定”、“停止”同时按下时,才能关闭系统。
另外,也不能实现摄氏温度和华氏温度的切换。
通过查阅资料,完善的采集系统如下所示:
3、利用顺序结构和循环结构写一个跑马灯,如下图所示,5个灯从左到右不停的轮流点亮,闪烁间隔由滑动条调节。
解:
利用顺序结构,构成五帧。
第一帧1灯亮,接着第二帧2灯亮,直到第五帧5灯亮。
闪烁间隔由滑动杆决定,即控制灯亮的时间。
然后由While循环控制使灯循环点亮。
4.求分数序列前20项之和。
解:
方法一:
利用移位寄存器
利用移位寄存器将每次的除数和被除数锁存,它们的和作为下一个分数的分子,被除数作为下一个分数的分母。
再将每个分数加到运算结果中。
方法二:
这种方法,是我查资料学会的。
使用反馈节点,将每一个分数的分子通过反馈节点,成为下一个分数的分母,每一个分数的分子和分母之和通过反馈节点,作为下一个分数的分子。
最后将每一分数累加到运算结果中。
但采用这种方法,运算较慢。
在for循环框的边缘,点击右键,创建反馈节点
5.给出一百分制成绩,要求输出等级A,B,C,D,E。
90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E。
解:
如果输入的数值超出了0—100的范围,则提示“输入错误!
”
6.利用事件结构实现在数字输入控件中,每当用户按下一个数字后,累加值就将新数字累加上去。
例如按下34时,累加值为7;按下345时,累加值为12…
解:
最外层是事件结构,按下确定按钮,则开始累加。
里面又用了一个for循环。
首先将输入的数字转换为字符串,测出字符串的长度作为总循环次数N。
因为每次输入的数字总是输入数值的个位,所以利用移位寄存器将输入的数值除以10取余即得到个位数,不断累加即可得累加值。
7.利用公式节点判断一个数是否是素数,我们可以采用这样的算法:
用2~sqrt(N),依次去对N求余,只要有一个余数是0,则N就不是素数。
解:
利用公式节点,编写判断素数的程序。
若指示灯亮,则输入的为素数,否则不是素数。
五、实验总结:
相较数据操作,程序结构更复杂,学起来较吃力,尤其它们之间的嵌套,编程过程中要更多的思考。
公式节点中的语法一直弄不太懂,编写的程序看似简单,可是实验结果总是有误。
所以这部分还是得好好练习练习。