交通灯控制电路.docx

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

交通灯控制电路.docx

《交通灯控制电路.docx》由会员分享,可在线阅读,更多相关《交通灯控制电路.docx(24页珍藏版)》请在冰点文库上搜索。

交通灯控制电路.docx

交通灯控制电路

设计报告

学院

电子与信息学院

课程名称

电子电路课程设计

设计题目

十字路路口交通灯控制电路的设计

专业

班级

姓名

学号

指导教师

时间

 

目录

1.设计任务—--------------------------------------------2

2.电路工作原理------------------------------------------2

3.设计要求----------------------------------------------2

4.方案论证和总体设计------------------------------------2

提出方案------------------------------------------------------2

方案比较------------------------------------------------------7

5.单元电路设计------------------------------------------7

5.1单片机最小系统------------------------------------------------7

5.2串口转并口显示电路--------------------------------------------8

5.3模拟红、绿、黄三色灯部分电路----------------------------------10

5.4软件部分------------------------------------------------------12

6.电路仿真调试------------------------------------------17

7.心得体会----------------------------------------------18

参考文献---------------------------------------------------------------------------------------------18

 

十字路路口交通灯控制电路的设计

1.设计任务

设计并制作一个十字路口的交通灯控制电路(用红、绿、黄发光二极管模拟显示灯),同时用数码管显示禁止和通行时间。

2.电路工作原理

利用AT89S51单片机电路设计并制作。

3.设计要求

3.1、绿灯亮表示允许通行,时间设定为25S;红灯亮表示禁止通行,时间设定为25S黄灯亮表示警告,并要求后5S中,绿灯闪2S,黄灯亮3S。

3.2、时间显示为倒计时,三个指示灯的交替显示要准确。

4.方案论证和总体设计

4.1提出方案:

实现此设计可有三种常用的方法。

4.1.1用传统的数字电路设计并制作。

数字电路制作交通灯的制作流程图为:

图4-1数字电路交通灯设计流程图

电路电路图如图4-2所示:

图4-2数字电路控制交通灯电路图

图中所示,选用JK触发器,设状态编码为:

S0=00   S1=01   S2=11  S3=10,其输出为Q1Q0倒计时显示采用七段数码管作为显示,它由计数器驱动并显示计数器的输出值。

计数器选用集成电路74190进行设计。

74190是十进制同步可逆计数器,它具有异步并行置数功能、保持功能。

74190没有专用的清零输入端,但可以借助QA、QB、QC、QD的输出数据间接实现清零功能。

现选用两个74190芯片级联成一个从可任意设定时间00~99倒计至00的计数器,其中作为个位数的74190芯片的CLK接秒脉冲发生器(频率为1),再把个位数74190芯片输出端的QA、QD用一个与门连起来,再接在十位数74190芯片的CLK端。

当个位数减到0时,再减1就会变成9,0(0000)和9(1001)之间的QA、QD同时由0变为1,把QA、QD与起来接在十位数的CLK端,此时会给十位数74190芯片一个脉冲数字减1,相当于借位。

整个交通灯控制系统需要有4个时间显示器,28个交通灯。

我在这里共接了6个时间显示器,其中4个用于交通倒计时,另外2个用于显示当前置数

 

4.1.2选择MAX7000S系列的EPM7128SLC84-7芯片设计制作。

电路划分为控制器和受控电路两部分。

在本系统中,设定系统的工作情况如下。

路口交通灯控制系统的东西路有交通灯R(红)、Y(黄)、G(绿);东西人行安全通道灯:

RXR(红)、RXG(绿)。

南北路有交通灯:

r1(红)、y1(黄)、g1(绿);南北人行安全通道灯:

rxr1(红)、rxg1(绿),所有灯均为高电平点亮。

设置15s的通行时间和5s转换时间的变模定时电路,由预置输入整数cnt决定是模15还是模5,输入逻辑cx是用来决定计数到4时清零还是到14时清零。

Clk是外部提供的基准秒脉冲信号。

x0、x1、x2、x3是由控制器输出的表示计数时间的四位二进制数。

图4-3是该系统控制器的符号框图。

    

    

 

图4-3控制器的ASM图

    根据系统设计要求,得到控制器的ASM图,如图2所示。

在这里,所有输入信号均为高电平有效。

该ASM图反映了交通灯系统的不同状态的转换过程及持续时间。

    

    

    

   图4-4控制器的VHDL程序设计

    根据所分析的系统的ASM图,结合系统的设计要求,用VHDL语言对各个模块进行编程,最后形成顶层文件,在MAX+PLUSⅡ环境下进行编译与仿真,检查所编程序是否运行正确。

如果出现错误,需要进行修改,直到完全通过为止。

