电子技术课程设计
——交通灯控制器的设计
学 院 : 华科学院
专 业 : 通信工程
班 级 : 通信 052201H
姓 名 : 杜林林
学 号 :200522080102
指导教师 : 柴婷婷
2007 年 12 月
交通灯控制器的设计
一 设计任务与要求
设计一个由一条主干道和一条支干道的汇合点形成的十字交叉路口的交通灯控
制器,要求如下:
1.主干道和支干道各设一个绿.黄.红指示灯,两个显示数码管。
2.主干道处与常允许通行状态,而支干道有车来才允许通行。当主干道允许
通行亮绿灯时,支干道亮红灯。而支干道允许通行亮绿灯时,主干道亮红
灯
3.当主支干道均有车时,俩者交替允许通行,主干道有每次放行 45S,支干道每次放行
25S,在每次由亮绿灯变成亮红灯的转换过程中,要亮 5S 的黄灯作为过渡,并进行减
计时显示。
二 总体框原理
计数模块、置数模块、主控制器模块和译码器模块。置数模块将交通灯的点亮时间
预置到置数电路中,计数模块以秒为单位倒计时,当计数值减为零时,主控电路改
变输出状态,电路进入下一个状态的倒计时。其中,核心部分是主控
图一.交通灯控制系统的原理框图
图二.交通灯控制器的流程图
1.设计思路:
在某一十字路口交叉地带,可设计东西走向的道路为甲车道,南北走向的道路为
乙车道。甲乙车道的交通灯需按交通法则来依次交替运行。则可设计一个状态循环
的逻辑电路。
2.分析系统的逻辑功能:
交通灯控制系统的原理框图如图一所示。它主要由控制器、定时器、译码器和
秒脉冲信号发生器等部分组成。
秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组
信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由
它控制定时器和译码器的工作。图中:
TL: 表示甲车道或乙车道绿灯亮的时间间隔为 45 秒,即车辆正常通行的时间间
隔。定时时间到,TL=1,否则,TL=0。
TY:表示黄灯亮的时间间隔为 5 秒。定时时间到,TY=1,否则,TY=0。
ST:表示定时器到了规定的时间后,由控制器发出状态转换信号。由它控制定
时器开始下个工作状态的定时。
(1)图甲车道绿灯亮,乙车道红灯亮。表示甲车道上的车辆允许通行,乙车道
禁止通行。绿灯亮足规定的时间隔 TL 时,控制器发出状态信号 ST,转到下一工作
状态。
(2)甲车道黄灯亮,乙车道红灯亮。表示甲车道上未过停车线的车辆停止通行,
已过停车线的车辆继续通行,乙车道禁止通行。黄灯亮足规定时间间隔 TY 时,控
制器发出状态转换信号 ST,转到下一工作状态。
(3)甲车道红灯亮,乙车道绿灯亮。表示甲车道禁止通行,乙车道上的车辆允
许通行绿灯亮足规定的时间间隔 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:甲车道红灯亮;
BY=1:乙车道红灯亮;
由此得到交通灯控制器的流程图,如图二所示。设控制器的初始状态为 S0(用
状态框表示 S0),当 S0 的持续时间小于 45 秒时,TL=0(用判断框表示 TL),控
制器保持 S0 不变。只有当 S0 的持续时间等于 45 秒时,TL=1,控制器发出状态转
换信号 ST(用条件输出框表示 ST),并转换到下一个工作状态。依此类推可以弄
懂流程图所表达的含义。
三 选择器件
1. 定时器
定时器由与系统秒脉冲(由时钟脉冲产生器提供)同步的计数器构成,要求计数器
在状态信号 ST 作用下,首先清零,然后在时钟脉冲上升沿作用下,计数器从零开
始进行增 1 计数,向控制器提供模 5 的定时信号 TY 和模 45 的定时信号 TL。
2. Traffic1 交通灯控制器图元符号
Traffic1 控制器设计较简便。控制器的外引线排列图和时序波形图如图三所示。图
中, Sensor1 和 Sensor2 是高低电平的输入端, CLK 为时钟信号的输入端,RESET
为置零端, 为信号输出端。
图三 traffic1 控制器图
3. 存入 Traffic1 交通灯控制器的程序
library ieee;
use ;
entity traffic1 is
port(clk,sensor1, sensor2, reset : in std_logic;
red1, yellow1, green1, red2, yellow2, green2 : out std_logic);
end traffic1;
architecture a of traffic1 is
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
when st0 =>
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;
when 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 case;
end process;
end a;
仿真图:
四.总体设计电路图
1.电路图
2.时序仿真结果:
3.管脚分配图
五.心得体会
做了三周的课程设计,使我感慨颇多,有关于 VHDL 方面的,更多的收获是多方面
的。
我们做实验分组每人一个题目,因为我们班人少,正好题目多,最后只能每人一个
题目,使以前一向懒散的我们最后弄的手忙脚乱,不过付出总会有回报的,虽然最
后实验结果有些缺点,但是我们大家一致认为收获还是大的。
所幸的是,我得到了很多同学的帮助。我想没有他们我可能都要放弃了,因为我本
人对计算机的应用不是很熟悉,VHDL 程序设计也不熟炼,学的东西好像它是它,
我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就
要令我抓狂了。后来请教我们班的同学,每次跟他一起到试验室调试程序,看他边
做边给我讲解。使我获益非浅。
接下来就是做硬件方面的连接方面了 ,虽然简单但也是非常重要的一个步骤,只有
通过才能任可实验的正确性。
还好,验收还算成功,得了 25 分,不是很高,但是我觉得对我来说已经很好,代表
了我真实的水平,我觉得我对 VHDL 的一些知识在这个动手的过程中真的是从无到
有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有些人付出
的是努力,有些人付出的是风险代价,其实这也没有什么不一样,这一点我早就了
解。
不过我的心是充实的,虽然这几天有时常常为了 1 个小问题想几个小时也不知
所以,又常常抱着参考书有一种相见恨晚的感觉,恨不得一下全部消化了它,虽然
这几天常常躺在床上,却突然领悟到白天苦思的问题,又常常辗转反侧,看到自己
那么大的差距,想到高考落榜这两年却像虚度般的过来了…………
久违了,这种匆忙的感觉,久违了,这种充实的感觉,凭借着自己的力量在努力,
努力过才会留下无悔的青春,无怨的青春。
我似乎又找到正确的前进的方向,过去我还常常迷惘我为什么会坐在北工大计算
机系的教室里,我感到从不曾有过的空虚,空虚到似乎整个天空将要塌下来。
或许今天的忙碌使我有了一丝的答案,一丝前进路上的答案。这个答案是我的,
也是大家的。我明白在这条路上只有向前走才是出路,任何观望和倒退将使自己处
于危险的境地。
这次课设无论结果如何,我都会欣然接受,因为我努力过,我得到的将是我应该
得到的,不会多也不会少。但是这仅仅是一个开始,我想在以后很长一段时间里,
我应该不会再如此迷惘。
目录
一.设计任务与要求-----------------------(1)
二.总体框原理 --------------------------(1)
三.选择器件--------------------------------(4)
1. 定时器
2. Traffic1 交通灯控制器图元符号
3.存入 Traffic1 交通灯控制器的程序
四.总体设计电路图----------------------(7)
五.心得体会-------------------------------(9)