第5章 程序结构
本章内容 5.1 顺序结构(Sequence Structure) 5.2 For循环 5.3 While循环 5.4 Case结构 5.5 事件结构(Event Structure) 5.6 使能结构 5.7 公式节点(Formula Node) 5.8 跟着实例学—模拟温度采集监测系统
5.1 顺序结构(Sequence Structure) 5.1.1 LabVIEW程序的执行顺序 数据流式的编程方法 多段代码同时执行
5.1 顺序结构(Sequence Structure) Flat Sequence Structure Stacked Sequence Structure
5.1 顺序结构(Sequence Structure) 在Flat Sequence Structure的Frame间传递数据
5.1 顺序结构(Sequence Structure) 在Stacked Sequence Structure的Frame间传递数据
5.2 For循环 For循环用于将某段程序循环执行指定的次数。可以通过两种方法指定循环次数,一种是直接给定,一种是通过输入数组的大小给定
5.2 For循环 输入和输出数组
5.2 For循环 5.2.3 移位寄存器(Shift Register) 一个累加10次的a++程序 通过局部变量实现 通过移位寄存器实现
5.2 For循环 5.2.4 反馈节点(Feedback Node) 通过反馈节点实现a++
5.3 While循环
5.3 While循环 5.3.2 添加定时器
5.3 While循环 5.3.3 使用移位寄存器和反馈节点 累加器程序
5.4 Case结构 If(a%2==0) b=a+2; else b=a+1; end 5.4.1 等价于if...else...语句的Case结构 If(a%2==0) b=a+2; else b=a+1; end
5.4 Case结构 5.4.3 等价于switch语句的Case结构 switch (fruit) {case apple: price=9; case banana: price=10; case pear: price=8; default: price=0; }
5.5 事件结构(Event Structure) 基于While循环和Case结构的单击计数器 分析该程序可以看出,这个程序在没有用户点击的情况下完全都是在“空转”,浪费了大量的CPU资源,而且当“事件”发生太快时可能会被忽略。因此Labview提供了事件结构来解决这个问题,即仅当“事件”发生时,程序才做相应的响应
5.5 事件结构(Event Structure)
5.5 事件结构(Event Structure)
5.5 事件结构(Event Structure) 基于事件结构的单击计数器
5.5 事件结构(Event Structure) 5.5.2 Filter事件 顾名思义,当该事件发生时,用户可以过滤掉甚至完全放弃掉该事件将触发的活动。
注意: 一般来说,事件只能通过外在用户的动作触发,如单击鼠标,键盘等。如果需要内部数据触发事件(例如当a>b条件满足时触发一个事件),就需要通过用户自定义事件的方法实现,这将在本书的21.3节中介绍。
5.6 使能结构 5.6.1 框图使能结构——注释程序框图
5.7 公式节点(Formula Node) 通过公式节点,用户不仅可以实现复杂的数学公式,还能通过文本编程写一些基本的逻辑语句,如if…else…, case, while循环之类的语句。 y=
5.7 公式节点(Formula Node) 公式节点中可以包含任意数量的公式
5.7 公式节点(Formula Node) 5.7.2 文本编程语言的实现 基于公式节点的CRC16算法的实现
5.8 跟着实例学—模拟温度采集监测系统
小试身手 1. 利用顺序结构和timing面板下的tick count VI,计算for循环1000000次所需的时间。 2. 为第4章习题4添加一个While循环和定时器,实现连续的温度采集监测
小试身手 3、利用顺序结构和循环结构写一个跑马灯,如下图所示,5个灯从左到右不停的轮流点亮,闪烁间隔由滑动条调节
小试身手 4. 求分数序列 前20项之和。 5. 给出一百分制成绩,要求输出等级A,B,C,D,E。90分以上为A,80~89为B,70~79为C,60~69为D,60分以下为E。
小试身手 6. 利用事件结构实现在数字输入控件中,每当用户按下一个数字后,累加值就将新数字累加上去。例如按下34时,累加值为7;按下345时,累加值为12…
小试身手 7. 利用公式节点判断一个数是否是素数,我们可以采用这样的算法:用2~sqrt(N),依次去对N求余,只要有一个余数是0,则N就不是素数。