EDA课程设计交通灯.doc_第1页
EDA课程设计交通灯.doc_第2页
EDA课程设计交通灯.doc_第3页
EDA课程设计交通灯.doc_第4页
EDA课程设计交通灯.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

可编程逻辑器件与VHDL课程设计 基于VHDL的交通灯设计班 级 : 08级通信(1)班 姓 名 : 学 号 : 指导教师姓名: 杨泽霖 摘要:伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,交通事业得以蓬勃发展,而随之引起的安全问题已经不容忽视。EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。利用EDA技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。关键字:VHDL语言、交通灯、Quartus软件、正文:一、系统分析与总体方案1系统分析 通过分析可以知道,所要设计的十字路口交通灯控制电路要能够使南北方向有左转、直行各三个灯(红、黄、绿),东西方向有左转、直行各三个灯(红、黄、绿),三个灯能够按顺序依次亮灭。而且要求绿灯亮转黄灯亮然后其他时间为红灯,红灯亮可以直接转绿灯(三种灯的循环顺序如图2.1所示)。还要求三种灯的点亮时间能够以倒计时的形式显示出来。可以用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。绿灯黄灯红灯黄灯红灯图2.1三种灯的循环顺序2 设计思路1 时间脉冲可以直接赋予得到。2 10s、5s、40s、30s定时信号用倒计时,计时起始信号由控制流程电路给出,每当计满所需时间,即向控制电路输出“时间到”的信号,并使计数器清零,由控制电路启、闭三色信号灯。3 主控电路是核心,这是一个时序电路,其输入信号为东西、南北方向:10s、5s、40s、30s定时信号,其输出状态控制相应的三色灯。4 三种灯转换状态表:时间|S105405105305东西左转绿黄红红红红红红东西直行红红绿黄红红红红南北左转红红红红绿黄红红南北直行红红红红红红绿黄3 设计方案 根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图2.2所示:CLK交通灯控制及计时模块扫描显示模块LED显示图2.2 系统的框图电路设计1控制器电路设计流程控制器的作用是根据计数器的计数值控制各方向上发光二极管的亮、灭,当计时时间到达,状态控制器就响应,自动跳转到下一个状态。此外,当检测到特殊情况(urgen =1)发生时,无条件点亮红灯的二极管(急救灯按下urgen =1,则东西南北都亮红灯,在这种状态下原来的状态必须保持,即东西南北方向定时时间保持不变。急救灯未按下或者按下后恢复,则继续计时(计时通过计数器count),同时恢复东西南北原来灯的状态)。具体实物模块如图3.1所示:图3.1控制器模块程序实现如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ledcontrol ISPORT(reset,clk,urgen: INSTD_LOGIC;state: OUTSTD_LOGIC_VECTOR(2 DOWNTO 0);sub,set1,set2,set3,set4: OUTSTD_LOGIC);END ledcontrol;ARCHITECTURE a OF ledcontrol ISSIGNAL count : STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL subtemp: STD_LOGIC;BEGINsub=subtemp AND (NOT clk) ;-将电平型信号变为脉冲型,即高电平时输出一个脉冲statelabel:PROCESS (reset,clk)BEGINIF reset=1 THEN-系统复位 count=0000000;state=000;set2=1;set4=1;ELSIF clkevent AND clk=1 THEN IF urgen=0 THEN count=count+1;subtemp=1;ELSE subtemp=0;END IF;-经过脉冲电平变换后,使得正常状态时,正常减计数,紧急状态下停止计数IF count=0 then state=000;set1=1;set2=1;set3=1;set4=1; ELSIF count=10 then state=001;set1=1;ELSIF count=15 THEN state=010;set1=1;set2=1;ELSIF count=55 THEN state=011;set2=1;ELSIF count=60 THEN state=100;set2=1;set3=1;elsif count=70 THEN state=101;set3=1;elsif count=75 THEN state=110;set3=1;set4=1;elsif count=105 THEN state=111;set4=1;ELSIF count=110 THEN count=0000000; ELSE set1=0; set2=0;set3=0;set4=0;END IF;END IF; - 控制流程END PROCESS statelabel;END a;2输出显示电路设计根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的显示器,使显示器输出当前状态下的数码管亮、灭指令,其中数码管的显示采用动态扫描显示。具体实物模块如图:图3.2译码显示电路模块程序实现如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ledshow ISPORT(clk,urgen: IN STD_LOGIC;state: IN STD_LOGIC_VECTOR(2 DOWNTO 0);sub,set1,set2,set3,set4: IN STD_LOGIC;eg1,ey1,er1,edg2,edy2,edr2,ng1,ny1,nr1,ndg2,ndy2,ndr2: OUTSTD_LOGIC;led1,led2: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END ledshow;ARCHITECTURE a OF ledshow ISSIGNAL count1,count2,count3,count4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL setstate1,setstate2,setstate3,setstate4 : STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL etg1,ety1,etr1,edirr1,edirg1,ediry1,norg2,nory2,norr2,nordirg2,nordiry2,nordirr2 : STD_LOGIC; BEGINled1=00000000 WHEN urgen=1 AND clk=0 ELSE -显示东西向行和停count1 WHEN state=000 ELSEcount1 WHEN state=001 ELSE count2 WHEN state=010 ELSEcount2 WHEN state=011 ELSEcount2;led2=00000000 WHEN urgen=1 AND clk=0 ELSEcount3 WHEN state=000 ELSEcount3 WHEN state=001 ELSE count3 WHEN state=010 ELSEcount3 WHEN state=011 ELSEcount3 WHEN state=100 ELSEcount3 WHEN state=101 ELSEcount4 WHEN state=110 ELSEcount4;etg1=1 WHEN state=000 AND urgen=0 ELSE 0;ety1=1 WHEN state=001 AND urgen=0 ELSE 0;etr1=1 WHEN state=010 or urgen=1 OR state=011 OR state=100 OR state=101 OR state=110 OR state=111 ELSE 0;edirg1=1 WHEN state=010 and urgen=0 ELSE 0;ediry1=1 WHEN state=011 and urgen=0 ELSE 0;edirr1=1 WHEN state=000 OR urgen=1 OR state=001 OR state=100 OR state=101 OR state=110 OR state=111 ELSE 0;norg2=1 WHEN state=100 AND urgen=0 ELSE 0;nory2=1 WHEN state=101 and urgen=0 ELSE 0;norr2=1 WHEN state=000 OR state=001 OR state=010 OR state=011 OR state=110 OR state=111 OR urgen=1 ELSE 0;nordirg2=1 WHEN state=110 AND urgen=0 ELSE 0;nordiry2=1 WHEN state=111 and urgen=0 ELSE 0;nordirr2=1 WHEN state=000 OR state=001 OR state=010 OR state=011 OR state=100 OR urgen=1 OR state=101 ELSE 0;setstate1= 00010000 WHEN state=000 ELSE00000101 WHEN state=001 ELSE10010101 ;setstate2= 00010101 WHEN state=000 ELSE-00000101 WHEN state=001 ELSE01000000 WHEN state=010 ELSE00000101 WHEN state=011 ELSE01010000 ;setstate3= 01100000 WHEN state=000 ELSE00010000 WHEN state=100 ELSE00000101 WHEN state=101 ELSE00110101 ;setstate4= 01110101 WHEN state=000 ELSE00110000 WHEN state=110 ELSE00000101 ;label4: -南北直行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set4=1 THEN count4=setstate4;elsif count4(3 downto 0)=0000 then count4=count4-7; ELSE count4=count4-1; END IF;ndy2=nordiry2;ndg2=nordirg2;ndr2=nordirr2;END IF;END PROCESS label4;label3: -南北左行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set3=1 THEN count3=setstate3;elsif count3(3 downto 0)=0000 then count3=count3-7;ELSE count3=count3-1; END IF;ng1=norg2;ny1=nory2;nr1=norr2;END IF;END PROCESS label3;label2: -东西直行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set2=1 THEN count2=setstate2;elsif count2(3 downto 0)=0000 then count2=count2-7; ELSE count2=count2-1; END IF;edg2=edirg1;edy2=ediry1;edr2=edirr1;END IF;END PROCESS label2;label1: -东西左行PROCESS (sub)BEGINIF subevent AND sub=1 THENIF set1=1 THEN count1=setstate1; elsif count1(3 downto 0)=0000 then count1=count1-7;ELSE count1=count1-1; END IF;eg1=etg1;er1=etr1;ey1=ety1;END IF;END PROCESS label1;END a;程序仿真与分析1 仿真结果利用Quartus II软件对本程序进行编译,生成了可以进行仿真定时分析以及下载到可编程器件的相关文件。仿真结果如图5.1所示:图5.1 仿真结果2 仿真结果分析通过设定clk值以及reset和urgen的初值,就可以得到如上所示的仿真波形图。由仿真波形图可以看出波形是由reset初值信号触发而显示出各个状态的。Urgen高电平信号输入时,所有交通灯都变为红灯状态。由仿真波形图还可以清楚的看出各时间段每个交通灯的状态。要得到正确的仿真波形图就不许设定合适的时间信号clk值。如果clk值设置的太小则交通灯状态变化得太快无法分辨,如果clk值设置得太大则交通灯状态转换缓慢,效果不明显。其次,要设定reset初值,如果没有设定reset初值就不可能触发而得到仿真图。最后,就是要设置一Urgen高电平信号来检测紧急情况下的交通灯的状态。心得体会通过此次课程设计,使我对EDA程序设计有了进一步的学习,进一步的认识;在程序的设计,程序的调试方面都学到了很多东西,这是第一次编写EDA的大程序,很有成就感。在这几天课设的时间里,实验室的氛围对我们的影响很大,大家一起努力,这也是我们能完成课设的动力。在编程中出现问题时,一定要戒骄戒躁,脚踏实地,认真看书,仔细分析,仔细调试,就一定会发现错误,克服困难,我们也是这么做的,这在课设中十分重要。从这次的课程设计中,我真真正正的意识到,在以后的学习中,

温馨提示

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

评论

0/150

提交评论