实验:交通灯设计
一、设计任务及要求:
设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求:
(1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间;
(2) 交通灯红变绿是直接进行的,没有间隔时间;
(3) 主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;
(4) 在任意时间,显示每个状态到该状态结束所需的时间。
图1 路口交通管理示意图
表1 交通信号灯的4种状态
设计要求:
(1) 采用VHDL语言编写程序,并在QuartusII工具平台中进行仿真,下载到EDA实验箱进行验证。
(2) 编写设计报告,要求包括方案选择、程序清单、调试过程及测试结果。
二、设计原理
1、设计目的:
学习DEA开发软件和QuartusII的使用方法,熟悉可编程逻辑器件的使用。通过制作来了解交通灯控制系统,交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制
2、设计说明
(1)第一模块:clk时钟秒脉冲发生电路
在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定的时钟(clock)才能让系统正常运作。
模块说明:
系统输入信号:
Clk: 由外接信号发生器提供256的时钟信号;
系统输出信号: full:产生每秒一个脉冲的信号;
(2)第二模块:计数秒数选择电路
计数电路最主要的功能就是记数负责显示倒数的计数值,对下一个模块提供状态转换信号。
模块说明:
系统输入:full: 接收由clk电路的提供的1HZ的时钟脉冲信号;
系统输出信号: tm: 产生显示电路状态转换信号
tl:倒计数值 秒数个位变化控制信号
th:倒计数值 秒数十位变化控制信号
(3)第三模块:红绿灯状态转换电路
本电路负责红绿灯的转换。
模块说明:
系统输入信号:full: 接收由clk电路的提供的1hz的时钟脉冲信号;
tm: 接收计数秒数选择电路状态转换信号;
系统输出信号: comb_out: 负责红绿灯的状态显示。
(4)第四模块:时间显示电路
本电路负责红绿灯的计数时间的显示。
模块说明:
系统输入信号:tl:倒计数值 秒数个位变化控制信号;
th:倒计数值 秒数十位变化控制信号;
系统输出信号: led7s1: 负责红绿灯的显示秒数个位。
led7s2: 负责红绿灯的显示秒数十位。
三、设计方案
图2 交通信号灯控制器的原理框图
采用VHDL语言输入的方式实现交通信号灯控制器
图3 交通信号灯控制器程序原理框图
该程序由7个进程组成,进程P1和P2将CLK信号分频后产生1秒信号,进程P3、P4、P5构成两个带有预置数功能的十进制计数器,其中P4产生允许十位计数器计数的控制信号。进程P6实现状态转换和产生状态转换的控制信号,进程P7产生次态信号和信号灯输出信号,以及每一个状态的时间值。
四、程序清单:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY traffic IS
PORT (clk:in std_logic;
led7s1:out std_logic_vector(6 downto 0);
led7s2:out std_logic_vector(6 downto 0);
comb_out:out std_logic_vector(5 downto 0));
END;
ARCHITECTURE one OF traffic IS
TYPE dm IS (s0,s1,s2,s3);
SIgnal current_state,next_state:dm;
SIGNAL FULL : STD_LOGIC;
SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);
SIGNAL th:STD_LOGIC_VECTOR(1 DOWNTO 0);
SIGNAL tm :STD_LOGIC_VECTOR(6 DOWNTO 0);
SIGNAL TIME :STD_LOGIC_VECTOR(6 DOWNTO 0);
BEGIN
P_REG: PROCESS(CLK)
VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF CNT8 = "11111111" THEN
CNT8:="01111111";
FULL<='1';
ELSE CNT8 := CNT8+1;
FULL <= '0';
END IF; END IF;
END PROCESS P_REG;
PROCESS(full)
BEGIN
IF full'EVENT AND full='1' THEN
IF TIME<"1000011" THEN
TIME<=TIME+1;
ELSe TIME <="0000000";
END IF;
END IF;
END PROCESS;
REG:process( full,current_state)
BEGIN
IF full='1' AND full'EVENT THEN
current_state<=next_state;
END IF;
END process;
COM:process(current_state, time)
begin
case current_state is
when s0=>comb_out<="001100";tm<=39-time;
if time=39 then next_state<=s1;
else next_state<=s0;
end if;
when s1=>comb_out<="010100";tm<=43-time;
if time=43 then next_state<=s2;
else next_state<=s1;
end if;
when s2=>comb_out<="100010";tm<=63-time;
if time=63 then next_state<=s3;
else next_state<=s2;
end if;
when s3=>comb_out<="100001";tm<=67-time;
if time=67 then next_state<=s0;
else next_state<=s3;
end if;
end case;
end process;
PROCESS(tm)
BEGIN
IF tm>=30 THEN th<="11";tl<=tm-30;
ELSIF tm>=20 THEN th<="10";tl<=tm-20;
ELSIF tm>=10 THEN th<="01";tl<=tm-10;
ELSE th<="00";tl<=tm;
END IF;
END PROCESS;
process(th,tl)
begin
case th is
when"00"=>led7s1<="0111111";
when"01"=>led7s1<="0000110";
when"10"=>led7s1<="1011011";
when"11"=>led7s1<="1001111";
when others=>null;
end case;
case tl is
when "0000000"=>led7s2<="0111111";
when"0000001"=>led7s2<="0000110";
when "0000010"=>led7s2<="1011011";
when"0000011"=>led7s2<="1001111";
when"0000100"=>led7s2<="1100110";
when "0000101"=>led7s2<="1101101";
when "0000110"=>led7s2<="1111101";
when"0000111"=>led7s2<="0000111";
when "0001000"=>led7s2<="1111111";
when "0001001"=>led7s2<="1101111";
when others=>null;
end case;
end process;
end;
五、电路及波形图
1.波形图
2.引脚设置
选择的器件为cyclone系列的EP1C3T144芯片,引脚锁定方法如下图所示。将未使用的管脚设置为三态输入(一定要设置,否则可能会损坏芯片)。
本实验只能用采用模式6下载调试,一切正常
六、硬件测试及说明
用实验板上的6个LED作为交通信号灯,设计一个交通信号灯控制器。
1、交通灯从绿变红时,有5秒黄灯亮的间隔时间;
2、交通灯红变绿是直接进行的,没有间隔时间;
3、红灯时间为30秒。绿灯时间为25秒。黄灯时间为5秒。
七、实验心得体会
通过这次课程设计,我进一步加深了对数字系统设计的了解。并进一步熟练了对QuartusII软件的操作。在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。同时也掌握了做课程设计的一般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把原理吃透,确定一个大的设计方向,在按照这个方向分模块的把要实现的功能用流程图的形式展示。最后参照每个模块把输入和输出引脚设定,运用我们所学的VHDL语言进行编程。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备的使用技能等方面得到较全面的锻炼和提高。
交通灯控制系统设计院系:电子电气工程学院专业:电气自动化班级:P10电气四班成员:*************交通灯控制系统设计实验…
微机原理课程设计报告新疆农业大学计算机与信息工程学院课程题目班级电科112指导老师张婧婧姓名学号基于8086的交通信号控制器的设计…
单片机综合实验报告题目模拟真实交通灯班级姓名学号指导老师时间1一实验内容用8255芯片的PAPB口低四位做输出口控制十二个发光二极…
课程设计任务书学生姓名王凯专业班级电子科学与技术0901班指导教师吴友宇工作单位信息工程学院题目交通信号灯控制器的设计初始条件本设…
实验:交通灯设计一、设计任务及要求:设计任务:模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,…
数字逻辑与系统设计实验报告目录一二三设计任务与要求2流程图与示意图3设计思路及原理图41原理图42总体思路43状态转移图5四设计实…
大连理工大学本科实验报告题目十字路口交通灯控制系统课程名称数字电路课程设计学院系电子信息与电气工程学部专业班级学生姓名学号完成日期…
EDA课程设计报告课程题目系别物理与电子工程学院年级专业班级学号学生姓名指导教师设计时间20xx122120xx1226常熟理工学…
交通灯modulejiaotongdengCPASLEDSGselxinputCPA时钟inputS指明乡村路口是否有汽车的通行信…
南昌大学实验报告实验三交通灯控制器设计学生姓名学号专业班级实验类型验证综合设计创新实验日期实验成绩一实验目的1学习与日常生活相关且…
交通信号控制器的VHDL的设计一、设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计…