基于FPGA的(带有紧急情况处理的)交通灯控制器的设计

2024-10-09

基于FPGA的(带有紧急情况处理的)交通灯控制器的设计(精选6篇)

基于FPGA的(带有紧急情况处理的)交通灯控制器的设计 篇1

编号:

EDA技术

实训(论文)说明书

题 目: 交通灯控制电路的设计 院(系): 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 指导教师:

2013年月日

桂林电子科技大学实训说明书用纸

摘要

EDA工具对于电子设计人员来说极其重要,它可以在电子设计的各个阶段、层次进行计算机模拟验证,确保设计的准确性,可缩短设计周期,降低设计成本。交通灯可以实现十字路口红绿灯的自动控制。基于FPGA的交通灯设计系统具有可靠性强、实时快速擦写、运算速度高、故障率低、电路简单,且体积小的特点。本设计采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。关键词:交通灯、EDA、FPGA

桂林电子科技大学实训说明书用纸

Abstract EDA tools for electronic design personnel is very important, it can be in the electronic design of each stage, levels of computer simulation verification, to ensure the accuracy of the design, can shorten the design cycle, reduce design cost.The traffic light can realize intersection traffic light automatic control.Based on the FPGA of traffic light design system has the reliability, real-time fast operation speed is high, integration.it, low failure rate, circuit is simple, and the characteristics of small volume.This design USES is Altera company CycloneII series of EP2C5T144 chip as the core minimum system, it can be convenient to the actual traffic lights embedded application system, can complete the simple logic control, data acquisition, signal processing, mathematical calculations, etc;Use QuartusII software as a development platform, Using the top-down design idea of system modular design and comprehensive, and through the waveform simulation and hardware realization two ways to realize and verify the function of the traffic lights.Key words: traffic lights;EDA;FPGA

桂林电子科技大学实训说明书用纸

引言

“EDA技术”是一门实践性和实用性都很强的课程,学习的目的在于应用。本设计实训是配合“EDA技术”课堂教学的一个重要的实践教学环节,在本课程设计指导书中列举了一些常用的小型设计系统,旨在起到巩固课堂和书本上所学知识,加强综合能力,提高系统设计水平,启发创新思想的效果。

1设计任务与要求

1.1本综合设计实训任务的内容和要求

① 用EDA实训仪上的4只八段数码管分别显示道路东西和南北通行和禁止的倒计时时间。

② 能设置道路东西和南北两侧通行和禁止的倒计时时间,最大设置时间为99秒,最小设置时间为1秒。

③ 交通灯用红、绿、黄三种发光二极管(LED)显示控制的结果。④ 红、绿、黄灯显示的次序应符合实际交通道路控制的要求。系统概述及设计原理

2.1 系统的主要功能

交通灯控制电路是用于城市交通疏导的管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题。在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯。交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。设计一个十字路口交通控制器,方向分为东南西北四个方向。东西方向的红绿灯状态一样,南北方向的红绿灯状态一样。每个方向上,有四盏灯,分别是左转灯、红灯、绿灯和黄灯。左拐灯亮表示左转车辆可以通行;红灯亮表示左转和直行车辆禁行;绿灯亮表示直行车辆和右转的车辆可以通行;黄灯亮表示左转和直行的车辆即将禁行。

本论文简要介绍了FPGA器件的特点和设计意义,以QuartusII软件为开发平台,通过VHDL硬件描述语言以及原理图的输入方式来设计交通灯。交通灯控制器用于自动控制十字路口交通灯和计时器。

系统的主要功能模块方框图如图2-1所示

桂林电子科技大学实训说明书用纸

图2-1 系统主要功能模块

2.2交通灯的设计原理

交通灯控制电路的原理框图如图1.3所示。其中,clkgen是分频器,将EDA实训仪主板提供的20MHz的主频经20000000分频后,得到电路所需的1Hz(秒)时钟。Cnt10de(两个)是十进制减法计数器,产生道路东西和南北通行和禁止的倒计时时间。Contr是控制电路,控制整个系统的工作。控制器接收倒计时的结果,当倒计时归0时,改变电路的控制模式,输出倒计时的初始时间和交通灯亮灭控制信号。

图2-2 交通灯控制电路的原理图 系统各个模块的的设计与仿真

3.1 分频器模块的设计

由于采用的FPGA芯片的时钟频率是50MHz,需要将其分频为1Hz。该模块即是实现50M的分频,将频率变为1Hz的脉冲波,从而得到周期为1s的脉冲波。如果要真正的实现分频50M,在仿真结果图中是很难观察的,甚至是没有办法验证的,故在仿真过程中,将分频的倍数变小,变为20分频,这样从图中可容易的得到并验证对时钟输入信号的20分频,如图3-1所示,Reset是复位信号,CLK_50MHz是输入时钟频率,CLK_1Hz是

桂林电子科技大学实训说明书用纸

输出时钟频率,从图中可以看出,输出频率CLK_1Hz确实是输入时钟频率CLK_50MHz的20分频。

图3-1 分频器仿真图

3.2 状态控制模块的设计

状态控制模块根据输入CLK_1Hz的脉冲信号输出不同的STATUS值,下游的模块依据STATUS的值来确定红绿灯的状态;于此同时对倒计时信号赋初值。在状态控制模块仿真图中,输入信号CLK是一个频率为1Hz的时钟脉冲信号,RESET是复位信号;输出信号STATUS是状态转换信号,控制着下游交通信号灯显示模块的显示情况;LOAD_EW、LOAD_SN是东西、南北方向倒计时开始控制信号,DJS_EW、DJS_SN是东西、南北方向倒计时间信号。其仿真结果图如图3-2所示,由图可得,STATUS共有000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6)共6个状态,80s为红灯和左转灯的倒计时间,45s为绿灯的倒计时间,5s是黄灯的倒计时间,和状态转换表的状态一致。

图3-2 状态控制模块仿真图

3.3 交通灯信号灯显示模块的设计

