欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    EDA实验---交通灯的设计.doc

    • 资源ID:60964262       资源大小:230.50KB        全文页数:25页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    EDA实验---交通灯的设计.doc

    EDA设计实验 课程题目:交通灯的设计 系 别:电子信息与电气工程系 专业班级:12自动化2班 姓 名:王金鑫郭远首周俊升 指导教师:周泽华 职 称:讲 师 2014年12月4日十字路口的信号灯控制电路一 绪论 伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,交通事业得以蓬勃发展,而随之引起的安全问题已经不容忽视。EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。利用EDA技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。本设计就是针对交通信号灯控制器的设计问题,提出了基于VHDL语言的交通信号灯系统的硬件实现方法。通过对系统进行结构分析,采用了层次化的设计方法,给出了各个模块的VHDL程序,并且利用Quartus 对应用程序进行了仿真,并给出了相应的仿真结果。通过电路优化设计,可以使用规模更小的可编程逻辑芯片,从而降低系统成本。关键词:交通信号灯;VHDL;仿真二 设计任务与要求1.实现一个十字路口的信号灯控制电路。2.信号灯分别由红、黄、绿三种颜色组成,运行时,绿灯亮10秒钟,然后闪5秒,绿灯灭,黄灯亮2秒,黄灯灭,红灯亮,同时另一方向的绿灯亮,红灯亮的时间为17秒 。扩展要求:3.增加显示功能,即每个灯亮时显示相应的秒数并倒计时。4.增加左转功能,即信号灯由红灯、黄灯和两个绿灯组成,左转时间为15秒,红灯亮的时间调整为62秒。三系统分析与总体方案1.设计思路 在某一十字路口交叉地带,可设置东西走向的道路为主道,南北走向的道路为次道,主次车道的交通灯需按交通法则交替运行。则可设计逻辑电路。 交通灯控制系统原理图如图一,由计数器、分频器、控制器、分位译码电路、扫描显示电路等部分组成。分频器计数器控制器红绿灯显示显示控制电路扫描显示电路七段数码管2.系统分析通过分析可以知道,所要设计的十字路口交通灯控制电路要能够使南北方向有左转、直行各三个灯(红、黄、绿),东西方向有左转、直行各三个灯(红、黄、绿),三个灯能够按顺序依次亮灭。而且要求绿灯亮转黄灯亮然后其他时间为红灯,红灯亮可以直接转绿灯(三种灯的循环顺序如图所示)。还要求三种灯的点亮时间能够以倒计时的形式显示出来。可以用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。 ST MGSRT1 MG SR T2 ST MY SRT3 ST ST MR SGT4 交通灯流程图MG:主道绿灯 MY:主道黄灯 MR:主道红灯 MG:主道绿灯闪 SG:次道绿灯 SY:次道黄灯 SR:次道红灯T1:40s T2:5s T3:2s T4:47s ST:状态转换量 状态一:主道绿灯次道红灯持续时间小于10s时,T1=0状态保持不变,若持续时间等于10s时,T1=1转换到下一状态。 状态二:主道绿灯闪烁次道红灯持续时间小于5s时,T2=0状态保持不变,若持续时间等于5s时,T2=1转换到下一状态。 状态三:主道黄灯次道红灯持续时间小于2s时,T3=0状态保持不变,若持续时间等于2s时,T3=1转换到下一状态。 状态四:主道红灯次道绿灯持续时间小于17s时,T4=0状态保持不变,若持续时间等于17s时,T4=1转换到下一状态。四硬件电路设计1.选择器件装有Altera公司QuartusII仿真软件的计算机一台。选择FPGA器件:Cyclone中的EP1C12Q240C8。EDA-VI实验箱一台。实现数据下载的数据线,导线。开关以及LED灯。四位八段数码显示管。 2.功能模块模块一 :分频器 分频器实现的是将高频时钟信号转换成低频时钟信号,clk信号经分频器将50MHz分为250Hz和1Hz提供给计数器、控制器和扫描显示电路所需的时钟计时脉冲。分频器模块(div) VHDL源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div isport(clk3:IN std_logic; clkout1,clkout2:OUT std_logic);end div;architecture one of div isbeginprocess(clk3)variable cnt:integer range 0 to ;variable tmp:std_logic;begin if(clk3'event and clk3='1')then if cnt>= then cnt:=0; tmp:=not tmp;else cnt:=cnt+1;end if;end if;clkout1<=tmp;end process;process(clk3)variable cnt:integer range 0 to ;variable tmp:std_logic;begin if(clk3'event and clk3='1')then if cnt>=99999 then cnt:=0; tmp:=not tmp;else cnt:=cnt+1;end if;end if;clkout2<=tmp;end process;end one;分频器仿真波形模块二: 控制器 控制器的作用是根据计数器计数的值控制发光二极管的亮灭。本控制器的设计方法是利用时钟沿的上升沿读取前级计数器的计数值,然后做出反应。主要控制红、绿、黄灯的亮、灭和闪烁。 控制器模块(KZ) VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY KZ IS PORT(CLK:IN STD_LOGIC; G1,Y1,R1,L1,L2, G2,Y2,R2 :OUT STD_LOGIC);END;ARCHITECTURE ART OF KZ ISBEGIN PROCESS(CLK) IS VARIABLE S:INTEGER RANGE 0 TO 124;BEGINIF(CLK'EVENT AND CLK='1')THEN IF S>124 THEN S:=1; else S:=S+1; IF 0<S AND S<41 THEN 40s内 G1<='0' 主道绿灯亮 Y1<='1' R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' 次道红灯亮 L2<='1'ELSIF s=41 THEN 主道绿灯闪烁的第一秒 G1<='1' Y1<='1' R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' L2<='1'ELSIF s=42 THEN G1<='0' Y1<='1' R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' L2<='1'ELSIF s=43 THEN G1<='1' Y1<='1' R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' L2<='1'ELSIF s=44 THEN G1<='0' Y1<='1' R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' L2<='1'ELSIF s=45 THEN 主道绿灯闪烁最后一秒 G1<='1' Y1<='1' R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' L2<='1' ELSIF 45<S AND s<61 THEN G1<='1' Y1<='1' R1<='1' L1<='0' 主道左转灯亮 G2<='1' Y2<='1' R2<='0' L2<='1' ELSIF 60<S AND s<63 THEN G1<='1' Y1<='0' 主道黄灯亮 R1<='1' L1<='1' G2<='1' Y2<='1' R2<='0' L2<='1'ELSIF 62<s AND s<103 THEN G1<='1' Y1<='1' R1<='0' 主道红灯亮 L1<='1' G2<='0' 次道绿灯亮 Y2<='1' R2<='1' L2<='1' ELSIF S=103 THEN 次道绿灯闪烁第一秒 G1<='1' Y1<='1' R1<='0' 主道红灯亮 L1<='1' G2<='1' Y2<='1' R2<='1' L2<='1'ELSIF S=104 THEN G1<='1' Y1<='1' R1<='0' L1<='1' G2<='0' Y2<='1' R2<='1' L2<='1'ELSIF S=105 THEN G1<='1' Y1<='1' R1<='0' L1<='1' G2<='1' Y2<='1' R2<='1' L2<='1'ELSIF S=106 THEN G1<='1' Y1<='1' R1<='0' L1<='1' G2<='0' Y2<='1' R2<='1' L2<='1'ELSIF S=107 THEN 次道绿灯闪烁最后一秒 G1<='1' Y1<='1' R1<='0' L1<='1' G2<='1' Y2<='1' R2<='1' L2<='1'ELSIF 107<s and s<123 THEN G1<='1' Y1<='1' R1<='0' L1<='1' G2<='1' Y2<='1' R2<='1' L2<='0'ELSIF 122<s and s<125 THEN G1<='1' Y1<='1' R1<='0' L1<='1' G2<='1' Y2<='0' R2<='1' L2<='1' END IF; END IF;END IF; END PROCESS;END; 控制器仿真波形模块三: 显示控制电路输入与计数器相连,输出与扫描显示电路相连VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY XSKZ IS PORT(EN45A,EN45B,EN02A,EN02B,EN15A,EN15B:IN STD_LOGIC; AIN45A,AIN45B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); AIN15A,AIN15B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); AIN02 :IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUTM,DOUTB:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY XSKZ;ARCHITECTURE ART OF XSKZ IS BEGIN PROCESS(EN45A,EN45B,EN02A,EN02B,EN15A,EN15B,AIN45A,AIN45B,AIN15A,AIN15B,AIN02)IS BEGIN IF EN45A='0' THEN DOUTM<=AIN45A(7 DOWNTO 0);DOUTB<=AIN45B(7 DOWNTO 0); ELSIF EN45B='0' THEN DOUTM<=AIN45B(7 DOWNTO 0);DOUTB<=AIN45A(7 DOWNTO 0);ELSIF EN02A='0' THEN DOUTM<=AIN02(7 DOWNTO 0);DOUTB<=AIN02(7 DOWNTO 0); ELSIF EN02B='0' THEN DOUTM<=AIN02(7 DOWNTO 0);DOUTB<=AIN02(7 DOWNTO 0);ELSIF EN15A='0'THEN DOUTM<=AIN15A(7 DOWNTO 0);DOUTB<=AIN15B(7 DOWNTO 0);ELSIF EN15B='0'THEN DOUTM<=AIN15B(7 DOWNTO 0);DOUTB<=AIN15A(7 DOWNTO 0); END IF; END PROCESS;END ARCHITECTURE ART;显示控制仿真波形模块四: 扫描显示电路 扫描显示电路可以根据控制信号,驱动数码管的显示扫描显示模块(SELTIME) VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY SELTIME ISPORT(CLK2:STD_LOGIC; DOUT1,DOUT2,DOUT3,DOUT4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DAOUT:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END;ARCHITECTURE FUN OF SELTIME ISSIGNAL count: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINSEL<=count;PROCESS(CLK2)BEGINIF(CLK2'EVENT AND CLK2='1')THEN IF(COUNT>="100")THENCOUNT<="000"ELSECOUNT<=COUNT+1;END IF;END IF;CASE COUNT ISWHEN "000"=>DAOUT<=DOUT1;WHEN "001"=>DAOUT<=DOUT2;WHEN "010"=>DAOUT<=DOUT3;WHEN "011"=>DAOUT<=DOUT4;WHEN OTHERS=>DAOUT<="0000"END CASE;END PROCESS;END FUN;扫描显示仿真波形模块五: 15s计数器 该模块的功能是实现绿灯在15s内的倒计时,通过分频器分出来的时钟源clk进行计数。15s模块(CNT15s1)VHDL源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT15s1 is port(clk,EN15A,EN15B:in std_logic; DOUT15M,DOUT15B:out std_logic_vector(7 downto 0);end entity CNT15s1;architecture art of CNT15s1 issignal CNT6B:std_logic_vector(3 downto 0);beginprocess(clk,EN15A,EN15B)is begin if(clk'event and clk='1')then if EN15A='0'OR EN15B='0' then CNT6B<=CNT6B+1; ELSE CNT6B<="0000" end if; end if;end process;process(CNT6B) is begin CASE CNT6B is WHEN"0000"=>DOUT15M<=""DOUT15B<=""WHEN"0001"=>DOUT15M<=""DOUT15B<="" WHEN"0010"=>DOUT15M<=""DOUT15B<=""WHEN"0011"=>DOUT15M<=""DOUT15B<=""WHEN"0100"=>DOUT15M<=""DOUT15B<=""WHEN"0101"=>DOUT15M<=""DOUT15B<=""WHEN"0110"=>DOUT15M<=""DOUT15B<=""WHEN"0111"=>DOUT15M<=""DOUT15B<=""WHEN"1000"=>DOUT15M<=""DOUT15B<=""WHEN"1001"=>DOUT15M<=""DOUT15B<=""WHEN"1010"=>DOUT15M<=""DOUT15B<=""WHEN"1011"=>DOUT15M<=""DOUT15B<=""WHEN"1100"=>DOUT15M<=""DOUT15B<=""WHEN"1101"=>DOUT15M<=""DOUT15B<=""WHEN"1110"=>DOUT15M<=""DOUT15B<=""WHEN"1111"=>DOUT15M<=""DOUT15B<=""WHEN OTHERS=>DOUT15M<=""DOUT15B<=""END CASE;END PROCESS;END ARCHITECTURE ART;15秒计数器仿真波形模块六:15s计数器 主要控制左转灯L1、L2的倒计时功能,控制他们的15s倒计时。15s模块(CNT15S)VHDL源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT15s is port(clk,EN15A,EN15B:in std_logic; DOUT15M,DOUT15B:out std_logic_vector(7 downto 0);end entity CNT15s;architecture art of CNT15s issignal CNT6B:std_logic_vector(3 downto 0);beginprocess(clk,EN15A,EN15B)is begin if(clk'event and clk='1')then if EN15A='0'OR EN15B='0' then CNT6B<=CNT6B+1; ELSE CNT6B<="0000" end if; end if;end process;process(CNT6B) is begin CASE CNT6B is WHEN"0000"=>DOUT15M<=""DOUT15B<=""WHEN"0001"=>DOUT15M<=""DOUT15B<="" WHEN"0010"=>DOUT15M<=""DOUT15B<=""WHEN"0011"=>DOUT15M<=""DOUT15B<=""WHEN"0100"=>DOUT15M<=""DOUT15B<=""WHEN"0101"=>DOUT15M<=""DOUT15B<=""WHEN"0110"=>DOUT15M<=""DOUT15B<=""WHEN"0111"=>DOUT15M<=""DOUT15B<=""WHEN"1000"=>DOUT15M<=""DOUT15B<=""WHEN"1001"=>DOUT15M<=""DOUT15B<=""WHEN"1010"=>DOUT15M<=""DOUT15B<=""WHEN"1011"=>DOUT15M<=""DOUT15B<=""WHEN"1100"=>DOUT15M<=""DOUT15B<=""WHEN"1101"=>DOUT15M<=""DOUT15B<=""WHEN"1110"=>DOUT15M<=""DOUT15B<=""WHEN"1111"=>DOUT15M<=""DOUT15B<=""WHEN OTHERS=>DOUT15M<=""DOUT15B<=""END CASE;END PROCESS;END ARCHITECTURE ART;15秒计数器仿真波形模块七:2s计数器 控制黄灯Y1、Y2的2s倒计时功能2s模块(CNT2S)VHDL源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CNT02s is port(clk,EN02A,EN02B:in std_logic; DOUT02M:out std_logic_vector(7 downto 0);end entity CNT02s;architecture art of CNT02s issignal CNT2B:std_logic_vector(1 downto 0);beginprocess(clk,EN02A,EN02B)is begin if(clk'event and clk='1')then if EN02A='0'OR EN02B='0' then CNT2B<=CNT2B+1; ELSE CNT2B<="00" end if; end if;end process;process(CNT2B) is begin CASE CNT2B is WHEN"00"=>DOUT02M<=""WHEN"01"=>DOUT02M<="" WHEN OTHERS=>DOUT02M<=""END CASE;END PROCESS;END ARCHITECTURE ART;2秒计数器仿真波形模块八:译码器(decode3_8)3-8译码器模块VHDL源程序:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY decode3_8 IS PORT(SEL:IN std_logic_vector(2 downto 0); Q:OUT std_logic_vector(7 downto 0);END decode3_8;ARCHITECTURE a OF decode3_8 ISBEGIN Q<=""when sel=0 else ""when sel=1 else ""when sel=2 else ""when sel=3 else ""END a;模块九:数码显示器(deled)数码显示模块VHDL源程序:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY deled IS PORT(num:IN std_logic_vector(3 downto 0); A:OUT std_logic; B:OUT std_logic; C:OUT std_logic; D:OUT std_logic; E:OUT std_logic; F:OUT std_logic; G:OUT std_logic; DP:OUT std_logic);END deled;ARCHITECTURE fun OF deled ISsignal led:std_logic_vector(6 downto 0);BEGINA<=led(6);B<=led(5);C<=led(4);D<=led(3);E<=led(2);F<=led(1);G<=led(0);DP<='0' LED<=""WHEN NUM="0000"ELSE ""WHEN NUM="0001"ELSE ""WHEN NUM="0010"ELSE ""WHEN NUM="0011"ELSE ""WHEN NUM="0100"ELSE ""WHEN NUM="0101"ELSE ""WHEN NUM="0110"ELSE ""WHEN NUM="0111"ELSE ""WHEN NUM="1000"ELSE ""WHEN NUM="1001"ELSE ""WHEN NUM="1010"ELSE ""WHEN NUM="1011"ELSE ""WHEN NUM="1100"ELSE ""WHEN NUM="1101"ELSE ""WHEN NUM="1110"ELSE ""WHEN NUM="1111"END fun;数码显示仿真波形五总体设计电路图交通灯控制系统总体电路图管脚分配图硬件验证:输入CLK接50MHZ的晶振,输出G1、Y1、R1、L1、G2、Y2、R2、L2分别接到8个发光二极管上,从而可以显示主道以及次道之间的红绿灯亮灭的状态。输出AG分别对应DB0DB6,Q0Q7分别对应DB8DB15。六心得体会通过此次课程设计,使我对EDA程序设计有了进一步的学习和进一步的认识;在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写EDA的大程序,很有成就感。在这几天课设的时间里,实验室的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课设中十分重要。从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习EDA更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。生活就是这样,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变的话题。虽然我这次做的课程设计不是非常的复杂,但在设计和仿真的过程中,我们也遇到了不少的困难,回首整个过程,却受益匪浅。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!七参考文献1 阎石 主编,数字电子技术基础,高等教育出版社,19982 元红妍、张鑫主编:电子综合设计实验教程,第一版,山东:山东大学出版社,2005年3 杨晓慧、许红梅、杨会玲编著:电子技术EDA实践教程,第一版,北京:国防工业出版社,2005年4 孙芹芝、张瑾、苏晓鹭:基于EDA的交通灯控制系统,应用天地,2005年第五期5 林明权等编著:VHDL数字控制系统设计范例,第一版,北京:电子工业出版社,2003年6 潘松、黄继业编著:EDA技术实用教程,第二版,北京:科学出版社,2005年7 曾素琼:EDA技术在数字电路中的探讨,实验科学与技术,2005年第一期,第8 谭会生等主编,EDA技术及应用,西安电子科技大学出版社,20019 彭介华,电子技术课程设计指导高等教育出版社.2000年出版.

    注意事项

    本文(EDA实验---交通灯的设计.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开