VI课堂练习 下载本文

创建、编辑、运行、调试,VI与子VI 1. 创建第一个VI完成下列功能:

将两个输入数字相加并显示结果; 将同样的两个数字相乘并显示结果;

比较两个输入数字,如果数字相等,则LED指示灯变亮。将VI命名为My first vi.vi,保存在E:\\交作业\\学号+姓名目录内。 2. 构建VI,完成下列任务:

在前面板上取两个浮点数作为输入:X和Y; 从X中减去Y并在前面板上显示结果; 用X除以Y并在前面板上显示结果;

如果输入Y=0,前面板LED指示灯亮指示被0除。

将VI命名为Subtract and Divide.vi,保存在E:\\交作业\\学号+姓名目录内。

3. 构建VI,使用垂直滑动条控件作为输入,仪表指示器用于输出显示。当VI运行时,由

仪表指示器显示伴有随机噪声的垂直滑动条控件输入。将VI命名为Noise signal generator.vi,保存在E:\\交作业\\学号+姓名目录内。

4. 创建一个程序,要求产生125Hz的三角波和加性噪声(两种方法:一种是利用信号处理

功能的波形发生器产生信号和噪声,另一种是利用Express VI的仿真信号产生信号和噪声)。

8.2?e3.25. 计算下式:3.5??ln 23.4?1.5?6. 比较两个随机数的大小,两个随机数都用仪表盘显示,一个表盘呈蓝色一个呈黄色,当

蓝色表盘数字大时LED指示灯亮颜色为蓝色,否则为灰色。用高亮执行并观察数据流。 7. 编写温度转换程序,?C?

5???F?32?

9编辑与装饰:

8. 在前面板上放置数字控件、温度计、波形图,要求数字控件的颜色改为与前面板空白区

域的颜色相同,将温度计水银球的颜色改为绿色,将波形图的背景色改为黄色,并将三个对象左右排列顶端对齐。

9. 设计一个电子时钟,颜色款式自定(练习装饰控件的使用,如图,程序框图中包括获得

时间节点和条件结构)。

10. 构建VI接收5个数字输入,将这些数字相加并在仪表上显示结果。如果输入数的总和

小于5.0,则圆形指示灯亮。这个灯亮时为浅绿色,不量为深绿色,仪表刻度盘是黄色。 11. 构建停车信号灯VI,创建从0~2变化的刻度盘控件,该控件具有3个LED显示:红绿

黄,当刻度盘0位时,LED绿灯亮,当刻度盘1位时,LED红灯亮,当刻度盘2位时,LED黄灯亮。 12. 创建VI,前面板上有8个LED指示器和一个8位无符号整数的垂直滑动条控件,打开滑

动条的数字指示,将8个LED变成滑动条中数字的二进制表示,例如(10)d=(00001010)b, LED灯1和3亮,VI建好后用(131)d=(10000011)b.

调试工具(运行与调试工具条,断点和探针,加亮执行,组合与排列,运行错误,菜单设计,VI属性)

子VI与结构:

13. 举例说明子VI的三种连接类型,可参考FUNCTION—ALL FUNCTION—FILE I/O—WRITE TO

TEXT FILE.VI, FUNCTION—ALL FUNCTION—ANALYZER—MATH—CALCULUS—INTERGRATION.VI, FUNCTION—ALL FUNCTION—SIGNAL PROCESSING—SIGNAL GENERATION—GIGNAL GENERATOR BY DURATION.VI. 14. 创建子VI计算两点之间的斜率。

15. 构建VI使用LabVIEW固有函数计算用户输入的3个数的平均值,得出平均值显示在前

面板上,然后将平均值乘以[0—1]之间的随机数,最后将平均值计算代码创建成子VI简化程序。

16. 创建峰值检测程序,将正弦波的值与数字控件设定的值相比,如果超限告警,改变VI

使其运行时隐藏工具条、菜单调和滚动条(提示:FILE—VI PROPERTIES\\ WINDOW APPEARANCE, 选择CUSTOMIZE),并将其做成子VI。

