版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、交通灯控制信号系统实验报告实验名称:交通灯控制信号系统实验小组成员:王清鹏,曾利忠,刘斌,江亮,谷永胜指导老师:艾云峰1. 功能描述(1)两组信号灯,一组控制南北方向,另一组控制东西方向。每组有3 盏信号灯,颜色分别为红、绿、黄。初始状态为全暗(定义为黑色 ) 。(2)从程序运行开始, 南北方向控制信号和东西方向控制信号同时工作。动作次序如下:南北方向控制信号动作:首先绿灯亮60 秒,并且从60 秒倒计时为0;然后红灯亮,倒计时显示60 秒,实际亮57 秒,接着黄灯亮3 秒。一个周期总共120 秒。东西方向控制信号动作:首先红灯亮,倒计时显示60 秒,实际亮57 秒,接着黄灯亮3 秒。最后绿灯
2、亮60 秒,从 60 秒倒计时为0。一个周期总共120 秒。(3)周而复始地进行步骤(2)(4)如果 触摸触摸屏 ,则清除所有信号灯(信号灯全变成黑色) 。延时 20 秒倒计时为0后( 20 秒内不再响应触摸屏中断) ,重新开始步骤(2) 。2. 界面说明(1)a. y 方向排列的3 个灯表示南北方向信号灯,依次为红灯,绿灯,黄灯。3 个灯下面为倒计时数字显示,数字颜色和信号灯颜色保持一致。b. x 方向排列的3 个灯表示东西方向信号灯,依次为红灯,绿灯,黄灯。3 个灯后面为倒计时数字显示,数字颜色和信号灯颜色保持一致。c. 信号灯为黑色表示不亮(2) 用手触摸触摸屏上任意位置都将导致中断,所
3、有信号灯变成黑色并持续20 秒,在此期间,不再响应触摸屏中断3. 程序处理流程以及任务的定义与实现该程序主要包括交通灯颜色循环变化控制模块和触摸屏中断服务模块,交通等颜色变化模块由 taskcontroller 任务, taskdraw_ns 任务和 taskdraw_ew 任务实现,触摸屏中断服务模块由触摸屏中断isradctsauto 任务和 taskreset任务实现。a交通灯颜色循环变化流程图color_ewnum_ewdatacolor_nsnum_nsdatapsem1semaphorepsem2semaphoretaskdraw_ewtasktaskdraw_nstasktask
4、controllertaskossempost()ossempost()ossempend()ossempend()taskcontroller 是程序的核心任务,其主要负责每秒的延时、颜色数据量(color_ns、color_ew )和数字数据量(num_ns 、num_ew )的改变以及释放信号量(psem1、psem2)通知 taskdraw_ns 和 taskdraw_ew 改变显示数据。数据 color_ns 和 num_ns 分别承载南北方向下一状态将要显示的交通灯颜色和倒计时的秒数。数据color_ew 和 num_ew 分别承载东西方向下一状态将要显示的交通灯颜色和倒计时的秒数
5、。信号量psem1和 psem2分别负责taskcontroller 与 taskdraw_ns 和taskdraw_ew 之间的通信。其工作过程可以简单地理解如下。taskcontroller 在经过 1s 的延时后,重新写入南北方向的颜色数据(color_ns )和倒计时数据(num_ns) ,然后释放信号量psem1来通知taskdraw_ns 。当 taskdraw_ns 收到通知后(即获得信号量psem1) ,其读取颜色数据(color_ns )和倒计时数据(num_ns )的值,然后改变输出交通灯的颜色和倒计时。taskresetisrpsem3ossempend()ossempo
6、st()taskcontrollertasktaskis_okis_resemaphoredatabtaskcontroller任务流程图is_ok=0?num=?is_re=1?is_re=1?is_re=1?is_re=1?color_ns=greencolor_ew=red164614otherscolor_ns=yellowcolor_ew=redcolor_ns=redcolor_ew=greencolor_ns=redcolor_ew=yellowis_re=1num=120num_ns=60num_ew=60num num_ns=3num_ew=3num-num_ns=60num
7、_ew=60num=-num_ns=3num_ew=3num=-如果 num60,则num_ns=num-60 num_ew=num-60 如果 num61,则num_ns=num num_ew=num ossempost(psem1)ossempost(psem2)ossempost(psem1)ossempost(psem2)ossempost(psem1)ossempost(psem2)ossempost(psem1)ossempost(psem2)ossempost(psem1)ossempost(psem2)延时1s延时 1s延时 1s延时1s延时1staskcontroller任务
8、yyyynnnnnum=1开始yn如下图,由于南北方向和东西方向的交通灯变化以120s 为一个周期,故taskcontroller用取值范围是0120 的num来控制交通灯颜色转变和倒计时秒数。is_ok是控制taskcontroller 是否应该正常执行的变量,is_re 用来控制是否在某一时刻开始taskcontroller须从头开始执行。taskcontroller 在 is_ok 和 is_re 条件满足情况下,在 120s的周期内, 各变量的变化情况如下图所示。num1201363东西方向color_ew南北方向color_nsgyrrgy倒计时num_ns num_ew601336
9、060611ctaskreset任务流程图开始获得信号量?清除南北方向信号灯清除东西方向信号灯is_ok=1延时 20s并显示倒计时is_ok=0is_re=0num=1taskreset任务该框图主要完成的功能是:在交通灯正常运行的情况下,如果按一下触摸屏,则清除所有信号灯。延时20 秒后,交通灯重新开始运行。图中, isr 为触摸屏中断服务程序。taskreset 为复位任务,该任务完成的功能就是在接收到中断后,清除所有信号灯,延时20s 后交通灯正常运行。信号量psem3负责 isr 与taskreset之间的通信。is_ok是taskcontroller正常执行的条件,is_re用于控
10、制taskcontroller是否从头开始执行。其工作过程可以简单地描述如下:当有触摸屏中断时,中断服务程序isr 释放信号量psem3 来通知taskreset 。当taskreset获得信号量psem3 后(即收到通知) ,首先破坏taskcontroller执行条件,然后清除所有信号灯,延时20s,最后恢复taskcontroller执行的条件。当执行到某时刻t 时,突然间产生中断。taskreset任务开始执行前使is_ok=1,执行完后将 is_ok 恢复为 0。即在 taskreset执行时, taskcontroller 的内容是不执行的。同时,在taskreset执行完后也使i
11、s_re 清零,num 置 1,这使得 taskcontroller 任务又从num=120 开始执行,即中断后,交通灯又从一个新的周期开始运行。4. 实验体会我们从开始设计到完成本实验总共花了5 天左右的时间, 时间耗费最多的就是调试阶段,因为我们小组人员比较多,大家意见和想法也就比较多,在遇到某个问题时提出的解决方法也就比较多, 对组员所提方法都进行一一验证自然耗时较多,不过, 这也有助于我们加深对实验的体会和理解。譬如说哪些地方要注意变量取值范围的限制,哪些地方要注意条件的约束,我们提出的问题的解决方案为什么不可以等等。特别的一点, 调试程序时应该针对所提示的错误一步一步修正,而不能急于
12、求成,妄图一蹴而就,那样反而事倍功半。通过本次实验,我们也体会到了团队合作的力量,俗话说“众人拾柴火焰高” ,我们实验得以顺利完成,与我们小组成员的密切合作是分不开的。5. 进一步改进方案与应用建议(1)改进:a.在本实验中,只涉及到2组方向的交通灯控制,即南北方向和东西方向,然而实际中,在十字路口我们经常会遇到左转指示灯,右转指示灯。若按照本实验的思想,则需增加12 个灯,东向西方向左转、右转,西向东方向左转、右转,南向北方向左转、右转,北向南方向左转、右转各3 个。另外,交通灯显示的控制时序也要相应发生改变。b.在本试验中,信号灯的循环周期为120s,这对于大多数路口都可以满足要求了。但如果某个十字路口其中某个方向车流量比较大,则可以使车流量大的方向绿灯显示时间变长,而减小另一个方向绿灯显示的时间;或者说如果某个十字路口路面很宽,60s 的时间可以通过的车辆就比较少,这样也需要增大信号灯的循环周期。 对于这个问题, 针对本实验程序, 可以将 num, num_ns, num_ew所对应的变化范围的节点值以外部变量来声明。c我们还可以为该程序增加一些中断功能,在现实生活中也有可能遇到,譬如说由于某些体育赛事占用路道,则一些方向的灯需要持续为绿色,其他方向灯需要持续
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026国网山西电力公司高校毕业生提前批招聘(约450人)笔试备考题库浓缩500题含答案详解(综合卷)
- 2026秋季国家管网集团油气调控中心高校毕业生招聘14人考试参考题库(浓缩500题)及参考答案详解(综合题)
- 2026国家管网集团北方管道公司秋季招聘考试参考试题(浓缩500题)含答案详解(综合卷)
- 2026秋季国家管网集团西部管道公司高校毕业生招聘考试备考试题(浓缩500题)及答案详解【夺冠】
- 国家管网集团湖南公司2026届秋季高校毕业生招聘考试备考试题(浓缩500题)含答案详解(培优)
- 2026国家管网集团广西公司秋季高校毕业生招聘考试参考试题(浓缩500题)含答案详解(综合题)
- 2026秋季国家管网集团甘肃公司高校毕业生招聘笔试参考题库(浓缩500题)附参考答案详解(典型题)
- 2026国家管网集团广西公司秋季高校毕业生招聘考试备考试题(浓缩500题)有完整答案详解
- 2026秋季国家管网集团云南公司高校毕业生招聘考试备考试题(浓缩500题)含答案详解(轻巧夺冠)
- 2025国网湖南省电力校园招聘(提前批)笔试模拟试题浓缩500题附答案详解(满分必刷)
- 十大医药代表成功经验分享
- 以工代赈项目技能培训方案
- PLC步进指令基础
- 高低压配电房维保服务方案
- 青少年毒品预防教育-小学版
- 答案-国开电大本科《当代中国政治制度》在线形考(形考任务一)试题
- 中级注册安全工程师考试题库附完整答案【夺冠】
- 礼修于心 仪养于行 课件-2023-2024学年高一上学期文明礼仪在心中养成教育主题班会
- 自用充电桩巡查记录表
- 国有企业领导干部选拔任用流程附操作要求及模板
- 电力系统经济学原理(全套课件)
评论
0/150
提交评论