交通信号灯显示模块根据输入的STATUS信号,输出对应的红绿黄灯信号,并直接驱动交通信号灯的亮灭。在交通灯信号灯显示模块程序仿真结果图中,STATUS为输入信号,而它依赖于状态控制模块产生的信号STATUS信号,一种六种状态,依次为000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6);EW_LRGY(8位)是东西方向上交通信号灯的状态,SN_LRGY(8位)是南北方向上交通信号灯的状态,依次为左转、红、绿、黄,对应着EW_LRGY、SN_LRGY的前四位,‘1’表示点亮,‘0’表示熄灭,后四位均为0,表示四个灯的阴极接负极。例如,在STATUS为001时,对应的是东西方向红灯亮,南北方向绿灯亮,仿真结果符合预期,完全正确。其仿真图如3-3所示:

图3-3 信号灯显示模块仿真图

桂林电子科技大学实训说明书用纸

3.4东西方向倒计时模块设计

东西方向倒计时模块用来接收状态控制模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。在该模块仿真图中,CLK为1Hz的输入信号,LOAD_EW为计数器的装载信号,当其为高电平时,将输入信号DJS_EW_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3-4所示,由图可得,该模块首先将80秒的倒计时信号装载进去,并进行减一操作。

图3-4 东西方向倒计时仿真图

3.5 南北方向倒计时模块设计

南北方向倒计时模块用来接收状态控制模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。在该模块仿真图中,CLK为1Hz的输入信号,LOAD_SN为计数器的装载信号,当其为高电平时,将输入信号DJS_SN_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3-5所示,由图可得,该模块将45秒的倒计时信号装载进去,并进行减一操作。

图3-5南北方向倒计时仿真图

3.6 译码模块设计

译码模块程序用来将输入的两位倒计时数值,分解成两个整形数值,以此供后面的译码显示模块译码显示。在译码程序TO_8421_BCD模块仿真图中,DJS_EW_OUT,DJS_SN_OUT为上一倒计时模块的输出信号,其范围在0~80,所有倒计时的范围都包含其内;DJS_EW_OUT_SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW为输出信号,其范围为0~9,代表了各个方向的倒计时的十位和个位,且数码管所有显示数字的范围均在其内。例如图中DJS_EW_OUT的值不断变化,相应的依次将其分解为十位(DJS_EW_OUT_SW)和个位(DJS_EW_OUT_GW),并依次递减,仿真结果符合预期,完全正确。仿真结果如图3-6所示:

桂林电子科技大学实训说明书用纸

图3-6 译码仿真结果图

3.7 译码显示模块设计

译码显示模块将上一模块译码模块输出的四个一位数译码成相对应的七位数码管段码,完成倒计时的译码和显示。在译码显示模块仿真图中,DJS_ EW_OUT_ SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW是四位的输入信号,也是上一模块TO_8421_BCD的输出信号,它们的范围为数字0~9,DJS_EW_ OUT_SW1,DJS_ EW_ OUT_GW1,DJS_SN_OUT_SW1,DJS_SN_OUT_GW1对应的是相应的七位数码管显示段码的值。图中输出信号的值随着输入信号的变化而相应的变化,例如DJS_EW_OUT_SW为7,DJS_EW_OUT_GW为5时,DJS_EW_OUT_SW1为00000111(a、b、c、d、e、f、g依次对应着1110000,最高位的0表示是数码管的类型是共阴的),表示数码管显示7,DJS_EW_OUT_GW1为01101101,表示数码管显示5。仿真完全正确,符合预期。其仿真结果如图3-7所示:

图3-7 译码显示模块仿真图

3.8 顶层文件模块设计

顶层设计采用VHDL语言描述方式实现,并在工程文件仿真过后通过工具菜单自动生成原理图文件,从而是设计原理更加清晰明朗。

在顶层设计VHDL描述中,共包含7个元件,分别是:

1、分频器模块,2、状态控制模块,3、交通信号灯显示模块,4、东西方向倒计时模块设计,5、南北方向倒计时模块设计,6、译码模块设计,7、译码显示模块设计。这7个模块经过程序设计、编译仿真,结果均能够达到设计要求。最后在顶层设计中,通过元件例化语句将这7个模块连接起来,生成顶层文件。在顶层设计中,RESET是复位信号,输入的时钟频率CLK是50MHz,经过分频50M的分频器后,变为频率为1Hz的时钟信号,周期为1s,用此时钟信号来控制整个系统的步调,与现实生活中交通灯的步调保持一致。EW_LRGY、SN_LRGY分别为东西和南北方向上交通信号灯的状态,EW_DJS_DISPLAY、SN_DJS_DISPLAY为东西

桂林电子科技大学实训说明书用纸

和南北方向红绿灯倒计时间。另外,所有的数码管和二极管均为共阴极显示。例如,在EW_LRGY为01000000(即东西方向红灯亮)、SN_LRGY为10000000(即南北方向左转灯亮)时,EW_DJS_DISPLAY的前八位表示倒计时的十位,后八位表示倒计时的个位;图中EW_DJS_DISPLAY的前八位都是00000111表示7,后八位01111101表示6,后八位01101101表示5,后八位01100110表示4;SN_DJS_DISPLAY的前八位是01001111表示3,后八位01011011表示2,后八位00000110表示1,后八位00111111表示0,以上表明红绿灯和倒计时时间显示符合预期。仿真结果如图3-8所示:

图3-8 顶层文件波形仿真图 实训心得体会

本次EDA技术实训的交通灯采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证交通灯的功能。为期两周的实训,我利用网络和图书馆的有效资源,搜集并下载了大量的关于用FPGA做交通灯设计的资料;然后精心阅读,在老师的指导督促下,并和周围同学进行有效学习和沟通,最终确定了自己的设计方案;最后按照既定的设计方案,通过努力有步骤的实现了交通灯的设计。

通过此次实训设计,让我加深了FPGA的理解,更加熟练了VHDL语言,同时,我深深体会到了通过FPGA设计数字电路的方便、简洁的特点,这让我相信未来数字电路的应用必将更加广泛。另外,我还体会到:从事开发设计工作,一定要保持个勤奋、踏实、严谨的工作态度,这样才能更好的完成工作。最后,我觉得在交通灯控制系统设计中还可以增加一些实用功能,如:

1、针对弱视或色盲人群进行声音提示;

