收藏 分销(赏)

EDA交通信号灯控制器.doc

上传人:仙人****88 文档编号:9072371 上传时间:2025-03-12 格式:DOC 页数:15 大小:462KB 下载积分:10 金币
下载 相关 举报
EDA交通信号灯控制器.doc_第1页
第1页 / 共15页
EDA交通信号灯控制器.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
课 程 设 计 课程设计名称: EDA课程设计 专 业 班 级 : XXXXX 学 生 姓 名 : XXXXX 学 号 XXXX 指 导 教 师 : XXXXX 课程设计时间: 2011-12-19~2011-12-30 电子信息工程技术 专业课程设计任务书 学生姓名 XXX 专业班级 XXXX 学号 XXXX 题 目 交通信号灯控制器 课题性质 工程设计 课题来源 自拟课题 指导教师 XXXXX 同组姓名 主要内容 1、 设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 2、 红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 3、 主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 4、 主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 5、 在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 任务要求 1根据设计题目要求进行方案设计并编写相应程序代码 2对编写的VHDL程序代码进行编译和仿真 3总结设计内容,完成课程设计说明书 审查意见 指导教师签字:XXXXX 教研室主任签字:XXXXX 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页 1 设计任务及要求 设计一个主干道和支干道十字路口的交通灯控制电路,要求如下: ①一般情况下,保持主干道畅通,主干道绿灯亮、支干道红灯亮,并且主干道绿灯亮的时间为45s。 ②主干道无车,支干道有车,则主干道红灯亮、支干道绿灯亮,但支干道绿灯亮的时间为25s。 ③每次主干道或支干道绿灯变红灯时,黄灯先亮5s。 设计要求:1.有MR(主红)、MY(主黄)、MG(主绿)、CR(干红)、CY(干黄)、CG(干绿)六盏交通灯需要控制; 2.交通灯由绿转红有5秒黄灯亮的间隔时间,由红转绿没有间隔时间; 3.系统有MRCY、MRCG、MYCR、MGCR四个状态; MGCR MYCR MRCG MRCY 主干道交通灯 绿(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设计原理及总体框图 发光二极管 控制器 分频电路 分位电路 计数器 七段数码管 译码电路 倒计时数字显示 Resetd Clkd 计数值 Con1d Cond 主控电路是一个单进程Moore型有限状态机,通过接收定时器发送的“时间到”信号以及根据s(用来指示支干道是否有车来,‘1’表示支干道没有车来,‘0’ 支干道有车来)的值进行状态的切换,实现对十字路口东西、南北两个方向的红、黄、绿灯状态的控制。具体控制过程为:当s=‘1’时,支干道没有车来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯;当s=‘0’时,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,且在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。由于主、支干道有45秒和25秒得放行时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,所以设计45秒、25秒和5秒计时电路,均采用倒计时。考虑到显示的方便,每个计时电路又由计数器和码型转换电路组成。码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示,这样可简化模块设计。 3 程序设计 (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'; 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'; ELSE 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)计数器的设计 这里计数器的计数范围为0—45S 。计到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 BEGIN process(reset,Clock) BEGIN IF Reset='1' THEN countNum<=0; ELSIF rising_edge(Clock) THEN IF Hold='1' then countNum<=countNum; ELSE IF countNum=90 THEN countNum<=0; ELSE countNum<=countNum+1; END IF; END IF; END IF; END PROCESS; END; (4)分位译码电路设计 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY Fenwei IS PORT (Numin:IN integer RANGE 0 TO 45; NumA,NumB:OUT Integer RANGE 0 to 9); END; ARCHITECTURE behavior OF Fenwei IS BEGIN process(Numin) BEGIN IF Numin>=40 THEN NumA<=4; NumB<=Numin-40; ELSIF Numin>=30 THEN NumA<=3; NumB<=Numin-30; ELSIF Numin>=20 THEN NumA<=2; NumB<=Numin-20; ELSIF Numin>=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 IS PORT (bcd_data:in STD_LOGIC_VECTOR(3 downto 0); segout: out STD_LOGIC_VECTOR(6 downto 0)); END; ARCHITECTURE behavior OF bcd_data IS BEGIN process(bcd_data) BEGIN case bcd_data is when "0000"=>segout<="1111110"; when "0001"=>segout<="0110000"; when "0010"=>segout<="1101101"; when "0011" =>segout<="1111001" ; when "0100" =>segout<="0110011" ; when "0101"=>segout<="1011011" ; when "0110"=>segout<="0011111" ; when "0111"=>segout<="1110000" ; when "1000" =>segout<="1111111" ; when "1001" =>segout<="1110011"; when others =>null; END CASE; END PROCESS; END; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY dtsm IS PORT(clk:in STD_LOGIC; NumA,NumB,NumC,NumD: in STD_LOGIC_VECTOR(3 downto 0); segout1:out STD_LOGIC_VECTOR(6 downto 0); led_sel: out STD_LOGIC_VECTOR(3 downto 0)); END dtsm; architecture bhv of dtsm is component bcd_data is port (bcd_data:in STD_LOGIC_VECTOR(3 downto 0); segout:out STD_LOGIC_VECTOR(6 downto 0)); end component; signal x:STD_LOGIC_VECTOR(3 downto 0); signal q:STD_LOGIC_VECTOR(1 downto 0); begin p1:process(clk) begin if clk'event and clk ='1' then Q<= Q + '1'; end if; end process; p2:process(Q) begin case Q is when"00"=>led_sel<="1110";x<=NumD; when"01"=>led_sel<="1101";x<=NumC; when"10"=>led_sel<="1011";x<=NumB; when"11"=>led_sel<="0111";x<=NumA; when others=>null; end case; end process; u1:bcd_data PORT map(bcd_data=>x,segout=>segout1); end 4 编译及仿真 对文件保存并进行编译仿真,仿真波形如下: (1)当没有完成模45计数,即使S=1,状态也不发生改变 (2)45秒过后,若S=1主道进入黄灯状态并保持4秒 (3)25秒过后,不论S=1或0乡道进入黄灯状态并保持4秒 (4)当S一旦为0,乡道立刻进入黄灯状态,并持续四秒 5 硬件调试与结果分析 RST信号有效时不计数,主干道在前45s,无论s是否有信号,都不改变状态,到达45s且s有信号,状态改变,主干道黄灯支干道红灯5s后转为主干道红灯支干道绿灯。再经25s状态改变,主干道红灯支干道黄灯5s后转为主干道绿灯乡村道红灯,继续等待。 6 参考文献 在“课程设计报告”的最后应附上所参考的相关文献, 参考文献格式如下:([1]书籍 [2] 文章例) [1] 边肇祺.模式识别(第二版).北京:清华大学出版社,1988,25~35 [2] 李永忠.几种小波变换的图像处理技术.西北民族学院学报(自然科学版),2001.6,22(3),15~18 心得体会 经过两周的努力,我终于完成关于交通灯控制电路的课程设计,通过两周不断的查资料让我积累了许多实际操作经验,我已熟悉了QuartusⅡ软件的使用方法,而且学习了VHDL 基本逻辑电路和状态机电路的综合设计应用。EDA设计我感觉程序调试最重要,试验软件、硬件熟悉其次。在编完各模块程序之后,编译查错最初有十几个错误,有输入错误、语法错误。必须注意工程名和实体名一致,不然一般会出错。在无误后可以进行波型仿真。若与理想的不同,再查看程序,有无原理上的编辑错误或没有查出的输入错误。 15
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服