- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
交通灯课件【DOC精选】
基于VHDL的十字路口交通灯控制系统设计与实现
设计任务描述
十字路口由一条南北方向的主干道(简称A道)和东西方向的支干道(简称B道)组成。如图1所示是安装在十字路口的交通信号灯示意图。信号灯的组合关系如图2所示,使用分别表示A道和B道的红、黄、绿交通灯的驱动信号,且信号灯在高电平时点亮,低电平时熄灭。
图1 交通信号灯示意图
图2 信号灯组合关系
十字路口的交通控制规则如表1所示。
南北方向(A道) 东西方向 (B道) 定时时间(秒) 绿灯亮 红灯亮 25 黄灯亮 红灯亮 5 红灯亮 绿灯亮 20 红灯亮 黄灯亮 5
系统构成及状态转换
依据设计任务分析,得出:十字路口交通灯控制系统由定时器模块、控制器模块和输出模块组成。如图3所示。
图3 交通灯控制系统结构图
定时器模块由25S、5S、20S三个定时器组成,分别确定相应信号灯亮的时间。三个定时器采用以秒脉冲为时钟的计数器实现。eg、ey、er分别是三个定时器的工作使能信号,tm25、tm5、tm20是三个定时器的计数结束指示信号。
控制模块是对系统工作状态的转换进行控制,根据交通规则可得系统状态转换情况。ar、ay、ag br、by、bg分别表示由控制器输出的A道和B道的红、黄、绿信号灯亮的时间;eg、ey、er分别表示由控制器输出的控制25S、5S、20S三个定时器的工作使能信号。控制器的ASM图如图4所示。
图4 交通灯控制器的ASM图
系统分析与设计
采用VHDL与原理图层次型混合设计,底层采用VHDL语言进行描述,顶层实体采用逻辑电路原理图,此工程中包含4个VHDL文件以及一个原理图文件,分别用于描述5S、20S、25S定时器、控制器及顶层实体
底层设计
5S定时器的VHDL描述(加注释)及功能仿真波形
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY count5 IS
PORT
(
reset, ey,cp : IN STD_LOGIC;
tim5 : OUT STD_LOGIC
);
END count5;
ARCHITECTURE arc1 OF count5 IS
BEGIN
PROCESS (reset,cp)
VARIABLE cnt:INTEGER RANGE 4 DOWNTO 0;
BEGIN
IF reset=1 THEN
cnt:=0;
ELSIF cpevent AND cp=1 THEN
IF ey=1 AND cnt4 THEN
cnt:=cnt+1;
ELSE
cnt:=0;
END IF;
END IF;
IF cnt=4 THEN
tim5=1;
ELSE
tim5=0;
END IF;
END PROCESS ;
END arc1;
功能仿真波形:(略)
20S定时器的VHDL描述(加注释)及功能仿真波形
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY count20 IS
PORT
(
reset, er,cp : IN STD_LOGIC;
tim20 : OUT STD_LOGIC
);
END count20;
ARCHITECTURE arc1 OF count20 IS
BEGIN
PROCESS (reset,cp)
VARIABLE cnt:INTEGER RANGE 19 DOWNTO 0;
BEGIN
IF reset=1 THEN
cnt:=0;
ELSIF cpevent AND cp=1 THEN
IF er=1 AND cnt19 THEN
cnt:=cnt+1;
ELSE
cnt:=0;
END IF;
END IF;
IF cnt=19 THEN
tim20=1;
ELSE
tim20=0;
END IF;
END PROCESS ;
END arc1;
功能仿真波形(图略)
25S定时器的VHDL描述(加注释)及其功能仿真波形
LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
ENTITY count25 IS
PORT
(
reset, eg,cp : IN STD_LOGIC;
tim25 : OUT STD_LOGIC
);
END count25;
ARCHITECTURE ar
文档评论(0)