实验二报告--交通灯控制器.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二报告--交通灯控制器

实验二 交通灯控制器 实验目的 设计一个基于EDA的十字路口交通控制器,假设南北方向和东西方向,两个方向分别设置红灯、绿灯、黄灯,每个方向设置一组倒计时显示器,用以指挥车辆和行人有序的通行。红灯亮表示直行车辆禁行;绿灯亮表示直行车辆可以通行;黄灯亮表示直行车辆即将禁行 二、实验任务及要求 1、能显示十字路口东西、南北两个方向的红、黄、绿的指示状态用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。变化规律为:东西绿灯,南北红灯-东西黄灯,南北红灯-东西红灯,南北绿灯-东西红灯,南北黄灯-东西绿灯,南北红灯……依次循环。 2、能实现正常的倒计时功能用两组数码管作为东西和南北方向的允许或通行时间的倒计时显示,显示时间为红灯45秒、绿灯40秒、黄灯5秒。 3、能实现紧急状态处理的功能 出现紧急状态(例如消防车,警车执行特殊任务时要优先通行)时,两路上所有车禁止通行,红灯全亮; 显示到计时的两组数码管闪烁; 3)计数器停止计数并保持在原来的状态; 4、能实现系统复位功能 系统复位后,东西绿灯,南北红灯,东西计时器显示40秒,南北显示45秒。 5、用VHDL语言设计符合上述功能要求的交通灯控制器,并用层次化设计方法设计该电路。 6、个模块的功能用功能仿真的方法验证,可通过有关波形确认电路设计是否正确。 7、完成电路全部设计后,通过系统实验箱下载验证设计课题的正确性。 图2 交通灯状态转换图 交通灯控制器框图 交通灯控制器框图 交通灯控制算法流程图 交通灯控制算法流程图 、实验报告要求 画出顶层原理图。 对照交通灯电路框图分析电路工作原理。 写出各功能模块的VHDL语言源文件。 叙述各模块的工作原理。 详述控制器部分的工作原理,绘出详细电路图,写出VHDL语言源文件,画出有关状态机变化。 书写实验报告时应结构合理,层次分明,在分析时注意语言的流畅。 画出顶层原理图。 图5 led顶层原理图 图6 数码管显示顶层原理图 对照交通灯电路框图分析电路工作原理。 东西绿灯,南北红灯,东西计时器显示40秒,南北显示45秒。 写出各功能模块的VHDL语言源文件。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY count5 IS PORT( clk_5 :IN STD_LOGIC; enable_5:IN STD_LOGIC; c_5:OUT STD_LOGIC); END count5; ARCHITECTURE behave OF count5 IS BEGIN PROCESS(clk_5) VARIABLE cnt:INTEGER RANGE 4 DOWNTO 0; BEGIN IF (clk_5EVENT AND clk_5=1)THEN IF enable_5=1 AND cnt4 THEN cnt:=cnt+1; ELSE cnt:=0; END IF; END IF; IF cnt=4 THEN c_5=1; ELSE c_5=0; END IF; END PROCESS; END behave; (2)traffic功能模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY traffic IS PORT(clk:IN STD_LOGIC; c1,c2,c3:OUT STD_LOGIC;--各定时计数器的使能信号 w1,w2,w3:IN STD_LOGIC;--各定时计数器的工作信号 r1,r2:OUT STD_LOGIC;--两个方向的红灯信号 y1,y2:OUT STD_LOGIC; --两个方向的黄灯信号 g1,g2:OUT STD_LOGIC;--两个方向的绿灯信号 urgent,reset:IN STD_LOGIC);--复位信号 END traffic; ARCHITECTURE behave OF traffic IS TYPE state_space IS (s0,s1,s2,s3,s4); SIGNAL state:state_space; BEGIN PROCESS(clk,reset,urgent) BEGIN IF reset=1 THEN state=s0; ELSIF urgent=1 THEN state=s4; ELSIF(clkEVENT AND clk=1)

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档