交通灯毕业论文

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

目录

前言: (1)

一、设计任务: (2)

二、题目分析与整体构思: (2)

三、硬件电路设计: (3)

四、程序设计: (7)

五、心得体会: (20)

六、设计创新: (20)

七、参考文献: (20)

前言

伴随着社会的发展以及人类生活水平的提高,汽车的数量在D的DEA技术的发展和应用领域的扩大与深入,EDA技术在电子信息,通信,自动,控制及计算机应用等领域的重要性日益突出。随着技术市场与人才市场对DEA的不断的增加,交通的问题日益突出,单单依靠人力来指挥交通已经不可行了,所以,设计交通灯来完成这个需求就显的越加迫切了.为了确保十字路口的行人和车辆顺利、畅通地通过,往往采用电子控制的交通信号来进行指挥。以下就是运用数字电子设计出的交通灯:其中红灯亮,表示该条路禁止通行;黄灯亮表示停车;绿灯亮表示允许通行。

一﹑设计任务

设计一个十字路口的交通灯控制系统,用实验平台上的LED发光二极管显示车辆通过的方向(东西和南北各一组),用数码管显示该方向的剩余时间。要求:工作顺序为东西方向红灯亮45秒,前40秒南北方向绿灯亮,后5秒黄灯亮。然后南北方向红灯亮45秒,前40秒东西方向绿灯亮,后5秒黄灯亮。依次重复。有紧急事件时允许将某方向一直开绿灯或者开红灯,另外允许特定情况两方向均为红灯,车辆禁行,比如十字路口恶性交通事故时,东西,南北两个方向均有两位数码管适时显示该方向亮灯时间。

二、题目分析与整体构思

(1)该交通灯控制器应具备的功能

设东西和南北方向的车流量大致相同,因此红、黄、绿灯的时长也相同,

定为红灯45sec,黄灯5sec,绿灯40sec,同时用数码管指示当前状态(红、

黄、绿)剩余时间。另外,设计一个紧急状态,当紧急状态出现时,两个

方向都禁止通行,指示红灯。紧急状态解除后,重新计数并指示时间。

(2) 实现方案

一从题目中计数值与交通灯的亮灭的关系如图(1)所示

三﹑硬件电路设计

(1)分频器

分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。

(2)控制器设计

控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。此外,当检测到特殊情况(HOLD=‘1’)发生时,无条件点亮红灯的二极管。本控制器可以有两种设计方法,一种是利用时钟烟的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。这两种方法各有所长,必须根据所用器

件的特性进行选择:比如有些FPGA有丰富的寄存器资源,而且可用与组合逻辑的资源则相对较少,那么使用第一种方法会比较节省资源;而有些CPLD的组合逻辑资源则比较多,用第二种方法可能更好。

(3)计数器设计

这里需要的计数器的计数围为0-90。计到90后,下一个时钟沿回复到0,开始下一轮计数。此外,当检测到特殊情况(HOLD=‘1’)发生是,计数器暂停计数,而系统复位信号RESET则使计数器异步清零。

(4)分位译码电路设计--1

因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路(即将其分为2个1位的十进制数,如25分为2和5,7分为0和7)。

与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。控制器中,引入了寄存器。为了让读者开拓眼界,分位电路就用组合逻辑电路实现。

(5)分位译码电路设计—2

(6)数码管驱动设计

串行连接,即每个数码管对应的引脚都接在一起(如每个数码管的a引脚都接

到一起,然后再接到CPLD/FPGA上的一个引脚上),通过控制公共端为高电平控制相应数码管的亮、灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)。

串行法的优点在于消耗的系统资源少,占用的I/O口少,N个数码管只需要(7+N)个引脚(如果需要小数点,则是(8+N)个引脚)。其缺点是控制起来不如并行法容易。

(7)下图为交通灯控制器的顶层文件连接图

四、程序设计

(1)分频器的设计

LIBRARY IEEE;

USE IEEE.Std_Logic_1164.ALL;

ENTITY FreDevider IS

PORT

(Clkin:IN Std_Logic;

Clkout:OUT Std_Logic);

END;

ARCHITECTURE Devider OF FreDevider IS CONSTANT N:Integer:=499;

signal counter:Integer range 0 to N; signal Clk:Std_Logic;

BEGIN

PROCESS(Clkin)

begin

IF rising_edge(Clkin)THEN

IF Counter=N then

counter<=0;

Clk<=not clk;

else

counter<=counter+1;

end if;

end if;

end process;

clkout<=clk;

end;

(2)控制设计

控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分译码电路。此外,当检测到特殊情况(Hold=‘1’)发生时,无条件点亮红色的发光二极管。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY countroller IS

PORT (Clock:IN STD_LOGIC;

Hold:in std_logic;

CountNum:in INTEGER RANGE 0 TO 89;

NumA,NumB:out INTEGER RANGE 0 TO 45;

RedA,GreenA,YellowA:out std_logic;

RedB,GreenB,YellowB:out std_logic);

END;

ARCHITECTURE behavior OF Countroller IS

BEGIN

process(Clock)

BEGIN

IF falling_edge(Clock)THEN

IF Hold='1' THEN

RedA<='1';

相关文档
最新文档