2、在遇到突发状况时,可以将红绿灯改为紧急模式控制;

3、当有119、120等特种车辆通过时,系统可转为特种车放行,其他车辆禁行。

但是这次实训我也发现自己的很多不足之处。在设计过程中我发现自己考虑问题很不全面,自己的专业知识掌握的很不牢靠,所掌握的编程语句还不够,很多程序都看不懂,我希望自己的这些不足之处能在今后的工作和学习中得到改善。而且,通过这次实训,我懂得了学习的重要性,学会了坚持和努力,这将为以后的学习做出了最好的榜样!

桂林电子科技大学实训说明书用纸

还有光有知识是不行的,还得有能力、有技术,单干也是不行的,要适当寻求合作,那样才能更好实现我们的价值。在实训中及社会上,我们都要懂得虚心地向别人学习,即使你觉得自己很厉害,但总有一些东西你是不懂的,所以不懂要多向别人请教,这样才能更好地提高自己的水平和能力,全面发展自己。

桂林电子科技大学实训说明书用纸

谢 辞

在这短短的两周EDA实训中,在这期间同学们都在努力学习,认真做自己各自的实训。在此我要特别感谢各位指导老师们对我的指导,还有各位同学对我的帮助,尤其感谢老师在百忙之中抽出时间为我们讲解设计原理,同时,还要感谢和我一起努力的各位同学,在他们对我的帮助很我自己的努力下,我才能顺利地完成这次实训。

这次实训我受匪颇多,但这多是得益于老师无微不至的关心和细心的教导。在实训中,让我学到了不少知识,给了我一次复习学过的知识的机会,巩固了基础知识。也多亏同学们的无私的帮助和支持,在我无助的时候还是他们伸出他们的友爱之手,帮我渡过难关,在此我也真心的多谢他们默默的帮助。最后再次对老师们说声:谢谢!

桂林电子科技大学实训说明书用纸

参考文献

[1] 潘松,黄继业.EDA技术实用教程(第三版).北京:科学出版社,2010.1 [2] 刘江海,涂传威,陈玮.EDA技术课程设计.武汉:华中科技大学出版社,2009.5 [3] 夏路易.基于EDA的电子技术课程设计.北京:电子工业出版社,2009.1 [4] 王金明,周顺.数字系统设计与VHDL.北京:电子工业出版社,2010.5 [5] 邹彦,庄严,邹宁.EDA技术与数字系统设计.北京:电子工业出版社,2007.4 [6] 林明权,马维旻.VHDL数字控制系统设计范例.北京:电子工业出版社,2003.1

基于FPGA的(带有紧急情况处理的)交通灯控制器的设计 篇2

城市交通系统由人、车、路组成, 具有结构复杂、因素多、开发性强、随机以及不稳定因素多等特点, 如果采用传统的交通规划方法和管制系统应用数学分析的方法对交通预案进行评价, 将不会适用。但是微观交通仿真分析方法可以细致地描述各个交通实体之间的差异、再现交通流时空变化, 为交通道路设计规划提供技术依据, 而且可以对各种参数进行比较和评价, 以及对环境影响进行评价。因此, 若采用适合各种类型紧急事件处理预案特征的微观仿真分析方法, 通过对预案的可视化仿真分析, 研究不同紧急事件处理预案在不同交通状况下的实施效果, 可以为预案的研究提供更直观的依据;同时, 基于对预案的仿真分析, 依据交通事件处理的评估方法, 针对复杂交通环境, 提出预案的评估指标及评估方法, 也可以为建立科学、规范、高效的紧急事件处理预案库提供决策支持。

1 平台总体结构设计

系统整体结构如图1所示。

1.1 仿真预案组织与建立模块

该模块提供结构化预案到待仿真预案之间的转换 (目前主要由用户手动进行建立) , 提供包括预案所属路网导入、交通灯设置、紧急事件设置、诱导牌设置、OD输入、车辆生成点设置, 以及一切仿真所需的仿真模型的输入配置。如图2所示。

1.2 评估模块

评估模块负责紧急事件与预案的管理, 包括评估的建立、预案与待仿真预案之间的关联、评估指标的输入、评估指标权重的调整、对仿真模块的调度、根据仿真数据对预案进行评估、并以图表的方式直观地给出评价的结果。

1.3 仿真模块

受评估模块的调度, 负责对待仿真预案文件进行运行仿真, 并且根据评估的需求, 记录并输出整个仿真过程当中的仿真数据, 这些数据被评估模块用于评估预案的优良。如图3所示。

2 仿真平台关键技术的研究

2.1 序列化与反序列化技术

所谓序列化就是把将程序数据转化成能被存储并传输的格式的过程, 而它的逆过程则可被称为“反序列化”。

由于考虑到路网模型可能会非常的庞大, 如果使用关系数据库保存模型数据可能会影响仿真的性能, 所以在ESAS中, 模型数据连同预案信息一律被保存到一种被称谓可仿真预案文件当中。

因为系统是基于.NET框架的, 而.NET框架对序列化机制具有非常好的支持, 它提供了两个命名空间:System.Runtime.Serialization和System.Runtime.Serialization. Formatters以完成序列化机制的大部分功能, 所以在系统中, 只编写了很少量的代码, 就完成了序列化的功能。

1) 序列化和反序列化的格式选择

在.NET框架中, 序列化机制的实现是依靠格式器而完成的, 它是一个从System.Runtime.Serialization. IFormatter继承下来的类的对象。格式器完成了将程序数据转化到能被存储并传输的格式的工作, 同时也完成了将数据转化回来的工作。.NET框架为程序员提供了两种类型的格式器, 一种通常是应用于桌面类型的应用程序的, 它一个是System.Runtime.Serialization.Formatters.Binary.BinaryFormatter类的对象, 提供了程序数据转换成二进制数据的功能。而另一种则更主要的应用于.Net Remoting和XML Web服务等领域的, 它一个是System.Runtime.Serialization.Formatters.Soap. SoapFormatter类的对象, 提供了内存数据至xml数据格式的转换。以不同的数据格式来存储程序数据, 各有其优点。

2) 二进制序列化的优点

