收藏 分销(赏)

EDA专业课程设计交通灯.doc

上传人:a199****6536 文档编号:2727282 上传时间:2024-06-05 格式:DOC 页数:12 大小:84.04KB
下载 相关 举报
EDA专业课程设计交通灯.doc_第1页
第1页 / 共12页
EDA专业课程设计交通灯.doc_第2页
第2页 / 共12页
EDA专业课程设计交通灯.doc_第3页
第3页 / 共12页
EDA专业课程设计交通灯.doc_第4页
第4页 / 共12页
EDA专业课程设计交通灯.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、可编程逻辑器件和VHDL课程设计 基于VHDL交通灯设计班 级 : 08级通信(1)班 姓 名 : 学 号 : 指导老师姓名: 杨泽霖 摘要:伴伴随社会发展和人类生活水平提升,汽车数量在不停增加,交通事业得以蓬勃发展,而随之引发安全问题已经不容忽略。EDA技术发展和应用领域也在不停扩大和深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域关键性日益突出。为了确保十字路口行人和车辆顺利,通畅经过,往往采取电子控制交通信号来进行指挥。利用EDA技术设计交通灯来完成这个需求就显愈加迫切,一样也是很实用和合理。关键字:VHDL语言、交通灯、Quartus软件、正文:一、系统分析和总

2、体方案1系统分析 经过分析能够知道,所要设计十字路口交通灯控制电路要能够使南北方向有左转、直行各三个灯(红、黄、绿),东西方向有左转、直行各三个灯(红、黄、绿),三个灯能够按次序依次亮灭。而且要求绿灯亮转黄灯亮然后其它时间为红灯,红灯亮能够直接转绿灯(三种灯循环次序图2.1所表示)。还要求三种灯点亮时间能够以倒计时形式显示出来。能够用VHDL语言合理设计系统功效,使红黄绿灯转换有一个正确时间间隔和转换次序。绿灯黄灯红灯黄灯红灯图2.1三种灯循环次序2 设计思绪1 时间脉冲能够直接给予得到。2 10s、5s、40s、30s定时信号用倒计时,计时起始信号由控制步骤电路给出,每当计满所需时间,即向控

3、制电路输出“时间到”信号,并使计数器清零,由控制电路启、闭三色信号灯。3 主控电路是关键,这是一个时序电路,其输入信号为东西、南北方向:10s、5s、40s、30s定时信号,其输出状态控制对应三色灯。4 三种灯转换状态表:时间|S105405105305东西左转绿黄红红红红红红东西直行红红绿黄红红红红南北左转红红红红绿黄红红南北直行红红红红红红绿黄3 设计方案 依据设计要求和系统所含有功效,并参考相关文件资料经行方案设计画出以下所表示十字路口交通灯控制器系统框图,及为设计总体方案,框图以下图2.2所表示:CLK交通灯控制及计时模块扫描显示模块LED显示图2.2 系统框图电路设计1控制器电路设计

4、步骤控制器作用是依据计数器计数值控制各方向上发光二极管亮、灭,当计时时间抵达,状态控制器就响应,自动跳转到下一个状态。另外,当检测到特殊情况(urgen =1)发生时,无条件点亮红灯二极管(抢救灯按下urgen =1,则东西南北全部亮红灯,在这种状态下原来状态必需保持,即东西南北方向定时时间保持不变。抢救灯未按下或按下后恢复,则继续计时(计时经过计数器count),同时恢复东西南北原来灯状态)。具体实物模块图3.1所表示:图3.1控制器模块程序实现以下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.AL

5、L;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) ;-将电平型信号变为脉冲型,即高电平时

6、输出一个脉冲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

7、 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; EL

8、SE 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_L

9、OGIC;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);

10、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

11、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

12、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 O

13、R 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;nordiry

14、2=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

15、 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

16、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 the

17、n 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;edr

18、2=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软件对本程序进行编译,

19、生成了能够进行仿真定时分析和下载到可编程器件相关文件。仿真结果图5.1所表示:图5.1 仿真结果2 仿真结果分析经过设定clk值和reset和urgen初值,就能够得到如上所表示仿真波形图。由仿真波形图能够看出波形是由reset初值信号触发而显示出各个状态。Urgen高电平信号输入时,全部交通灯全部变为红灯状态。由仿真波形图还能够清楚看出各时间段每个交通灯状态。要得到正确仿真波形图就不许设定适宜时间信号clk值。假如clk值设置太小则交通灯状态改变得太快无法分辨,假如clk值设置得太大则交通灯状态转换缓慢,效果不显著。其次,要设定reset初值,假如没有设定reset初值就不可能触发而得到仿真

20、图。最终,就是要设置一Urgen高电平信号来检测紧急情况下交通灯状态。心得体会经过此次课程设计,使我对EDA程序设计有了深入学习,深入认识;在程序设计,程序调试方面全部学到了很多东西,这是第一次编写EDA大程序,很有成就感。在这几天课设时间里,试验室气氛对我们影响很大,大家一起努力,这也是我们能完成课设动力。在编程中出现问题时,一定要戒骄戒躁,脚扎实地,认真看书,仔细分析,仔细调试,就一定会发觉错误,克服困难,我们也是这么做,这在课设中十分关键。从这次课程设计中,我真真正正意识到,在以后学习中,要理论联络实际,把我们所学理论知识用到实际当中,学习EDA更是如此,程序只有在常常写和读过程中才能提

21、升,加深了我对Quartus II软件应用熟悉了此软件具体操作,这就是我在这次课程设计中最大收获。生活就是这么,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变话题。即使我这次做课程设计不是很复杂,但在设计和仿真过程中,碰到了不少困难,回首整个过程,却受益匪浅。对我而言,知识上收获关键,精神上丰收愈加可喜。让我知道了学无止境道理。我们每一个人永远不能满足于现有成就,人生就像在爬山,一座山峰后面还有更高山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个很美好回想!参考文件1 阎石 主编,数字电子技术基础,高等教育出版社,19982 谭会生等主编,EDA技术及应用,西安电子科技大学出版社,3 廖裕评等主编,CPLD数字电路设计使用MAX+plus入门篇,清华大学出版社,4 冯涛等主编,可编程逻辑器件开发技术:MAX+plus入门和提升,人民邮电出版社,5 杨崇志,特殊新型电子元件手册,辽宁科学技术出版社,19996 彭介华,电子技术课程设计指导高等教育出版社.出版.7 Mark Zwolinski, Digital System Design with VHDL, 电子工业出版社,8 Alan B. Marcovitz Introduction to logic Design, 电子工业出版社,

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服