- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)
您可能关注的文档
最近下载
- 《 C++ 序设计》吴乃陵 况迎辉 李海文课件 第一章第二版.ppt VIP
- 七年级历史与社会上册同步单元双基双测AB卷(人教版新课程标准).pdf VIP
- 雨课堂学堂在线《跨文化交际英语(北京理工)》学堂云单元测试考核答案.docx
- 发展对象考试题库(附答案).pdf VIP
- 2024年9月怒江州直遴选面试真题带答案详解.docx VIP
- 危废收集、贮存、转运项目可行性研究报告模板-立项拿地.doc
- 楞次定律说课汇总分钟比赛用公开课获奖课件.pptx VIP
- 人教精通版(2024)新教材四年级英语上册Unit 2 单元测试卷及答案.docx
- 基于SpringBoot的个人博客系统.pdf VIP
- 胰腺囊性疾病诊治指南(最全版).docx VIP
文档评论(0)