网站大量收购独家精品文档,联系QQ:2885784924

EDA技术课程设计-交通灯控制器.doc

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
EDA技术课程设计-交通灯控制器

东 北 石 油 大 学 课 程 设 计 2011年 3 月11日 东北石油大学课程设计任务书 课程 EDA技术课程设计 题目 交通灯控制器 专业 姓名 学号主要内容、基本要求、主要参考资料等主要内容: 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。基本要求: 1、红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号,实验电路用逻辑开关代替。 2、主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 3、主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路,选择1HZ时钟脉冲作为系统时钟。 4、在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。主要参考资料: [1] 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005[2] 康华光主编电子技术基础 模拟部分 北京:高教出版社[3] 阎石主编数字电子技术基础 北京:高教出版社完成期限 指导教师 专业负责人 年 月日该系统主要由计数模块、控制模块、分频模块、分位模块以及显示电路构成其中分频模块主要将系统输入的基准时钟信号转换是1 Hz的激励信号驱动计数模块和控制模块工作控制模块根据计数器的计数情况对交通灯的亮灭及持续时间进行控制并通过分位电路将灯亮时间以倒计时的形式通过数码管显示出来 1kHZ 1kHZ 1HZ 支干道车辆检测 1kHZ 数码管及LED信号 二、设计步骤和调试过程 1、总体设计电路 2、模块设计和相应模块程序 《1》模块设计 (1)分频器 分频器实现的是将高频时钟信号转换成底频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器实现的是一千分频,将一千赫兹的时钟信号分频成一赫兹的时钟信号。 (2)控制器设计 控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段数码管的分位译码电路。本控制器可以有两种设计方法,一种是利用时钟沿的下降沿读取前级计数器的计数值,然后作出反应;另一种则是将本模块设计成纯组合逻辑电路,不需要时钟驱动。 (3)计数器设计 这里需要的计数器的计数范围为0-45。计到45后,下一个时钟沿回复到0,开始下一轮计数。 (4)分位译码电路设计-1 因为控制器输出的到计时数值可能是1位或者2位十进制数,所以在七段数码管的译码电路前要加上分位电路。与控制器一样,分位电路同样可以由时钟驱动,也可以设计成纯组合逻辑电路。控制器中,引入了寄存器。为了让读者开拓眼界,分位电路就用组合逻辑电路实现。 (5)分位译码电路设计—2 (6)数码管驱动设计 串行连接,即每个数码管对应的引脚都接在一起,通过控制公共端为高电平控制相应数码管的亮、灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)。 (7)下图为交通灯控制器的顶层文件连接图 《2》相应模块程序 (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;

文档评论(0)

2017meng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档