学院:电气与信息工程学院。
1. 东西各设有一个绿、黄、红指示灯;一个2位7段数码管。
1)南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s;
2)当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。
3)用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的剩余时间。
3. 能实现正常的倒计时显示功能。能实现总体清理功能,计数器由初始状态开始计数,对应状态的指示灯亮。
根据**题目要求,将红绿灯的状态转换列成如下表。
上表为交通灯控制器的状态转换表。
1、显示模块由两部分组成,一是由七段数码管组成的倒计时显示器,每个方向两个七段数码管;二是由发光二极管代替的交通灯,每个方向3个发光二极管。
2、每个方向有一组2位倒计时器模块,用以显示该方向交通灯剩余的点亮时间。
3、控制模块是交通灯的核心,主要控制交通灯按工作顺序自动变换,同时控制倒计时模块工作,每当倒计时回零时,控制模块接收到一个计时信号,从而控制交通灯进入下一个工作状态。
由于交通灯需要使用2位7段led数码管指示通行剩余时间,故采用led动态扫描方式显示当前时间。
频率设定clk1k对应的频率为1024hz
交通控制器的电路符号如图1.3所示。其中,clk1k为系统时钟信号输入端,sn为禁止通行信号输入通行信号输入端,light0为东西红灯信号输出端,light1为东西黄灯信号输出端,light2为东西绿灯信号输出端,light3为南北红灯信号输出端,light4为南北黄灯信号输出端,light5为南北绿灯信号输出端,led1、led2、led3、led4、为数码管地址选择信号输出端。
采用文本编辑法,既采用vhdl语言描述交通控制器,**如下:
library ieee;
use use
entity traffic is
port (clk1k,sn:in std_logic;
led1, led2, led3, led4 :out std_logic_vector (3 downto 0);
-显示管显示时间用。
light:out std_logic_vector (5 downto 0));红绿黄灯。
end traffic;
architecture traffic1 of traffic is
signal s:std_logic_vector (1 downto 0状态。
signal dxt:std_logic_vector(7 downto 0):=x"01";
-东西方向时间。
signal nbx:std_logic_vector(7 downto 0):=x"01";
--南北方向时间。
signal art,agt,ayt,brt,bgt,byt: std_logic_vector(7 downto0);-红绿黄灯信号。
signal sl: std_logic;
signal temp: integer range 0 to 1023; -产生1s计数器时计数
signal clk: std_logic;
beginsl<='1红绿灯时间设定。
art<="00100101";
agt<="00100000";
ayt<="00000100";
brt<="00100101";
bgt<="00100000";
byt<="00000100";
process(clk1k选频率为1024hz
begin
if (clk1k'event and clk1k='1') then
if temp=1023 then
temp<=0;
clk<='1';
else temp<=temp+1;
clk<='0';
end if;
end if;
end process进程结束。
process(clk,dxt,nbx状态转换进程。
beginif clk'event and clk ='1' then
if(dxt ="00000001")or (nbx = 00000001") then s<=s+1;
else s<=s;
end if状态转换结束。
end if;
end process;
process (clk,sn,s倒计时模块。
begin
if sn = 1' then dxt<=dxt; nbx<=nbx;
elseif clk'event and clk='1' then
if (dxt="0000000") or (nbx="00000000") then
case s is
when "00"=>dxt<=art; nbx<=bgt; -南北红灯、东西绿灯。
when "01"=>nbx<=byt南北红灯、东西黄灯。
when "10"=>dxt<=agt; nbx<=brt南北绿灯、东西红灯。
when "11"=>dxt<=ayt南北黄灯、东西红灯。
when others=>null;
end case;
end if;
if dxt/="00000000" then
if dxt(3 downto 0)= 0000" then
dxt(3 downto 0)<=1001";
dxt(7 downto 4)<=dxt(7 downto 4)-1;
else dxt(3 downto 0)<=dxt(3 downto 0)-1;
dxt(7 downto 4)<=dxt(7 downto 4);
end if;
end if;
if nbx/="00000000" then
if nbx(3 downto 0)="0000" then
nbx(3 downto 0)<=1001";
nbx(7 downto 4)<=nbx(7 downto 4)-1;
else nbx(3 downto 0)<=nbx(3 downto 0)-1;
nbx(7 downto 4)<=nbx(7 downto 4);
end if;
end if;
end if;
end if;
end process; -倒计时模块结束。
process(sl,dxt,nbx,s,sn) -显示模块。
begin
case sl is
when '1'=>led1<=nbx(3 downto 0);
led2<=nbx(7 downto 4);
led3<=dxt(3 downto 0);
led4<=dxt(7 downto 4);
when others=>null;
end case;
if sn ='1' then light<="001001";
else case s is
when "00"=>light<="010001";
when "01"=>light <=100001";
when "10"=>light <=001010";
when "11"=>light <=001100";
when others=>null;
end case;
end if;
end process;
end traffic1;
5 软件**。
时序**图。
数码管动态显示,需要通过位选、段选控制。通过查询手册,将2位位选信号接到试验箱数码管位选端,将7位段选信号连接到试验箱数码管的段选控制端。当送人合适的控制信号后,数码管即可正常工作。
通过****后,能得到预期的实验结果。通过拨动(开关控制)为高电平,能实现交通灯紧急状态(红灯全亮)。若sn为低电平,数码管和主南北的红绿灯能有序亮灭。
短短一个星期的eda课程设计很块就结束了,虽然在之前的学习过程中还存在着没有弄懂的问题,但是通过这次设计,进一步加深了对eda的了解,让我对它有了更加浓厚的兴趣。
在拿到题目后,首先进行了单元模块的设计,将每一个单元模块设计完成后再经行**,在波形**的过程中,同样遇到了困难,有的时候,由于end time的时间修改的太大,会出现**时间过长的问题,这个时候应该要把end time的时间相应的改小,或是修改系统时钟的频率。
在设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际。有的时候,理论上是正确的东西放到现实中去,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成要求。
这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。
EDA课程设计 交通灯
交通信号灯控制电路设计。1 概述。城市道路交叉口是城市道路网络的基本节点,也是网络交通流的瓶颈。目前,大部分无控制交叉口都存在高峰小时车流混乱 车速缓慢 延误情况严重 事故多发 通行能力和服务水平低下等问题。特别是随着城市车流量的快速增长,城市无控制道路交叉口的交通压力越来越大。因此,做好基于eda...
交通灯EDA课程设计
eda交通灯设计。学院 信息工程学院。班级 学号 姓名 目录。第一章设计原理 1 第二章设计流程 2 第三章程序设计说明 3 3.1 程序设计流程图 3 3.2 分频模块 3 3.3 特殊功能及清零模块 4 3.4 交通灯运行模块 4 3.5 扫描显示模块 6 第四章 及调试 8 4.1调试步骤 8...
EDA交通灯课程设计
1.简要说明。在十字路口,每一条道路各有一组红 黄 绿灯和倒计时显示器,用以指挥车辆和行人有序的通行。其中,红灯亮表示该道路禁止通行 黄灯表示停车 绿灯表示可以通行 倒计时显示器是用来显示允许通行或禁止通行的时间。交通灯控制器就是用于自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。2....