· 所有的类成员 (包括只读的) 都可以被序列化;

· 性能非常好。

3) XML序列化的优点

· 互操作性好;

· 不需要严格的二进制依赖;

· 可读性强。

在仿真系统中, 由于需要仿真的区域相当的庞大, 模型的数据量很多, 并且需要快速地把模型数据载入到内存中进行仿真, 所以对比二种格式, 前一种即以二进制格式进行序列化和反序列化更加符合本系统的要求。

4) 序列化和反序列化的方式选择

在.NET框架中, 因为类库当中提供了两种方式的序列化:一种为基本序列化、另一种为自定义序列化, 故程序员需作出选择。

5) 基本序列化方式

在基本序列化方式下, 若想让一个类的对象可以被序列化, 只需将类标记上[Serializable () ]属性。同时你还可以控制其中的某些字段不被序列化, 方法就是将该字段标记上[NonSerialized () ]属性。剩下的工作将由.NET框架自动为我们完成, 程序员不必去管它内部是如何具体实现的, .NET框架自会将该类的对象转化为所需的格式。基本序列化虽然实现简单, 但是对程序员来说其控制性比较差, 即使用者无法参与到具体的序列化过程。

6) 自定义序列化方式

在自定义序列化方法当中, 类库使用者通过实现System.Runtime.Serialization.Iserializable接口, 来对序列化和反序列化的具体过程进行控制。通过使用这种方式, 程序员可以完全地控制类的哪些部分能被序列化而哪些部分不能, 同时你还可以控制如何具体的进行序列化。运用该方式的好处就是能克服基本序列化所会遇到的问题。

在ESAS仿真与评估系统的开发过程当中, 由于系统的需求一直在发生变化, 需要序列化的类的字段也在不停地做修改, 所以为了能够让程序兼容原有的预案文件和新建的预案文件, 必须采用自定义的方式对具体的序列化和反序列化进行控制。

2.2 双缓冲技术

仿真可视化是通过在屏幕上按某一个时间间隔重绘所有交通元素来实现的, 如果这个时间间隔设置得很短, 那么仿真动画也更加连贯, 动画也就更加逼真, 但是会消耗更多CPU的处理周期。在绘图的过程当中, Windows是通过先清除背景, 再通过对应的Paint () 函数来实现真正绘画的, 故如果绘制一次图像需要很长时间, 那么清除背景和绘制图像之间的时间间隔就会让用户感觉屏幕在闪烁。

通过使用双缓冲, 即可以加快每次的图像绘制过程, 也可以减少屏幕闪烁, 增强了用户体验。

双缓冲的实现原理为:在内存中开辟一块虚拟画布, 然后将所有需要画的图形先画在这块“虚拟画布”上, 最后再一次性将整块虚拟画布画到真正的窗体上。由于在虚拟画布上绘制图像并不是真正地调用显示系统来“画”的, 所以不会占用显示系统的开销, 极大地提高了绘图效率。

3 仿真引擎的设计与实现

仿真引擎是整个仿真模块的核心, 它与仿真模块各种模型的关系就如同与操作系统的进程调度管理器与正运行的进程一样。当仿真启动以后, 引擎按照仿真算法, 即按照一定的顺序遍历整个系统中的动态元素, 如车辆、车辆生成点、诱导牌、交通灯、紧急事故, 使得它们能够在当前仿真时间点上处理自身的逻辑, 改变自身的状态。

在系统当中, 由于实际需要, 仿真被分为可视化仿真和算法仿真, 因为两种仿真引擎驱动的方式不同, 故在设计和实现上也稍有不同。

3.1 用于可视化仿真的引擎

可视化仿真需要实时显示交通模型, 所以引擎需要按一定的时间间隔去遍历系统中的动态元素, 同时也按照一定的时间间隔去更新仿真可视化界面。

在实际设计过程中, 由于.NET平台中的System.Windows.Forms.Timer是应用于WinForm中的, 是通过Windows消息机制实现的, 类似于VB或 Delphi中的Timer控件, 并且其内部是使用SetTimer实现的, 故可被用来定时更新仿真可视化界面。而System.Timers.Timer 和System.Threading.Timer非常类似, 它们是通过.NET平台中的线程池实现的, 轻量、计时精确, 故被用于遍历系统中的动态交通元素。

仿真开始以后, SimEngineVis对象中的PaintTimer和TraverseTimer根据事先设置好的间隔时间, 分别执行UpdatePanel函数和TraverseTrafficItems函数来遍历动态交通元素并更新仿真显示界面。引擎类图及工作流程如图4、图5所示。

3.2 用于算法仿真的引擎

由于算法仿真在整个仿真过程并不需要可视化界面, 只需处理所有动态交通元素的逻辑即可, 而动画绘制占用了比较多的CPU的处理周期, 所以相比可视化仿真, 算法仿真的速度有很大的提高。

算法仿真引擎由于不需要时间来驱动, 故单线程循环即可完成。假设某次仿真时间为T秒, 仿真精度为N次/秒。算法引擎的关键算法可由如下伪代码表示:

4 系统实现

系统主界面如图6所示。

针对具体的事故与预案, 实施仿真与评估的过程如下:

(1) 利用预案创建系统导入仿真区域内的相关路网, 根据事故信息, 将事故加入到预案文件当中, 并根据预案信息添加必要的诱导盘、匝道信号灯交通对象, 设置相应的属性。

(2) 设置好整个路网的O、D、车辆生成点信息。

(3) 根据以后的历史出行数据, 导入OD矩阵。

(4) 保存预案文件, 即完成结构化预案至仿真预案之间映射。

(5) 在仿真与评估系统中, 以事件为一组, 对同一事件发生后, 不同的预案进行仿真 (无预案) , 给出评估结果。

以以下交通事件为例, 分别制定了两个预案, 通过将预案以及无预案的交通状况进行比较, 为事件的处理提供科学的依据, 事件描述如下:

事件发生地点:高架路地面某路交叉口上方位置西—东走向。

事件发生时间:上午10点。

事件类型:两客车碰撞, 一辆侧翻, 10人伤。

事件交通影响:西—东向车道堵塞2根车道, 车辆排队120米, 周围主干道交通流中等。

