还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计课程设计名称EDA课程设计专业班级XXXXX学生姓名XXXXX学号XXXX指导教师XXXXX课程设计时间2011-12-19~2011-12-30电子信息工程技术专业课程设计任务书学生姓名XXX专业班级XXXX学号XXXX题目交通信号灯控制器课题性质工程设计课题来源自拟课题指导教师XXXXX同组姓名主要内容设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号主干道处于常允许通行的状态,支干道有车来时才允许通行主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路任务要求1根据设计题目要求进行方案设计并编写相应程序代码2对编写的VHDL程序代码进行编译和仿真3总结设计内容,完成课程设计说明书审查意见指导教师签字XXXXX教研室主任签字XXXXX说明本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1设计任务及要求设计一个主干道和支干道十字路口的交通灯控制电路,要求如下
①一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮的时间为45s
②主干道无车,支干道有车,则主干道红灯亮、支干道绿灯亮,但支干道绿灯亮的时间为25s
③每次主干道或支干道绿灯变红灯时,黄灯先亮5s设计要求
1.有MR(主红)、MY(主黄)、MG(主绿)、CR干红、CY(干黄)、CG(干绿)六盏交通灯需要控制;
2.交通灯由绿转红有5秒黄灯亮的间隔时间,由红转绿没有间隔时间;
3.系统有MRCY、MRCG、MYCR、MGCR四个状态;MGCRMYCRMRCGMRCY主干道交通灯绿(45秒)黄(5秒)红(25秒)红(5秒)支干道交通灯红红绿黄
4.干间公路右侧各埋有一个传感器,当有车辆通过干间公路时,发出请求信号S=1,其余时间S=0;
5.平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(支干道通行)状态,但要保证MGCR的状态不得短于45s;
6.一旦S信号无效,系统脱离MRCG状态随即经MRCY(黄灯状态)进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于25秒钟2设计原理及总体框图主控电路是一个单进程Moore型有限状态机,通过接收定时器发送的“时间到”信号以及根据s(用来指示支干道是否有车来,‘1’表示支干道没有车来,‘0’支干道有车来)的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制具体控制过程为当s=‘1’时,支干道没有车来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯;当s=‘0’时,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,且在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡由于主、支干道有45秒和25秒得放行时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,所以设计45秒、25秒和5秒计时电路,均采用倒计时考虑到显示的方便,每个计时电路又由计数器和码型转换电路组成码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示,这样可简化模块设计3程序设计
(1)分频器的设计LIBRARYIEEE;USEIEEE.Std_Logic_
1164.ALL;ENTITYFreDeviderISPORTClkin:INStd_Logic;Clkout:OUTStd_Logic;END;ARCHITECTUREDeviderOFFreDeviderISCONSTANTN:Integer:=499;signalcounter:Integerrange0toN;signalClk:Std_Logic;BEGINPROCESSClkinbeginIFrising_edgeClkinTHENIFCounter=Nthencounter=0;Clk=notclk;elsecounter=counter+1;endif;endif;endprocess;clkout=clk;end;
(2)控制设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分译码电路此外,当检测到特殊情况(Hold=‘1’)发生时,无条件点亮红色的发光二极管LIBRARYIEEE;USEIEEE.STD_LOGIC_
1164.ALL;ENTITYcountrollerISPORTClock:INSTD_LOGIC;Hold:instd_logic;CountNum:inINTEGERRANGE0TO89;NumANumB:outINTEGERRANGE0TO45;RedAGreenAYellowA:outstd_logic;RedBGreenBYellowB:outstd_logic;END;ARCHITECTUREbehaviorOFCountrollerISBEGINprocessClockBEGINIFfalling_edgeClockTHENIFHold=1THENRedA=1;RedB=1;GreenA=0;GreenA=0;YellowA=0;YellowB=0;ELSIFCountNum=39THENNumA=40-CountNum;RedA=0;GreenA=1;YellowA=0;ELSIFCountNum=44THENNumA=45-CountNum;RedA=0;GreenA=0;YellowA=1;ELSENumA=90-CountNum;RedA=1;GreenA=0;YellowA=0;ENDIF;IFCountNum=44THENNumB=45-CountNum;RedB=1;GreenB=0;YellowB=0;ELSIFCountNum=84THENNumB=85-CountNum;RedB=0;GreenB=1;YellowB=0;ELSeNumB=90-CountNum;RedB=0;GreenB=0;YellowB=1;ENDIF;ENDIF;ENDPROCESS;END;
(3)计数器的设计这里计数器的计数范围为0—45S计到45后下一个时钟沿回复到0开始下一轮计数.此外当检测到特殊情况Hold=‘1‘发生时,计数器暂停计数,而系统复位号Reset则使计数器异步清0程序如下LIBRARYIEEE;USEIEEE.STD_LOGIC_
1164.ALL;ENTITYcounterISPORTclock:INSTD_LOGIC;reset:instd_logic;Hold:instd_logic;countNum:BuFFeRINTEGERRANGE0TO90;END;ARCHITECTUREbehaviorOFcounterISBEGINprocessresetClockBEGINIFReset=1THENcountNum=0;ELSIFrising_edgeClockTHENIFHold=1thencountNum=countNum;ELSEIFcountNum=90THENcountNum=0;ELSEcountNum=countNum+1;ENDIF;ENDIF;ENDIF;ENDPROCESS;END;
(4)分位译码电路设计LIBRARYIEEE;USEIEEE.STD_LOGIC_
1164.ALL;ENTITYFenweiISPORTNumin:INintegerRANGE0TO45;NumANumB:OUTIntegerRANGE0to9;END;ARCHITECTUREbehaviorOFFenweiISBEGINprocessNuminBEGINIFNumin=40THENNumA=4;NumB=Numin-40;ELSIFNumin=30THENNumA=3;NumB=Numin-30;ELSIFNumin=20THENNumA=2;NumB=Numin-20;ELSIFNumin=10THENNumA=1;NumB=Numin-10;ELSENumA=0;NumB=Numin;ENDIF;ENDPROCESS;END;
(5)数码管驱动设计LIBRARYIEEE;USEIEEE.STD_LOGIC_
1164.ALL;ENTITYbcd_dataISPORTbcd_data:inSTD_LOGIC_VECTOR3downto0;segout:outSTD_LOGIC_VECTOR6downto0;END;ARCHITECTUREbehaviorOFbcd_dataISBEGINprocessbcd_dataBEGINcasebcd_dataiswhen0000=segout=1111110;when0001=segout=0110000;when0010=segout=1101101;when0011=segout=1111001;when0100=segout=0110011;when0101=segout=1011011;when0110=segout=0011111;when0111=segout=1110000;when1000=segout=1111111;when1001=segout=1110011;whenothers=null;ENDCASE;ENDPROCESS;END;LIBRARYIEEE;USEIEEE.STD_LOGIC_
1164.ALL;USEIEEE.STD_LOGIC_unsigned.ALL;ENTITYdtsmISPORTclk:inSTD_LOGIC;NumANumBNumCNumD:inSTD_LOGIC_VECTOR3downto0;segout1:outSTD_LOGIC_VECTOR6downto0;led_sel:outSTD_LOGIC_VECTOR3downto0;ENDdtsm;architecturebhvofdtsmiscomponentbcd_dataisportbcd_data:inSTD_LOGIC_VECTOR3downto0;segout:outSTD_LOGIC_VECTOR6downto0;endcomponent;signalx:STD_LOGIC_VECTOR3downto0;signalq:STD_LOGIC_VECTOR1downto0;beginp1:processclkbeginifclkeventandclk=1thenQ=Q+1;endif;endprocess;p2:processQbegincaseQiswhen00=led_sel=1110;x=NumD;when01=led_sel=1101;x=NumC;when10=led_sel=1011;x=NumB;when11=led_sel=0111;x=NumA;whenothers=null;endcase;endprocess;u1:bcd_dataPORTmapbcd_data=xsegout=segout1;end4编译及仿真对文件保存并进行编译仿真,仿真波形如下
(1)当没有完成模45计数,即使S=1,状态也不发生改变
(2)45秒过后,若S=1主道进入黄灯状态并保持4秒
(3)25秒过后,不论S=1或0乡道进入黄灯状态并保持4秒
(4)当S一旦为0,乡道立刻进入黄灯状态,并持续四秒5硬件调试与结果分析RST信号有效时不计数,主干道在前45s,无论s是否有信号,都不改变状态,到达45s且s有信号,状态改变,主干道黄灯支干道红灯5s后转为主干道红灯支干道绿灯再经25s状态改变,主干道红灯支干道黄灯5s后转为主干道绿灯乡村道红灯,继续等待6参考文献在“课程设计报告”的最后应附上所参考的相关文献,参考文献格式如下
[1]书籍
[2]文章例
[1]边肇祺.模式识别(第二版).北京:清华大学出版社,1988,25~35
[2]李永忠.几种小波变换的图像处理技术.西北民族学院学报(自然科学版),
2001.622
(3),15~18心得体会经过两周的努力,我终于完成关于交通灯控制电路的课程设计,通过两周不断的查资料让我积累了许多实际操作经验,我已熟悉了QuartusⅡ软件的使用方法,而且学习了VHDL基本逻辑电路和状态机电路的综合设计应用EDA设计我感觉程序调试最重要,试验软件、硬件熟悉其次在编完各模块程序之后,编译查错最初有十几个错误,有输入错误、语法错误必须注意工程名和实体名一致,不然一般会出错在无误后可以进行波型仿真若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误发光二极管控制器分频电路分位电路计数器七段数码管译码电路倒计时数字显示ResetdClkd计数值Con1dCond。