Labview编程编写举例.doc
文本预览下载声明
虚拟仪器实验报告三
一、实验目的:LabVIEW编程软件入门学习
二、实验内容:学习LabVIEW的程序结构
三、实验步骤:1、 顺序结构(Sequence Structure)
2、 For循环
3、 While循环
4、 Case结构
5、 事件结构(Event Structure)
6、 使能结构
7、 公式节点(Formula Node)
8、 跟着实例学—模拟温度采集监测系统
四、实验结果:
练习1 建一个 VI,计算生成等于某个给定值的随机数所需要的时间
练习2 用For循环和移位寄存器计算一组随机数的最大值
练习3 使用While循环和图表
练习4 使用移位寄存器
练习5 使用Case结构
解:输入为非负数,输出它的平方根
输入为负数,输出-999.且提示出错
练习6 使用公式节点
练习7 用一个开关控制两个循环
练习8 全局变量的调用
五、实验作业:
1. 利用顺序结构和timing面板下的tick count VI,计算for循环1000000次所需的时间。
解:用顺序结构实现。
第一帧是tick count VI计算循环所需的时间;
第二帧是for循环1000000次,用移位寄存器实现,每循环一次,循环次数加一,总循环次数设为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就不是素数。
解:利用公式节点,编写判断素数的程序。若指示灯亮,则输入的为素数,否则不是素数。
五、实验总结:
相较数据操作,程序结构更复杂,学起来较吃力,尤其它们之间的嵌套,编程过程中要更多的思考。公式节点中的语法一直弄不太懂,编写的程序看似简单,可是实验结果总是有误。所以这部分还是得好好练习练习。
显示全部