现场处置时间:20分钟。

专线巴士:发车频率10min。

预案1描述:

(1) 最近的上匝道关闭;

(2) 诱导信息提供 (高架事件, 匝道关闭) ;

(3) 地面道路西—东方向关键路口绿灯延长20s;

(4) 专线巴士更改路径走地面, 由隧道进入园区。

预案2描述:

(1) 最近的上匝道关闭;

(2) 诱导信息提供 (高架事件, 匝道关闭) ;

(3) 地面道路西—东方向、某路西—东方向关键路口绿灯延长20s;

(4) 专线巴士更改路径走其他路进入南北高架, 过桥进入园区。

仿真进行界面如图7所示。通过仿真, 得出评估结果如表1所示。

由上述表1中仿真结果数据可以得出, 由于事故发生以后, 二个预案都关闭了某路上匝道, 故只有一个车源点发出的车能进入事故区域, 排队长度和消散时间与无预案相比都有不同程度的提高。由于没有采取任何措施, 无预案时专线车全被堵塞在事故道路上, 只有等到事故处理完毕再得以继续前进, 所以行程时间较长。而预案一和预案二相比, 预案一中专线车的行程更短。

5 结 论

通过对交通事件处理预案的微观仿真系统的设计和实现技术的研究和实现, 使系统可以适用于不同类型的交通事件处理预案的仿真。此系统已经应用于某市综合交通信息平台, 取得了良好的用户反馈。为了使系统的仿真和评估结果可以更加真实地反映交通状况, 在仿真模型和仿真条件方面还需要进一步深入研究。

摘要:以综合交通紧急事件处理预案库为研究基础, 结合综合交通紧急事件管理系统的研发目标, 采用适合各种类型紧急事件处理预案特征的微观仿真分析方法。通过对预案的可视化仿真分析, 研究不同紧急事件处理预案在不同交通状况下的实施效果, 为预案的研究提供更直观的依据。

关键词:微观交通仿真,最优路径选择算法,车辆行为模型

参考文献

[1]周明, 胡斌.计算机仿真原理及其应用.华中科技大学, 2005.

[2]邹智军, 杨东援.城市交通仿真实验系统的面向对象开发[J].系统仿真学报, 2002 (7) .

[3]樊颖玮.城市交通微观仿真系统核心模块的分析与设计[D].北京:北方交通大学, 2007.

[4]张涛.城市混合交通仿真中交通路网建模研究[D].杭州:浙江大学, 2006.

[5]邹智军, 杨东援.微观交通仿真中的车道变换模型[J].中国公路学报, 2002 (4) .

[6]侯志辉, 张春.交通系统计算机仿真研究综述[J].北方交通, 2007 (4) .

[7]张立东, 王英龙, 贾磊.交通仿真研究现状分析[J].计算机仿真, 2006 (6) .

[8]Qi Yang.A Simulation Laboratory for Dynamic Traffic Management Sys-tems.PhD thesis, Massachusetts Inst.of Tech.Cambridge, 1997.

基于FPGA的(带有紧急情况处理的)交通灯控制器的设计 篇3

落实情况及自检情况汇报

集团公司安监局:

接到集团公司传真电文《关于切实做好当前交通安全工作的紧急通知》后,我公司对此十分重视,立即组织召开由生产副总经理张金生同志主持,生产调度室、董事会办公室、安全监察部等有关部门负责人和人员参加的会议,对通知精神进行了认真的贯彻和学习。各有关单位在学习的基础上,认真组织本单位职工对通知精神进行学习,并结合本部门工作实际,制定了一系列针对本部门的措施和办法。公司在学习紧急通知精神的基础上,认真对我公司的交通安全工作进行了自检。现将自检情况汇报如下:

一、组织专业人员对车辆性能、使用状况等进行了一次全面的隐患排查。经排查,我公司的车辆状况基本完好,对发现的隐患和问题,及时落实责任人、责任时间、责任单位,进行认真的整改。

二、通过对场内机动车辆以及管理制度进行检查,我公司的场内机动车辆全部保持了完好。并坚持定岗定责,安全责任制、岗位责任制、叉车管理制度、叉车维修保养制度等各项管理制度健全完善。叉车司机全部由泰安市质量技术监督局进行了培训,全部做到了持证上岗。对无场内机动车辆驾驶资格证书驾驶叉车的,一律按严重三违处理。目前已杜绝了这一现象的发生。

通过自检,我公司的车辆状况基本保持了完好。各项管理制度

比较健全和完善,对车辆的管理比较严格。特别是对场内机动车辆,管理比较正规,维修保养比较及时有效。

山东索力得焊材有限公司

项目紧急情况处理应急预案 篇4

为预防潜在的事故,处理可能发生的紧急情况,做好事故应急准备以便发生紧急情况和突发事件时,能及时有效的采取应急控制,正确有效的实施响应,最大限度地预防和减少可能造成的疾病、伤害、损失和环境、职业卫生影响,特定本预案。

二、范围

本预案适用与本工程施工现场及生活区内所有可能发生的人身伤亡事故。重大的设备事故、火灾、环境影响、传染性疾病及其他自然灾害的应急准备与响应控制。

三、潜在的紧急情况和突发事件,如下几项

1、火灾、爆炸事故。

2、现场人员意外伤害事件。

3、重大的设备事故。

4、有毒、有害物意外泄漏事故。

5、饮食卫生意外事件。

6、传染性疾病。

7、环境破坏、污染事件。

当发生以上几项事件时,应根据发生事件的严重情况,决定是否启动本方案。启动的标准根据政府的有关文件,公司的有关应急规定。

四、应急准备

1、应急领导小组成员 组

长:卢

军 副组长:熊善甫

吴永全

员:韩三喜

王汉章

王华彻

吴喜堂

叶德武

2、成员职责分工:

军:应急事件处理总指挥,负责资金落实到位。熊善甫:应急事件控制总负责,协调、指挥项目部各应急组和班组长,控制应急事件的继续、蔓延,应在事件现场指挥

韩三喜:应急事件联络组负责;联系外部相关部门(有关的政府职能部门以及其它协作单位)、报警、联络。

