- 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交通灯控制器的设计
EDA课程设计
题目: 交通灯控制器的设计
指导老师: 龙翔
设计题目
交通灯控制器的设计
设计功能:
实现高速公路与乡间小路的交叉路口红绿灯的控制
三、具体功能要求:
1、只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。
2、当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间。
(注:这段时间定义为20秒时间)
3、高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定时间内保持高速公路绿灯。
(注:这段时间定义为60秒时间)
4、交通信号灯的4种状态如下表:
A B C D 高速交通灯 绿(60秒) 黄(5秒) 红(20秒) 红(5秒) 小道交通灯 红 红 绿 黄 四,设计思路
根据交通信号灯的变化可以有四种状态,分别为A,B,C,D输入为大路的绿灯状态,如果绿灯的状态还没结束,那么小路此时红色,当高速路s结束后在经过s的黄灯,跳转到即小路变为绿灯,大路变为红灯,小路s过后再经过s的黄灯到,大路变为绿灯小路变为红灯,赋值的方法来计数,当到想要值得时候在,状态采用方法不同状态的变化。
输入端口和输出端口及变量信号说明
输入端 CLK XLB 意义 时钟信号 小路是否有车 输出端 GSR GSY GSG XLR XLY XLG 意义 高速红灯 高速黄灯 高速绿灯 小路红灯 小路黄灯 小路绿灯 变量或信号 CLR S 意义 清零变量 计时变量 五,源程序的设计
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY JTDKZ IS
PORT(CLK:IN STD_LOGIC;
XLB:IN STD_LOGIC;
GSR,GSY,GSG,XLR,XLY,XLG:OUT STD_LOGIC);
END ENTITY JTDKZ;
ARCHITECTURE ART OF JTDKZ IS
TYPE STATE_TYPE IS(A,B,C,D);
SIGNAL STATE:STATE_TYPE;
BEGIN
CNT:PROCESS(CLK) IS
VARIABLE CLR:BIT;
--在进程中定义变量CLR(CLR=0:计时清零)
VARIABLE S:STD_LOGIC_VECTOR(0 TO 5);
--在进程中定义变量S(S为时钟计时器)
BEGIN
IF(CLKEVENT AND CLK=1)THEN--判断时钟信号上升沿
IF CLR=0THEN--当CLR=0时计时变量清零
S:=;
ELSE
S:=S+1;
END IF;
CASE STATE IS
--状态A为大路通车(绿灯),小路禁止通车(红灯)
WHEN A=GSR=0;GSY=0;GSG=1;
BR=1;BY=0;BG=0;
IF(XLB=1) THEN--判断小路是否有车
IF(S=) THEN--判断大路通行是否满60秒
STATE=B;CLR:=0;
--大路满60秒,计时清零,转到状态B
ELSE
STATE=A;CLR:=1;
--大路不满60秒,继续状态A
END IF;
ELSE
STATE=A;CLR:=1;--小路没车,大路一直通车
END IF;
--状态B为大路禁止通车(黄灯),小路禁止通车(红灯)
WHEN B=GSR=0;GSY=1;GSG=0;
XLR=1;XLY=0;XLG=0;
IF S= THEN--判断大路黄灯是否满5秒
STATE=C;CLR:=0;
--满5秒,计时清零,跳转到C状态
ELSE
STATE=B;CLR:=1;--不满5秒继续状态B。
END IF;
--状态C为大路禁止通车(红灯),小路通车(绿灯)
WHEN C=GSR=1;GSY=0;GSG=0;
文档评论(0)