EDA课程设计交通信号灯控制器设计.docx

上传人:b****1 文档编号:2038628 上传时间:2023-05-02 格式:DOCX 页数:21 大小:127.45KB
下载 相关 举报
EDA课程设计交通信号灯控制器设计.docx_第1页
第1页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第2页
第2页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第3页
第3页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第4页
第4页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第5页
第5页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第6页
第6页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第7页
第7页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第8页
第8页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第9页
第9页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第10页
第10页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第11页
第11页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第12页
第12页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第13页
第13页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第14页
第14页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第15页
第15页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第16页
第16页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第17页
第17页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第18页
第18页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第19页
第19页 / 共21页
EDA课程设计交通信号灯控制器设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

EDA课程设计交通信号灯控制器设计.docx

《EDA课程设计交通信号灯控制器设计.docx》由会员分享,可在线阅读,更多相关《EDA课程设计交通信号灯控制器设计.docx(21页珍藏版)》请在冰点文库上搜索。

EDA课程设计交通信号灯控制器设计.docx

EDA课程设计交通信号灯控制器设计

 

海南大学信息科学技术学院

EDA技术课程设计报告

 

目录

课程设计的要求及目的……………………………………………2

前言…………………………………………………………………2

一设计内容与目的………………………………………………2

1.1设计内容…………………………………………………3

1.2设计目的…………………………………………………3

二方案设计………………………………………………………3

2.1设计思路…………………………………………………3

2.2设计总体框图……………………………………………4

2.3状态表……………………………………………………5

2.4电路原理图………………………………………………5

2.5静态显示电路……………………………………………5

三功能电路的设计………………………………………………5

3.1细化的设计总体框图……………………………………5

3.2灯控制器电路设计………………………………………6

3.3计数器设计………………………………………………8

3.4显示控制部分设计………………………………………12

四系统仿真图……………………………………………………13

五设计心得会……………………………………………………14

六参考文献………………………………………………………15

交通信号灯控制器设计

课程设计的要求及目的:

1.了解电子设计的具体流程和方法。

2.掌握电子设计的基本要求,能够运用所学的知识解决生活中的一些问题。

3.初步掌握VHDL语言编程,并设计出一个有意义的小型系统。

4.掌握MAX+plusⅡ软件的应用,并且了解相关硬件的组成和功能。

5.用EDA(ElectronicDesignAutomation)或者原理图完成一个课题的设计,并达到相应的功能要求。

前言

伴随着社会的发展以及人类生活水平的提高,汽车的数量在不断增加,交通事业得以蓬勃发展,而随之引起的安全问题已经不容忽视。

EDA技术的发展和应用领域也在不断的扩大与深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域的重要性日益突出。

众所周知,随着生活的进步,我们身边的交通也日益繁忙,在众多的十字交叉路口,为了确保车辆安全,迅速地通行,就必须在每个入口设置红绿灯。

本系统中设置了红,绿,黄三色共三种信号灯。

红灯亮禁止一切该方向的行人和车辆通行,绿灯亮允许行人和车辆通行,黄灯亮则提示行驶中的车辆注意不要抢道,并让它们有时间停靠到禁行线之外或者加快通过,同时提醒行人加快行进或者等待下一次绿灯。

人行道灯亮时,允许行人通过。

为了确保十字路口的行人和车辆顺利,畅通的通过,往往采用电子控制的交通信号来进行指挥。

利用EDA技术设计交通灯来完成这个需求就显的更加迫切,同样也是非常的实用和合理。

本交通信号灯控制系统以十字路口为例讲述设计的功能要求和设计的具体过程。

一设计内容与目的:

1.1设计内容:

用EDA设计一个简单的交通灯控制器,具有如下功能:

(1)设计一个交通信号灯控制器,由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。

(2)用红、绿、黄发光二极管作信号灯,用传感器或逻辑开关作检测车辆是否到来的信号。

(3)主干道处于常允许通行的状态,支干道有车来时才允许通行。

主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。

主、支干道均有车时,两者交替允许通行,主干道每次放行45秒,支干道每次放行25秒,设立45秒、25秒计时、显示电路。

(4)在每次由绿灯亮到红灯亮的转换过程中,要亮5秒黄灯作为过渡,使行驶中的车辆有时间停到禁行线外,设立5秒计时、显示电路。

1.2设计目的:

(1)掌握十字路口交通灯控制的设计原理,并能够运用VHDL编程语言编写出实验程序,进一步对所学的EDA知识进行掌握与实际应用。

