精华内容
下载资源
问答
  • 交通灯控制器原理

    2020-10-22 17:51:41
    本实例通过Verilog HDL语言设计一个简易的交通等控制器,实现一个具有两个方向、共8个灯并具有时间倒计时功能的交通灯功能。
  • 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.....

    《交通灯控制器课程设计.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 月。

    展开全文
  • 今天给大侠带来基于FPGA的VGA/LCD显示控制器设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,VGA 显示原理以及VGA/LCD 显示控制器的基本框架,话不多说,上货。之前也有图像处理以及VGA显示相关的文章,这里给个...
    e517018baf869572c60608978a743155.gif大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA技术江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

    今天给大侠带来基于FPGA的VGA/LCD显示控制器设计,由于篇幅较长,分三篇。今天带来第一篇,上篇,VGA 显示原理以及VGA/LCD 显示控制器的基本框架话不多说,上货。

    之前也有图像处理以及VGA显示相关的文章,这里给个超链接,给各位大侠作个参考。

    源码系列:基于FPGA的VGA驱动设计(附源工程)

    基于FPGA的实时图像边缘检测系统设计(上)

    基于FPGA的实时图像边缘检测系统设计(中)

    基于FPGA的实时图像边缘检测系统设计(下)

    导读 

    VGA (Video Graphics Array) 即视频图形阵列,是IBM于1987年随PS/2机(PersonalSystem 2)一起推出的使用模拟信号的一种视频传输标准。这个标准对于现今的个人电脑市场已经十分过时。但在当时具有分辨率高、显示速率快、颜色丰富等优点,在彩色显示器领域取得了广泛的应用,是众多制造商所共同支持的一个低标准。

    LCD ( Liquid Crystal Display 的简称)液晶显示器。LCD 的构造是在两片平行的玻璃基板当中放置液晶盒,下基板玻璃上设置TFT(薄膜晶体管),上基板玻璃上设置彩色滤光片,通过TFT上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个像素点偏振光出射与否而达到显示目的。按照背光源的不同,LCD可以分为CCFL显示器和LED显示器两种。LCD已经替代CRT成为主流,价格也已经下降了很多,并已充分普及。

    在之前的文章中介绍了如何获取、处理摄像头提供的视频信号,在实际应用中还需要将经过处理的信号显示在显示器上。这个过程与信号处理中的过程上是相反的,将数字信号按照电视信号的制式组成合乎时序、格式要求的信号,并加入用于控制的各种同步信号。本篇将通过 FPGA实现一个 VGA/LCD 显示控制器的实例,并详细介绍实现过程。

    第一篇内容摘要:本篇会介绍VGA 显示原理,包括图像显示原理、常用视频显示标准;还会介绍VGA/LCD 显示控制器的基本框架等相关内容。

    2e44f2926d2d479f0a9122e5d68e6470.gif

    一、VGA 显示原理

    f200d10d7ef81e2bf697c508ba2c5262.gif

    在设计 VGA 显示控制器的实现过程以前,首先需要了解 VGA 的显示原理。

    1.1 图像显示原理

    VGA 显示控制器控制图像信号通过电缆传输到显示器上并显示出来。目前的显示器技术主要包括两种:CRT(Cathode Ray Tube,阴极射线管)和 LCD(Liquid Crystal Display,液晶显示屏)。CRT 通过帧同步信号和行同步信号控制电子枪的电子束逐行逐点地扫描,将电子打在荧光点上,使之发光。

    通过视觉暂留的作用,看到的就是一副完整的画面。LCD 与 CRT 类似,也是动态的扫描。但 CRT 是模拟方式的,通过电路控制,电子束可以任意移动;而 LCD是数字方式的,只有位置固定的电流通路,所以只能通过电路矩阵逐行扫描,而不能逐点,即一行上所有的点同时工作。CRT 显示器连接示意图如图 1 所示。

    6d7819b1fbff54f6adc1f81a81b5ccde.png

    图 1 CRT 显示器连接示意图

    VGA 显示控制器控制 CRT 显示图像的过程如图 2 所示。

    f0da67bf515f2cc8768913d13e384e24.png

    图 2 VGA 显示控制器控制 CRT 显示器的框图

    电子枪的扫描过程在行同步、场同步等控制信号的控制下进行,包括水平扫描、水平回扫、垂直扫描、垂直回扫等过程,如图 3 所示。

    a81d5ab13d5863918d15c71e28adc7af.png图 3 扫描过程

    1.2 常用视频显示标准

    视频显示标准随着显示技术和工艺的不断进步而逐步提高:

    • 最早用来显示字符的是 MDA 标准(Monochrome Display Adapter,单色显示适配器接口),只支持字符显示方式,只有黑白方式,显示规格 80 列×25 行,分辨率为 720×350。

    • CGA 标准(Color Graphic Adapter,彩色图形适配器接口),支持彩色图像方式,显示规格从 40 列×25 行到 80 列×25 行,颜色从黑白到 16 色。

    • EGA 标准(Enhanced Graphics Adapter,增强型图形适配器接口),除了兼容 MDA、CGA标准外,还支持增强模式,图形显示规格从 320×200 到 640×350,颜色从黑白到 16 色。

    • VGA 标准(Video Graphies Array,视频图形阵列),除了兼容上面各种标准外,还包括 QVGA、VGA、SVGA 等多个子标准,支持从 640×480 到 800×600 等更高的显示规格。目前常用的是 VGA 标准,后面的实例将详细介绍 VGA 标准的显示控制器。

    2e44f2926d2d479f0a9122e5d68e6470.gif

    二、VGA/LCD 显示控制器的基本框架

    f200d10d7ef81e2bf697c508ba2c5262.gif

    VGA 显示控制器的程序框架如图 4 所示。这个 VGA/LCD 显示控制器提供对 CRT、LCD 的支持,适用于嵌入式系统的开发。

    025ec75bc4b2c62110a9384585ab5286.png

    图 8-4 VGA 显示控制器程序框架

    VGA 显示控制器的程序框架包括如下几个主要部分:

    • 颜色查找表 颜色查找表保存了 256 色分辨率 R、G、B 所有可能颜色,因此它是一块256×24 位的静态 RAM 区,每个像素由 R、G、B 每种颜色 8 位数据组成,程序包括两块这样的颜色查找表,一共 512×24 位。

    • 寄存器 包括整个程序需要的各种控制、状态寄存器。

    • 颜色处理器 用于将接收到的像素数据转换成 RGB 颜色信息。

    • 光标处理器 用于将保存的光标信息转换成可见的光标。

    • 输出 FIFO 用于保证连续的数据流输出到 VGA 或者 LCD 显示器上。

    • 视频定时产生器 用于产生显示需要的各种同步信号,如场同步、行同步、复合同步信号等。

    1f7ae8409e6e8c915a1f9878b9d180f4.png

    本篇到此结束,下一篇带来基于FPGA的VGA/LCD显示控制器设计(中),VGA/LCD 显示控制器程序的实现,包括顶层程序、颜色查找表、颜色处理器、光标处理器、视频定时产生器以及输出 FIFO等相关内容。

    END后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。大侠们,江湖偌大,继续闯荡,愿一切安好,有缘再见!784280b003f8372e08d4c6f8ba459c5f.png精彩推荐使用LativeLink时,DO文件编制步骤《Xilinx Zynq-7000 嵌入式系统设计与实现》电子版FPGA Xilinx Zynq 系列(三十六)Linux 内核FPGA面试题4827ed73ed4b21ee0c3a4bb509dda2ca9.gif

    3d98bdc1180db5cb3ad8bfbd128a5af8.png

    FPGA技术江湖广发江湖帖

    无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。

    FPGA技术江湖微信交流群

    53b01935aeec9e5700caacb15597b89b.png

    加群主微信,备注职业+方向+名字进群

    FPGA技术江湖QQ交流群

    bd65cb4334ec076e6427ffc19c336c72.png

    备注地区+职业+方向+名字进群

    4fafab73d828f2d7bd38d372cf7ca4ac.png

    展开全文
  • 交通灯控制电路设计

    2020-07-13 10:05:25
    实验六:交通灯控制电路设计 一、实验目的 ...内容是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块来显示。系统时钟选择时钟模块的 1Hz时钟,黄灯闪烁时钟要求为1Hz,红灯15s,黄灯 5s,绿...

    交通灯控制电路设计

    一、实验目的

    1.掌握一般状态机的设计与应用。

    2.掌握交通灯的亮灭规律和控制器的工作原理。

    3.进一步熟悉
    VHDL 语言编程,了解实际设计中的优化方案。

    二、实验内容

    1.实验前完成交通灯控制电路程序的编写。内容是设计一个简单的交通灯控制器,交通灯显示用实验箱的交通灯模块来显示。系统时钟选择时钟模块的 1Hz时钟,黄灯闪烁时钟要求为1Hz,红灯15s,黄灯 5s,绿灯15s。系统中用 CPU板上的复位按键进行复位。

    2.本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。其交通灯的亮灭规律为:初始态是两个路口的红灯全亮,之后东西路口的绿灯亮,南北路口的红灯亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。

    3.完成VHDL程序的编译并仿真。仿真无误后,对交通灯模块的 LED对应的FPGA 引脚进行管脚绑定,然后再重新编译一次。用下载电缆通过 JTAG接口将对应的sof 文件下载到FPGA中。

    4.功能选择位 M[3…0]状态均为0111,则16位数据线和交通灯控制电路相连接。CLK_1,即对应 IO3(用导线连接
    IO3 与 ADJ_CLK,调整 SW17-SW20,使输出频率为1Hz)

    实验代码

    
    
    LIBRARY IEEE;
    
        USE IEEE.STD_LOGIC_1164.ALL;
    
        USE IEEE.STD_LOGIC_UNSIGNED.ALL;
    
        ENTITY traffic_light is 
    
               GENERIC( green1:integer:=15;--定义东西绿灯亮15S        
    
                       yellow1 :integer:=5 ;--定义东西黄灯亮5S 
    
                       green2:integer:=15;--定义南北绿灯亮15S 
    
                       yellow2 :integer:=5);--定义南北黄灯亮5S 
    
       PORT(
    CLK,RST: IN STD_LOGIC;
    
             
    w_r,w_y,w_g,e_r,e_y,e_g,n_r,n_y,n_g,s_r,s_y,s_g: out STD_LOGIC
    
                   );
    
         End traffic_light; 
    
         ARCHITECTURE rtl of traffic_light is 
    
          Type states is (st0,st1,st2,st3,st4);--定义控制器各种状态
    
          Signal state:states:=st4; --初始化状态 
    
          Signal cnt:integer range 0 to 15;--定义计数器
    
    
          Signal cnt_enb:std_logic:='0'; ---初始化计数器使能信号
    
            
    
            
    
            
    
         begin
    
    AA:Process(clk,rst)
    
           Begin
    
           if (rst='1') then state<=st4;
    cnt<=1; 
    
           Elsif (clk'event and clk='1') then 
    
              if (cnt_enb='1') then
    cnt<=cnt+1;--计数器计数
    
              else cnt<=1;  end if;
    
              Case state is 
    
               when st4=>state<=st0;
    
                              
    
                    
    when st0=>if (cnt=green1 ) then 
    state<=st1; --东西绿灯时间到
    
                         Else state<=st0; End
    if;
    
               when st1=>if (cnt=yellow1 ) then
    state<=st2; --东西黄灯时间到
    
                         Else state<=st1; End
    if;
    
               when st2=>if (cnt=green2 ) then
    state<=st3; --南北绿灯时间到
    
                         Else state<=st2; End
    if;
    
               when st3=>if (cnt=yellow2 ) then
    state<=st0; --南北黄灯时间到
    
                         Else state<=st3; End
    if; 
    
               End case;  
    
           End if; 
    
    End
    process AA;
    
    BB:Process(state)
    
    
    Begin 
    
    Case
    state is
    
    when
    st0=> w_r<='0'; w_y<='0';
    w_g<='1';e_r<='0';e_y<='0';e_g<='1';--东西绿灯亮                 
    
               s_r<='1'; s_y<='0';
    s_g<='0';n_r<='1';n_y<='0';n_g<='0';Cnt_enb<='1';--南北红灯亮
    
       if (cnt=green1) then cnt_enb<='0'; end
    if; 
    
    when
    st1=> w_r<='0'; w_y<='1';
    w_g<='0';e_r<='0';e_y<='1';e_g<='0'; --东西黄灯亮 
    
               s_r<='1'; s_y<='0';
    s_g<='0';n_r<='1';n_y<='0';n_g<='0';Cnt_enb<='1'; --南北红灯亮
    
       if (cnt=yellow1) then cnt_enb<='0'; end
    if; 
    
    when
    st2=> w_r<='1'; w_y<='0'; w_g<='0';e_r<='1';e_y<='0';e_g<='0';
    --东西红灯亮 
    
               s_r<='0'; s_y<='0';
    s_g<='1';n_r<='0';n_y<='0';n_g<='1';Cnt_enb<='1';--南北绿灯亮
    
       if (cnt=green2) then cnt_enb<='0'; end
    if; 
    
    when
    st3=> w_r<='1'; w_y<='0';
    w_g<='0';e_r<='1';e_y<='0';e_g<='0';--东西红灯亮 
    
               s_r<='0'; s_y<='1';
    s_g<='0';n_r<='0';n_y<='1';n_g<='0';Cnt_enb<='1';--南北黄灯亮
    
       if (cnt=yellow2) then cnt_enb<='0'; end
    if;
    
     when st4=> w_r<='1'; w_y<='0';
    w_g<='0';e_r<='1';e_y<='0';e_g<='0'; --东西红灯亮    
    
                  s_r<='1'; s_y<='0';
    s_g<='0';n_r<='1';n_y<='0';n_g<='0';Cnt_enb<='1';--南北红灯亮
    
     if(rst='1')then cnt_enb<='0';end if;
    
    End case;
    
    End
    process BB;
    
    End rtl;
    
    
    展开全文
  • 本系统采用单片机AT89C51为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。 本设计系统由单片机I/O口扩展系统、交通灯状态...
  • 【实例简介】由本人制作的含有EDA交通灯控制器课程设计,课题内容为:(1)正常情况下保证主干道的畅通;(2)当步行街道上的行人要穿过主干道时,通过按钮来发出请求;(3)当有人按下控制按钮时,主干道变为黄灯,设置...

    【实例简介】

    由本人制作的含有EDA交通灯控制器课程设计,课题内容为:

    (1)正常情况下保证主干道的畅通;

    (2)当步行街道上的行人要穿过主干道时,通过按钮来发出请求;

    (3)当有人按下控制按钮时,主干道变为黄灯,设置计数器计时时间为3秒。

    (4)3秒过后,主干道变为红灯,计数器继续计时(计时时间为15秒),在15秒内若有人再次按按钮,计数器不重新计时;

    (5)步行街道在主干道变为红灯时指示变为绿灯,行人可通行,在行人通行10秒后绿灯闪烁,5秒后主干道变为绿灯,与此同时步行道变为红灯。

    (6)在主干道变为绿灯后,必须保证主干道车辆通行时间达到30秒以上,在此期间,行人按钮无效。30秒过后,若有人再次按下按钮

    【实例截图】

    【核心代码】

    交通灯控制器

    └── eda

    ├── COUNT.bsf

    ├── count.vhd

    ├── count-wave.vwf

    ├── db

    │   ├── light.(0).cnf.cdb

    │   ├── light.(0).cnf.hdb

    │   ├── light.(1).cnf.cdb

    │   ├── light.(1).cnf.hdb

    │   ├── light.asm_labs.ddb

    │   ├── light.asm.qmsg

    │   ├── light.asm.rdb

    │   ├── light.cbx.xml

    │   ├── light.cmp0.ddb

    │   ├── light.cmp2.ddb

    │   ├── light.cmp.bpm

    │   ├── light.cmp.cdb

    │   ├── light.cmp.ecobp

    │   ├── light.cmp.hdb

    │   ├── light.cmp.kpt

    │   ├── light.cmp.logdb

    │   ├── light.cmp_merge.kpt

    │   ├── light.cmp.rdb

    │   ├── light.cmp.tdb

    │   ├── light.db_info

    │   ├── light.eco.cdb

    │   ├── light.eds_overflow

    │   ├── light.fit.qmsg

    │   ├── light.fnsim.hdb

    │   ├── light.fnsim.qmsg

    │   ├── light.hier_info

    │   ├── light.hif

    │   ├── light.lpc.html

    │   ├── light.lpc.rdb

    │   ├── light.lpc.txt

    │   ├── light.map_bb.cdb

    │   ├── light.map_bb.hdb

    │   ├── light.map_bb.logdb

    │   ├── light.map.bpm

    │   ├── light.map.cdb

    │   ├── light.map.ecobp

    │   ├── light.map.hdb

    │   ├── light.map.kpt

    │   ├── light.map.logdb

    │   ├── light.map.qmsg

    │   ├── light.pre_map.cdb

    │   ├── light.pre_map.hdb

    │   ├── light.rtlv.hdb

    │   ├── light.rtlv_sg.cdb

    │   ├── light.rtlv_sg_swap.cdb

    │   ├── light.sgdiff.cdb

    │   ├── light.sgdiff.hdb

    │   ├── light.sim.cvwf

    │   ├── light.simfam

    │   ├── light.sim.hdb

    │   ├── light.sim.qmsg

    │   ├── light.sim.rdb

    │   ├── light.sim_temp_.vwf

    │   ├── light.sld_design_entry_dsc.sci

    │   ├── light.sld_design_entry.sci

    │   ├── light.smart_action.txt

    │   ├── light.sta.qmsg

    │   ├── light.sta.rdb

    │   ├── light.syn_hier_info

    │   ├── light.tan.qmsg

    │   ├── light.tis_db_list.ddb

    │   ├── logic_util_heursitic.dat

    │   ├── prev_cmp_light.asm.qmsg

    │   ├── prev_cmp_light.fit.qmsg

    │   ├── prev_cmp_light.map.qmsg

    │   ├── prev_cmp_light.qmsg

    │   ├── prev_cmp_light.sim.qmsg

    │   ├── prev_cmp_light.sta.qmsg

    │   ├── prev_cmp_light.tan.qmsg

    │   └── wed.wsf

    ├── DITHER.bsf

    ├── dither.vhd

    ├── dither.vhd.bak

    ├── dither-wave.vwf

    ├── incremental_db

    │   ├── compiled_partitions

    │   │   ├── light.root_partition.cmp.cdb

    │   │   ├── light.root_partition.cmp.dfp

    │   │   ├── light.root_partition.cmp.hdb

    │   │   ├── light.root_partition.cmp.kpt

    │   │   ├── light.root_partition.cmp.logdb

    │   │   ├── light.root_partition.cmp.rcfdb

    │   │   ├── light.root_partition.cmp.re.rcfdb

    │   │   ├── light.root_partition.map.cdb

    │   │   ├── light.root_partition.map.dpi

    │   │   ├── light.root_partition.map.hdb

    │   │   └── light.root_partition.map.kpt

    │   └── README

    ├── light1.vwf

    ├── light.asm.rpt

    ├── light.bdf

    ├── LIGHT.bsf

    ├── light.done

    ├── light.fit.rpt

    ├── light.fit.summary

    ├── light.flow.rpt

    ├── light.hexout

    ├── light.map.rpt

    ├── light.map.summary

    ├── light.pin

    ├── light.pof

    ├── light.qpf

    ├── light.qsf

    ├── light.qws

    ├── light.sim.rpt

    ├── light.sof

    ├── light.sta.rpt

    ├── light.sta.summary

    ├── light.tan.rpt

    ├── light.tan.summary

    ├── light.vhd

    ├── light.vwf

    ├── light-wave.vwf

    ├── try.vwf

    ├── tuxing.bdf

    ├── Waveform1.vwf

    ├── z.vwf

    └── 交通灯控制器.doc

    4 directories, 119 files

    展开全文
  • 在Windows环境下,Multisim 10软件有一个完整的集成化设计环境,它将原理图的创建、电路的测试分析、结果的图表显示等全部集成到同一个电路窗口中。在搭建实际电路之前,采用Multisim 10仿真软件进行虚拟测
  • 设计一个交通灯控制器,掌握倒计时计数器、译码器等的工作原理设计方法。 要 求:  1.设计一个十字路口的的交通灯系统,要求甲车道和乙车道两条交叉道路口的车辆交替运行,每次通过时间都设为25秒。 2.要求...
  •  摘要:分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。  关键词:交通控制 交通灯 时间发生...
  • 硬件设计系统 (末尾附文件) 原理图: 仿真图 时钟电路模块 时钟电路模块 时钟电路由一个晶体振荡12MHZ和两个30pF的瓷片电容组成。时钟电路用于产生单片机工作所需的时钟信号,而时序所研究的是指令执行中各...
  • 本文档包含了十字路口交通等的设计原理及利用VHDL语言进行可编程逻辑芯片的下载仿真工作。
  • 交通灯控制实验 完整代码、报告 实验目的  通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口和计数器8253的使用。 实验内容 1.要求一: (1)南北与东西方向,每个方向由红黄绿三个灯控制 (2)...
  • 设计一个交通控制器,用LED显示来表示交通状态,并以7段数码管显示器显示当前状态的剩余秒数,集体要求如下: 主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行35s,支干道每次放行...
  •  图中9个单元电路分别为交通灯控制器JTDKZ:根据主、支干道传感器信号SM、SB以及来自时基发生电路的时钟信号CLK,发出主、支干道指示灯的控制信号,同时向各定时单元、显示控制单元发出使能控制信号EN45、EN25、EN...
  • 研究目的: 模拟交通灯控制器就是使用单片机来控制一些LED和数码管,模拟真实交通灯的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等...
  • 利用8086芯片控制8259可编程中断控制器,实现对外部中断的响应和处理。并利用8253可编程定时/计数器产生方波,同时利用8055可编程并行口芯片实现对交通灯的控制,其中A口进交通信号灯的控制,B口输出交通信号灯的...
  • 交通灯定时控制系统的设计

    千次阅读 2011-06-18 15:59:00
    目 录一、 内容摘要……………………………………………1二、 设计内容及要求……………………………………1三、 总设计原理…………………………………………1四、 单元电路的设计………………………………...
  • 交通灯控制电路

    千次阅读 2008-01-17 16:10:00
    2006-05-11 12:08:31 交通灯控制电路一、 设计任务与要求1.设计一个十字路口的交通灯控制电路,要求甲车道和乙车道两条交叉道路上的车辆交替 运行,每次通行时间都设为25秒;2.要求黄灯先亮5秒,才能变换...
  • ⒈了解交通灯管理的基本工作原理⒉熟悉8259A中断控制器的工作原理和应用编程⒊熟悉8255A并行接口的各种工作方式和应用⒋熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法二.课程设计...
  •  图中9个单元电路分别为交通灯控制器JTDKZ:根据主、支干道传感器信号SM、SB以及来自时基发生电路的时钟信号CLK,发出主、支干道指示灯的控制信号,同时向各定时单元、显示控制单元发出使能控制信号EN45、EN25、EN...
  • 鉴于红绿灯在城市交通中占有...本文使用LabVIEW软件编写十字路口交通灯控制系统,学生在学习红绿灯控制原理的时候也加强了软件开发过程的理解,也节约了试验系统开发成本。控制系统能实现的十字路口红绿灯控制任务。
  • 在如今这个经济飞速发展的世界,交通已...西门子可编程控制器指令丰富,可以接各种输出、输入扩充设备,有丰富的特殊扩展设备,其中的模拟输入设备和通信设备更是符合交通灯控制系统的要求与特点,能够方便地联网通信。
  • 针对传统交通灯的缺点,采用LED发光源设计交通灯,具有可视性强、功耗低、节能、使用寿命长、安全、工作稳定可靠等特点,所以这种交通灯在国内外得到了越来越广泛的使用。 传统交通信号灯一般采用市电直接供电,...
  • 因此,如何改进交通灯设计,使其更好的适应城市交通的发展也成为一个重要课题。本实验所完成的系统是利用8253A定时/计数器芯片的定时功能,向8259A中断控制器芯片发出定时中断请求,驱动8255A可编程并行接口芯片...
  • ­­­­­­­­­­­­­­­一、设计内容 利用8253定时器、8255等接口,设计一电路,模拟十字路口交通灯控制。二、设计原理及方案2.1 8255A的内部结构及引脚功能8255A的内部结构8255A的内部结构如图1所示,它由...
  • 实验内容:设计一个用于十字路口的交通灯控制器。 基本要求: 在十字路口的东西和南北两个方向都各有红、黄、绿三个信号灯。红、黄、绿交通灯的变化规律为: 1)南北方向的绿灯、东西方向的红灯同时亮20秒。 2)...
  • 针对现实中对信号状态监测需要高精度、抗干扰的要求,本文从软硬件协同策略对驱动...该方法基于互感检测原理,根据互感次级输出电流,经信号调理电路处理后送到处理器进行AD采样,从而检测信号驱动回路的电流。
  • 使学生增进对微机和接口电路的感性认识,加深对微机原理和接口技术的理解; 使学生掌握微机芯片的内部功能模块的应用,如定时器/计数器、中断、片内外存贮、I/O口、A/D、D/A等; 使学生了解和掌握单片机应用系统...
  • 交通灯 - 副本.docx

    2020-06-14 20:44:47
    数字电路实验交通灯,555计时器设计并实现一个简单的十字路口交通灯控制电路。具体要求:以4个红色指示灯、4个绿色指示灯和4个黄色指示灯模拟路口东西南北4个方向的红绿黄交通灯。控制这些灯,使它们安下列规律亮灭...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

交通灯控制器设计原理