交通灯控制电路设计(精品).ppt
实验六实验六 交通灯控制电路设计交通灯控制电路设计 1 1、目的要求、目的要求 学习小型数字系统的设计方法;掌握学习小型数字系统的设计方法;掌握VHDLVHDL语言的层次化设计方法。语言的层次化设计方法。2 2、方法原理、方法原理 能显示十字路口东西、南北两个方向的能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态;用两组红、黄、红、黄、绿灯的指示状态;用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯。绿三色灯作为两个方向的红、黄、绿灯。能实现正常的倒计时功能以及用两组数码能实现正常的倒计时功能以及用两组数码管作为东西和南北方向的倒计时显示。管作为东西和南北方向的倒计时显示。3 3、主要实验仪器及材料、主要实验仪器及材料 实验箱(配备实验箱(配备AlteraAltera公司的公司的EPM240T100C5EPM240T100C5下载板)。下载板)。4 4、掌握要点、掌握要点 用用VHDLVHDL语言设计符合上述功能要求的交通语言设计符合上述功能要求的交通灯控制器,熟练掌握层次化设计方法。灯控制器,熟练掌握层次化设计方法。5 5、实验内容、实验内容(1)(1)画出顶层原理图;画出顶层原理图;(2)(2)写出各功能模块的写出各功能模块的VHDLVHDL语言源程序;语言源程序;(3)(3)仿真设计内容,对照各个灯的时序分析仿真设计内容,对照各个灯的时序分析电路工作原理;电路工作原理;(4)(4)下载到实验箱,验证设计结果;完成设下载到实验箱,验证设计结果;完成设计报告。计报告。LIBRARY ieee;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;-*实体定义*ENTITY jtd ISPORT(clk:inSTD_LOGIC;-时钟输入 rst:inSTD_LOGIC;-复位键 row:outSTD_LOGIC_VECTOR(3 downto 0);-输出组控制 r,y,g,bell :out STD_LOGIC);END jtd;ARCHITECTURE led OF jtd IS-纵向路口控制灯为纵向路口控制灯为row1和和row3;横向路口控制灯为横向路口控制灯为row2和和row4constant yellow_time:integer:=2;-路口的黄灯维持秒数路口的黄灯维持秒数constant green_time:integer:=10;-路口的绿灯和红灯维持秒数路口的绿灯和红灯维持秒数signal p:integer range 0 to 3;-扫描计数器扫描计数器signal f:integer range 0 to 3;-状态控制寄存器状态控制寄存器signal clk_500:std_logic;-扫描时钟扫描时钟signal clk_1h:std_logic;-1s时钟时钟signal r0,y0,g0:std_logic;-纵向路口控制信号纵向路口控制信号signal r1,y1,g1:std_logic;-横向路口控制信号横向路口控制信号BEGINbell=0;-*500Hz分频程序分频程序*process(clk)variable cnt1:integer range 0 to 200;variable cnt2:integer range 0 to 250;beginif clkevent and clk=1 thenif cnt1=200 thencnt1:=0;if cnt2=250 thencnt2:=0;clk_500=not clk_500;elsecnt2:=cnt2+1;end if;elsecnt1:=cnt1+1;end if;end if;end process;-*1Hz分频程序和扫描信号产生分频程序和扫描信号产生*process(clk_500)variable cnt1:integer range 0 to 250;beginif clk_500event and clk_500=1 thenif(p=3)thenp=0;elsep=p+1;end if;if cnt1=250 thencnt1:=0;clk_1hpins在下方会列出本项目所以的输在下方会列出本项目所以的输入输出引脚名入输出引脚名。分配完引脚必须再次编译才能存储这些引脚锁定信息。双击LOCATION配置下载电缆配置下载电缆1.TOOLS-PROGRAMMER2.