交通信号控制器的设计_第1页
交通信号控制器的设计_第2页
交通信号控制器的设计_第3页
交通信号控制器的设计_第4页
交通信号控制器的设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、EDA技术课程设计报告题 目: 交通信号控制器的设计 班 级: 学 号: 姓 名: 同组人员: 指导教师: 年 月 日EDA技术课程设计成绩评定成绩评定: (百分制)指导教师签字: 评阅时间: 目 录1 设计要求与目的11.1 设计要求11.2 设计目的12 方案设计12.1 设计思路12.2 设计总体框图22.3 状态分析表33 电路的设计33.1 主控模块的设计33.2 计数器模块的设计63.3 显示控制器的设计93.4 顶层文件原理图104 系统仿真115 硬件调试与结果分析116 设计总结13参考文献13交通信号控制器的设计1 设计要求与目的1.1 设计要求 用EDA设计一个简单的交通

2、灯控制器,具有如下功能: (1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。 (2)用红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。 (3)主干道处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。 主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。 (4)在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,

3、使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。 1.2 设计目的 (1)掌握十字路口交通灯控制的设计原理,并能够运用VHDL编程语言编写出实(2)验程序,进一步对所学的EDA知识进行掌握与实际应用。 学会在MAX+plus 软件环境中仿真,熟悉软件的基本操作和运行环境。 (3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。 2 方案设计2.1 设计思路 (1)主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。 (2)45秒、25秒、5秒定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,定时结束信号也输入到主控电路,由主控电路启、闭三色信号灯或

4、启动另一计时电路。 (3)主控电路是核心,这是一个时序电路,其输入信号为:车辆检测信号(A,B); 45秒、25秒、5秒定时信号(C,D,E)。其状态转化如图2-1所示:主道有车或支道没车但45秒未到5秒已到5秒已到主道绿灯亮支道红灯亮主道无车,支道有车,或主,支道均有车,45秒已到主道红灯亮支道黄灯亮未过5秒主道黄灯亮支道红灯亮支道无车,或主支道均有车,25秒已到5秒已到主道红灯亮支道绿灯亮支道有车,主道无车,或主支道均有车,45秒未到图 2-1 状态转换图2.2 设计总体框图发光二极管控制器分频电路分位电路计数器七段数码管译码电路倒计时数Clk图2-2 设计框图 具体控制过程为支干道没有车

5、来,主干道处于常允许通行的状态,此时主干道亮绿灯,支干道亮红灯,支干道有车来,即主、支干道均有车,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,且在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡。由于主、支干道有45秒和25秒得放行时间,以及每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,所以设计45秒、25秒和5秒计时电路,均采用倒计时。考虑到显示的方便,每个计时电路又由计数器和码型转换电路组成。码型转换电路是把对应的二进制码直接转换成数码管显示时的码字,采用数码管的静态显示。2.3 状态分析表表2-1 状态分析表主干道支干道指示灯亮灯时间指示灯亮灯时间红灯亮

6、30s绿灯亮25s红灯亮黄灯亮5s绿灯亮45s红灯亮50s黄灯亮5s红灯亮 3 电路的设计3.1 主控模块的设计 由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。信号灯变换次序为:主支干道交替允许通行,主干道每次放行40S,亮5S红灯让行驶中的车辆有时间停到禁行线外,左拐放行15秒,亮5S红灯;支干道放行30S,亮5S黄灯,左拐放行15秒,亮5S红灯,其中主支干道的红黄绿灯表示如MR、MY、MG、BR、BY、BG。根据下面源程序生成如图3-1的控制器元件图

7、 图 3-1 控制器元件图LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY JTDKZ IS PORT(CLK,SM,SB:IN STD_LOGIC; MR,MY,MG,BR,BY,BG:OUT STD_LOGIC); END ENTITY JTDKZ; ARCHITECTURE ART OF JTDKZ IS TYPE STATE_TYPE IS(A,B,C,D); SIGNAL STATE:STATE_TYPE; BEGIN CNT:PROCESS(CLK)IS VARIABLE S:INTEGER RANGE 0 TO 45; VARIA

8、BLE CLR,EN:BIT; BEGIN IF(CLK'EVENT AND CLK='1') THEN IF CLR='0'THEN S:=0; ELSIF EN='0'THEN S:=S; ELSE S:=S+1; END IF; CASE STATE IS WHEN A=>MR<='0'MY<='0'MG<='1' BR<='1'BY<='0'BG<='0' IF(SB AND SM)='

9、1'THEN IF S=45 THEN STATE<=B;CLR:='0'EN:='0' ELSE STATE<=A;CLR:='1'EN:='1' END IF; ELSIF(SB AND (NOT SM)='1'THEN STATE<=B;CLR:='0'EN:='0' ELSE STATE<=A;CLR:='1'EN:='1' END IF; WHEN B=>MR<='0'MY<=

10、'1'MG<='0' BR<='1'BY<='0'BG<='0' IF S=5 THEN STATE<=C;CLR:='0'EN:='0' ELSE STATE<=B;CLR:='1'EN:='1' END IF; WHEN C=>MR<='1'MY<='0'MG<='0' BR<='0'BY<='0'

11、BG<='1' IF(SM AND SB)='1'THEN IF S=25 THEN STATE<=D;CLR:='0'EN:='0' ELSE STATE<=C;CLR:='1'EN:='1' END IF; ELSIF SB='0'THEN STATE<=D;CLR:='0'EN:='0' ELSESTATE<=C;CLR:='1'EN:='1' END IF; WHEN D=>M

12、R<='1'MY<='0'MG<='0' BR<='0'BY<='1'BG<='0' IF S=5 THEN STATE<=A;CLR:='0'EN:='0' ELSE STATE<=D;CLR:='1'EN:='1' END IF; END CASE; END IF; END PROCESS CNT; END ARCHITECTURE ART; 3.2 计数器模块的设计这里计数器的计数范

13、围为045S 。计到45后,下一个时钟沿回复到0,开始下一轮计数。根据下面源程序生成如图3-2的45s计数器元件图,当计数器及时45s后,主干道由绿转黄,支干道由红转绿。图 3-2 45s计数器元件图LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT45S IS PORT (SB,CLK,EN45:IN STD_LOGIC; DOUT45M,DOUT45B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY CNT45S; ARCHIT

14、ECTURE ART OF CNT45S IS SIGNAL CNT6B:STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN PROCESS(SB,CLK,EN45) IS BEGIN IF SB='0' THEN CNT6B<=CNT6B-CNT6B-1; ELSIF(CLK'EVENT AND CLK='1')THEN IF EN45='1' THEN CNT6B<=CNT6B+1; ELSIF EN45='0' THEN CNT6B<=CNT6B-CNT6B-1; END IF;

15、 END IF; END PROCESS; PROCESS(CNT6B)IS BEGIN CASE CNT6B IS WHEN"000000"=>DOUT45M<="00111111"DOUT45B<="00111111" WHEN"000001"=>DOUT45M<="00111111"DOUT45B<="00000110" WHEN"000010"=>DOUT45M<="00111111&quo

16、t;DOUT45B<="01011011" WHEN"000011"=>DOUT45M<="00111111"DOUT45B<="01001111" WHEN"000100"=>DOUT45M<="00111111"DOUT45B<="01100110" WHEN"000101"=>DOUT45M<="00111111"DOUT45B<="0110

17、1101" WHEN"000110"=>DOUT45M<="00111111"DOUT45B<="01111101" WHEN"000111"=>DOUT45M<="00111111"DOUT45B<="00000111" WHEN"001000"=>DOUT45M<="00111111"DOUT45B<="01111111" WHEN"001

18、001"=>DOUT45M<="00111111"DOUT45B<="01101111" WHEN"001010"=>DOUT45M<="00000110"DOUT45B<="00111111" WHEN"001011"=>DOUT45M<="00000110"DOUT45B<="00000110" WHEN"001100"=>DOUT45M<

19、;="00000110"DOUT45B<="01011011" WHEN"001101"=>DOUT45M<="00000110"DOUT45B<="01001111" WHEN"001110"=>DOUT45M<="00000110"DOUT45B<="01100110" WHEN"001111"=>DOUT45M<="00000110"DO

20、UT45B<="01101101" WHEN"010000"=>DOUT45M<="00000110"DOUT45B<="01111101" WHEN"010001"=>DOUT45M<="00000110"DOUT45B<="00000111" WHEN"010010"=>DOUT45M<="00000110"DOUT45B<="01111111

21、" WHEN"010011"=>DOUT45M<="00000110"DOUT45B<="01101111" WHEN"010100"=>DOUT45M<="01011011"DOUT45B<="00111111" WHEN"010101"=>DOUT45M<="01011011"DOUT45B<="00000110" WHEN"010110&

22、quot;=>DOUT45M<="01011011"DOUT45B<="01011011" WHEN"010111"=>DOUT45M<="01011011"DOUT45B<="01001111" WHEN"011000"=>DOUT45M<="01011011"DOUT45B<="01100110" WHEN"011001"=>DOUT45M<=&q

23、uot;01011011"DOUT45B<="01101101" WHEN"011010"=>DOUT45M<="01011011"DOUT45B<="01111101" WHEN"011011"=>DOUT45M<="01011011"DOUT45B<="00000111" WHEN"011100"=>DOUT45M<="01011011"DOUT45

24、B<="01111111" WHEN"011101"=>DOUT45M<="01011011"DOUT45B<="01101111" WHEN"011110"=>DOUT45M<="01001111"DOUT45B<="00111111" WHEN"011111"=>DOUT45M<="01001111"DOUT45B<="00000110&quo

25、t; WHEN"100000"=>DOUT45M<="01001111"DOUT45B<="01011011" WHEN"100001"=>DOUT45M<="01001111"DOUT45B<="01001111" WHEN"100010"=>DOUT45M<="01001111"DOUT45B<="01100110" WHEN"100011"

26、;=>DOUT45M<="01001111"DOUT45B<="01101101" WHEN"100100"=>DOUT45M<="01001111"DOUT45B<="01111101" WHEN"100101"=>DOUT45M<="01001111"DOUT45B<="00000111" WHEN"100110"=>DOUT45M<="

27、01001111"DOUT45B<="01111111" WHEN"100111"=>DOUT45M<="01001111"DOUT45B<="01101111" WHEN"101000"=>DOUT45M<="01100110"DOUT45B<="00111111" WHEN"101001"=>DOUT45M<="01100110"DOUT45B<

28、;="00000110" WHEN"101010"=>DOUT45M<="01100110"DOUT45B<="01011011" WHEN"101011"=>DOUT45M<="01100110"DOUT45B<="01001111" WHEN"101100"=>DOUT45M<="01100110"DOUT45B<="01100110" W

29、HEN OTHERS=>DOUT45M<="00000000"DOUT45B<="00000000" END CASE; END PROCESS; END ARCHITECTURE ART; 3.3 显示控制器的设计根据从主控制器检测的到的路况,从而使不同路况显示不同时间,根据下面源程序生成如图3-3所示显示器模块元件图,当主干道绿灯支干道红灯时,显示器45s计时,主干道黄灯支干道红灯时,显示器5s计时,当主干道红灯支干道绿灯时,显示器25s计时,当主干道红灯支干道黄灯时,显示器5s计时图3-3 显示器模块元件图LIBRARY IEEE

30、; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY XSKZ IS PORT(EN45,EN25,EN05M,EN05B:IN STD_LOGIC; AIN45M,AIN45B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); AIN25M,AIN25B,AIN05:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUTM,DOUTB:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY XSKZ; ARCHITECTURE ART

31、OF XSKZ IS BEGIN PROCESS(EN45,EN25,EN05M,EN05B)IS BEGIN IF EN45='1'THEN DOUTM<=AIN45M(7 DOWNTO 0);DOUTB<=AIN45B(7 DOWNTO 0); ELSIF EN05M='1'THEN DOUTM<=AIN05(7 DOWNTO 0);DOUTB<=AIN05(7 DOWNTO 0); ELSIF EN25='1'THEN DOUTM<=AIN25M(7 DOWNTO 0);DOUTB<=AIN25B(7 DOWNTO 0); ELSIF EN05B='1'THEN DOUTM<=AIN05(7 DOWNTO 0);DOUTB<=AIN

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论