ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:173.64KB ,
资源ID:23118962      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23118962.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于EDA的交通灯控制系统设计.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于EDA的交通灯控制系统设计.docx

1、基于EDA的交通灯控制系统设计2008级学生EDA课程设计 EDA课程设计报告书课题名称 基于EDA的交通灯控制系统设计姓 名陈 勇学 号 0812201-08 院 系物理与电信工程系专 业电子信息工程指导教师田旺兰 讲师2011年 6月10日 一、设计任务及要求:设计任务: 设计一个具有四种信号灯的交通灯控制器。要 求: 1由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。2信号灯变换次序为:主支干道交替允许通行,主干道每次放行40秒,亮5秒红灯让行驶中的

2、车辆有时间停到禁行线外,左拐放行15秒,亮5秒红灯;支干道放行30秒,亮5秒黄灯,左拐放行15秒,亮5秒红灯。各计时电路为倒计时显示。指导教师签名: 2011 年 月 日 二、指导教师评语:指导教师签名: 2011 年 月 日 三、成绩验收盖章 2011 年 月 日 基于EDA的交通灯控制系统设计1 设计目的(1)掌握十字路口交通灯控制的设计原理,并能够运用VHDL编程语言编写出实验程序,进一步对所学的EDA知识进行掌握与实际应用。(2)学会在quartusII软件环境中仿真,熟悉软件的基本操作和运行环境。(3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。2设计的主要内容和

3、要求设计一个基于EDA的交通灯控制系统,所要设计的交通信号灯控制电路要能够适用于由一条主干道和一条支干道的汇合点形成的十字交叉路口。能够做到主、支干道的红绿灯闪亮的时间不完全相同,在绿灯跳变红灯的过程中能够用黄灯进行过渡,使得行驶过程中的车辆有足够的时间停下来。还要求在主、支干道各设立一组计时显示器,能够显示相应的红、黄、绿倒计时。可以利用VHDL语言合理设计系统功能,使红黄绿灯的转换有一个准确的时间间隔和转换顺序。3 整体设计方案根据设计要求和系统所具有功能,并参考相关的文献资料,经行方案设计,画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如图3.1所示。并且可以得出系

4、统的状态图如图3.2所示,其中:S0:支干道没有车辆行驶,支干道绿灯,支干道红灯S1:支干道有车辆行驶,支干道绿灯,支干道红灯S2:主干道黄灯,支干道绿灯S3:主干道红灯,支干道绿灯S4:主干道红灯,支干道黄灯CLK时钟分频模块交通灯控制及计时模块扫描显示模块LED显示数码管位码数码管段码图3.1 整体设计方框图 图3.2 系统状态图4 硬件电路的设计4.1 顶层文件原理图 根据以上设计思路,可以得到如下的顶层文件原理图如4.1所示,具体实物模块如图4.2所示。 图4.1顶层文件原理图 图4.2顶层文件的实体图 图4.3时钟分频器模块4.2时钟分频器模块设计分频器实现的是将高频时钟信号转换成低

5、频时钟信号,用于触发控制器、计数器和扫描显示电路。系统的动态扫描需要1HZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将1kHZ的脉冲信号进行分频,产生1S的方波,作为系统时钟计时信号。具体实物模块如图4.3所示。4.3控制及计时模块设计控制模块根据外部输入信号和计时模块产生的输出信号,产生系统的状态机,控制其他部分协调工作。计时模块用来设定主干道和支干道计时器的初值,并为扫描显示译码模块提供倒计时时间。控制及计时模块采用状态机进行设计,可以定义出5种状态,分别为S0:主干道绿灯,支干道红灯且没有车辆行驶;S1:主干道绿灯,支干道红灯或支干道有车

6、辆驶入;S2:主干道黄灯,支干道红灯;S3:主干道红灯,支干道绿灯;S4:主干道红灯,支干道黄灯。利用CASE语句定义状态的转换方式及时间的变换方式,达到主干道绿灯亮45秒,支干道绿灯亮25秒,黄灯亮5秒的设计要求。具体实物模块如图4.4所示,其中:CAR为支干道车辆检测开关在支干道有车的情况下,模块可以进行减计时CLK1S为1S的时钟脉冲TIME1H、TIME1L、TIME2H、TIME2L分别为主干道时钟高位、主干道时钟低位、支干道时钟高位、支干道时钟低位LED为LED灯发光情况,分别为主干道绿灯、主干道黄灯、主干道红灯、支干道绿灯、主干道黄灯、主干道红灯 图4.4控制电路模块Count的

7、总的系统时间,用来改变系统的状态4.4 译码显示电路设计根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的根据状态控制器所控制的状态和计数器的计时时间,选择当前状态下的采用动态扫描显示。具体实物模块如图4.5所示。 图4.5译码显示电路模块4.5 顶层文件的编写将以上各个单元模块仿真成功后,再进行顶层文件的编写。将各个单元模块的变量赋值给顶层文件,从而将各个单元模块连接起来,统一调配。得到顶层文件的实体模块如图4.2所示。其中:CLK为1KHZ系统时钟脉冲CAR为支干道车辆行驶情况,高电平为有车行驶,低电平为无车行驶LED为交通灯发光情况SEL为数码管位码扫描SEG为数码管段码5

8、软件设计5.1 时钟分频模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY fp ISPORT(clk:IN STD_LOGIC; CLK1S:OUT STD_LOGIC);END fp;ARCHITECTURE one OF fp IS SIGNAL N: STD_LOGIC_VECTOR(9 DOWNTO 0); BEGIN PROCESS(clk) BEGIN IF clkEVENT AND clk=1 THEN N=N+1; END IF; END PROCESS; CLK

9、1S=N(9); END one;5.2 交通灯控制及计时模块:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY kz ISPORT(CLK1S,car:IN STD_LOGIC;-1S脉冲,支干道车辆检测 TIME1H,TIME1L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-支干道计时 TIME2H,TIME2L:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-支干道计时 count:OUT STD_LOGIC_VECTOR(6 DOWN

10、TO 0); -系统总计时 led:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); -交通灯显示END KZ;ARCHITECTURE one OF kz IS TYPE states IS (s0,s1,s2,s3,s4,s5); -状态初始化 SIGNAL current_state,next_state :states; SIGNAL c:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINREG:PROCESS(CLK1S,car,current_state,c)BEGIN IF car =0THEN current_state = s0; c=00

11、00000; ELSE IF CLK1SEVENT AND CLK1S =1 THEN -支干道有车开始计数 c =c+1; current_state LED =100001; -支干道无车不减计时 TIME1H=0100;TIME1L=0101; TIME2H=0101;TIME2L=0000; IF car = 1 THEN next_state = s1; ELSE next_state LED =100001; -主干道绿灯,支干道红灯 IF c=0101100 THEN next_state = s2; ELSE next_state LED =010001; -主干道黄灯,支干道

12、红灯 IF c=0110001 THEN next_state = s3; ELSE next_state LED =001100; -主干道红灯,支干道绿灯 IF c=1001010 THEN next_state = s4; ELSE next_state LED =001010; -支干道黄灯,主干道红灯 IF c=0110001 THEN next_state = s5; ELSE next_state LED =100001; next_state = s0;END CASE;IF c=0101101 THEN TIME1H=0000;TIME1L=0101; -系统时间为45,主干

13、道黄灯计时5秒END IF;IF c=0110010 THENTIME1H=0011;TIME1L=0000;TIME2H=0010;TIME2L=0101;-系统时间为50,主干道计时30秒,支干道计时25秒END IF;IF c=1001011 THEN TIME2H=0000;TIME2L=0101;-系统时间为75,支干道黄灯计时5秒END IF;IF c=1010000 THENTIME1H=0100;TIME1L=0000;TIME2H=0101;TIME2L=0101;-系统时间为80,主干道计时45秒,支干道计时50秒END IF;IF c=1010000 THEN c=000

14、0000; -系统时间清零END IF;END PROCESS REG;count =c;END one;5.3 扫描显示译码器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY xs ISPORT(clk,CLK1S,car:IN STD_LOGIC; TIME1H,TIME1L:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -主干道置数 TIME2H,TIME2L:IN STD_LOGIC_VECTOR(

15、3 DOWNTO 0); -支干道置数 count:IN STD_LOGIC_VECTOR(6 DOWNTO 0); -计数信号 sel:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -数码管位码 seg:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -数码管段码END xs;ARCHITECTURE one OF xs ISSIGNAL num:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL numsel:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL numseg:STD_LOGIC_VECTOR(

16、6 DOWNTO 0);SIGNAL Q1,Q2,Q3,Q4:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINSM:PROCESS (clk,num,numsel) -扫描BEGINIF clkEVENT AND clK=1 THEN numsel=numsel+1; IF numsel=011 THEN numselnumnumnumnumNULL;END CASE;END PROCESS WX;ZS:PROCESS(CLK1S,car,Q1,Q2,Q3,Q4,num,TIME1H,TIME1L,TIME2H,TIME2L)-数码管置数BEGINIF car =1 THE

17、N IF CLK1SEVENT AND CLK1S=1 THEN IF Q20000 THEN Q20000 THEN Q1=Q1-1;Q20000 THEN Q40000 THEN Q3=Q3-1;Q4=1001; END IF; END IF; END IF; IF Q1=0000 AND Q2=0000 THEN Q1=TIME1H;Q2=TIME1L; END IF; IF Q3=0000 AND Q4=0000 THEN Q3=TIME2H;Q4=TIME2L; END IF; ELSE Q1=TIME1H;Q2=TIME1L; -支路无车辆不减计时 Q3=TIME2H;Q4nums

18、egnumsegnumsegnumsegnumsegnumsegnumsegnumsegnumsegnumsegNULL; END CASE;END PROCESS YM;sel=numsel;segclk,CLK1S=CLK1S);U2: kz PORT MAP(CLK1S=CLK1S,car=car,count=count,led=led,TIME1H=TIME1H,TIME1L=TIME1L,TIME2H=TIME2H,TIME2L=TIME2L);U3: xs PORT MAP(clk=clk,CLK1S=CLK1S,car=car,count=count,sel=sel,seg=se

19、g,TIME1H=TIME1H,TIME1L=TIME1L,TIME2H=TIME2H,TIME2L=TIME2L);END;6 系统仿真与分析6.1 仿真结果利用quartusII软件对顶层实体程序进行编译,生成了可以进行仿真定时分析以及下载到可编程器件的相关文件,然后进行仿真,即可得到最后仿真结果。仿真结果如图6.1所示: 图6.1仿真结果6.2 仿真结果分析通过仿真结果可以得出:开始时,支干道没有车辆行驶。主干道处于常通行状态,支干道处于禁止状态;当支干道有车来时,主干道亮绿灯,经行45秒倒计时,支干道亮红灯,经行50秒倒计时;主干道45秒倒计时结束后跳变到黄灯,进行5秒倒计时,支干道继

20、续亮红灯,进行倒计时;主干道5秒倒计时结束后跳变到红灯,经行30秒倒计时,支干道跳变到绿灯,进行25秒倒计时;支干道25秒倒计时结束后跳变到黄灯,进行5秒倒计时,主干道继续亮红灯,进行倒计时;支干道5秒倒计时结束后,判断支干道是否有车,若有车跳变到S1状态,没有车跳变到S0状态7 设计总结通过这次课程设计,我进一步加深了对EDA(电子设计自动化)的了解。并进一步熟练了对QuartusII软件的操作。在做本次课程设计的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。并加深了对交通灯原理和设计思路的了解。同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅

21、相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。数字化时代的到来给人们的生活带来了极大的改变,有理由相信随着数字化的深入,交通灯控制器的功能将日趋完善。而且,VHDL 语言对EDA 产生的影响也是深远的,它缩短了电子产品的设计周期,为设计者提供了方便。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。参考文献1 江国强.EDA技术与应用(第3版).北京:电子工业出版社,2010 年4月2 杨恢先,黄辉先.单片机原理及应用.北京:人民邮电出版社,2006年10月3 康华光.电子技术基础 数字部分(第五版)M.北京:高等教育出版社,2006年1月4 康华光.电子技术基础 模拟部分(第五版)M.北京:高等教育出版社,2006年1月

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1