交通灯控制系统设计论文Word下载.docx

上传人:b****7 文档编号:22601656 上传时间:2023-02-04 格式:DOCX 页数:38 大小:147.72KB
下载 相关 举报
交通灯控制系统设计论文Word下载.docx_第1页
第1页 / 共38页
交通灯控制系统设计论文Word下载.docx_第2页
第2页 / 共38页
交通灯控制系统设计论文Word下载.docx_第3页
第3页 / 共38页
交通灯控制系统设计论文Word下载.docx_第4页
第4页 / 共38页
交通灯控制系统设计论文Word下载.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

交通灯控制系统设计论文Word下载.docx

《交通灯控制系统设计论文Word下载.docx》由会员分享,可在线阅读,更多相关《交通灯控制系统设计论文Word下载.docx(38页珍藏版)》请在冰豆网上搜索。

交通灯控制系统设计论文Word下载.docx

东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,以指挥车辆的安全通行。

红灯亮禁止通行;

绿灯亮允许通行;

黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。

信号灯指示方案如表1。

2.1所示。

表1。

2.1信号灯指示方案

状态

信号灯显示

S1

东西方向绿灯南北方向红灯

S2

东西方向黄灯南北方向红灯

S3

东西方向红灯南北方向绿灯

S4

东西方向红灯南北方向黄灯

1.2.3系统设计总体方案

根据交通系统管理方案和本课题任务的要求,该系统应具有交通灯的显示功能、倒计时功能和通行时间设置功能,所以把系统分为四个模块,包括单片机控制、信号灯显示、倒计时显示和键盘设置,系统硬件设计结构如图2。

1所示。

图1。

2.1系统硬件设计结构

下面分别简单介绍这四个模块:

(1)单片机控制模块:

单片机将计算机的基本部件微型化并集成到一块芯片上,具有优异的性能价格比,控制功能强,这将使各模块功能的实现变得简单方便.本系统中,8051单片机的P0口控制南北方向的时间显示;

P1口控制信号灯的点亮;

P2口控制东西方向的时间显示;

P3口接入键盘开关,可设置适应当前状况的通行时间和暂缓通行时间.

(2)信号灯显示模块:

利用发光二极管代替交通信号灯,通过单片机控制使其按要求点亮.

(3)倒计时显示模块:

此模块有两种方案。

第一种是采用数码管显示。

该方案实现简单,但只能显示有限的符号和数码字符。

第二种是采用点阵式LED显示。

该方案实现复杂,须完成大量的软件工作,但功能强大,可方便的显示各种英文字符、汉字和图形。

由于本控制系统只需显示倒计时时间,利用数码管即可完成此功能,因此本控制系统中利用2位一体的共阴数码管显示道路两个方向的通行时间和暂缓通行时间,通过单片机控制进行倒计时显示。

(4)键盘设置模块:

在交通道路突发情况时,可通过按键手动设置通行时间和暂缓通行时间,通过单片机控制进行时间设置。

此模块有两种方案:

第一种是采用8255扩展I/O口及键盘、信号灯显示等.该方案使用灵活,可提供较多I/O口,但操作复杂。

另一种是直接在I/O口线上接上按键开关。

该方案设计精简,但提供的I/O口数量有限.由于本控制系统对于交通灯及数码管的控制只用单片机本身的I/O口就可实现,故选择第二种方案.

综上所述,交通灯控制系统的总体方案已经确定,下面进行硬件设计。

2交通灯控制系统硬件设计

1单片机简介

8051系列单片机是在美国Intel公司于20世纪80年代推出的MCS—51系列高性能8位单片机的基础上发展而来的,它在单一芯片内集成了并行I/O口、异步串行口、16位定时器/计数器、中断系统、片内RAM和片内ROM,以及其他一些功能部件[5]。

单片机主要有如下特点:

(1)有优异的性能价格比。

(2)集成度高、体积小、有很高的可靠性。

单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。

另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣的环境下工作。

(3)控制功能强。

为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。

单片机的逻辑控制功能及运行速度均高于同一档次的微机。

(4)低功耗、低电压,便于生产便携式产品。

(5)外部总线增加了IC(Inter-IntegratedCircuit)及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。

