1、第3.3讲 LabVIEW程序设计基础_结构吕 岗复习:LabVIEW程序的执行顺序LabVIEW中的顺序结构指定的顺序单层顺序结构单层顺序结构叠层顺序结构叠层顺序结构1.单层顺序结构可以看到所有代码可以看到所有代码代码多时难看代码多时难看从左到右从左到右2.叠层顺序结构按标定顺序叠放代码按标定顺序叠放代码节省空间节省空间不方便观看不方便观看 可以有多个分支,可以设置默认分支 类似于文本语言的 case 或 ifelse ifelse 结构LabVIEW中的条件结构分支选择端分支标签条件结构的输入和输出通道(隧道)输入通道可以只传递到某些分支 但各个分支的输出通道必须赋值1.等价于if.els
2、e.语句的Case结构If(a%2=0)b=a+2;elseb=a+1;end2.等价于switch语句的Case结构switch(fruit)case apple:price=9;case banana:price=10;case pear:price=8;default:price=0;LabVIEW中的循环结构 While循环 For循环 隧道 寄存器 反馈节点While循环LabVIEW While Loop Flowchart Pseudo CodeRepeat(code);Until Condition met;End;While循环返回执行次数(从0开始)终止条件(也可以是继续条
3、件)隧道(Tunnel)While 循环输入值为真时停止输入值为假时停止While 循环注意事项设置终止循环条件设置终止循环条件While 循环注意事项隧道隧道While 循环注意事项放置定时器放置定时器延时 为何需要延时?控制循环执行的频率 使处理器有资源处理其他任务(如界面刷新等)LabVIEW中常用的软件定时VI 注意:软件定时的精度通常为1ms左右For循环 LabVIEW For Loop Flowchart Pseudo CodeN=100;i=0;Until i=N:Repeat(code;i=i+1);End;For循环 可增加条件终止端While循环和For循环的比较For
4、Loop按照约定的次数执行(除非增加了条件终止端)可以一次也不执行默认情况下,隧道输出的是一个数组(需要禁用索引才能输出值)While Loop循环终止执行由终止条件决定至少会执行一次默认情况下,隧道输出的是一个值(需要开启索引才能输出数组)例:利用For循环自动索引对数组赋值一维数组二维数组使用数组作为索引输入 可不定义循环次数,循环次数自动设置为数组大小思考:自动索引移位寄存器 通过右键菜单可以对循环添加移位寄存器 可以“记住”上一次循环执行后的数据 右边的移位寄存器记录的是循环当此执行后的数据 左边的移位寄存器记录的是循环上次执行后的数据移位寄存器的初始化程序框图首次执行再次执行有初始化
5、Output=5Output=5无初始化Output=4Output=8移位寄存器的堆栈 可以“记住”前若干次循环的数据反馈节点LabVIEW中使能结构(/*/)框图使能框图使能程序架构 程序架构的重要性 好的程序架构可以简化编程和调试的复杂度 便于增加、扩展程序功能 代码更清晰,增强程序的可读性 就像盖房子,规划和框架设计非常重要常用的一种LabVIEW程序架构:状态机 典型用途 界面响应:在程序运行的不同阶段响应不同的用户输入 状态控制:控制测控系统在各种不同状态下的行为和状态转移状态机的代码形式 由While循环和条件结构组成 状态由枚举型变量确定 每个状态都会转移到其他状态或本状态Wh
6、ile循环条件结构移位寄存器例:默认状态及单一状态转移例:根据情况选择转移状态小试身手 1.产生100个随机数,计算输出每3个相邻数的平均值。2.编写显示输入“常熟理工学院LabVIEW语言设计”这段文字所花费的时间。小试身手 3、利用顺序结构和循环结构写一个跑马灯,如下图所示,5个灯从左到右不停的轮流点亮,闪烁间隔由滑动条调节。小试身手 4.求分数序列 前20项之和。5.给出一百分制成绩,要求输出等级A,B,C,D,E。90分以上为A,8089为B,7079为C,6069为D,60分以下为E。,.813,58,35,23,12小试身手 6.利用公式节点判断一个数是否是素数,我们可以采用这样的算法:用2sqrt(N),依次去对N求余,只要有一个余数是0,则N就不是素数。