需要说明的是,在进行程序编译时,要先从底层程序开始,所有底层程序都正确后,才能开始顶层程序的编译。

这是因为顶层程序是对底层程序的概括,它是把底层程序各个模块连接起来,就相当于把每个模块的功能汇聚到一起,实现整个系统的控制功能,所以底层程序的正确与否,关系到顶层程序的运行结果。

    在控制器的程序设计中,在定义结构体时,有两种程序设计方法均可以通过编译及仿真,但在进行时序分析时结果却不同。

    

(1)如果这样定义:

    ...

    ARCHITECTUREcon1_arcofcon1IS

    SIGNALcurrent_state:

state;

    BEGIN

    ...

    在进行程序调试时,均通过了编译及仿真,但在进行时序分析中,却出现了不按设定的计数顺序工作的结果:

14,13,2,1,0...。

经过反复修改调试,对程序进行了修改,如

(2)所定义的。

    

(2)

    ARCHITECYTUREcon1_arcOFcon1IS

    SIGNALcurrent_state:

state;

    SIGNALTEMP_STATE:

state;

    ...

    TEMPSTATE<=current_state;

    BEGIN

    ...

    在这种设计方法中,多定义了一个信号变量,从而使得程序能按设定的状态14,13,12...进行转换。

通过这个实例,可以看出EDA技术作为电子设计工具的功能修改及调试的方便快捷,即不需要硬件电路的支持就可以找到问题所在并进行修改,体现了它的优越性。

    硬件电路实现

    根据交通灯系统的控制要求,图4-5所示为本系统的硬件电路图。

该电路包含了1个CPLD芯片,2个七段LED数码显示器,20个分别表示各个方向上的红、黄、绿灯,以及相应的限流电阻。

这个电路与其他控制方法相比,所用器件可以说是比较简单经济的。

经过实验,实现了预定的交通灯系统的控制功能。

    

    

    图4-5系统的硬件电路图

4.1.2利用AT89S51单片机电路设计并制作。

单片机采用ATM公司的AT89S51,这类芯片容易购买,用起来也很方便。

显示部分分为两部分,一部分就是数码管实现倒计时显示,一部分就是三种不同颜色的发光二极管模拟红、绿、黄交通灯。

数码管采用四个一位的七段数码管。

电路用串口方式显示,这种方式可以节省单片机的接口,实现的程序也比较容易。

电路采用74LS164来实现串口对并口的转换,这种芯片价格便宜,容易买到。

电路图如图4-6所示:

图4-6利用AT89S51单片机电路设计并制作的电路图

4.2方案比较:

如上所述,采用传统的数字电路设计并制作方案。

电路复杂,设计复杂,设计思维能力要求较高,调试起来也有一定的难度。

加上电路需要的硬件多,成本高。

所以不采用这种方案。

采用MAX7000S系列的EPM7128SLC84-7芯片设计制作方案。

电路硬件比较少,但是采用的芯片比较贵,并且软件的设计难度比较大,对软件的设计要借助一定的工具。

而这实现这种逻辑编程的工具很贵。

所以也不宜采用这种方案。

利用AT89S51单片机电路设计并制作。

这种方案硬件少,基本上硬件是设计没有什么难度,都是常用的接法。

软件实现难度不高。

并且单片机电路也是常用的电路,芯片容易买到,价格又相对便宜。

所以我们决定采用这种方案。

5.单元电路设计

电路设计总体上可以分为软件的设计和硬件设计两个部分。

而硬件设计部分主要由三个部分组成:

单片机最小系统、串口转并口显示电路、模拟红、绿、黄三色灯部分电路。

而软件部分,主要有定时计数模块、七段数码管的输出显示模块和红、绿、黄三色灯的控制模块。

下面将各部分的设计分析如下,包括有关电路图和电路原理的分析。

5.1单片机最小系统。

单片机采用ATM公司的AT89S51,组面的电路包括,复位电路、晶振电路,和51单片机芯片。

电路图如图5-1所示。

图5-1单片机最小系统

图中所示,电路,晶振采用11。

0592M,提供电路工作时序。

复位电路是上电时使单片机芯片的I/O口置高电平。

接法和其它元器件的参数如图5-1所示。

5.2串口转并口显示电路

数码管采用四个一位的七段数码管。

电路用串口方式显示,这种方式可以节省单片机的接口,实现的程序也比较容易。

电路采用74LS164来实现串口对并口的转换。

其引脚和内部结构图如图5-2、图5-3所示:

图5-274LS164引脚图

图5-374LS164内部结构图

74LS164的真值表如图表5-4所示