(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模应用系统[6]。

2系统时钟电路

晶振采用了内部时钟信号源的方式,如图3。

1所示.8051单片机内部有一个高增益反向放大器,用于构成振荡器,反向放大器的输入端为XTAL1,输出端为XTAL2,分别是8051的第19和18脚.在XTAL1和XTAL2之间接1个石英晶体及2个电容,就可以构成稳定的自激振荡器,当震荡在6MHz~12MHz时通常取30pF左右的电容进行微调[7]。

图3。

1系统时钟电路

2.3信号灯显示电路

在信号灯显示电路中,本控制系统选用了发光二极管代替信号灯.其中:

红色发光二极管、黄色发光二极管和绿色发光二极管分别代替红灯、黄灯、绿灯。

发光二极管是一种特殊的二极管,导通时会发光(发光二极管导通压降一般为1.5V左右)[8]。

此外,工作电流要满足该二极管的工作电流。

一般发光二极管与I/O端口之间都会再连接一个电阻,其作用在于限制通过二极管的电流,从而达到减少功耗或者满足端口对最大电流的限制[9]。

一般发光二极管的点亮电流为5~15mA。

控制系统中,信号灯指示电路如图3。

2所示。

图3.2信号灯显示电路

在此信号灯显示电路中,每个发光二极管都与1个220Ω的电阻相连接,起到限流作用。

因为二极管的导通电压为1。

5V,电阻分得的电压为5V-1.5V=3.5V,当选择220Ω的电阻时发光二极管的电流为3.5V/220Ω,约为15mA,此时发光二极管正常点亮.

4倒计时显示电路

该交通灯控制系统的倒计时功能可以采用数码管显示,也可以采用点阵式LED显示。

点阵式LED虽然功能强大,但是需要完成大量的软件工作,系统设计的复杂度会增加,因此本控制系统选择采用数码管来实现交通灯倒计时功能的显示。

8段数码管又称为8字型数码管,分为8段:

A、B、C、D、E、F、G、DP.其中,DP为小数点。

数码管常用的有10根管脚,每一段有一根管脚,另外两根管脚为一个数码管的公共段,两根之间相互连通[10—13]。

8段LED数码管,就是在一定形状的绝缘材料上,利用不同形状点划的发光二极管组合,排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示0~9的数字[14]。

数字显示代码如表3。

表3。

1数字显示驱动代码表

显示数值

dopgfedcba

驱动代码(16进制)

00111111

3FH

00000110

06H

2

01011011

5BH

3

01001111

4FH

4

01100110

66H

5

01101100

6DH

6

01111100

7DH

7

00000111

07H

8

01111111

7FH

本控制系统倒计时电路采用了4个2位一体的共阴数码管,此数码管在交通灯控制系统中便于观察倒计时显示,如图3。

3所示.

图2.2位一体的共阴数码管

这4个数码管分别与控制两干道倒计时显示的端口相连接,即可显示出信号灯的倒计时功能。

以南北方向的数码管为例,如图3.4所示.此数码管显示的数值从绿灯的设置时间最大值一直减,每秒钟减1,然后又从黄灯的设置时间一直减,再从红灯的设置时间一直减,接下来又显示绿灯时间,如此循环。

图3.4南北方向倒计时显示

5键盘设置电路

键盘设置电路中,采用独立式按键进行控制。

独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态[14].独立式按键的典型应用如图3。

5所示:

5独立式按键电路

独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,不宜采用.

根据以上特点,本控制系统单片机的I/O口数可以满足该键盘,并且可以完成课题中所要求的手动设定时间的控制功能,所以本控制系统中应采用独立式键盘,键盘设置电路如图2。

6所示。

图2.6键盘设置电路

2.6单片机控制电路设计

交通灯控制系统中,单片机控制模块是整个电路设计的主要部分。

8051单片机有4个并行I/O口P0、P1、P2和P3,每个口都有8个引脚,共有32根I/O引脚,它们都是双向通道,每一条I/O引脚都能独立地用做输入和输出.本系统中,8051单片机的P0口控制南北方向的时间显示;

P3口接入键盘开关,可设置适应当前交通状况的通行时间和暂缓通行时间。

另外,在P0口控制南北方向的时间显示中,利用74LS245芯片驱动数码管。

74LS245管脚结构如图3。

7所示,它是常用的芯片,用来驱动LED或者其他的设备,是8路同相三态双向总线收发器,可双向传输数据[15]。

8051单片机P0口内部不带上拉电阻,输出只有电压没电流,接负载时要外接上拉电阻,即当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。

图3.774LS245管脚结构

74LS245芯片具有双向三态功能,既可以输出,也可以输入数据,74LS245芯片内部结构如图3.8所示。

图3.874LS245内部结构

当片选端低电平有效时,DIR=“0”,信号由B向A传输,即接收数据;

DIR=“1"

,信号由A向B传输,即发送数据.当为高电平时,A、B均为高阻态。

所以,在本控制系统中需要用74LS245芯片对数码管进行驱动。

本章对单片机进行了简单介绍,设计了交通灯控制系统硬件电路。

接下来,还需要对软件部分进行设计,完成整个控制系统的设计要求。

3交通灯控制系统的软件设计

硬件平台结构一旦确定,功能框架就已经形成.软件在硬件平台的基础上构筑,完成各部分硬件的控制和协调。

系统是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大.因此,软件是本系统的灵魂。

软件采用模块化设计方法,不仅易于编程和调试,也可减小软件故障率和提高软件的可靠性。

同时,对软件进行全面测试也是检验错误排除故障的重要手段.

3.1软件设计环境简介

3。

1Proteus仿真软件简介

ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路[16]。

该软件的特点是:

(1)实现了单片机仿真和SPICE电路仿真相结合。

具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;

有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等.

(2)支持主流单片机系统的仿真。

目前支持的单片机类型有:

68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

(3)提供软件调试功能。

在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;

同时支持第三方的软件编译和调试环境,如KeilC51uVision2等软件。

(4)具有强大的原理图绘制功能[17]。

总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大.

3.1.2KeilC51编译软件简介

目前流行的51系列单片机开发软件是德国Keil公司推出的KeilC51软件,它是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6。

0以上的版本将编译和仿真软件统一为uVision(通常称为uV2)[18]。

Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:

uVisionIDE集成开发环境(包括工程管理器、源程序编辑器、程序调试器)、C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统[19—21].

3.2交通灯系统主程序

在交通灯控制系统的设计中,首先对交通灯进行初始参数设置,然后根据是否出现键盘事件,如出现键盘事件就启动键盘程序,进行键盘时间处理;

若没有出现,继续进行由初始参数进行的控制程序。

交通灯控制系统的设计流程如图4.1所示:

图4.1交通灯控制系统设计流程

3.3交通灯延时程序

延时方法可以有两种,一种是利用MCS-51内部定时器才生溢出中断来确定1秒的延时时间,另一种是采用软件延时的方法。

3.3。

1计数器硬件延时

(1)计数器初值计算

定时器工作时必须给计数器初值,这个值是送到TH和TL中的。

它是以加法计数的,并能从全1到全0时自动产生溢出中断请求[22-26].因此,我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:

TC=M-C

式中,M为计数器模值,该值和计数器工作方式有关。

在方式0时M为213;

在方式1时M的值为216;

在方式2和3为28.

(2)计算公式

TC=M-T/T计数

T计数是单片机时钟周期TCLK的12倍;

TC为定时初值,

如单片机的主脉冲频率TCLK为12MHZ,经过12分频:

方式0:

TMAX=213﹡1us=8.192ms

方式1:

TMAX=216﹡1us=65.536ms

方式2和3:

TMAX=28﹡1us=0.256ms

显然1秒钟已经超过了计数器的最大定时时间,所以只有采用定时器和软件相结合的办法才能解决这个问题。

(3)延时1秒的方法

系统中采用在主程序中设定一个初值为4000的软件计数器和使定时器定时250us。

这样每当T0到250us时CPU就响应它的溢出中断请求,进入它的中断服务子程序。

在中断子程序中,CPU先使软件计数器减1,然后判断它是否为0.为0表示1秒已到可以返回到输出时间显示程序.

(4)相应程序代码

主程序中:

定时器需要定时250us,故T0工作于方式2.初值:

TC=M-T/T计数=28-250us/1us=06H

TMOD=0x02;

//设置定时器0为工作方式2

TH0=0x06;

TL0=0x06;

//初始化8位定时器(256-6)*4000=1s

EA=1;

//总中断允许

ET0=1;

//T0中断允许

TR0=1;

//打开T0中断

3.3.2软件延时

软件延时需要通过编写延时程序进行延时.计算机执行一条指令需要一定的时间,由一些指令组成一段程序,并反复循环执行,利用计算机执行程序所用的时间来实现延时,这种程序称为延时程序[27-28]。

如当系统使用12MHz晶振时,一个机器周期为1us,执行一条双字双周期DJNZ指令的时间为2us,因此执行该指令50万次,就可以实现延时1s的目的,对于50万次循环可采用外循环、中循环、内循环嵌套的多重循环结构。

4交通灯显示程序

交通灯显示程序设计流程如图4.2所示。

交通灯显示程序总共有4个状态S1、S2、S3和S4,每个状态中发光二极管显示信号灯点亮情况,数码管来进行倒计时显示,完成这4个状态后再进入初始状态S1,进行循环。

图4.2交通灯显示设计流程

3.5按键处理程序

键盘是人机进行交互的重要接口之一。

用户通过对仪器下达命令,仪器获得相应的键值,并执行相应的命令程序[29]。

键盘部分的软件设计主要是对键盘管理芯片8051进行编程,从而成功地读取键盘值,实现相应功能。

按键模块设计流程如图4。

3所示。

在系统中有3个按键设置,分别为“设置键”、“增加键”、“减少键"

.若“设置键"

没有按下,不进行按键处理。

若“设置键”按下,则按照到“设置键”程序处理,看是否有“增加键”和“减少键"

被按下,若没有,不进行处理;

若有,进行相应按键处理。

图4。

3按键模块设计流程

3.5.1设置键处理

(1)设置键的功能

设置键的功能是根据按键次数决定的,如表4.1所示。

按下“设置键”1次,则设置东西方向的绿灯点亮时间;

按下“设置键”2次,则设置东西方向黄灯点亮时间;

按下“设置键”3次,则设置南北方向的绿灯点亮时间;

按下“设置键”4次,则设置南北方向黄灯点亮时间;

按下“设置键”5次,则恢复交通灯工作状态,时间显示设置后的通行时间和暂缓通行时间。

表4.1设置键功能

按“设置键”次数

第1次

第2次

第3次

第4次

第5次

调整内容

东西方向

绿灯点亮

时间

黄灯点亮

南北方向

恢复交通灯工作状态

(2)设置键设计流程

4设置键设计流程

(3)设置键相关程序

voidsetSecond(void)

{while(P3_4==0);

cntP3_4++;

//标志设置键被按下的次数

switch(cntP3_4)

{case1:

cntEW=5;

//cntEW为东西向标志位

P1=0xf7;

//东西向绿灯点亮

break;

case2:

cntEW=1;

P1=0xef;

//东西向黄灯点亮

break;

case3:

cntSN=1;

//cntSN为南北向标志位

P1=0xfe;

//南北向绿灯点亮

break;

case4:

cntSN=3;

P1=0xfd;

//南北向黄灯点亮

case5:

//东西方向和南北方向标志位都回到初始状态

cntSN=5;

cnt_num=0;

cntP3_4=0;

break;

}

增加键处理

(1)增加键的功能

当系统系统需要进行按键设置时,通过“增加键”可以改变东西方向和南北方向的通行时间和暂缓通行时间。

此按键分为两个功能,一个是“加1”功能,一个是“加10”功能.

(2)增加键处理流程

图4.5增加键设计流程

(3)“增加键”相关程序

秒数加1程序:

voidaddSecond(void)

{while(P3_5==0);

cnt_key=0;

//记录长按键的参数清零

{case1:

if(keyMemory!

=greenEW+10)//判断按键是否已经加10,如果没有加10则秒数加1,如果已经加10则不加1

{greenEW++;

if(greenEW==90)

{greenEW=0;

//90为秒数增加后的最大值,当超过90s后自动为0

scdEW=greenEW;

scdSN=greenEW+yellowEW+1;

//东西向绿灯显示时间设置

if(yellowEW++==9)

{yellowEW=0;

}

scdEW=yellowEW;

break;

//东西向黄灯显示时间设置

case3:

=greenSN+10)

{greenSN++;

if(greenSN==90)

{greenSN=0;

scdEW=greenSN+yellowSN+1;

scdSN=greenSN;

//南北向绿灯显示时间设置

if(yellowSN++==9)

{yellowSN=0;

scdSN=yellowSN;

}//南北向黄灯显示时间设置

长按加10s程序:

当长时间按下按键后,增加的时间为10s

voidadd_10s(void)

{cnt_key=0;

{case1:

//设置键按1次,设置东西方向绿灯显示时间

greenEW=greenEW+10;

//长按秒数加10

if(greenEW〉=90)

keyMemory=greenEW+10;

//keyMem

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1