- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于EDA的交通灯的设计
目 录
目录.........................................................................................................1
第一章 设计思路 2
1.1、设计内容及要求 2
1.2、设计构思 2
1.3、设计构思框图 3
第二章 单元模块设计与仿真 4
2.1、时钟分频模块 4
2.2、5秒倒计时计数器模块 5
2.3、35秒倒数计时计数器模块 8
2.4、25秒倒计时计数器模块 10
2.5、40秒倒计时计数器模块 12
2.6、20秒倒计时计数器模块 14
2.7、A方向控制模块 16
2.8、B方向控制模块 17
2.9、显示模块 19
2.10、顶层文件的编写 22
2.11. 总电路图 25
第三章 调试 27
3.1、硬件实验 27
3.2、实验现象 28
心得体会 29
参考文献 30
第一章 设计思路
1.1、设计内容及要求
1. 设计制作一块十字路口的交通信号灯的控制电路的专用芯片。
2. A方向和B方向各设置红(R)、黄(Y)、绿(G)三盏灯,三盏灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的方式显示出来。
3. 两个方向各灯的时间可方便地进行设置和修改。假设A方向为主干道,车流量大,A方向通行时间比B方向长。设A方向每次至少通行t1秒,B方向每次至多通行t2秒,黄灯亮t秒。
1.2、设计构思
为了方便A、B方向的车流不堵塞,默认A方向先亮绿灯,同时B方向亮红灯,时间以倒数显示出来,在绿灯时间到达时,通过3秒黄灯,过渡到红灯,使得行驶过程中的车辆有足够的时间停下来。所以,红灯的时间是另一方向的绿灯时间加上黄灯的时间。
用Ga、Ya、Ra依次代表主干道A方向的绿灯、黄灯和红灯。用Gb、Yb、Rb依次代表支干道B方向的绿灯、黄灯和红灯。根据A、B方向的车流量大小,令A方向绿灯亮30S,黄灯亮3s,红灯亮28S;B方向绿灯亮25S,黄灯3s,红灯33s。如图1-1,图中1代表点亮,0代表灭。
A方向(主干道) B方向(支干道) 时间 Ga Ya Ra Gb Yb Rb 时间 35S 1 0 0 0 0 1 40S 5S 0 1 0 1 0 0 20S 25S 0 0 1 0 1 0 5S 图1-1 交通灯亮灭时间安排
1.3、设计构思框图
图1-2 设计构思框图
如图所示,通过A、B方向控制器分别控制A和B方向各自的时间倒数模块以及时间显示。
单元模块设计与仿真
2.1、时钟分频模块
系统时钟计时模块需要1HZ的脉冲,与系统的动态扫描需要的脉冲不同。分频模块主要为系统提供所需的时钟计时脉冲。该模块将50MHZ的脉冲信号进行分频,产生1S的方波,作为系统时钟计时信号。
2.1.1、源程序:
--模块 FEN。它是分频 得到1HZ
library ieee;
use ieee.std_logic_1164.all;
entity chenliangfen is
port(clk:in std_logic; 图2-1 分频模块
clk1S:out std_logic);
end chenliangfen;
architecture fen_arc of chenliangfen is
begin
process(clk)
variable cnt:integer range 0 to
begin
if clkevent and clk=1then
if cnt= then
clk1S=1;
else
cnt:=cnt+1
clk1S=0;
end if;
end if;
end process;
文档评论(0)