(2)学会在MAX+plusⅡ软件环境中仿真,熟悉软件的基本操作和运行环境。

(3)锻炼自己获取信息的能力,以及能够独立自主的思考和解决问题的能力。

二方案设计:

2.1设计思路

(1)主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。

(2)45秒、25秒、5秒定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,定时结束信号也输入到主控电路,由主控电路启、闭三色信号灯或启动另一计时电路。

(3)主控电路是核心,这是一个时序电路,其输入信号为:

车辆检测信号(A,B);45秒、25秒、5秒定时信号(C,D,E)。

其状态转化图如下所示:

2.2设计总体框图:

 

2.3状态表

主干道

支干道

指示灯

亮灯时间

指示灯

亮灯时间

红灯亮

30s

绿灯亮

25s

红灯亮

黄灯亮

5s

绿灯亮

45

红灯亮

50s

黄灯亮

5s

红灯亮

2.4电路原理图:

2.5输出显示电路:

静态扫描电路。

三功能电路的设计

3.1细化的设计总体框图

根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图3.1所示

3.2灯控制器电路设计

由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄、左拐允许四盏信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外,左拐灯亮允许车辆向左拐弯。

信号灯变换次序为:

主支干道交替允许通行,主干道每次放行40S,亮5S红灯让行驶中的车辆有时间停到禁行线外,左拐放行15秒,亮5S红灯;支干道放行30S,亮5S黄灯,左拐放行15秒,亮5S红灯,其中主支干道的红黄绿灯表示如MR、MY、MG、BR、BY、BG。

程序如下:

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

ENTITYJTDKZIS

PORT(CLK,SM,SB:

INSTD_LOGIC;

MR,MY,MG,BR,BY,BG:

OUTSTD_LOGIC);

ENDENTITYJTDKZ;

ARCHITECTUREARTOFJTDKZIS

TYPESTATE_TYPEIS(A,B,C,D);

SIGNALSTATE:

STATE_TYPE;

BEGIN

CNT:

PROCESS(CLK)IS

VARIABLES:

INTEGERRANGE0TO45;

VARIABLECLR,EN:

BIT;

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

IFCLR='0'THEN

S:

=0;

ELSIFEN='0'THEN

S:

=S;

ELSE

S:

=S+1;

ENDIF;

CASESTATEIS

WHENA=>MR<='0';MY<='0';MG<='1';

BR<='1';BY<='0';BG<='0';

IF(SBANDSM)='1'THEN

IFS=45THEN

STATE<=B;CLR:

='0';EN:

='0';

ELSE

STATE<=A;CLR:

='1';EN:

='1';

ENDIF;

ELSIF(SBAND(NOTSM))='1'THEN

STATE<=B;CLR:

='0';EN:

='0';

ELSE

STATE<=A;CLR:

='1';EN:

='1';

ENDIF;

WHENB=>MR<='0';MY<='1';MG<='0';

BR<='1';BY<='0';BG<='0';

IFS=5THEN

STATE<=C;CLR:

='0';EN:

='0';

ELSE

STATE<=B;CLR:

='1';EN:

='1';

ENDIF;

WHENC=>MR<='1';MY<='0';MG<='0';

BR<='0';BY<='0';BG<='1';

IF(SMANDSB)='1'THEN

IFS=25THEN

STATE<=D;CLR:

='0';EN:

='0';

ELSE

STATE<=C;CLR:

='1';EN:

='1';

ENDIF;

ELSIFSB='0'THEN

STATE<=D;CLR:

='0';EN:

='0';

ELSE

STATE<=C;CLR:

='1';EN:

='1';

ENDIF;

WHEND=>MR<='1';MY<='0';MG<='0';

BR<='0';BY<='1';BG<='0';

IFS=5THEN

STATE<=A;CLR:

='0';EN:

='0';

ELSE

STATE<=D;CLR:

='1';EN:

='1';

ENDIF;

ENDCASE;

ENDIF;

ENDPROCESSCNT;

ENDARCHITECTUREART;

3.3计数器的设计

根据路上状况,设计各个显示计时部分,包括45s、25s和5s,各部分采用顺时计数方法。

各模块如下:

程序如下:

----CNT45S.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT45SIS

PORT

