简易交通灯控制器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四简易交通灯控制器设计

一、实验目的

了解状态机的典型结构及编写方法。

二、实验要求

使用状态机设计一个交通灯控制器,该控制器用于控制十字路口的信号灯和倒计时显示器。在东西和南北两个方向上均有一组红、黄、绿灯和倒计时显示器,假设各灯交替点亮的时间为:红灯45秒,绿灯40秒,黄灯5秒,同时用数码管指示当前状态的剩余时间。另外设置一个禁止通行控制输入信号端,当该信号为低电平时,两个方向都禁止通行,红灯点亮,计时器不显示时间。完成设计输入、编译、仿真、硬件测试等过程。

三、实验原理与方案

根据实验要求,两个方向灯的点亮状态共有红绿、红黄、绿红、黄红四种组合,如下表:

从表中可以看出,交通灯的有效状态共有4种,某一状态的定时时间到,则转向下一个状态。在采用状态机设计时可以考虑定义一个状态设置,取值范围为S1、S2、S3、S4,另外对应禁止通行的特殊状态还可以设置一个状态S0。为了实现各状态的定时,设置两个计数器EW、SN,分别用于对东西、南北方向的各状态定时。

四、实验内容、步骤与结果

1、项目设计:

1)启动QuartusII,完成项目设置,顶层文件名JTD

2)打开VHDL编辑器将输入程序代码,保存

程序:LIBRARY IEEE;

USE IEEE. STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_ARITH.ALL;

ENTITY JTD IS

PORT(CLK,S2,S1:IN STD_LOGIC;

A_GREEN,A_YELLOW,A_RED:OUT STD_LOGIC;

B_GREEN,B_YELLOW,B_RED:OUT STD_LOGIC);

END ENTITY JTD;

ARCHITECTURE RTL OF JTD IS

TYPE STATE IS(AGREEN,AYELLOW,BGREEN,BYELLOW);

BEGIN

PROCESS(CLK,S2,S1)

V ARIABLE CURRENT_STATE:STATE;V ARIABLE TIMER:INTEGER; V ARIABLE JTD:STD_LOGIC_VECTOR(5 DOWNTO 0);

V ARIABLE FLAG:STD_LOGIC;

BEGIN

IF(S2='1')THEN

CURRENT_STATE:=AGREEN;TIMER:=50;FLAG:='0';

ELSIF(S1='1')THEN

CURRENT_STATE:=CURRENT_STATE;TIMER:=TIMER;FLAG:='1';

JTD:="001001";

ELSIF(CLK'EVENT AND CLK='1')THEN

FLAG:='0'; TIMER:=TIMER-1;

CASE CURRENT_STATE IS

WHEN AGREEN=>

IF(TIMER=0)THEN

CURRENT_STATE:=AYELLOW;TIMER:=5;

END IF;

WHEN AYELLOW=>

IF(TIMER=0)THEN

CURRENT_STATE:=AGREEN;TIMER:=45;

END IF;

WHEN BGREEN=>

IF(TIMER=0)THEN

CURRENT_STATE:=BYELLOW;TIMER:=5;

END IF;

WHEN BYELLOW=>

IF(TIMER=0)THEN

CURRENT_STATE:=BGREEN;TIMER:=45;

END IF;

END CASE;

END IF;

IF(FLAG='0')THEN

CASE CURRENT_STATE IS

WHEN AGREEN=>JTD:="100001"; WHEN AYELLOW=>JTD:="010001"; WHEN BGREEN=>JTD:="001100"; WHEN BYELLOW=>JTD:="001010";

END CASE;

END IF;

A_GREEN<=JTD(5);A_YELLOW<=JTD(4);A_RED<=JTD(3);

B_GREEN<=JTD(2);B_YELLOW<=JTD(1);B_RED<=JTD(0);

END PROCESS;

END RTL;

2、项目编译:

1)将设计文件设置为顶层文件

2)编译

3、功能仿真:

1)建立波形文件

2)参数设置

3)先再次编译,生成功能仿真的网表

4)点击波形仿真快捷键进行仿真,仿真结果如下:

五、实验结果分析

典型的状态机结构包括说明部分,主控时序进程、主控组合进程。说明部分中使用TYPE语句将状态变量定义为新的数据类型,主控时序进程在时钟脉冲的驱动下实现状态转换,主控组合进程控制下一状态的走向和电路的输出。

在锁定引脚之后,从芯片引出到LED显示的引线线序要正确,否则,即使编程、时序仿真正确,也得不到正确的结果。交通灯的有效状态共有4种,某一状态的定时时间到,则转向下一个状态。

相关文档
最新文档