巢湖学院2014届本科毕业论文(设计)
2.2 原理流程图
产生时间信号 时间信号除以每个循环所需时间 Y X,<65 N 0<= x<30 北红,东绿 南北红, 东西绿, 灯亮 30<=x<35北红,东黄 南北红, 东西绿, 灯亮 35<=x<65 北绿,东红 南北绿, 东西红, 灯亮 65<=x<70 北黄,东红 南北绿, 东西红, 灯亮 是否按下停止键 Y 终止循环 N
3
基于LabVIEW的交通灯系统设计
三、交通灯系统的设计
3.1 前面板的设计
前面板是VI的用户界面。创建VI时,通常要先设计出前面板,然后在前面板上创建出输入/输出任务。
本课程设计中前面板需要用20盏灯、12个时间显示器、1个停止按键即可。其中十字路口的12盏灯,红、黄、绿各4盏,在控件选板中选择指示灯,将它放在前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小和颜色,做出一个合适的指示灯,依同样的步骤可以做好另外11个。三个分为一组,每组都包含红黄绿三种颜色的灯,再用框将每组灯框起来,做成一个交通灯。在每组交通灯合适的位置放置一个数值显示控件作为交通灯的计时器,同样的方法另做人行道的8盏灯和时间显示器。并在前面板合适的位置放置一个开关按钮,用于控制循环的停止。这样交通灯系统的前面板就做好了。交通灯前面板设计如下面图1所示。
[6]
[5]
[4]
图1交通灯前面板示意图
巢湖学院2014届本科毕业论文(设计)
3.2 定时信号的产生
毫秒计时器在LABVIEW中的一个计时单元。毫秒计数器对时间信号计数,要产生一个一秒为单位的时间信号,所以还得用毫秒计数值除以1000,取商得到以秒为单位的时间信号。
在函数选板的【编程】→【定时】子选板中选择时间计数器选定该单元其图标与接线如下图2.1、2.2、2.3所示。
[7]
。
图2.1 时间计数器 图2.2 得到时间信号的接线图 图2.3 商与余数
3.3 时间信号的分段
将所得的时间信号除以每个循环所用的时间70s,取其余数,得到的余数x的范围为0<=x<70。1、 当满足x<65时,执行条件结构里为真的程序。(当0<=x<30 时,条件成立,执行程序框图中第一个条件结构里面的程序,北红和东绿、南北红和东西绿灯点亮。当30<=x<35时,条件成立,执行框图中第二个条件结构里的程序,北红和东黄、南北红和东西绿灯点亮。当35<=x<65时,条件成立,北绿和东红、南北绿和东西红灯点亮。)2、当65<=x<70时,即x<65的条件不满足,执行条件结构里面为假的程序,北黄和东红、南北绿和东西红灯点亮。时间分段的程序框图如下图3.1所示。
图3.1 条件为真的各时间分段程序
5
基于LabVIEW的交通灯系统设计
这里用到了判定范围并强制转换控件,应用这个控件可以判定输入的数是否在上限和下限之间。它的图标和作用如下图3.2所示。如果输出信号在范围之内,“?” 接口会有一个信号,该信号恰可以输入到条件结构中作为该分支选择器信号
[8]
。
图3.2 规定范围并强制转换控件
3.4 程序中所用的结构
3.4.1 循环结构
LabVIEW中的循环结构主要通过while和for循环实现。这两种循环结构、语句、功能基本相同,但使用上会有些不同。for循环须先进行循环次数的确定,循环一定次数后自动不进行循环;而while循环则不用确定循环次数,只需要确定退出循环的条件
[9]
。
本次课程设计中不能预先确定循环的次数,所以就用到了while循环。while循环是LabVIEW最基本的结构之一,和C语言中的while循环和do?while循环相类似
[10]
。
While循环可以从程序框图中的【结构】子选板中创建,while循环包括两个端口:1、条件端口2、重复端口,如下图4.1所示。
本次课程设计中用停止按钮连接条件端口,当按下按钮时循环停止。 重复端口i 为 当前循环的次 数 条件端口输入的是布尔变量,它用于判断循环在什么条件下停止执行。当每次循环结束时,便会检测输入端接图4.1 whlie循环结构 收到的布尔值并判断是否继续执行循环。右击端口,选择【真(T)时停止】或【真(T)时继续】,可以切换 其使用状态。 重复端口 条件端口