吴永全:应急事件抢险、保护组负责,组织人员抢救、协调疏散工作,保护现场。

王汉章:应急事件救护负责;及时组织救治及护送受伤人员到医疗急救中心医治。

王华彻:应急事件调查组负责,事故原因调查、分析发生事故原因,提出处理意见,编制针对性的预防措施并监督实施。

吴喜堂:组织抢救物资、机械、车辆,按照预案的要预备必须的物品,事故善后处理,后勤保障服务工作。

叶德武:事故报告、处理意见记录及相关资料整理、收集工作。各班组长:听从管理人员安排,实施具体的分工工作,组织班组人员实施现场的抢救、抢险、事故现场保护工作。

3、应急指挥中心地点及应急电话:(1)指挥中心地点:(2)应急电话:

指挥中心电话:

24小时联络电话:

常用急救电话:

火警:119

匪警:110 医疗急救:120 领导小组成员电话: 组长: 副组长: 组员:

4、应急处理程序及措施 应急处理急救车辆最近医院

1)事故发生后,事故现场应急专业 应立即开展工作,及时发出报警信号,互相帮助,积极组织自救。在事故现场及存在危险物质的重大危险源内外,采取紧急急救措施,特别是突发事件发生初期能采取各种紧急措施,如断电、组织撤离、救助伤员、现场保护等;及时向项目安全小组领导报告,必要时向相邻可依靠力量求救,事故现场内外人员应积极参加援救。

2)事故现场有项目安全小组领导小组组长任现场总指挥,全面负责事故的控制,处理工作。项目安全领导小组组长接到报警后,应立即赶赴现场,不能及时赶赴现场的,必须委派一名安全小组人员或事故现场管理人员,及时启动应急系统,控制事态发展。3)各应急专业人员,要接受项目安全领导小组的统一调配,立即按照个字岗位职责采取措施,开展工作。

事故现场抢险组:根据事故特点,采用相应的应急救援物资、设备开展事故开展事故现场的紧急抢救工作,抢险过程中首先要注重人员的救援,事故现场的易燃易爆物品的转移等,其次是贵重物品设备的抢救,随时与项目部安全领导小组、保护组、救护组、通讯组保持联系。

事故现场救护组:应开展保护事故现场,人员的疏散及清点工作,现场保护组人员应指引无交关人员撤离到安全地方,指定专人记录所有到达安全区的人员,并根据现场员工名单、各宿舍人员登记表,进行核实,判断是否有被困人员,随时与项目安全领导小组保持联系。

事故现场通讯组:应保证现场内与其相关部门及应急救援机构的通讯畅通,随时与项目部安全领导小组、抢救组、救护组保持联系。

项目安全领导小组接到报告后,应立即向上级安全领导小组报告,对发生的工伤、损失在10000元以上的重大机械设备事故,必须及时向公司安全生产领导小组报告,报告内容包括发生事故单位、时间、地点,伤者人数、姓名、性别、年龄、受伤程度、事故简要过程和发生事故的初步原因。不得以任何借口隐瞒不报、谎报、拖报、随时接受上级安全领导机构的指令。

项目安全领导小组,根据事故程度确定,工程施工的停运,对危险源现场实施交通管制,并提防相应事故造成的伤害,根据事故现场的报告,立即判断是否需要应急服务机构的帮助,确需要应急机构的帮助时,应立即与应急机构和相邻的可依靠力量求救,同时在应急服务机构到来前,作好久远准备工作。在应急服务机构到来前,积极作好配合工作。

事后,要及时组织恢复受事故影响区域的正常秩序,根据有关规定及上级指令,确定是否恢复生产,同时要积极配合上级安全领导小组及政府安全监督管理部门进行事故调查及处理工作。

武汉中城投资有限公司

汉口新城堤角小区工程

部2007、11、28

项目紧急情况处理

吴家山市场物业管理有限公司

工程项目部

基于单片机的交通灯控制系统设计 篇5

摘要:十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制嚣,实现了能根据实际车流量通过8051芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮。倒计时剩5秒时黄灯闪烁警示;车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。

关键词:单片机;交通灯

单片机技术的发展对社会进步产生了巨大的影响。今天,单片机及其应用技术的发展速度、深度及其广度,在国防、科学研究、政治经济、教育文化等方面几乎无所不及。将之用于交通灯控制系统设计,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1、单片机涵义

一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入,输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就际=缸单片(单芯片)机,单片机即微控制器(Microniroller μC)有一些单片机中除了上述部份外,还集成了其它部份如AID,DIA,定时计数器,RTC,各种串行接口等。

2、MSC-51芯片简介

2.1 MSC-51结构

8051是MCS-51系列单片机的典型产品,8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时,计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

2.2 8255芯片简介

8255可编程并行接口芯片有三个输入输出端口,即A口、B口和c口,对应于引脚PAT—PA0、PB7-PB0和PC7-PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。c口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。

8255有两种控制命令字;一个是方式选择控制字;另一个是c口按位置位/复位控制字。

2.3 74LS373简介

SN74LS373。SN74LS374常用的8d锁存器。常用作地址锁存和I/0输出,可以用74he373代换,74H373是高速CMOS器件,功能与74LS373相同,两者可以互换。74LS373内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚c或EN;1脚OUT、CONT、OE)控制。当OE接地时,若G为高电平,741Ls373接收由PPU输出的地址信号;如果G为低电平,则将地址信号锁存。

3、系统硬件

3.1 交通管理的方案论证 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行。绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两千道的公共停车时问。设东西道比南北道的车流量。

3.2 系统硬件设计

选用设备8031单片机一片选用设备:8031弹片机一片,8255并行通用接口芯片一片,74LS07两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805三端稳压电源一个,红、黄、绿交通灯各两个。开关键盘、连线若干。

4、控制器的软件设计

4.1 每秒钟的设定

延时方法可以有两种:一种是利用NCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。

4.2 计数器硬件延时

4.2.1 初值计算

定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值设定为c和计数初值设定为TC。

4.2.2 1秒的方法

我们采用在主程序中设定一个初值为20的软件计数器和使TO定时5O毫秒,这样每当TO到50毫秒时cPu就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,cPu先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。

