EDA交通灯课程设计实验报告.doc
文本预览下载声明
EDA交通灯课程设计
实验报告
学院:通信与信息工程学院
专业:电子信息工程
班级:0120902
目 录
交通灯控制系统的设计 1
1.设计要求 1
1.1 实现基本要求及扩展 1
1.2 附加要求 1
2 设计思路 1
3 状态机变化图 2
3.1 状态机变化图 2
4 设计步骤及程序 3
4.1 主体程序代码 3
4.2 分频程序代码 5
4.3 计数器程序代码 6
4.4 二选一数据选择器程序代码 7
when others= seg=b;dig 8
end case; 8
end process; 8
end; 8
4.5 控制系统电路图 8
5 硬件实现及调试结果 8
5.1 硬件测试结构示意 8
5.2 软件仿真结果 9
6. 心得体会 9
交通灯控制系统的设计
1.设计要求
1.1 实现基本要求及扩展
1.能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯; 每次通行时间为15S,
2.能实现正常的倒计时功能,用两组数码管作为东西、南北向的倒计时显示。其中,黄灯:3S。
3.当出现一方出现红灯,另一方出现绿灯时,出现红灯的之路左转弯灯亮。
4.能实现特殊状态的功能。按下Sw0键后,能实现以下特殊功能:
(1) 四个数码管的显示都为0,
(2)东西、南北路口均显示红灯状态;
5.用VHDL语言设计上述功能的交通灯控制器,并用含有四个状态的状态机;
1.2 附加要求
1.时钟输入:clkin=1KHz;
2.采用分频器分成:1Hz,然后提供给系统。
2 设计思路
交通灯控制器的电路控制原理框图如图1所示,主要包括分频器模块、计数器模块、主控制器模块和二选一数据选择器模块。计数器模块以秒为单位倒计时,当计数值依次加一,直至“1111”,再进行下次的计数循环。分频器模块将1000HZ的频率转化为1HZ。数据选择器模块完成数码管个位和十位的seg选择,从而完成两位数字的显示。核心部分是主控制模块。具体控制情况见表1。
图1 电路控制原理框图
状态 干道1 干道2 时间/s 红灯与左转灯亮 绿灯亮 12 红灯亮 黄灯亮 3 绿灯亮 红灯与左转灯亮 12 黄灯亮 红灯亮 3 表1 交通灯控制表
3 状态机变化图
3.1 状态机变化图
根据交通灯的流程图,可以得到如图2所示的控制状态转换图。从图2的状态转换可以看出,交通灯电路应该能够具有以下几个功能:计数功能、状态控制功能(实现交通信号灯的状态控制和计时器控制)、译码功能及二选一数据选择器(实现4位数码管的显示功能)。对于实现上述功能的交通信号灯控制器电路,需要设计以下各个电路单元。
图2控制状态转换图
4 设计步骤及程序
4.1 主体程序代码
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity zhu is
port(QI:in std_logic_vector(3 downto 0);
clk,reset:in std_logic;
segshi,segge:out std_logic_vector(7 downto 0);
led:out std_logic_vector(7 downto 0));
end;
architecture zhuti of zhu is
signal state,led1:std_logic_vector(7 downto 0);
signal seg1:std_logic_vector(7 downto 0);
begin
shiwei:process(clk,QI,reset)
variable seg2:std_logic_vector(7 downto 0);
begin
if reset=0 then seg2:
else
if QI=0000 then seg2:end if;
if QI=0011 then seg2:end if;
end if;
segshi=seg2;
end process;
gewei:process(clk,QI,reset)
begin
if reset=0 then seg1
else
if (QI=0010 or QI=1100 or QI=1111) then seg1end if;--0
if (QI
显示全部