EDA课程设计(交通灯控制器)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计
年月日
大课程设计任务书
课程EDA技术课程设计
题目交通灯控制器
专业姓名学号
主要内容、基本要求、主要参考资料等
主要内容:
设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
基本要求:
1、红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号,实验电路用逻辑开关代替。
2、主干道处于常允许通行的状态,支干道有车来时才允许通行。
主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
3、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路,选择1HZ时钟脉冲作为系统时钟。
4、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。
主要参考资料:
[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.
[2] 康华光主编.电子技术基础模拟部分. 北京:高教出版社,2006.
[3] 阎石主编.数字电子技术基础. 北京:高教出版社,2003.
完成期限2010.3.12
指导教师
专业负责人
2010年3月8日
一、总体设计思想
1.基本原理
计数模块、置数模块、主控制器模块和译码器模块。
置数模块将交通灯的点亮时间预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。
其中,核心部分是主控
2.设计框图
图一.交通灯控制系统的原理框图
图二.交通灯控制器的流程图
脉冲发生
器 控制器 译码器
甲车信号灯
乙车信号灯
定时器
1.设计思路:
在某一十字路口交叉地带,可设计东西走向的道路为甲车道,南北走向的道路为乙车道。
甲乙车道的交通灯需按交通法则来依次交替运行。
则可设计一个状态循环的逻辑电路。
2.分析系统的逻辑功能:
交通灯控制系统的原理框图如图一所示。
它主要由控制器、定时器、译码器和秒脉冲信号发生器等部分组成。
秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。
图中:
TL: 表示甲车道或乙车道绿灯亮的时间间隔为45秒,即车辆正常通行的时间间隔。
定时时间到,TL=1,否则,TL=0。
TY:表示黄灯亮的时间间隔为5秒。
定时时间到,TY=1,否则,TY=0。
ST:表示定时器到了规定的时间后,由控制器发出状态转换信号。
由它控制定时器开始下个工作状态的定时。
(1)图甲车道绿灯亮,乙车道红灯亮。
表示甲车道上的车辆允许通行,乙车道禁止通行。
绿灯亮足规定的时间隔TL时,控制器发出状态信号ST,转到下一工作状态。
(2)甲车道黄灯亮,乙车道红灯亮。
表示甲车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行,乙车道禁止通行。
黄灯亮足规定时间间隔TY时,控制器发出状态转换信号ST,转到下一工作状态。
辆允许通行绿灯亮足规定的时间间隔TL时,控制器发出状态转换信号ST,转到下一工作状态。
(4)甲车道红灯亮,乙车道黄灯亮。
表示甲车道禁止通行,乙车道上未过停车线的车辆停止通行,已过停车线的车辆继续通行。
黄灯亮足规定的时间间隔TY时,控制器发出状态转换信号ST,系统又转换到第(1)种工作状态。
交通灯以上4种工作状态的转换是由控制器进行控制的。
设控制器的四种状态编码为00、01、11、10,并分别用S0、S1、S3、S2表示,则控制器的工作状态及功能如图二所示,控制器应送出甲、乙车道红、黄、绿灯的控制信号。
为简便起见,把灯的代号和灯的驱动信号合二为一,并作如下规定:图二的控制器工作状态及功能
控制状态信号灯状态车道运行状态
S0(00)甲绿,乙红甲车道通行,乙车道禁止通行
S1(01)甲黄,乙红甲车道缓行,乙车道禁止通行
S3(11)甲红,乙绿甲车道禁止通行,乙车道通行
S2(10)甲红,乙黄甲车道禁止通行,乙车道缓行
符号含义:
AG=1:甲车道绿灯亮;
BG=1:乙车道绿灯亮;
AY=1:甲车道黄灯亮;
BY=1:乙车道黄灯亮;
AR=1:甲车道红灯亮;
由此得到交通灯控制器的流程图,如图二所示。
设控制器的初始状态为S0(用状态框表示S0),当S0的持续时间小于45秒时,TL=0(用判断框表示TL),控制器保持S0不变。
只有当S0的持续时间等于45秒时,TL=1,控制器发出制态转换信号ST(用条件输出框表示ST),并转换到下一个工作状态。
二、设计步骤和调试过程
1、总体设计电路
2、模块设计和相应模块程序
library ieee;
use ieee.std_logic_1164.all;
entity traffic1 is
port(clk,sensor1, sensor2, reset : in std_logic;
red1, yellow1, green1, red2, yellow2, green2 : out std_logic);
end traffic1;
type state_t is (st0,st1,st2,st3,st4,st5,st6,st7);
signal state, nextstate : state_t;
begin
update_stae :
process (reset, clk)
begin
if (reset='1') then
state <= st0 ;
elsif clk 'event and clk='1'then
state <= nextstate ;
end if ;
end process;
transitions :
process (state, sensor1, sensor2)
variable
cnt1,cnt2,cnt3,cnt4,cnt5,cnt6,cnt7,cnt8 :integer range 0 to 255;
begin
red1 <='0'; yellow1 <='0'; green1 <= '0';
red2 <='0'; yellow2 <='0'; green2 <= '0';
case state is
green1 <= '1';
red2 <='1';
if sensor2 = sensor1 then
nextstate <= st1;
elsif (sensor1 = '0'and sensor2 = '1') then nextstate<= st2;
else
nextstate <= st0;
end if;
when st1 =>
green1 <= '1';
red2 <= '1';
nextstate <= st2;
when st2 =>
green1 <= '1';
red2 <= '1';
nextstate <= st3;
when st3 =>
yellow1 <= '1';
red2 <= '1';
nextstate <=st4;
red1 <= '1';
green2 <= '1';
if sensor2 = sensor1 then
nextstate <= st5;
elsif (sensor1 = '1'and sensor2 = '0') then nextstate <= st6;
else
nextstate <= st4;
end if;
when st5 =>
red1 <= '1';
green2 <='1';
nextstate <= st6;
when st6 =>
red1 <= '1';
green2 <= '1';
nextstate <= st7;
when st7 =>
red1 <= '1';
yellow2 <= '1';
nextstate <= st0;
end process;
end a;
3、仿真及仿真结果分析
仿真图
三、结论及心得体会
做了一周的课程设计,使我感慨颇多,有关于VHDL方面的,更多的收获是多方面的。
VHDL程序设计也不熟炼,学的东西好像它是它,我是我似的,理论联系不了实际。
以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。
后来请教我们班的同学,一起学习。
我觉得我对VHDL的一些知识在这个动手的过程中真的是从无到有增长的。
一段时间里,我应该不会再如此迷惘。
参考资料
[1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.
9
大庆石油学院课程设计成绩评价表
指导教师:2010年 3 月13 日。