- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
十字路口交通灯控制管理器设计.ppt
交通灯设计 摘要 本系统采用EDA实验箱设计交通灯控制器,模拟实现了红、绿、黄灯指挥交通的功能。它直接采用240C8芯片开发,用VHDL语言编程和QUARTUSⅡ 7.2设计。交通灯控制器设计,系统的阐述了用240C8芯片实现数字电路的设计过程,展示了240C8芯片的强大功能和非凡特性。本交通灯控制器适用东西和南北方向的车流量大致相同的路口,同时用数码管指示当前状态(红、绿、黄、左拐灯)的剩余时间。另有一个紧急状态,当特殊情况发生时,两个方向都禁止通行,指示红灯,紧急状态解除后,重新计时并指示时间。 基本要求: (1)东西方向(甲道)循环为绿灯 45s, 黄灯 5s,左拐灯 15s,黄灯 5s,红灯 40s,黄灯 5s (2)南北方向(乙道)循环为红灯 65s,黄灯 5s,绿灯 20s,黄灯 5s,左拐灯 15s,黄灯 5s (3)在数码管上倒计时间显示各道剩余时间;发挥部分: (4)增加指示灯闪烁(绿灯最后 5s和黄灯显示时间)及特殊紧急情况的处理; (5)增加根据不同方向车流量的大小调节各灯显示时间长度的功能; 交通灯工作原理 根据交通灯控制器的功能与要求,将其总体电路分为状态控制信号灯显示,数码管倒计时显示模块。外部两路脉冲振荡器的频率选为1 kHz和1 Hz的信号,1khz信号用于显示模块的扫描,1 Hz信号用做倒计时模块的计数脉冲。 较易交通灯控制器的实现 为了让大家更易理解,我们先来看看十字路口简单控制器显示。右图为两交通灯的运行状态,东西、南北方向的不同状态组合(红绿、红黄、绿红、黄红四个状态) 。但我们可以简单地将其看成两个(东西、南北)减1的计数器,通过监测两个方向的计数值,可以检测红黄绿灯组合的跳变。(此图不包括左拐灯)。 题目要求回顾:设计一个简单十字路口交通灯控制器。该控制器控制东西南北两道的红、黄、绿三色灯,指挥交通和行人安全通行,本次实验只要求做出倒计时时间显示模块的VHDL程序,和黄灯闪烁。 复杂十字路口交通灯控制器要比简单交通灯控制器增加一些功能,如倒计时时间显示,左转弯(左拐)、指示灯闪烁及特殊紧急情况的处理等。 下面以下面的十字路口交通灯系统为例,来说明上述功能的实现: 本次交通灯控制器的实现 东西方向 南北方向 S(0) S(1) S(2) S(3) S(4) S(5 S(6) S(7) S(8) S(9) S (10) S (11) 绿灯45s 黄灯5s 左拐灯15s 黄灯5s 红灯40s 黄灯5s 红灯65s 黄灯5s 绿灯20s 黄灯5s 左拐灯15s 黄灯5s 一、倒计时时间显示模块的处理 1、各路口倒计时时间的计算 在各个阶段,各路口倒计时时间显示值与当前计数值存在一定的关系: S0:cnt=0-44:甲道时间显示:disp1=45-cnt;乙道时间显示:disp2=65-cnt; S1:cnt=45-49:甲道时间显示:disp1=50-cnt;乙道时间显示:disp2=65-cnt; S2:cnt=50-64;甲道时间显示:disp1=65-cnt;乙道时间显示:disp2=65-cnt; S3:cnt=65-69;甲道时间显示:disp1=70-cnt;乙道时间显示:disp2=70-cnt; S4:cnt=70-89;甲道时间显示:disp1=110-cnt;乙道时间显示:disp2=90-cnt; S5:cnt=90-94;甲道时间显示:disp1=110-cnt;乙道时间显示:disp2=95-cnt; S6:cnt=95-109;甲道时间显示:disp1=110-cnt;乙道时间显示:disp2=110-cnt; S7:cnt=110-114;甲道时间显示:disp1=115-cnt;乙道时间显示:disp2=115-cnt; 2、倒计时时间的显示 根据上述关系得到的disp1和disp2 是十六进制数,在送到数码管显示之前,先要将它们转换成二位BCD码表示。为此,需要定义一个转换函数Bin_to_BCD,用来实现从7位二进制数?2位 BCD码的转换。利用自定义程序包调用到主程序上就可使用。 交通灯控制器主程序 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use work.bintoBCD.all; entity jtd2 is port (clk,reset: in std_logic; r1,r2,y1,y2,l1,l2,g1,g2:out std_logic; disp11,disp22:out std_logic_vector(7 downto 0)); end entity jtd
文档评论(0)