4.3 计数器软件延时

MCS-51的工作频率为2-12MHZ,我们选用的8031单片机的工作频率为6MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/6M)=2us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。

4.4 时间及信号灯的显示

4.4.1 8051并行口的扩展

8051虽然有4个8位I/0端口,但真正能提供借用的只有Pl口。因为P2和P0口通常用于传送外部传送地址和数据,P3口也有它的第二功能。因此,8031通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/0端口,显然8031的端口是不够,需要扩展。

扩展的方法有两种:(1)借用外部RAM地址来扩展I/0端口;(2)采用I/0接口新片来扩充。我们用8255并行接口信片来扩展I/0端口。

4.4.2 8255与8051的连接

用8051的PO口的pO.7连接8255的片选信号,我们用8031的地址采用全译码方式,当pO.7:0时片选有效,其他无效,pO.1用于选择8255端口。

5、结 论

本系统就是充分利用了8051和8255芯片的I/O引脚。系统统采用MSC-51系列单片机Intel8051和可编程并行I/0接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8031芯片的Pl口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。

参考文献:

[1]张毅刚,新编MCS-51单片机应用系统设计[M]哈尔滨:哈尔滨工业大学出版社,2006

[2]王义军,单片机原理及应用习题与实验指导书[M],北京:中国电力出版社,2006

基于FPGA的(带有紧急情况处理的)交通灯控制器的设计 篇6

作品设计、发明的目的和基本思路

随着我国经济的高速发展,人们对各种交通车辆的需求量不断增大,城市的交通拥护问题日益严重,目前,大部分城市的十字路口的交通控制灯,通常的做法是:事先经过车辆流量的调查,利用传统的方法设计好红绿灯的延时,然而,实际上的车流量是不断变化的,有的路口在不同的时间段车流量的大小甚至有很大的差异,所以说,统计的方法己不能适应迅速发展的交通现状。

目前,国内的交通灯一般设在十字路门,在醒目位置用红、绿、黄三种颜色的指示灯。加上一个倒计时的显示计时器来控制行车。对于一般情况下的安全行车,车辆分流尚能发挥作用,但根据实际行车过程中出现的情况,还存在以下缺点:1.两车道的车辆轮流放行时间相同且固定,在十字路口,经常一个车道为主干道,车辆较多,放行时间应该长些;另一车道为副干道,车辆较少,放行时间应该短些。2.没有考虑紧急车通过时,两车道应采取的措施,臂如,消防车执行紧急任务通过时,两车道的车都应停止,让紧急车通过。

本系统是以AT89C51单片机作为控制系统的核心,模拟定周期交通信号灯的工作状态。并采用PROTEUS进行仿真,仿真结果满足预期性能要求。

设计内容和要求:

利用AT89C51单片机设计一十字路口交通灯控制系统。

1:系统由单片机系统、数码管显示、交通灯演示系统组成。2:具有人行道、左转、右转,以及基本的交通灯的功能。3:具有数码管倒计时功能。

4:要求甲乙车道的车辆交替运行,每次通行为60秒。为绿灯的车道先显示40秒的直行,再显示20秒的左行。

5:要求黄灯先亮四秒,才能变换车道,黄灯亮时要求闪亮。

硬件设计

控制流程分析:

(1)从十字路口交通灯示意图1分析可知:东西、南北方向信号灯控制是中心对称的,即无论是主干道还是支干道两侧系统对同方向的信号灯控制是同步的。

(2)从示意图分析可知,人行道各个方向,系统对两侧的信号灯的控制也是同步的,且人行道的红绿灯变化和行车道的红绿灯变化应该是一致的。

(3)通过上面的分析,可以采用单片机的p0-p3口及r0到r7寄存器配合来实现控制发光二极管灯和数码管。

系统的硬件设计

本系统选用通过P0到p3口 用做输出显示控制口。P0口用作输出南北方向led数码管字符编码,P1口用作输出东西方向led数码管字符编码。P2 口用于输出东西、南北方面LED数码管的位选信号,以及各个人行道发光二极管的控制信号的输出。P3口用于输出东西、南北方向信号灯控制信号。

LED数码管采用动态显示方式实现倒计时读秒,并且本系统的了led采用的是LED的共阳极接法,共阳极接法如图2所示:

共阳极7段LED显示字型编码表(表一):

LED动态显示,在多位LED显示时,为了简化电路,降低成本,将段选位并联在一起,由一个八位的I/O口控制,而位选由另一个口控制,段选码、位选码每次送入后演示1ms,而人的视觉暂留时间为0.1s,所以在人看来数码管一直亮着,从而在应用中通过动态扫描的方法显示。

交通灯的正常显示

交通灯系统的工作状态:

上电后,南北方向数码管显示40,东西方向数码管显示60,南北方向的直行绿灯亮,车辆可以直行可以右行,人行红灯亮行人不能通过;东西方向红灯亮车辆不能通行,人行绿灯亮人可以通行。当南北数码管显示为4时,直行绿灯熄灭,黄灯闪烁4秒,然后南北数码管显示20,左转绿灯亮车辆可以左行,人行灯和东西方向灯同上一状态,当数码管减到四时南北黄灯闪烁4秒,然后红灯亮,数码管显示60,南北车辆禁止通行,人行绿灯亮;南北数码管显示60的同时东西数码管显示40,直行绿灯亮,车辆可以直行可以右行,人行红灯亮,当东西数码管显示为4时,直行绿灯熄灭,黄灯闪烁4秒,然后东西数码管显示20,左转绿灯亮车辆可以左行,人行灯和南北方向灯同上一状态,当数码管减到4时东西黄灯闪烁4秒,然后红灯亮,东西数码管显示60,南北显示40,随后依次循环……

交通灯原理图:

软件设计:

根据设计要求有汇编语言编写的交通灯源程序如下: ORG 0000H;主函数地址 LJMP MAIN ORG 000BH;中断定时器0地址 LJMP INTERPUT ORG 0030H;表的首地址 LJMP TABLE TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H MAIN: MOV P2, #00H;给P2口赋初值,让数码管刚开始都不亮 MOV R2, #60;给R2赋60,使东西的数码管显示初值为60 MOV R3, #40;给R3赋40,使南北的数码管显示初值为40 MOV P3, #0;使人形道的灯初始都不亮 MOV R5, #0;给R5,R6赋初值0 MOV R6, #0 MOV TMOD, #01H;定时器0工作方式1 MOV TH0, #79;给定时器赋初值 MOV TL0, #0AEH SETB EA

;允许总中断 SETB ET0

;开启定时器0中断 SETB

TR0

;开启定时器计时

L2: LCALL DISPLAY1

;显示东西数码管 LCALL DISPLAY2

;显示南北数码管 LCALL CHOOSE1

;调用东西判断函数 LCALL CHOOSE2;调用南北判断函数 SJMP

L2;一直循环

INTERPUT: MOV

TH0, #22H;定时器中断里重现给定时器0赋初值 MOV

TL0, #0D8H MOV

A,R4 INC

R4

;定时器中断一次50MS,中断一次R4+1 CJNE

A, #20,L3;判断是不是加到20了,即定时器定时1S MOV R4, #0;R4加到20,则清0 DEC R3;要是定时1S到了,则把R2,和R3的值都减1 DEC R2 L3: RETI

;中断退出 CHOOSE1:

;东西判断函数 MOV A, R5;热是一个标志 CJNE A, #1, K1;判断R5是不是等于1,不等于1跳到K1 MOV A, R2

;要是标志位等于1 CJNE A, #4, K5;而且R2等于4,则开启黄灯,关闭车道绿灯 SETB P3.2 CLR P3.3 K1: K7: K2:

K6: SJMP K3 K5: JNC K3;要是R2小于4则闪烁绿灯 CPL P3.2 MOV A, R2 CJNE A, #0, K3;判断R2是不是等于0,INC R5

;等于0则让标志位+1 CLR P3.2;清黄灯,开车道的左行绿灯,置人行道红灯 SETB P3.0 MOV R2, #20 SETB P2.6 CLR P2.7 SJMP K3 JNC K2

;CJNE这个指令比较好R5和1的值,要是R5大于1,则C=0,反之C=1,这里判断C是否等于0,既判断是否小于1,小于1执行下行,大于1则跳转K2 MOV A, R2 CJNE A, #60, K7;初值状态R2是60,判断R2是不是60,60的话开车道的红灯,开人行道的绿灯 SETB P3.1 SETB P2.7 CLR P2.6 SJMP K3

;退出

CJNE A, #0, K3;要是R2不等于60,判断R2是不是等于0,等于0则把标志位R5加1,让车道绿灯亮,红灯灭,人行道红灯亮 INC R5 CLR P3.1 SETB P3.3 MOV R2, #40;再给数码管赋初值 CLR

P2.7 SETB P2.6 SJMP K3

;退出 MOV A, R2;标志位R5大于1则跳到这里 CJNE A, #4, K6;判断R2和4的值,等于4则开启黄灯,关闭车道的绿灯,要是不等于是,则跳到K6 CLR P3.0 SETB P3.2 SJMP K3 JNC K3;判断R2是不是小于4,小于4则闪烁黄灯,大于4则直接退出 CPL P3.2;取反 MOV A, R3 CJNE A, #0, K3;判断R2是不是等于0 MOV R5, #0;等于0则清标志位,因为我们只设置了0.1.2这三个状态,到2了以后要清0,让他重新开始循环

MOV R2, #60;给R2赋初值,开车道红灯,关车道左行绿灯,开人行道绿灯,关人行道红灯 SETB P3.1 CLR P3.2 SETB P2.7 CLR P2.6 K3: RET CHOOSE2:

;南、北判断函数,程序和东、西判断一致,这里就不写注释了

MOV A, R6 CJNE A, #1, H2 MOV CJNE SETB CLR SJMP H6: JNC CPL CJNE INC CLR SETB MOV SETB CLR SJMP H2: JNC MOV CJNE SETB SETB CLR SJMP H7: MOV CJNE SETB CLR

SJMP H5: JNC CPL CJNE SETB CLR

INC MOV SETB A, R3 A, #4, H6 P3.6 P3.4 H3 H3 P3.6 A, #0, H3 R6 P3.6 P3.5 R3, #60 P2.4 P2.5 H3 H4 A, R3 A, #40,H7 P3.7 P2.5 P2.4 H3 A, R3 A, #4, H5 P3.6 P3.7 H3 H3 P3.6 A, #0, H3 P3.4 P3.6 R6 R3, #20 P2.5 CLR P2.4 SJMP H3 H4: MOV A, R3 CJNE A, #0, H3 SETB P3.7 CLR P3.5 MOV R6, #0 MOV R3, #40 SETB P2.5 CLR P2.4 H3: RET DISPLAY1:

;显示东西数码管(动态显示)

MOV A, R2;将R2放到A中 MOV B, #10 DIV AB

;将2位的10进制数的十位和个位分开 MOV DPTR, #TABLE;取TABLE表的首地址给DPTR MOVC A, @A+DPTR;把表的第N个数据给A MOV P1, A

;把数据送到数码管中 SETB P2.0

;显示数码管 LCALL DELAY

;延时 CLR P2.0

;把数码管暗掉 MOV A ,B

;把个位给A MOVC A, @A+DPTR;把表的个位个数给A MOV P1, A

;把数据送到数码管中 SETB

P2.1

;显示数据 LCALL DELAY

;延时 CLR P2.1

;让数码管暗掉 RET DISPLAY2:

;显示南北数码管(显示函数和上面一样,这里注释就不写了)

MOV A, R3 MOV B, #10 DIV AB MOV DPTR, #TABLE MOVC A, @A+DPTR MOV P0, A SETB P2.2 LCALL DELAY CLR P2.2 MOV A, B MOVC A, @A+DPTR MOV P0, A SETB P2.3 LCALL DELAY CLR P2.3 RET DELAY:

MOV R0, L1: MOV R1, DJNZ R1, DJNZ R0, RET END

电路的仿真:;延时函数

上一篇:家长学校教师培训内容下一篇:反恐形势总体越来越严峻