17. 创建子VI,将4个输入转换为1个输出,4个输入均为浮点数字控件标注为IN1~IN4,

输出为浮点指示器标注为OUT,一个8位无符号整数标注为SELECT,如果SELECT=1,则输出OUT=IN1,如果SELECT=2,则输出OUT=IN2,如果SELECT=3,则输出OUT=IN3,如果SELECT=4,则输出OUT=IN4,可以用COMPARISON选项板上的SELECT VI。 18. 观察REARRANGE CASES.VI

19. 修复CASE ERRORS.VI中的错误。

20. 用TIME DELAY EXPRESS VI编程,使VI执行到第N次或用户按停止按钮时停止。 21. 观察AVOID SEQUENCE.VI,是否可以不使用顺序结构?如果可以,请改写。

22. 打开LOAN CALCULATOR.VI,贷款金额从前面板输入,计算偿还贷款所需要的月付款额,

用户有三个选择,偿还频率有2个选择,计算公式如下:

按月以复利计算的利息:i?APR/PymtFreq 按天以复利计算的利息:i?(1?(APR/356)连续以复利计算的利息:i?eNAPR/PymtFreqPymtFreq?1

?1

偿还总额:A?P[i(1?i)]/[(1?i)?1]

23. 打开Statistics.vi,该程序计算从n个对象中选出r个对象的可能组合数。在代码中

N添加Case结构以实现输入Does Order Matter?和Can Samples Repeat?并在用户界面显示正确的结果,公式如下: Samples Repeat Samples Cannot Repeat Order Matters Order Doesnot Matters nr n!/(n?r)! (n?1?r)!/(n?1)!r! n!/r!(n?r)!

24. 用FOR循环产生4行100列的二维数组,数组元素如下:

1,2,3,……100 100,99,98,……1 6,7,8,……105 105,104,103,……6

从上个数组中取出2行50列子数组,数组元素如下: 50,49,48,……1 56,57,58,……105 将结果在用户界面显示。

25. 产生100个随机数,选最大、最小值,求平均值。用TIME DELAY EXPRESS VI使用户能

观察数值更新。

26. 构建VI,每秒显示0~1之间的随机数,计算并显示最后产生的4个随机数的平均值,

只有产生4个后才能显示平均值,否则为0。每次随机数大于0.5时发出蜂鸣声报警。 27. 创建VI,在前面板放置3个圆形LED,程序运行时,第一个灯打开并保持打开状态,1

秒后第二个灯打开并保持打开状态,再过2秒第三个灯打开并保持打开状态,所有灯都保持打开状态3秒后熄灭。

28. 创建一个计时测试程序,比较公式节点和LabVIEW数学函数的平均执行时间。此程序需

要一个FOR循环,一个单层顺序或叠层顺序结构,一个CASE结构,要求FOR循环运行计时N次,然后使用STATISTICS EXPRESS VI对结果计算平均值,要求顺序结构在程序运行前和运行后对TICK COUNT 进行采样,对每个分支运行计时测试程序,哪种方法执行最快?哪种方法容易编程?哪种方法别人容易理解?

29. 程序开始运行后要求用户输入一个口令,口令正确时滑动按钮显示一个0~100的随机

数,否则程序立即停止。

30. 编写一个程序测试自己在程序前面板上输入以下字符所用时间:A VIRTUAL INSTRUMENT

IS A PROGRAM IN THE GRAPHICAL PROGRAMMING LANGUAGE.

31. 编程求Josephus 问题:M个小孩围成一圈,从第一个小孩开始顺时针方向每数到第n

个小孩时这个小孩就离开,最后剩下的一个小孩是胜利者。求第几个小孩是胜利者。 32. 猴子吃桃子,每天吃全部桃子的一半另一个,到第十天剩下一个桃子,求第一天猴子摘

了多少个桃子?

371?3?7?1 33. 编程水仙花数,指一个3位数,它的各位数字立方和等于他本身,如:

34. 编程求1000以内的完数,指一个数恰好等于它本身的因子之和,如

28?14?7?4?2?1。 35.

333