1、 专业实践专业实践报告报告 课程名称: Labview 虚拟仪器技术 设计题目: 基于 labview 智能交通灯系统设计 专 业: 计算机科学与技术 1 课程设计题目 基于 labview 智能交通灯系统设计 课程设计目的及要求: 设计目的: (1)掌握 LabVIEW 软件编程方法; (2)培养综合应用所学知识来指导实践的能力。 设计要求: (1)能够将现实生活中的交通灯出现顺序在电脑上面显示; (2)具有友好的人机界面。 2 课程设计详细内容: 1. 前面板的设计 前面板是 VI 的用户界面。创建 VI 时,通常应先设计前面板,然后在前面板上创建输入 /输出任务。 本课程设计中的前面板是
2、模拟一个现实中简单的道路交通系统,交通灯的时间设置由用 户自己来定义,所以更人性化了一点。此次设计共需要用 12 盏灯、4 个 LED 灯倒计时和一个 控制设置面板。其中的 12 盏灯,红、黄、绿各 4 盏,在控件选板中选择指示灯,将它放在 前面板合适的位置,单击鼠标右键,更改指示灯的属性,改变指示灯的大小,做出一个合适 的指示灯,依同样的步骤可以做好另外 11 个,将 12 灯均分为四组,每组都包含红黄绿三种 颜色的灯, 再用框将每组灯框起来, 做成一个交通灯。 在每组交通灯合适的位置放置一个 LED 倒计时作为交通灯的计时器。在前面板合适的位置放置一个控制设置面板,在上面编辑一些 系统所需
3、要的控件, 包括一个输入控件, 一个枚举控件, 一个交通管制按钮和一个退出按钮。 前面板示意图如图 1-1 所示。 图 1-1 交通灯前面板示意图 2 程序框图的设计 2.1 延迟信号的产生 等待计时器在 LabVIEW 中的一个计时单元,它的图标与用途如图 3-2 所示。在函数选板 的【编程】【定时】子选板中选择时间计数器选定该单元。毫秒计数器对时间信号计数, 3 要产生一个一秒为单位的时间延迟信号,所以还得给毫秒计数值加上一个 1000 毫秒的的常 量。如图 1-2 等待计数器所示。 图 1-2 等待计数器 2.2 显示控件数字的同步 利用一个 For 循环, 将用户自己设置的倒计时时间时
4、间连接上 For 循环的的条件语句上, 即 N 接口,然后在加一些算法和时间延迟就做成了倒计时模块了。倒计时模块程序结构如图 1-3 所示。 图 1-3 倒计时模块程序结构 2.3 各组时间信号的动作 平铺结构是 labview 中的结构类型之一,平铺结构类似文本编辑语言中的顺序结构。平铺结 构可以从【结构】子选板中创建。它的图标及功能如图 1-4 所示。 图 1-4 平铺结构 4 在执行各平铺结构里的程序。每个平铺结构里的程序基本相同,只是有的多一些时间倒 计时模块。用需要点亮的灯与布尔真常量连接,不需要点亮的与布尔假常量连接,而时间显 示器则用一定的值减去输入的时间量,以实现倒计时的功能,
5、各结构里的程序略有不同,具 体程序如图 1-5 到图 1-8 所示。 第一阶段:首先是对各个灯的初始化。其初始化程序图如图 1-5 所示。 图 1-5 各个灯的初始化 第二阶段:南北红灯倒计时的设计程序。并且应用到了 LED 倒计时的子 VI,如图 1-6 所示。 5 图 1-6 南北红灯倒计时设置模块 第三阶段:当南北红灯倒计时结束后,东西绿灯灭掉,与此同时东西黄灯会闪烁三下以提 示正在行驶的车辆和行人,注意信号灯。东西黄灯闪烁框图如图 1-7 所示。 图 1-7 东西黄灯闪烁框图 第四阶段:当东西黄灯闪烁结束后,东西红灯开始变亮,南北绿灯变亮。如图 1-8 所示。 6 图 1-8 各个灯的
6、再次初始化 接下来的步骤和以上基本一致。 3.1 LED 倒计时的子 VI 的设计 制作 LED 倒计时时,首先要创建一个 10*7 的数组,然后再跟你所要显示的数字做一个数 组矩阵,我数组矩阵中从上到下每一行分别代表我做的 LED 的 0、1、2、 、 、 、9。我使用索引 数组查找数组中的每一行,然后输给显示控件。这次利用更为简便的程序,可以同时显示 99 以下的数字。当用户输入一个数值后,数值经过商与余数运算模块和常量 10 相除,求出的 结果分别输给索引数组的行输入接口,然后从数组中索引出对应的行,最后输给显示控件。 具体程序如图 1-9 所示,前面板显示如图 2-1 所示。 图 1-9 LED 倒计时子函数程序框图 7 图 2-1 登录界面界面 3.2 交通管制的设计 当要设置多个选项时,就要用到事件结构。事件结构相当于 c 语言中的 case 语句,事件 结构可以从程序框图中的【结构】子选板中创建。本次交通管制总共设置 5 个选择项,分别 是故障检修、东西禁行、南北禁行、三向禁行、夜晚模式。程序主要就是事件结构的选择, 里面的