交通灯控制电路设计及仿真

上传人:夏** 文档编号:499184740 上传时间:2023-08-23 格式:DOCX 页数:16 大小:254.06KB
返回 下载 相关 举报
交通灯控制电路设计及仿真_第1页
第1页 / 共16页
交通灯控制电路设计及仿真_第2页
第2页 / 共16页
交通灯控制电路设计及仿真_第3页
第3页 / 共16页
交通灯控制电路设计及仿真_第4页
第4页 / 共16页
交通灯控制电路设计及仿真_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《交通灯控制电路设计及仿真》由会员分享,可在线阅读,更多相关《交通灯控制电路设计及仿真(16页珍藏版)》请在金锄头文库上搜索。

1、交通灯控制电路设计与仿真一、实验目的1、了解交通灯的燃灭规律。2、了解交通灯控制器的工作原理。3、熟悉 VHDL 语言编程,了解实际设计中的优化方案。二、实验原理 交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又有很多不同的显 示要求,比如十字路口,车辆如果只要东西和南北方向通行就很简单,而如果车子可以左右 转弯的通行就比较复杂,本实验仅针对最简单的南北和东西直行的情况。 要完成本实验, 首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管, 即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒” 。 其交通的 燃灭规律为: 初始态是两个

2、路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯 亮,东西方向通车,延时一段时间后,东西路口绿灯灭,黄灯开始闪烁。闪烁若干次后,东 西路口红灯亮,而同时南北路口的绿灯亮,南北方向开始通车,延时一段时间后,南北路口 的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到东西路口方向,重复上述过程。在实验中使用 8 个七段码管中的任意两个数码管显示时间。东西路和南北路的通车时间均设定为20s。数码管的时间总是显示为19、18、172、1、0、19、18。在显示 时间小于 3 秒的时候,通车方向的黄灯闪烁。三、实验内容 本实验要完成任务就是设计一个简单的交通灯控制器,交通灯显示用实验箱 的交通灯模块和

3、七段码管中的任意两个来显示。系统时钟选择时钟模块的 1KHz 时钟,黄灯闪烁时钟要求为2Hz,七段码管的时间显示为1Hz脉冲,即每1s中递 减一次,在显示时间小于3秒的时候,通车方向的黄灯以2Hz的频率闪烁。系统 中用 S1 按键进行复位。实验箱中用到的数字时钟模块、按键开关、数码管与 FPGA 的接口电路,以及 数字时钟源、按键开关、数码管与 FPGA 的管脚连接在以前的实验中都做了详细说 明,这里不在赘述。交通灯模块原理与 LED 灯模块的电路原理一致,当有高电平输 入时 LED 灯就会被点亮,反之不亮。只是 LED 发出的光有颜色之分。其与 FPGA 的 管脚连接如下表 19-1 所示:

4、信号窑称对应FPG4菅为容D3飙冋斬邑交通信号LED灯Y:lD4纵向黄邑空通信号LED灯G:l纵隔色交通信号LED灯R2噴向臥色更通信号LED灯Y2横向黄色充通信号LED灯G2F3隕向娠色空通信号LED灯四、实验步骤1、 打开 QUARTUSII 软件,新建一个工程。2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。3、 按照实验原理和自己的想法,在 VHDL 编辑窗口编写 VHDL 程序,用户 可参照光盘中提供的示例程序。4、编写完 VHDL 程序后,保存起来。(1) -jtdkz.vhdlibrary ieee;use ieee.std_logic_1164.all

5、;entity jtdkz isport(clk,sm,sb:in std_logic; mr,my0,mg0,br,by0,bg0:out std_logic);end entity jtdkz;architecture art of jtdkz istype state_type is(A,B,C,D);signal state:state_type;begint:process(clk) isvariable s:integer range 0 to 45;variable clr,en:bit;begin if(clkevent and clk=1)thenif clr=0then s

6、:=0;elsif en=0 then s:=s;else s:=s+1;end if;case state iswhen A=mr=0;my0=0;mg0=1;br=1;by0=0;bg0=0;if(sb and sm)=1 thenif s=45 then state= B;clr:=0;en:=0;else state=A;clr:=1;en:=1;end if;elsif(sb and(not sm)=1then state=B;clr:=0;en:=0;else statemr=0;my0=1;mg0=0;br=1;by0=0;bg0=0;if s=5 then state=C;cl

7、r:=0;en:=0;else statemr=1;my0=0;mg0=0;br=0;by0=0;bg0=1;if(sb and sm)=1 thenif s=25 then state= D;clr:=0;en:=0;else state=C;clr:=1;en:=1;end if;elsif sb=0 then state=D;clr:=0;en:=0; else statemr=1;my0=0;mg0=0;br=0;by0=1;bg0=0; if s=5 then state=A;clr:=0;en:=0;else state=D;clr:=1;en:=1;end if;end case

8、;end if;end process t;end architecture art;j itdkzelkmr;smmyDsbmgLibr!bDbgDinstSL(2) cskz.vhd library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all;entity cskz is port(ina:in std_logic;outa:out std_logic); end entity cskz;architecture art of cskz is beginprocess(ina) isbeginif in

9、a=1 then outa=1;else outa=0;end if;end process;end architecture art;(3) t45s.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity t45s isport(sb,clk,en45:in std_logic; dout45m,dout45b:out std_logic_vector(7 downto 0);end entity t45s;architecture art of t45s issignal t6b

10、:std_logic_vector(5 downto 0);begin process(sb,clk,en45)isbeginif sb=0then t6b=t6b-t6b-1; elsif(clkevent and clk=1)then if en45=1then t6b=t6b+1;elsif en45=0 then t6bdout45m=01000101;dout45bdout45m=01000100;dout45bdout45m=01000011;dout45bdout45m=01000010;dout45bdout45m=01000001;dout45bdout45m=0100000

11、0;dout45bdout45m=00111001;dout45bdout45m=00111000;dout45bdout45m=00110111;dout45bdout45m=00110110;dout45bdout45m=00110101;dout45bdout45m=00110100;dout45bdout45m=00110011;dout45bdout45m=00110010;dout45bdout45m=00110001;dout45bdout45m=00110000;dout45bdout45m=00101001;dout45bdout45m=00101000;dout45bdout45m=00100111;dout45bdout45m=00100110;dout45bdout45m=00100101;dout45bdout45m=00100100;dout45bdout45m=00100011;dout45bdout45m=00100010;dout45bdout45m=00100001;dout45bdout45m=00100000;dout45b=00100101;when 0110

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号