H-高电平L-低电平X-任意电平↑-低到高电平跳变QA0,QB0,QH0-规定的稳态条件建立前的电平QAn,QGn-时钟最近的↑前的电平

串口转并口显示电路总体电路图如图5-5所示

图5-5串口转并口显示电路

 

5.3模拟红、绿、黄三色灯部分电路

此部分电路由红绿黄三色发光二极管和一个非门集成芯片74LS05组成。

其中非门集成芯片74LS05的引脚和内部结构图如图5-6所示:

图5-674LS05的引脚和内部结构图

模拟红、绿、黄三色灯部分电路的总体电路图如图5-7所示:

图5-7模拟红、绿、黄三色灯部分电路图

硬件部分的总体电路图如图5-8所示:

 

5.4软件部分

软件部分,主要有定时计数模块、七段数码管的输出显示模块和红、绿、黄三色灯的控制模块。

其程序如下所示:

SECOND1EQU30H;东西路口计时寄存器

SECOND2EQU31H;南北路口计时寄存器

DBUFEQU40H;显示码缓冲区1

TEMPEQU44H;显示码缓冲区2

LED_R1BITP2.1;东西路口红灯

LED_G1BITP2.2;东西路口绿灯

LED_Y1BITP2.3;东西路口黄灯

LED_Y2BITP2.4;南北路口黄灯

LED_G2BITP2.5;南北路口绿灯

LED_R2BITP2.6;南北路口红灯

ORG0000H

LJMPSTART

ORG0100H

START:

MOVTMOD,#01H;置T0为工作方式1

MOVTH0,#3CH;置T0定时初值50ms

MOVTL0,#0B0H

CLRTF0

SETBTR0;启动T0

CLRA

MOVP2,A;关闭不相关的LED

;***************************************************

LOOP:

MOVR2,#20;置1s计数初值,50ms*20=1s

MOVR3,#20;红灯亮20s

MOVSECOND1,#25;东西路口计时显示初值25s

MOVSECOND2,#25;南北路口计时显示初值25s

LCALLDISPLAY

LCALLSTATE1;调用状态1

WAIT1:

JNBTF0,WAIT1;查询50ms到否

CLRTF0

MOVTH0,#3CH;恢复T0定时初值50ms

MOVTL0,#0B0H

DJNZR2,WAIT1;判断1s到否?

未到继续状态1

MOVR2,#20;置50ms计数初值

DECSECOND1;东西路口显示时间减1s

DECSECOND2;南北路口显示时间减1s

LCALLDISPLAY

DJNZR3,WAIT1;状态1维持20s

;*******************************************

MOVR2,#5;置50ms计数初值5*4=20

MOVR3,#3;绿灯闪3s

MOVR4,#4;闪烁间隔200ms

MOVSECOND1,#5;东西路口计时显示初值5s

MOVSECOND2,#5;南北路口计时显示初值5s

LCALLDISPLAY

WAIT2:

LCALLSTATE2;调用状态2

JNBTF0,WAIT2;查询50ms到否

CLRTF0

MOVTH0,#3CH;恢复T0定时初值50ms

MOVTL0,#0B0H

DJNZR4,WAIT2;判断200ms到否?

未到继续状态2

CPLLED_G1;东西绿灯闪

MOVR4,#4;闪烁间隔200ms

DJNZR2,WAIT2;判1s到否?

未到继续状态2

MOVR2,#5;置50ms计数初值

DECSECOND1;东西路口显示时间减1s

DECSECOND2;南北路口显示时间减1s

LCALLDISPLAY

DJNZR3,WAIT2;状态2维持3s

;****************************************

MOVR2,#20;置50ms计数初值

MOVR3,#2;黄灯闪2s

MOVSECOND1,#2;东西路口计时显示初值2s

MOVSECOND2,#2;南北路口计时显示初值2s

LCALLDISPLAY

WAIT3:

LCALLSTATE3;调用状态3

JNBTF0,WAIT3;查询100ms到否

CLRTF0

MOVTH0,#3CH;恢复T0定时初值100ms

MOVTL0,#0B0H

DJNZR2,WAIT3;判断1s到否?

未到继续状态3

MOVR2,#20;置100ms计数初值

DECSECOND1;东西路口显示时间减1s

DECSECOND2;南北路口显示时间减1s

LCALLDISPLAY

DJNZR3,WAIT3;状态3维持2s

;*******************************************

MOVR2,#20;置50ms计数初值

MOVR3,#20;红灯闪20s

MOVSECOND1,#25;东西路口计时显示初值25s

MOVSECOND2,#25;南北路口计时显示初值25s

LCALLDISPLAY

WAIT4:

LCALLSTATE4;调用状态4

JNBTF0,WAIT4;查询100ms到否

