EDA交通灯课程设计(得过优的哦).pdf
EDA 交通灯课程设计 姓名:XXX 学号:*专业:*学院:电气与信息工程学院 2 1 系统功能设计要求 1。东西各设有一个绿、黄、红指示灯;一个 2 位 7 段数码管(1)南北和东西方向各有一组绿,黄,红灯,各自的持续时间分别为20s,5s,25s;(2)当有特殊情况时,两个方向均为红灯,计时暂停,当特殊情况结束后,控制器恢复原来状态,继续正常工作。(3)用两组数码管,以倒计时方式显示两个方向允许通行或禁止通行的剩余时间.3.能实现正常的倒计时显示功能。能实现总体清理功能,计数器由初始状态开始计数,对应状态的指示灯亮。2 设计原理 2.1 交通灯控制器的状态转换 根据论文题目要求,将红绿灯的状态转换列成如下表 上表为交通灯控制器的状态转换表 3 2。2 设计方案 1、显示模块由两部分组成,一是由七段数码管组成的倒计时显示器,每个方向两个七段数码管;二是由发光二极管代替的交通灯,每个方向 3 个发光二极管。2、每个方向有一组 2 位倒计时器模块,用以显示该方向交通灯剩余的点亮时间。3、控制模块是交通灯的核心,主要控制交通灯按工作顺序自动变换,同时控制倒计时模块工作,每当倒计时回零时,控制模块接收到一个计时信号,从而控制交通灯进入下一个工作状态。2.2 LED 动态显示与频率 由于交通灯需要使用 2 位 7 段 LED 数码管指示通行剩余时间,故采用 LED 动态扫描方式显示当前时间。频率设定 CLK1k 对应的频率为 1024hz 设计方案 显示模块 倒计时模块 控制模块 4 3 电路符号 交通控制器的电路符号如图 1.3 所示.其中,CLK1K 为系统时钟信号输入端,SN 为禁止通行信号输入通行信号输入端,light0 为东西红灯信号输出端,light1 为东西黄灯信号输出端,light2 为东西绿灯信号输出端,light3 为南北红灯信号输出端,light4 为南北黄灯信号输出端,light5 为南北绿灯信号输出端,led1、led2、led3、led4、为数码管地址选择信号输出端。4 设计方法 采用文本编辑法,既采用 vhdl 语言描述交通控制器,代码如下:library ieee;use ieee.std_logic_1164。all;use ieee。std_logic_unsigned。all;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”;5 东西方向时间 signal NBX:std_logic_vector(7 downto 0):=X01”;-南北方向时间 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;begin sL=1;红绿灯时间设定 ART=00100101”;AGT=”00100000”;AYT=00000100”;BRT=00100101;BGT=00100000;BYT=00000100”;process(clk1k)-选频率为1024HZ begin if(clk1kevent and clk1k=1)then if temp=1023 then 6 temp=0;clkDXT 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 8 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);led4light=”010001;9 when 01”=light=”100001;when”10”=light light=”001100”;when others=NULL;end case;end if;end process;end traffic1;5 软件仿真 时序仿真图 6 结论 数码管动态显示,需要通过位选、段选控制。通过查询手册,将 10 2 位位选信号接到试验箱数码管位选端,将 7 位段选信号连接到试验箱数码管的段选控制端。当送人合适的控制信号后,数码管即可正常工作。通过下载仿真后,能得到预期的实验结果.通过拨动(开关控制)为高电平,能实现交通灯紧急状态(红灯全亮).若 SN 为低电平,数码管和主南北的红绿灯能有序亮灭.7 收获及感想 短短一个星期的 EDA 课程设计很块就结束了,虽然在之前的学习过程中还存在着没有弄懂的问题,但是通过这次设计,进一步加深了对 EDA 的了解,让我对它有了更加浓厚的兴趣.在拿到题目后,首先进行了单元模块的设计,将每一个单元模块设计完成后再经行仿真,在波形仿真的过程中,同样遇到了困难,有的时候,由于 END TIME 的时间修改的太大,会出现仿真时间过长的问题,这个时候应该要把 END TIME 的时间相应的改小,或是修改系统时钟的频率。在设计的过程中还应该多联系下实际情况,要了解实际情况下交通信号灯的工作情况,才能更好的完成此次的课程设计。在今后的工作和学习中,我们不能仅仅把目光停留在课本上,要多理论联系实际.有的时候,理论上是正确的东西放到现实中去,可能由于种种因素的制约,并不能达到实际的效果,还需要我们进行相应的修改才能完成 11 要求。这次的课程设计使我巩固了以前学习到的知识,还使我掌握了以前没有掌握的知识,同时锻炼了自己的能力。