EDA课程设计交通灯控制器的设计.doc
文本预览下载声明
PAGE
PAGE 1
EDA课程设计
题目: 交通灯控制器的设计
学院: 信息科学技术学院
专业: 电子信息工程
姓名:
同组:
指导老师: 龙翔
设计题目
交通灯控制器的设计
设计功能:
实现高速公路与乡间小路的交叉路口红绿灯的控制
三、具体功能要求:
1、只有在小路上发现汽车时,高速公路上的交通灯才可能变成红灯。
2、当汽车行驶在小路上时,小路的交通灯保持为绿灯,但不能超过给定的延迟时间。
(注:这段时间定义为20秒时间)
3、高速公路灯转为绿灯后,即使小路上有汽车出现,而高速公路上并无汽车,也将在给定时间内保持高速公路绿灯。
(注:这段时间定义为60秒时间)
4、交通信号灯的4种状态如下表:
A
B
C
D
高速交通灯
绿(60秒)
黄(5秒)
红(20秒)
红(5秒)
小道交通灯
红
红
绿
黄
四,设计思路
根据交通信号灯的变化可以有四种状态,分别为A,B,C,D输入为XLB即判断小路是否有车,当小路有车时再判断此时大路的绿灯状态,如果绿灯的状态还没结束,那么小路此时为红色,当高速路60s结束后在经过5s的黄灯,在跳转到C状态即小路变为绿灯,大路变为红灯,当小路20s过后再经过5s的黄灯跳转到D状态,大路变为绿灯小路变为红灯,采用赋值的方法来计数,当计数到想要值得时候在令CLR清零,状态也是采用赋值的方法实现不同状态的变化。
各输入端口和输出端口及变量信号的说明:
输入端
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
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:=000000;
ELSE
S:=S+1;
END IF;
CASE
--状态A为大路通车(绿灯),小路禁止通车(红灯)
WHEN A=GSR=0;GSY=0;GSG=1;
BR=1;BY=0;BG=0;
IF(XLB=1) THEN--判断小路是否有车
IF(S=111011) 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=
显示全部