交通灯控制器课程设计正文.doc_第1页
交通灯控制器课程设计正文.doc_第2页
交通灯控制器课程设计正文.doc_第3页
交通灯控制器课程设计正文.doc_第4页
交通灯控制器课程设计正文.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

交通灯控制器的设计摘要本设计是基于EDA技术的交通灯控制器的设计。该设计通过用数字信号自动控制十字路口交通灯状态转换的方法,指挥各种车辆和行人安全通行,实现十字路口交通管理的自动化。在本次课程设计里,用VHDL语言为基础来实现设计交通控制信号灯,在Quartus II软件完成其仿真,实现各个路口上红绿灯转换。关键词:交通信号灯, VHDL, 仿真AbstractThis design is based on EDA technology, traffic light controller. The design with digital signal control intersections by traffic light state transition method, the command of various vehicles and pedestrians safe passage, a crossroads of traffic management to achieve automation. In this curriculum design, the use of VHDL language-based approach to design traffic control signal, the Quartus II software to complete the simulation, realization of the trunk and branches Road to the traffic lights change.Keywords:Street-traffic control lights, VHDL , Simulation目录摘要IAbstractII目录III第1章 绪论11.1课程设计背景11.2设计任务与要求11.3方案对比21.4 进度安排2第二章 设计总体框图3第三章 功能模块43.1控制模块43.2输出模块63.3分频模块93.4绿灯闪烁控制模块103.5扫描模块113.6译码模块133.7deled模块14附录 总体设计电路图17心得体会18参考文献1919第1章 绪论 1.1课程设计背景 目前,全国大中城市普遍存在着道路拥挤、车辆堵塞、交通秩序混乱的现象,交通事故频发,这给人民的生命财产安全带来了极大的损失。如何解决城市交通问题已成为全社会关注的焦点和大众的迫切呼声。探究城市交通发展中存在问题的原因,无论是从宏观上还是从微观上分析,其根本原因在于城市交通系统的管理机制不适应。城市交通控制系统(UTC ,Urban Traffic Control System)是现代城市智能交通系统(IDJ ,Intelligent transport system)的组成之一,主要用于城市道路交通的控制与管理。城市平交路口实现交通信号控制是城市交通管理现代化的基本标志之一,是提高交通管理效能的重要技术手段。路口信号控制器是控制交叉路口交通信号的设备,它是交通信号控制的重要组成部分。各种交通控制方案,最终都要由路口信号控制器来实现。为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。利用EDA技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。1.2设计任务与要求能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态。用LED灯表示当前交通状态。能实现正常的倒计时功能。用两组七段数码管倒计时显示当前交通状态剩余秒数。该交通灯的亮灭顺序如下:东西绿灯25秒东西绿闪3秒东西黄灯5秒南北绿灯25秒南北绿闪3秒东西红灯33秒南北黄灯5秒南北红灯33秒1.2.1能实现特殊状态的功能。例如消防车、救护车或其他需要优先放行的车辆通过时实现下列功能:按下特殊状态键后,能实现特殊状态功能;显示倒计时的两组数码管闪烁;计数器停止计数并保持在原来的状态;东西、南北路口均显示红灯状态;特殊状态解除后能继续计数;1.2.2能实现总体清零功能。按下清零键后,系统实现总体清零,计数器由初始状态计数,对应状态的指示灯亮。用VHDL语言设计符合上述要求的交通灯控制器,并用层次化设计方法设计该电路。1.3方案对比实现路口交通灯系统的控制方法很多,可以用标准逻辑器件、可编程序控制器等方案来实现。方案一采用VHDL语言直接编写,实现交通灯指挥功能。但此方案编写复杂且困难,开发时间较长。编译后,不便读懂,找出错误很困难。方案二采用模块层次化设计,将此设计分为四个模块:计时模块,状态控制模块,信号灯显示模块,数码扫描显示模块。将四个模块再分别用VHDL语言编写成,做成原理图模块,用原理图输入法做整个设计的顶层文件。此方案设计方便、简单,方法易懂、易操作,也易于寻找程序中的错误,故我们采用此方案。1.4 进度安排1.星期一:下达设计任务书,介绍课题内容与要求; 分配任务:严文凭,上网搜集资料,审核,打印; 李海龙,对资料进行初步整理,以备选用; 胡二强,确定设计方案,并做系统分析,研究。2.查找资料,确定总体设计方案和单元电路设计;3.星期三第二周星期一:单元电路设计与仿真,硬件下载;4.第二周星期二、三:硬件下载;5.第二星期四:书写设计报告;6.第二星期五:打印相关图纸,答辩。第二章 设计总体框图各模块功能如下:(1) 从电路框图可以看到由减计数器、控制器组成了最基本的电路,其中计数器经过扫描电路以BCD码输出的形式通过译码器与外部数码管相连;控制器控制LED灯的状态以及计数器的计数、暂停计数。(2) 分频器可以分出标准的1Hz频率信号以及扫描所需要频率信号。(3) 总体框图中,reset为复位(清零)信号,urgen为特殊状态信号。第三章 功能模块交通灯控制器的信号说明:reset:系统复位;clk:计时和闪烁频率clk1:扫描频率;urgen:紧急情况既特殊状态信号,高电平代表紧急情况出现;state:状态变化信号,00代表东西绿灯,南北红灯;01代表东西黄灯,南北红灯;10代表东西红灯,南北绿灯;11代表东西红灯,南北黄灯;sub1,sub2:东西和南北方向的计数器减1信号;set1,set2:东西和南北方向的计数器置数信号;setg1,setg2: 东西和南北方向的绿灯闪烁信号;r1,g1,y1:代表东西方向的红灯、绿灯和黄灯;led1:代表东西方向的倒计时显示;r2,g2,y2:代表南北方向的红灯、绿灯和黄灯;led2: 代表南北方向的倒计时显示;模块说明:3.1控制模块通过对时钟的计数控制运行状态的改变,输出相应的状态变化信息、递减信号和置数信号给输出模块进行显示同时输出绿灯闪烁控制信号给绿灯闪烁控制模块;出现紧急情况时停止计数和状态的变化,解除紧急状态后继续原来的运行状态。VHDL源程序为:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;Entity ledcontrol IS PORT( reset,clk,urgen :IN std_logic; state :OUT std_logic_vector(1 downto 0); sub,set1,set2,setg1,setg2 :OUT std_logic);end ledcontrol;architecture a of ledcontrol issignal count : std_logic_vector(6 downto 0); signal subtemp:std_logic;begin sub=subtemp and (not clk);statelabel:process(reset,clk) beginif reset=0 then count=0000000; state=00;elsif clkevent and clk=1 then if urgen=0 then count=count+1;subtemp=1; elsif urgen=1 then subtemp=0;end if;if count=0 then state=00;set1=1;set2=1;elsif count=28 then state=01;set1=1;elsif count=33 then state=10;set1=1;set2=1;elsif count=61 then state=11;set2=1;elsif count=66 then count=0000000;else set1=0;set224 and count27 then setg1=1;setg232 and count60then setg2=1;setg1=0;else setg1=0;setg2=0;end if;end if;end process statelabel;end a;生成模块为:仿真波形为:3.2输出模块在正常状态下通过控制模块输出的state状态信号, sub1,sub2 减信号和set1,set2 置数信号控制东西和南北方向的指示灯和计数显示;紧急状态下通过urgen紧急信号, clk时钟信号处理紧急情况,东西和南北方向均输出红灯,计数输出值停止倒计时并不断闪烁。VHDL源程序为:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY ledshow IS PORT( clk,urgen : IN std_logic; state : IN std_logic_vector(1 downto 0); sub,set1,set2 :IN std_logic;r1,g1,y1,r2,g2,y2 :OUT std_logic;led1,led2 :OUT std_logic_vector(7 downto 0);END ledshow;ARCHITECTURE a OF ledshow IS Signal count1,count2 : std_logic_vector(7 downto 0); Signal setstate1,setstate2 : std_logic_vector(7 downto 0); Signal tg1,tg2,tr1,tr2,ty1,ty2:std_logic;BEGIN led1=00000000 when urgen=1 and clk=0 else count1; led2=00000000 when urgen=1 and clk=0 else count2; tg1=0 when state=00 and urgen=0 else 0; ty1=0 when state=01 and urgen=0 else 0; tr1=0 when state(1)=1 or urgen=1 else 0; tg2=0 when state=10 and urgen=0 else 0; ty2=0 when state=11 and urgen=0 else 0; tr2=0 when state(1)=0 or urgen=1 else 0; setstate1=00010101when state=00 else 00000011when state=01 else 00011000;Setstate2=00010101when state=10 else 00000011when state=11 else 00011000;Label2:PROCESS(sub)BEGINIF subevent and sub=1 then IF set2=1 or count2=1 thencount2=setstate2; elsif count2(3 downto 0)=0000 then count2=count2-7; else count2=count2-1; end if; g2=tg2; r2=tr2; y2=ty2; end if;end process label2;label1: PROCESS(sub)BEGINIF subevent and sub=1 then IF set1=1 or count1=1 thencount1=setstate1; elsif count1(3 downto 0)=0000 then count1=count1-7; else count1=count1-1; end if; g1=tg1; r1=tr1; y1=ty1; end if;end process label1;end a;生成模块为:仿真波形为:3.3分频模块将时钟信号经过分频得到所需要的信号。系统的动态扫描需要1HZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将1kHZ的脉冲信号进行分频,产生方波,作为系统时钟计时信号。VHDL源程序为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity div isport(clk_in:IN std_logic;div_outb,div_outc:OUT std_logic);end div;ARCHITECTURE a OF div ISsignal fre_nb:integer range 0 to 50000000;signal fre_nc:integer range 0 to 50000;signal clk_tmpb:std_logic;signal clk_tmpc:std_logic;begindiv_outb=clk_tmpb;div_outc49999999 thenfre_nb=0;clk_tmpb=not clk_tmpb;elsefre_nb49999 thenfre_nc=0;clk_tmpc=not clk_tmpc;elsefre_nc=fre_nc+1;end if;end if;end process;END a;生成模块为:3.4绿灯闪烁控制模块当满足绿灯闪烁条件时,绿灯闪烁。VHDL源程序为:LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;Entity ctrg isport(clk,setg1,setg2 ,urgen: in std_logic; ig1,ig2 : in std_logic; g1,g2 :out std_logic );end ctrg;architecture a of ctrg isbeginprocess(clk,setg1,setg2)variable tg1: std_logic:=ig1;variable tg2: std_logic:=ig2;beging1=tg1 and ( not urgen);g2=tg2 and(not urgen);if clkevent and clk=1 then if setg1=1 then tg1:=not tg1; elsif setg2=1 then tg2:=not tg2; else tg1:=ig1;tg2:=ig2; end if;end if;end process;end a;生成模块为:仿真波形为:3.5扫描模块该模块用于产生对数码管的片选信号,可以根据控制信号,驱动交通信号灯以及倒计时数码管的显示。VHDL源程序为:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity seltime2 isport(clk1,reset:in std_logic;d1,d2:in std_logic_vector(7 downto 0);daout:out std_logic_vector(3 downto 0);sel:out std_logic_vector(2 downto 0);end seltime2;architecture fun of seltime2 issignal count:std_logic_vector(2 downto 0);beginsel=count;process(clk1,reset)beginif(reset=0)thencount100)thencount=000;elsecountdaoutdaoutdaoutdaout null;end case;end process;end fun;生成模块为:仿真波形为:3.6译码模块VHDL源程序为:LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY decode3_8 ISPORT(SEL:IN std_logic_vector(2 downto 0);Q:OUT std_logic_vector(7 downto 0);END decode3_8;ARCHITECTURE a OF decode3_8 ISBEGINQ=11111110when sel=0 else11111101when sel=1 else11111011when sel=2 else11110111when sel=3 else11111111;END a;生成模块为:仿真波形为3.7deled模块该模块将输入数据转换为七段数码管需要的数据。 VHDL源程序为LIBRARY ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;ENTITY deled ISPORT(num:IN std_logic_vector(3 downto 0);led:OUT std_logic_vector(6 downto 0);END deled;ARCHITECTURE fun OF deled ISBEGINled=1111110when num=0000else0110000when num=0001else1101101when num=0010else1111001when num=0011else0110011when num=0100else1011011when num=0101else1011111when num=0110else1110000when num=0111else1111111when num=1000else1111011when num=1001else1110111when num=1010else0011111when num=1011els

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论