EDA交通信号灯控制器.doc

上传人:自*** 文档编号:126173727 上传时间:2020-03-22 格式:DOC 页数:15 大小:452.45KB
返回 下载 相关 举报
EDA交通信号灯控制器.doc_第1页
第1页 / 共15页
EDA交通信号灯控制器.doc_第2页
第2页 / 共15页
EDA交通信号灯控制器.doc_第3页
第3页 / 共15页
EDA交通信号灯控制器.doc_第4页
第4页 / 共15页
EDA交通信号灯控制器.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《EDA交通信号灯控制器.doc》由会员分享,可在线阅读,更多相关《EDA交通信号灯控制器.doc(15页珍藏版)》请在金锄头文库上搜索。

1、课 程 设 计课程设计名称: EDA课程设计 专 业 班 级 : XXXXX 学 生 姓 名 : XXXXX 学 号 XXXX 指 导 教 师 : XXXXX 课程设计时间: 2011-12-192011-12-30 电子信息工程技术 专业课程设计任务书学生姓名XXX专业班级XXXX学号XXXX题 目交通信号灯控制器课题性质工程设计课题来源自拟课题指导教师XXXXX同组姓名主要内容1、 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。2、 红、绿、黄发光二极管作信号

2、灯,用传感器或逻辑开关作检测车辆是否到来的信号。3、 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。4、 主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。5、 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。任务要求1根据设计题目要求进行方案设计并编写相应程序代码2对编写的VHDL程序代码进行编译和仿真3总结设计内容,完成课程设计说明书 审查意见指导教师签字:XXXXX教研室主任签字:XXXX

3、X 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 设计任务及要求设计一个主干道和支干道十字路口的交通灯控制电路,要求如下:一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮的时间为45s。主干道无车,支干道有车,则主干道红灯亮、支干道绿灯亮,但支干道绿灯亮的时间为25s。每次主干道或支干道绿灯变红灯时,黄灯先亮5s。设计要求:1.有MR(主红)、MY(主黄)、MG(主绿)、CR(干红)、CY(干黄)、CG(干绿)六盏交通灯需要控制;2.交通灯由绿转红有5秒黄灯亮的间隔时间,由红转绿没有间隔时间;3.系统有MRCY、MRCG、MYCR

4、、MGCR四个状态; MGCRMYCRMRCGMRCY主干道交通灯绿(45秒)黄(5秒)红(25秒)红(5秒)支干道交通灯红红绿黄 4.干间公路右侧各埋有一个传感器,当有车辆通过干间公路时,发出请求信号S=1,其余时间S=0; 5.平时系统停留在MGCR(主干道通行)状态,一旦S信号有效,经MYCR(黄灯状态)转入MRCG(支干道通行)状态,但要保证MGCR的状态不得短于45s; 6.一旦S信号无效,系统脱离MRCG状态。随即经MRCY(黄灯状态)进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于25秒钟。2设计原理及总体框图发光二极管控制器分频电路分位电路计数器七段数码管译码电路倒

5、计时数字显示ResetdClkd计数值Con1dCond 主控电路是一个单进程Moore型有限状态机,通过接收定时器发送的“时间到”信号以及根据s(用来指示支干道是否有车来,1表示支干道没有车来,0 支干道有车来)的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制。具体控制过程为:当s=1时,支干道没有车来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯;当s=0时,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,且在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。由于主、支干道有45秒和25秒得放行

6、时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,所以设计45秒、25秒和5秒计时电路,均采用倒计时。考虑到显示的方便,每个计时电路又由计数器和码型转换电路组成。码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示,这样可简化模块设计。3 程序设计(1)分频器的设计LIBRARY IEEE;USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevider ISPORT (Clkin:IN Std_Logic; Clkout:OUT Std_Logic);END;ARCHITECTURE Devider OF FreDevid

7、er ISCONSTANT 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)控制设计控制器的作用是根据计数器的计数值控制发光二极管的亮、灭,以及输出倒计时数值给七段译管的分

8、译码电路。此外,当检测到特殊情况(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;A

9、RCHITECTURE behavior OF Countroller IS BEGINprocess(Clock)BEGINIF falling_edge(Clock)THENIF Hold=1 THEN RedA=1; RedB=1; GreenA=0; GreenA=0; YellowA=0; YellowB=0;ELSIF CountNum=39 THEN NumA=40-CountNum; RedA=0; GreenA=1;YellowA=0; ELSIF CountNum=44 THEN NumA=45-CountNum; RedA=0; GreenA=0; YellowA=1;E

10、LSE NumA=90-CountNum; RedA=1; GreenA=0;YellowA=0;END IF;IF CountNum=44 THEN NumB=45-CountNum; RedB=1; GreenB=0; YellowB=0;ELSIF CountNum=84 THEN NumB=85-CountNum; RedB=0; GreenB=1; YellowB=0;ELSe NumB=90-CountNum; RedB=0; GreenB=0; YellowB=1;END IF;END IF;END PROCESS;END;(3)计数器的设计这里计数器的计数范围为045S 。计到

11、45后,下一个时钟沿回复到0,开始下一轮计数.此外,当检测到特殊情况(Hold=1)发生时,计数器暂停计数,而系统复位号Reset则使计数器异步清0。程序如下:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY counter IS PORT (clock:IN STD_LOGIC; reset:in std_logic; Hold:in std_logic; countNum:BuFFeR INTEGER RANGE 0 TO 90);END;ARCHITECTURE behavior OF counter IS BEGINprocess(re

12、set,Clock)BEGINIF Reset=1 THEN countNum=0;ELSIF rising_edge(Clock) THENIF Hold=1 thencountNum=countNum;ELSE IF countNum=90 THENcountNum=0;ELSE countNum=40 THEN NumA=4;NumB=30 THEN NumA=3;NumB=20 THEN NumA=2;NumB=10 THEN NumA=1;NumB=Numin-10;ELSE NumA=0;NumB=Numin;END IF;END PROCESS;END;(5)数码管驱动设计LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY bcd_data ISPORT(bcd_data:in STD_LOGIC_VECTOR(3 downto 0); segout: out STD_LOGIC_VECTOR(6 downto 0);END;ARCHITECTURE behavior OF bcd_data IS BEGINprocess(bcd_data)BEGINcase bcd_data is when 0000

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 机械/模具设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号