(SB,CLK,EN45:

INSTD_LOGIC;

DOUT45M,DOUT45B:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITYCNT45S;

ARCHITECTUREARTOFCNT45SIS

SIGNALCNT6B:

STD_LOGIC_VECTOR(5DOWNTO0);

BEGIN

PROCESS(SB,CLK,EN45)IS

BEGIN

IFSB='0'THENCNT6B<=CNT6B-CNT6B-1;

ELSIF(CLK'EVENTANDCLK='1')THEN

IFEN45='1'THENCNT6B<=CNT6B+1;

ELSIFEN45='0'THENCNT6B<=CNT6B-CNT6B-1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CNT6B)IS

BEGIN

CASECNT6BIS

WHEN"000000"=>DOUT45M<="01000101";DOUT45B<="01010000";

WHEN"000001"=>DOUT45M<="01000100";DOUT45B<="01001011";

WHEN"000010"=>DOUT45M<="01000011";DOUT45B<="01001000";

WHEN"000011"=>DOUT45M<="01000010";DOUT45B<="01000111";

WHEN"000100"=>DOUT45M<="01000001";DOUT45B<="01000110";

WHEN"000101"=>DOUT45M<="01000000";DOUT45B<="01000101";

WHEN"000110"=>DOUT45M<="00111001";DOUT45B<="01000100";

WHEN"000111"=>DOUT45M<="00111000";DOUT45B<="01000011";

WHEN"001000"=>DOUT45M<="00110111";DOUT45B<="01000010";

WHEN"001001"=>DOUT45M<="00110110";DOUT45B<="01000001";

WHEN"001010"=>DOUT45M<="00110101";DOUT45B<="01000000";

WHEN"001011"=>DOUT45M<="00110100";DOUT45B<="01101001";

WHEN"001100"=>DOUT45M<="00110011";DOUT45B<="00111000";

WHEN"001101"=>DOUT45M<="00110010";DOUT45B<="00110111";

WHEN"001110"=>DOUT45M<="00110001";DOUT45B<="00110110";

WHEN"001111"=>DOUT45M<="00110000";DOUT45B<="00110101";

WHEN"010000"=>DOUT45M<="00101001";DOUT45B<="00110100";

WHEN"010001"=>DOUT45M<="00101000";DOUT45B<="00110011";

WHEN"010010"=>DOUT45M<="00100111";DOUT45B<="00110010";

WHEN"010011"=>DOUT45M<="00100110";DOUT45B<="00110001";

WHEN"010100"=>DOUT45M<="00100101";DOUT45B<="00110000";

WHEN"010101"=>DOUT45M<="00100100";DOUT45B<="00101001";

WHEN"010110"=>DOUT45M<="00100011";DOUT45B<="00101000";

WHEN"010111"=>DOUT45M<="00100010";DOUT45B<="00100111";

WHEN"011000"=>DOUT45M<="00100001";DOUT45B<="00100110";

WHEN"011001"=>DOUT45M<="00100000";DOUT45B<="00100101";

WHEN"011010"=>DOUT45M<="00011001";DOUT45B<="00100100";

WHEN"011011"=>DOUT45M<="00011000";DOUT45B<="00100011";

WHEN"011100"=>DOUT45M<="00010111";DOUT45B<="00100010";

WHEN"011101"=>DOUT45M<="00010110";DOUT45B<="00100001";

WHEN"011110"=>DOUT45M<="00010101";DOUT45B<="00100000";

WHEN"011111"=>DOUT45M<="00010100";DOUT45B<="00011001";

WHEN"100000"=>DOUT45M<="00010011";DOUT45B<="00011000";

WHEN"100001"=>DOUT45M<="00010010";DOUT45B<="00010111";

WHEN"100010"=>DOUT45M<="00010001";DOUT45B<="00010110";

WHEN"100011"=>DOUT45M<="00010000";DOUT45B<="00010101";

WHEN"100100"=>DOUT45M<="00001001";DOUT45B<="00010100";

WHEN"100101"=>DOUT45M<="00001000";DOUT45B<="00010011";

WHEN"100110"=>DOUT45M<="00000111";DOUT45B<="00010010";

WHEN"100111"=>DOUT45M<="00000110";DOUT45B<="00010001";

WHEN"101000"=>DOUT45M<="00000101";DOUT45B<="00010000";

WHEN"101001"=>DOUT45M<="00000100";DOUT45B<="00001001";

WHEN"101010"=>DOUT45M<="00000011";DOUT45B<="00001000";

WHEN"101011"=>DOUT45M<="00000010";DOUT45B<="00000111";

WHEN"101100"=>DOUT45M<="00000001";DOUT45B<="00000110";

WHENOTHERS=>DOUT45M<="00000000";DOUT45B<="00000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

--CNT25S.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT25SIS

PORT(SB,SM,CLK,EN25:

INSTD_LOGIC;

DOUT25M,DOUT25B:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITY;

ARCHITECTUREARTOFCNT25SIS

SIGNALCNT5B:

STD_LOGIC_VECTOR(4DOWNTO0);

BEGIN

PROCESS(SB,SM,CLK,EN25)IS

BEGIN

IFSB='0'ORSM='0'THEN

CNT5B<=CNT5B-CNT5B-1;

ELSIF(CLK'EVENTANDCLK='1')THEN

IFEN25='1'THEN

CNT5B<=CNT5B+1;

ELSIFEN25='0'THEN

CNT5B<=CNT5B-CNT5B-1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CNT5B)IS

BEGIN

CASECNT5BIS

WHEN"00000"=>DOUT25B<="00100101";DOUT25M<="00110000";

WHEN"00001"=>DOUT25B<="00100100";DOUT25M<="00101001";

WHEN"00010"=>DOUT25B<="00100011";DOUT25M<="00101000";

WHEN"00011"=>DOUT25B<="00100010";DOUT25M<="00100111";

WHEN"00100"=>DOUT25B<="00100001";DOUT25M<="00100110";

WHEN"00101"=>DOUT25B<="00100000";DOUT25M<="00100101";

WHEN"00110"=>DOUT25B<="00011001";DOUT25M<="00100100";

WHEN"00111"=>DOUT25B<="00011000";DOUT25M<="00100011";

WHEN"01000"=>DOUT25B<="00010111";DOUT25M<="00100010";

WHEN"01001"=>DOUT25B<="00010110";DOUT25M<="00100001";

WHEN"01010"=>DOUT25B<="00010101";DOUT25M<="00100000";

WHEN"01011"=>DOUT25B<="00010100";DOUT25M<="00011001";

WHEN"01100"=>DOUT25B<="00010011";DOUT25M<="00011000";

WHEN"01101"=>DOUT25B<="00010010";DOUT25M<="00010111";

WHEN"01110"=>DOUT25B<="00010001";DOUT25M<="00010110";

WHEN"01111"=>DOUT25B<="00010000";DOUT25M<="00010101";

WHEN"10000"=>DOUT25B<="00001001";DOUT25M<="00010100";

WHEN"10001"=>DOUT25B<="00001001";DOUT25M<="00010100";

WHEN"10010"=>DOUT25B<="00001000";DOUT25M<="00010011";

WHEN"10011"=>DOUT25B<="00000110";DOUT25M<="00010001";

WHEN"10100"=>DOUT25B<="00000101";DOUT25M<="00010000";

WHEN"10101"=>DOUT25B<="00000100";DOUT25M<="00001001";

WHEN"10110"=>DOUT25B<="00000011";DOUT25M<="00001000";

WHEN"10111"=>DOUT25B<="00000010";DOUT25M<="00000111";

WHEN"11000"=>DOUT25B<="00000001";DOUT25M<="00000110";

WHENOTHERS=>DOUT25B<="00000000";DOUT25M<="00000000";

ENDCASE;

ENDPROCESS;

ENDARCHITECTUREART;

--CNT05S.VHD

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYCNT05SIS

PORT

(CLK,EN05M,EN05B:

INSTD_LOGIC;

DOUT5:

OUTSTD_LOGIC_VECTOR(7DOWNTO0));

ENDENTITYCNT05S;

ARCHITECTUREARTOFCNT05SIS

SIGNALCNT3B:

STD_LOGIC_VECTOR(2DOWNTO0);

BEGIN

PROCESS(CLK,EN05M,EN05B)IS

BEGIN

IF(CLK'EVENTANDCLK='1')THEN

IFEN05M='1'THENCNT3B<=CNT3B+1;

ELSIFEN05B='1'THENCNT3B<=CNT3B+1;

ELSIFEN05B='0'THENCNT3B<=CNT3B-CNT3B-1;

ENDIF;

ENDIF;

ENDPROCESS;

PROCESS(CNT3B)IS

BEGIN

CASECNT3BIS

WHEN"000"=>DOUT5<="00000101";

WHEN"001"=>DOUT5<="00000100";

WHEN"010"=>DOUT5<="00000011";

WHEN"011"=>DOUT5<="00000010";

WHEN"100"=>DOUT5<="00000001";

WHENOTHERS=>DOUT5<="00

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 起诉状

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2