《交通灯控制器课程设计.doc》由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关《交通灯控制器课程设计.doc》文档请在天天文库搜索。

1、目录一 课题介绍1.1概述1.2课题要求二 设计原理与分析2.1.1红黄绿灯之间状态变换2.1.2计时设置2.1.3紧急情况2.2 总体框图2.3 分块设计三 、原理图四、 程序代码4.1M分频器4.2数码管译码器4.3 交通灯控制器4.4 计时器五、 仿真结果及实验分析六、总结一、课题介绍 1.1概述在十字路口,每条道路各有一组红、黄、绿灯和倒计时显示器,用以指挥车辆和行人有序地通行。其中,红灯(R)亮,表示该条道路禁止通行;黄灯(Y)亮,表示停车;绿灯(G)亮,表示可以通行。倒计时显示器是用来显示允许通行和禁止通行地时间。交通灯控制器就是用来自动控制十字路口的交通灯和计时器,指挥各种车辆和行人安全通行。1.2课题要求设计一个十字交叉路口的交通灯控制器,具体要求如下:(1) 每条道路设一组信号灯,每组信号灯由红、黄、绿3盏灯组成,绿灯表示允许通行,红灯表示禁止通行,黄灯表示该车道上已过。

2、停车线德车辆继续通行,未过停车线的车辆停止通行。(2) 设置一组数码管,以倒计时的方式显示允许通行或禁止通行的时间,其中绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。(3) 当各条路上任意一条上出现特殊情况时,如当消防车、救护车或其他需要优先放行的车辆通过时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。二、设计原理与分析2.1交通灯用以指挥车辆和行人有序地通行,在功能上要实现红黄绿灯之间状态变换、计时设置和紧急情况三大功能。2.1.1红黄绿灯之间状态变换对于十字路口两个方向上的交通灯,要保证一条道路通行另一条禁止,同时还要考虑黄灯到红灯的变换,因此一共有四个状态,即南北红东西绿、南北红东西黄、南北绿东西红、南北黄东西红。 2.1.2计时设置根据要求,绿灯、黄灯、红灯的持续时间分别是20s、5s和25s。2.1.3紧急情况。

3、当各条路上任意一条上出现特殊情况时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁。2.2 总体框图 2.2.1模块示意图 图12.3 分块设计要实现交通灯的控制需要5个功能模块,分别为4M分频器,数码管译码器,交通灯控制器以及计时器。 2.3.1 4M分频器由于引脚选用4M时钟,而计时单位为秒,需要对时钟信号进行4M分频处理,编译后生成4M分频器如下图:图2 4M分频器 2.3.2数码管译码器输出时间为16进制数,要在数码管上显示需设计数码管译码器对其进行译码,编译后生成数码管译码器如下图:图3 数码管译码器 2.3.3 交通灯控制器为完成四个状态之间的循环,需交通灯控制器通过时钟信号的变化来完成状态循环的功能,编译后生成交通灯控制器如下图:图4 交通灯控制器 2.3.4 计时器计时器不仅要完成倒计时功能,还要随状态的变化而改变其倒计时时间,编译后生成计时器如下图:图5 计时器三、 原。

4、理图、代码书写 1、交通灯控制的原理图各个模块代码书写4.1M分频器LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; -- 运算符重载ENTITY cnt4M IS PORT ( ena,clr,d_ctr,clk : IN STD_LOGIC ; q : OUT STD_LOGIC_VECTOR( 3 DOWNTO 0 ); co:out std_logic ) ; END ENTITY cnt4M; ARCHITECTURE bhv OF cnt4M ISSIGNAL q1 : STD_LOGIC_VECTOR(3 DOWNTO 0 ); BEGIN q <= q1 ; PROCESS (clk,clr,ena,d_ctr) BEGIN IF clr='0' THEN q1'。

5、0'); ELSIF clk'EVENT AND clk = '1' THEN IF ena='1' THEN IF d_ctr='1' THEN IF q1 = "1111" THEN q1 '0'); ELSE q1<=q1+'1'; END IF; ELSIF q1= "0000" THEN q1'1'); ELSE q1<=q1-'1'; END IF; END IF ; END IF; END PROCESS ; PROCESS(q1) BEGIN IF q1= "1111" THEN co<='1'; ELSE co<='0'; END IF;END PROCESS;END ARCHITECTURE bhv;4.2数码管译码器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith。

