- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西电EDA交通灯报告完整版
交通控制器实验报告
目录
交通控制器实验报告 1
序言 3
一、设计任务及设计要求 4
二、原理分析及方案设计 4
三、电路设计与调试 6
1.分频器的设计 6
2.控制器的设计 7
3.倒计时计数器的设计 14
4.数码管显示器的设计 17
5.顶层原理图 20
四、实验仿真波形图 20
五.心得体会 21
六.参考文献 21
序言?
VHDL的英文全写是:VHSIC(Very?High?Speed?Integrated?Circuit)Hardware?Description?Language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。VHDL主要用于描述数字系统的结构,行为,功能和接口VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。??
????随着基于VHDL的EDA技术的发展和应用领域的扩大与深入,EDA技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。作为一个学电子信息专业的学生,我们必须不断地了解更多的新产品信息,这就更加要求我们对EDA有个全面的认识。本程序设计的是交通灯的设计。采用EDA作为开发工具,VHDL语言为硬件描述语言,quartusII作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标?
在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。当然我们每个人都不希望这样。我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。
本程序设计的是交通灯的设计。采用EDA作为开发工具,VHDL语言为硬件描述语言,quartusII作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,实现设计目标。我们设计的这个信号控制系统可以通过交通灯控制东西方向车道和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都可以根据实际情况预设,用以减少交通事故的发生概率。并且经过些次实验使得我们对电子技术课程内容的理解和掌握有了更深一层的认识,掌握电子电路的基本分析方法和设计方法。
一、设计任务及设计要求
设计一个十字路口交通控制系统,要求如下:
(1)东西南北两个方向均有绿灯
(2)系统设有时钟,以倒计时的方式显示每一路允许通行的时间。
(3)当东西或南北两路中的任一路出现特殊情况,系统可由交警手动控制立即进入特殊运行状态,即红灯全亮,时钟停止计时,东西、南北两路所有车辆停止通行;当特殊运行状态结束后,系统恢复工作,继续正常运行。
二
本系统主要由分频器、计数器、控制器、倒计时显示器等电路组成。总体设计框图如下:
分频器讲晶振送来的4MHz的信号变为1Hz的时钟信号;计数器实现90秒的技术,90秒也是交通控制系统的一个大循环;控制器控制系统的状态转移和红、黄、绿灯的信号输出;倒计时显示电路实现45秒倒计时功能和显示功能。整个系统的工作时序受控制器控制,它是系统的核心。
控制器的整个工作过程用状态机进行描述其状态转移关系描述如下
S0:A方向绿灯亮
S1: A方向灯亮
S2: A方向红灯亮
S3: A方向红灯亮
S4: 紧急制动状态,A方向红灯亮,B方向红灯亮当紧急制动信号有效是进入此状态
交通控制系统的状态转移图如下
当紧急制动信号无效时状态机按照S0-S1-S2-S3-S0循环4,两个方向红灯全亮计数器停止计数当紧急制动信号再恢复无效时状态机回到原来的状态继续执行
三电路设计与调试
分频器的逻辑符号如图所示。clk为时钟输入信号,clkout为分频后的时钟输出信号。
分频器的VHDL描述文件devide.vhd如下
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity devide is
port(
clk:in std_logic;
clk_out:out std_logic
);
end devide;
architecture arc_devide of devide is
signal count:std_logic_vector(25 downto 0);
begin
process
begin
wait until clkevent and clk=1;
if(coun then
count=count+1;
clk_out=0;
else
count=(others=0);
clk_o
文档评论(0)