CLRTF0

MOVTH0,#3CH;恢复T0定时初值100ms

MOVTL0,#0B0H

DJNZR2,WAIT4;判断1s到否?

未到继续状态4

MOVR2,#20;置100ms计数初值

DECSECOND1;东西路口显示时间减1s

DECSECOND2;南北路口显示时间减1s

LCALLDISPLAY

DJNZR3,WAIT4;状态4维持20s

;*******************************************

MOVR2,#5;置50ms计数初值

MOVR4,#4;红灯闪20ms

MOVR3,#3;绿灯闪3s

MOVSECOND1,#5;东西路口计时显示初值5s

MOVSECOND2,#5;南北路口计时显示初值5s

LCALLDISPLAY

WAIT5:

LCALLSTATE5;调用状态5

JNBTF0,WAIT5;查询100ms到否

CLRTF0

MOVTH0,#3CH;恢复T0定时初值100ms

MOVTL0,#0B0H

DJNZR4,WAIT5;判断200ms到否?

未到继续状态5

CPLLED_G2;南北绿灯闪

MOVR4,#4;闪烁200ms

DJNZR2,WAIT5;判断1s到否?

未到继续状态5

MOVR2,#5;置100ms计数初值

DECSECOND1;东西路口显示时间减1s

DECSECOND2;南北路口显示时间减1s

LCALLDISPLAY

DJNZR3,WAIT5;状态5维持3s

;****************************************

MOVR2,#20;置50ms计数初值

MOVR3,#2;红灯闪2s

MOVSECOND1,#2;东西路口计时显示初值2s

MOVSECOND2,#2;南北路口计时显示初值2s

LCALLDISPLAY

WAIT6:

LCALLSTATE6;调用状态6

JNBTF0,WAIT6;查询100ms到否

CLRTF0

MOVTH0,#3CH;恢复T0定时初值100ms

MOVTL0,#0B0H

DJNZR2,WAIT6;判断1s到否?

未到继续状态6

MOVR2,#20;置100ms计数初值

DECSECOND1;东西路口显示时间减1s

DECSECOND2;南北路口显示时间减1s

LCALLDISPLAY

DJNZR3,WAIT6;状态6维持2s

LJMPLOOP;大循环

;**********************************************

STATE1:

;状态1

SETBLED_G1;东西路口绿灯亮

CLRLED_Y1

CLRLED_R1

CLRLED_G2

CLRLED_Y2

SETBLED_R2;南北路口红灯亮

RET

STATE2:

;状态2

CLRLED_Y1

CLRLED_R1

CLRLED_G2

CLRLED_Y2

SETBLED_R2;南北路口红灯亮

RET

STATE3:

;状态3

CLRLED_G1

CLRLED_R1

CLRLED_G2

CLRLED_Y2

SETBLED_R2;南北路口红灯亮

SETBLED_Y1;东西路口绿灯亮

RET

STATE4:

;状态4

CLRLED_G1

CLRLED_Y1

SETBLED_R1;东西路口红灯亮

SETBLED_G2;南北路口绿灯亮

CLRLED_Y2

CLRLED_R2

RET

STATE5:

;状态5

CLRLED_G1

CLRLED_Y1

SETBLED_R1;东西路口红灯亮

CLRLED_Y2

CLRLED_R2

RET

STATE6:

;状态6

CLRLED_G1

CLRLED_Y1

SETBLED_R1;东西路口红灯亮

CLRLED_G2

CLRLED_R2

SETBLED_Y2;南北路口红灯亮

RET

DISPLAY:

;数码显示

MOVA,SECOND1;东西路口计时寄存器

MOVB,#10;16进制数拆成两个10进制数

DIVAB

MOVDBUF+3,A

MOVA,B

MOVDBUF+2,A

MOVA,SECOND2;南北路口计时寄存器

MOVB,#10;16进制数拆成两个10进制数

DIVAB

MOVDBUF+1,A

MOVA,B

MOVDBUF,A

MOVR0,#DBUF

MOVR1,#TEMP

MOVR7,#4

DP10:

MOVDPTR,#LEDMAP

MOVA,@R0

MOVCA,@A+DPTR

MOV@R1,A

INCR0

INCR1

DJNZR7,DP10

MOVR0,#TEMP

MOVR1,#4

DP12:

MOVR7,#8

MOVA,@R0

DP13:

RLCA

MOVP3.0,C

CLRP3.1

SETBP3.1

DJNZR7,DP13

INCR0

DJNZR1,DP12

RET

LEDMAP:

DB3FH,06H,5BH,4FH,66H,6DH;0,1,2,3,4,5

D

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

当前位置:首页 > 医药卫生 > 基础医学

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

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