6、.all;use ieee.std_logic_unsigned.all;entity exp4 is port(clk : in std_logic; A,B:in std_logic_vector(7 downto 0); ledag:out std_logic_vector(6 downto 0); sel:out std_logic_vector(7 downto 0) );end;architecture bh of exp4 is signal del:std_logic_vector(1 downto 0); signal key:std_logic_vector(3 downto 0); begin process(clk) variable dount:std_logic_vector(1 downto 0); begin if clk'event and clk='1'。

7、then dount:=dount+1; end if; delledagledagledagledagledagledagledagledagledagledagnull; end case; end process; process(del) begin case del is when "11"=>sel<="";keysel<="";keysel<="";key<=b(3 downto 0); end case; end process;end bh;4.3 交通灯控制器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jtd ISPORT(clk,emg:IN STD_LOGIC;--输入 时钟,复位,状态 COUNT1,COUNT2:IN。

8、 STD_LOGIC_VECTOR(7 DOWNTO 0);--计时器 MG,MY,MR,CG,CY,CR:OUT STD_LOGIC);--输出信号,控制各种灯END jtd;ARCHITECTURE behav OF jtd IS TYPE jtdSTATE IS(mrcg,mrcy,mgcr,mycr); SIGNAL STATE:jtdSTATE;BEGIN PROCESS(STATE,clk,emg)--RESET,, S BEGIN -- IF RESET='1' THEN STATE<=mgcr;MG<='1';CR<='1';MY<='0';MR<='0';CG<='0';CY<='0'; --ELS IF clk'EVENT AND clk='1' then IF emg='1' THEN MY<='0';CR<='1。

9、';MG<='0';MR<='1';CG<='0';CYIF COUNT1="" AND COUNT2=""THEN STATE<=mrcy;MY<='0';CR<='0';MG<='0';MR<='1';CG<='0';CY<='1'; ELSE STATE<=mrcg;MG<='0';CR<='0';MY<='0';MR<='1';CG<='1';CYIF COUNT1="" AND COUNT2=""THEN STATE<=mgcr;MR<='0';CG<='0';MG<='1';MY<='0';CR<='1';CY<='0'; ELSE STATE<=mrcy;MY<='0';CR<='0';MG<='0';MR<=。

10、'1';CG<='0';CYIF COUNT2="" AND COUNT1=""THEN STATE<=mycr;MR<='0';CY<='0';MY<='1';MG<='0';CR<='1';CG<='0'; ELSE STATE<=mgcr;MR<='0';CG<='0';MG<='1';MY<='0';CR<='1';CYIF COUNT1="" AND COUNT2=""THEN STATE<=mrcg;MG<='0';CR<='0';MR<='1';MY<='0';CY<='0';CG<='1'; ELSE STATE<=mycr;MR<='0';CY<='0';MY<='1';MG<='0';CR<='1';CG

11、;='0'; END IF; END CASE; END IF; END IF; END PROCESS; END behav;4.4 计时器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JISHU IS PORT(clk,RESET,emg:IN STD_LOGIC; tim1,tim2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END JISHU;ARCHITECTURE behav OF JISHU IS TYPE RGY IS(mrcg,mrcy,mgcr,mycr); SIGNAL STATE:RGY;BEGIN PROCESS(clk,RESET,emg)--,RESET VARIABLE a1:STD_LOGIC:='0'; VARIAB。

12、LE a2:STD_LOGIC:='0'; VARIABLE a3:STD_LOGIC:='0'; VARIABLE a4:STD_LOGIC:='0'; VARIABLE b:STD_LOGIC:='0'; VARIABLE timmh:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timml:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timch:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE timcl:STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE mth,mtl,cth,ctl:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF clk'EVENT AND clk='1' THEN IF RESET='1' THEN STATE -。

13、-IF S='1' AND b='1' THEN STATE<=mycr;a:='0';th:="0000";tl:="0100";b:='0'; --ELSIF S='0' AND b='1' THEN STATE<=mgcr;a:='1';th:="0000";tl:="0001"; --ELSE IF a1='1' THEN mth:="0010";mtl:="0101";cth:="0010";ctl:="0000";a1:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --25秒,20秒 else IF NOT(cth="0000" AND ctl="0010") then IF mtl="0000" then mtl:="1001";mth:=mth-1;timmh:=mth; timml:=mtl; tim。

14、ch:=cth; timcl:=ctl; else mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; --IF NOT(cth="0000" AND ctl="0010") then IF ctl="0000" then ctl:="1001";cth:=cth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; else ctl:=ctl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; ELSE mth:="0000";mtl:="0110";cth:="0000";ctl:="0001";STATE IF a2='1' THEN cth:="0000";ctl:="0101";mth:="。

15、0000";mtl:="0101";a2:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --5秒 else IF NOT(cth="0000" AND ctl="0010" ) then ctl:=ctl-1;mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; ELSE cth:="0000";ctl:="0001";mth:="0000";mtl:="0001";a3:='1';STATE--IF S='1' THEN IF a3='1' THEN mth:="0010";mtl:="0000";cth:="0010";ctl:="0101";a3:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --20秒。

16、 else IF NOT(mth="0000" AND mtl="0010") then IF mtl="0000" then mtl:="1001";mth:=mth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; else mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; --IF NOT(cth="0000" AND ctl="0010") then IF ctl="0000" then ctl:="1001";cth:=cth-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; else ctl:=ctl-1;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl。

17、; END IF; ELSE cth:="0000";ctl:="0110";mth:="0000";mtl:="0001";STATE<=mycr;a4:='1';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --6.1 END IF; END IF; --ELSE a:='0';STATEIF a4='1' THEN mth:="0000";mtl:="0101";cth:="0000";ctl:="0101";a4:='0';timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; --4秒 else IF NOT(cth="0000" AND ctl="0010") then ctl:=ctl-1;mtl:=mtl-1;timmh:=mth; timml:=mtl; timch:=cth;。

18、 timcl:=ctl; ELSE cth:="0000";ctl:="0001";mth:="0000";mtl:="0001";a1:='1';STATE<=mrcg;timmh:=mth; timml:=mtl; timch:=cth; timcl:=ctl; END IF; END IF; END CASE;END IF;tim1 <= mth & mtl;tim2 <= cth & ctl;END IF;end process;END behav;五、仿真及分析 图1、原理图仿真波形 图2、4M分频器仿真波形 图3、数码管译码器仿真波形 图4、交通灯控制仿真波形 图5、计时器仿真波形实验及分析在clc上升沿,tim2计数到达01,此时改变状态,主道路的路灯熄灭,黄灯点亮,从道路的红灯保持不变,持续5秒并计数。Reset置1后开始进入计数状态,并随着时钟上升沿改变。

19、状态。在clc上升沿,tim1和tim2计数都达到01,此时改变状态,主道路黄灯熄灭红灯点亮,从道路红灯熄灭绿灯点亮。并开始计数。emg为紧急情况的开关,在紧急情况下,将emg置0,此时主动道路都变为红灯,且计数器停止计数,保持原计数时间并闪烁。紧急情况排除后,emg恢复置1,此时恢复紧急状况之前的状态,并继续计数。针对EP1C6Q240C8芯片,引脚设置如下:六、总结在这次设计过程中,体现出自己设计的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 在此感谢我们的杨老师.,老师严谨细致、一丝不苟的作风是我学习中的榜样,老师循循善诱的教导给予我启迪;这次设计的每个实验细节,都离不开老师的细心指导。而您宽容的态度,帮助我们能够比较顺利的完成了这次课程设计。 我们学好理论的同时也要努力提高动手组织实验的基本技能,培养分析解决电路问题的实际本领。其中我最大的感触就是在设计课题的过程当中,与老师多次进行交流并看着自己在老师的帮助下一步步克服难题、难点,以及改正每一个错误的成就感,都让我对本次的课程设计有了更深刻的理解和认识,也让我更加熟练的掌握了EDA这门课程。序号 综合成绩优秀( )良好( )中等( )及格( )不及格( )教师(签名)批改日期《EDA技术》课程设计报告课题: 交通灯控制器 院系 自动化学院 专业 自动化      班级 学号 姓名 指导教师 李华 、杨银贤 起止日期 2015.12.21-2015.12.25 2015 年 12 月。

eda交通灯控制器波形输入_交通灯控制器课程设计.doc相关推荐

  1. 河南理工大学c语言报告封面,河南理工大学图书信息管理系统设计_纯c语言课程设计.doc...

    河南理工大学图书信息管理系统设计_纯c语言课程设计 C语言课程设计报告 题 目:图书信息管理系统设计 河南理工大学计算机学院 目 录 第一章 题目与要求 1.1 问题提出1 1.2 本系统涉及的知识点 ...

  2. eda交通灯控制器波形输入_基于VHDL的交通灯控制器设计

    应用VHDL语言设计数字系统,大部分设计工作可在计算机上完成,从而缩短系统开发时间,提高工作效率.下面介绍基于VHDL设计交通灯控制器的一种方案,并给出源程序和仿真结果. 1 系统功能与要求 交通灯控 ...

  3. 基于python机票预定系统_机票预订系统课程设计.doc

    软件工程课程设计 PAGE 1 软件工程课程设计说明书 题目:机 票 预 订 系 统 院 系: 专业班级: 学生姓名: 指导教师: 学 号 学生姓名 专业(班级) 设计题目 机票预订系统 设 计 技 ...

  4. 职工考勤管理MySQL课程设计_考勤管理系统数据库课程设计.doc

    课 程 设 计 课程名称 数据库系统概论_____ 题目名称 考勤管理系统 学生学院 计算机学院 专业班级 学 号 学生姓名 ________ 指导教师 左亚尧 2012年 1月 16日 一.需求分析 ...

  5. 单片机节日彩灯实训报告_基于单片机的节日彩灯设计论文课程设计.doc

    基于单片机的节日彩灯设计论文课程设计.doc 辽 宁 工 业 大 学 单片机原理及接口技术课程设计(论文) 题目: 基于单片机的节日彩灯设计 院(系): 专业班级: 学 号: 学生姓名: 指导教师: ...

  6. matlab二阶阻尼震荡衰减,二阶欠阻尼电路的零响应输入-MATLAB课程设计.doc

    二阶欠阻尼电路的零响应输入-MATLAB课程设计.doc 摘要 MATLAB具有强大的运算和作图功能,为电路分析引入计算机数值方法提供了技术保证.MATLAB中的变量与常量都是矩阵,其元素可以使复数和 ...

  7. 会员计费系统c语言_酒店管理与计费系统( c语言课程设计).doc

    酒店管理与计费系统( c语言课程设计).doc 还剩 19页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: pr ...

  8. 万年历单片机课程设计百度文库_单片机电子万年历课程设计最终版(样例3)...

    <单片机电子万年历课程设计.doc>由会员分享,可免费在线阅读全文,更多与<单片机电子万年历课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文档库 ...

  9. C语言红绿灯课程设计,C语言版交通灯课程设计.doc

    C语言版交通灯课程设计 微机控制课程设计报告 课程名称 基于C语言单片机交通灯 学生姓名 张 万 双 学号 51102022004 专业班级 电子信息科学与技术2班 指导老师 2013年12月5日 目 ...

  10. 计算机与交通工程论文,交通信息与安全期刊_交通核心期刊_交通领域sci期刊

    交通类期刊有哪些?怎么发表交通类论文? 1.北方交通 2.北京公路 3.北京汽车 4.变流技术与电力牵引 5.长客科技 6.车辆与动力技术 7.车迷 8.车时代 9.车世界 10.车用发动机 11.车 ...

最新文章

  1. 趣谈网络协议笔记-二(第七,八,九讲)
  2. 彻底禁用resource manager
  3. hybris backoffice和产品主数据相关的一些sample data
  4. 算法题目——生成括号匹配
  5. Android 实现选中与非选中样式效果
  6. C/C++轻松写电脑锁机程序
  7. 电商新春农历年春节海报还没设计?这是你需要的新年Banner灵感!
  8. linux 清空文件夹_弱电工程师-了解这些Linux命令,菜鸟也能变高手!
  9. 魔方机器人设计中的问题
  10. 11、quiver(x,y,u,v)
  11. VB中,连接ACCESS数据库
  12. 用分组编码解决算术编码的精度要求问题
  13. 研究人性弱点的黑客?聊聊社会工程学与网络安全
  14. 基于模糊聚类的图像分割
  15. 《人月神话》学习指南
  16. 联想新计算机开机黑屏,联想笔记本电脑开机黑屏没反应的原因及解决办法攻略【维修总结】...
  17. 什么是pv和uv? pv、uv
  18. 使用tensorboard出现:“couldn‘t build proto file into descriptor pool!”的解决方法
  19. 王阳明心学 之 心即理感悟
  20. Hash 哈希 PTA 相关题目解析

热门文章

  1. matlab怎么计算泰尔指数,求助:泰尔指数怎么算呢
  2. error: metrics not available yet
  3. 地铁路线程序C语言,个人作业-北京地铁出行路线规划命令行程序完成总结
  4. 中国石油大学(北京)-《 公共社交礼仪 》-​​​​​​​第一阶段在线作业
  5. 诺禾-蛋白表达纯化之通关技巧
  6. Excel技巧:如何将数值改成以万为单位,且保留小数点两位?
  7. SVN提交文件失败:系统找不到指定路径
  8. HDU1728 BFS
  9. 英语单词记忆原理及方法 - 超全思维导图梳理
  10. c语言输入1显示你好,你好,求指教!该怎么用C语言的scanf实现一次输入若干个数据...