系统设计报告12副本.docx

上传人:b****3 文档编号:11609846 上传时间:2023-06-01 格式:DOCX 页数:29 大小:1.86MB
下载 相关 举报
系统设计报告12副本.docx_第1页
第1页 / 共29页
系统设计报告12副本.docx_第2页
第2页 / 共29页
系统设计报告12副本.docx_第3页
第3页 / 共29页
系统设计报告12副本.docx_第4页
第4页 / 共29页
系统设计报告12副本.docx_第5页
第5页 / 共29页
系统设计报告12副本.docx_第6页
第6页 / 共29页
系统设计报告12副本.docx_第7页
第7页 / 共29页
系统设计报告12副本.docx_第8页
第8页 / 共29页
系统设计报告12副本.docx_第9页
第9页 / 共29页
系统设计报告12副本.docx_第10页
第10页 / 共29页
系统设计报告12副本.docx_第11页
第11页 / 共29页
系统设计报告12副本.docx_第12页
第12页 / 共29页
系统设计报告12副本.docx_第13页
第13页 / 共29页
系统设计报告12副本.docx_第14页
第14页 / 共29页
系统设计报告12副本.docx_第15页
第15页 / 共29页
系统设计报告12副本.docx_第16页
第16页 / 共29页
系统设计报告12副本.docx_第17页
第17页 / 共29页
系统设计报告12副本.docx_第18页
第18页 / 共29页
系统设计报告12副本.docx_第19页
第19页 / 共29页
系统设计报告12副本.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

系统设计报告12副本.docx

《系统设计报告12副本.docx》由会员分享,可在线阅读,更多相关《系统设计报告12副本.docx(29页珍藏版)》请在冰点文库上搜索。

系统设计报告12副本.docx

系统设计报告12副本

 

摘要

随着人们生活水平的提高,私家车越来越多,对道路交通的要求也越来越严格。

但由于各种原因道路建设发展相对落后,交通拥挤、交通阻塞、交通事故时有发生。

如何平稳的保证交通的通畅,减少交通事故的发生,成为必须解决的课题。

交通灯是交通控制系统重要的一环,智能化交通灯控制系统必将成为必然。

随着单片机技术的成熟,以单片机为核心的智能控制系统正越来越多的应用于实际生活中,同时带动传统的控制系统,促其更新。

在控制系统中,单片机往往作为一个核心器件,辅以外围电路加以完善。

本次设计正是基于单片机AT89C52来模拟控制十字路口的交通信号灯的变化,对交通控制系统各部分进行深入研究,来更好的了解十字路口的通行状况,以此来更好的改进现行的交通信号指挥系统,使交通信号指挥系统能够更加趋向于人性化、智能化。

关键字:

单片机交通灯数码管LED

 

第一章交通灯概述

1.1交通灯起源

 今天,交通灯安装在各个路口,成为疏导交通最常见和最有效的手段。

其实这一技术早在19世纪就已出现了。

1914年,电气启动的红绿灯出现在美国。

这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

1918年,又出现了带控制的红绿灯和红外线红绿灯。

带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。

红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。

红外光束能使信号灯的红灯时间延长,推迟汽车放行,避免交通阻塞。

信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。

绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。

左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。

红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。

黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

1.2当代交通发展现状

随着经济的发展,城市现代化程度的不断提高,交通需求迅速增长,城市交通拥挤日益严重,道路运输所带来的交通拥堵、交通事故和环境污染等负面效应也日益突出,逐步成为经济和社会发展中的全球性共同问题。

交通问题已经日益成为世界性的难题,城市交通事故、交通阻塞和交通污染问题愈加突出。

为了解决车和路的矛盾,常用的有两种方法:

一是控制需求,最直接的办法就是限制车辆的增加;二是增加供给,也就是修路。

但是这两个办法都有其局限性。

交通是社会发展和人民生活水平提高的基本条件,经济的发展必然带来出行的增加,而且在我国汽车工业正处在起步阶段的时期,因此限制车辆的增加不是解决问题的好方法。

而采取增加供给,即大量修筑道路基础设施的方法,在资源、环境矛盾越来越突出的今天,面对越来越拥挤的交通,有限的源和财力以及环境的压力,也将受到限制。

这就需要依靠除限制需求和提供道路设施之外的其他方法来满足日益增长的交通需求。

交通系统正是解决这一矛盾的途径之一。

智能交通系统是将先进的信息技术、数据通讯传输技术、电子传感技术、电子控制技术及计算机处理技术等有效的集成运用于整个地面交通管理系统而建立的一种在大范围内、全方位发挥作用的实时、准确、高效的综合交通运输管理系统。

对城市交通流进行智能控制,可以使道路畅通,提高交通效率。

合理进行交通控制可以对交通流进行有效的引导和调度,使交通保持在一个平稳的运行状态,从而避免或缓和交通拥挤状况,大大提高交通运输的运行效率,还可以减少交通事故,增加交通安全,降低污染程度,节省能源消耗,本文就是通过对十字路口交通信号的智能控制,达到优化交通的目的。

 

第二章系统总体设计

2.1设计任务和性能指标

2.1.1设计任务

实现十字路口交通灯的变化,控制东西方向车辆通行,通行时间可加减,系统可复位。

2.1.2性能指标和要求

(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。

通行时间为60秒。

(2)黄灯闪烁3秒,警示车辆和行人红、绿灯状态即将切换,尽快通行。

(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通行,行人通行。

时间为40秒。

东西方向车辆打通行时间长。

(4)按照上表的时间和红、绿、黄出现的顺序依次处控制变化这样行人和车辆就能安全有序的通行。

(5)根据客流量的大小手动控制南北、东西方向的通行时间。

2.2方案论证比较

2.2.1控制部分方案设计与比较

方案一:

采用计数器74163实现,由于74163是具有同步清零﹑同步置数﹑可保持状态不变的计数器。

但由于74163实现的功能是静态的,不能完成动态操作,且硬件搭接电路较为复杂,成本较高。

方案二:

采用FPGA实现交通灯的核心控制,虽然FPGA能很好的达到预期效果。

但是,由于FPGA的核心控制部分成本高,电路复杂,PCB板不容易画,断电后要重新烧程序。

方案三:

采用单片机AT89C52实现核心控制,切操作便捷,扩张性强,而且程序简单,电路简洁,易操作,成本也较低,能实现交通灯的各种功能。

综合考虑,我们选择方案三利用单片机来实现交通信号的核心控制。

2.2.2显示部分方案比较

方案一:

采用数码管与点阵LED相结合的方法显示,虽然能达到很好的视觉效果,但是考虑的现实情况,这种方案器件不易购买,不易实现,并且性价比较低。

方案二:

采用四个两位数码管表示各个方向,可以直观的表示通行时间,且操作简单,成本低。

综合考虑,我们选择方案二采用两位数码管来实现显示功能。

2.2.3键盘控制部分方案比较

方案一:

直接在I/O口上接按键开关。

该方案的优点是设计精简,对电路进行了优化,使剩余的I/O口还比较多,故我们使用了四个按键来控制时间的输入,分别是东西时间加K1、减K2,南北时间加K3、减K4。

方案二:

采用8155扩展I/O口及键盘显示等,该方案的优点是:

使用灵活可编程,并且有RAM及计数器,若用该方案,可提供较多的I/O口,但操作起来比较复杂。

综合考虑,由于单片机对交通灯及数码管的控制,用单片机本身的I/O口即可实现。

故选择方案一来实控制部分。

 

第三章系统硬件设计

硬件设计共有五个部分组成,分别是:

单片机AT89C52、复位电路、时钟电路、数码管显示电路及红绿灯电路、按键控制电路。

在keil中编写程序,在proteus中绘制原理图、加载并运行程序,结果显示五个部分工作正常,从而实现了交通信号控制系统的基本功能及附加调时功能。

系统的总的原理框图如图1所:

 

红绿灯显示

最小系统

89c52单片机

键盘控制

复位电路

 

图1系统原理框图

3.1单片机的介绍

3.1.1单片机的应用

目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。

更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。

下面大致介绍一下单片机在这几个方面的应用:

(1)在工业控制中的应用:

用单片机可以构成形式多样的控制系统、数据采集系统。

例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。

(2)在智能仪器仪表仪表上的应用:

单片机具有体积小、功耗低、控制功能强、扩展灵活等优点,广泛应用于一起仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、速度等物理量的测量采用单片机控制使得一起仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。

例如精密的测量设备(功率计,示波器。

各种分析仪)。

(3)在家用电器中的应用:

现在的家用电器基本上采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他印象视频器材等家用电子设备。

(4)在医用设备中的应用:

单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声波诊断设备及病床呼叫系统等。

(5)在汽车领域中的应用:

单片机在汽车电子中应用广泛,例如发动控制器,智能导航系统,制动系统等。

(6)在通信领域中的应用:

单片机普遍具备通信接口,可方便的与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好地物质条件,现在的通信设备基本上都是血了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常生活中的移动电话,集群移动通信等。

3.1.2单片机

单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机。

单片机由运算器、控制器、存储器、输入输出设备构成。

MCS-51单片机是Intel公司在1980年继MCS-48系列8位单片机之后推出的高档8位单片机。

MCS-51单片机在性能和片内功能方面大大优于MCS-48系列单片机。

下面介绍一下本次设计使用到的单片机-AT89C52。

AT89C52是标准的40引脚双列直插式集成电路芯片其引脚图如图2所示,下面介绍一下它的各个引脚及引脚的功能:

 

 

图2AT89C52引脚

(1)P0口:

P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。

作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

(2)P1口:

Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

Flash编程和程序校验期间,Pl接收低8位地址。

(3)P3口:

P3口是一组带有内部上拉电阻的8位双向I/0口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表1所示:

 

端口引脚

第二功能:

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

/INT0(外中断0)

P3.3

/INT1(外中断1)

P3.4

T0(定时/计数器0外部输入)

P3.5

T1(定时/计数器1外部输入)

P3.6

/WR(外部数据存储器写选通)

P3.7

/RD外部数据存储器读选通)

表1具有第二功能的P1口引脚

P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

(4)RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。

DISRT0位缺省为RESET输出高电平打开状态。

(5)ALE/

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。

(6)

程序储存允许(

)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次

有效,即输出两个脉冲。

当访问外部数据存储器,没有两次有效的

信号。

(7)

/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。

F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。

(8)XTAL1XTAL2:

外接晶振引脚。

当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

(9)VCC:

电源+5V输入

(10)GND:

接地

3.2单片机最小系统

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

对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。

但由于图中的C1、C2电容起着系统时钟频率微调和稳定的作用,因此,在本系统的实际应用中一定要注意正确选择参数(30±10PF),并保证对称性。

图3最小系统

3.3单片机系统复位电路

复位电路采用上电加按钮复位的方式。

当开关打开时,RST通过电阻R1接地,当有开关闭合时由于电容的作用使电源VCC通过电阻施加在单片机复位端RST上,实现单片机复位。

具体电路如图3所示。

图4单片机系统复位电路

3.4数码管显示电路

数码管工作原理:

这里我们介绍8段数码管的工作原理。

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

A、B、C、D、E、F、G、DP。

其中,DP为小数点。

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

发光二极管的发光原理,我们已经介绍过了,同理,8段LED数码管,则是在一定形状的绝缘材料上,利用不同形状点划的发光二极管组合,排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示0-9的数字。

从电路上,按数码管的接法不同又分为共阴和共阳两种。

图5是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

 

图5数码管的内部电路接法

在设计时,为了系统图的美观,我们采用了2个数码管组成的数码管组,采用共阳极接法。

如图6所示。

图6系统共阳数码管电路

3.5红绿灯指示电路

在设计信号灯时,用发光二极管代替红绿灯。

先介绍一下二极管,如图7。

二极管工作原理是单向导通,即只有正极电压高于负极电压某特定值时才会导通,而负极电压高于正极电压是不导通的。

图7发光二极管示意图

发光二极管是一种特殊的二极管,导通时会发光(发光二极管导通压降一般为1.7V~1.9V)。

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

发光二极管的正负极可以用万用表进行判断,把万用表拨至二极管档或电阻挡,用两个表笔分别接触二极管的两个引出脚。

若发光二极管被点亮,则与红表笔相接的引出脚为正极。

从外观上看,发光二极管的正极引脚的长度也比较长。

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

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

交通灯的设计时我采用了红、黄、绿三种发光二极管。

3.6按键控制电路设计

按键工作方式可以是中断方式也可以是扫描方式,对扫描方式来说,扫描是一直调用按键扫描程序,也可以用定时调用按键扫描程序,不管哪一种,都需要占用系统宝贵的时间资源,相比较而言中断就有优势,中断键盘只有在有按键按下时才去执行键盘程序,在没有按键按下的情况下,可以处理其他的事务,使资源得到充分的利用,故中断键盘有占用资源少,响应速度快的优点,但在有按键按下时有数码管闪烁的缺点,这是因为处理中断时,数码管停止了扫描,对显示要求不高的场合下,这也是完全可以满足要求的。

但实际应用中,为了保证安全查询键值和响应,通常还要进行按键去抖和等待键释放(查询按键是否抬起)的动作。

开关控制电路如图8所示:

图8开关控制电路

第四章系统软件设计

4.1设计思路

一个完整的交通灯相当于一个简单的单片机系统,该系统有交通灯设置电路、单片机、显示电路等构成。

单片机是集成的IC芯片,只需根据实际设计要求选型。

其他部分都需要根据应用要求和性能指标自行设计。

4.2软件流程图

图9软件流程图

4.3程序源代码

/*****************************************************

十字路口交通灯控制C程序

******************************************************/

#defineucharunsignedchar

#defineuintunsignedint

#include

/**********************定义控制位*********************/

sbitSNTime_Show_LED2=P2^5;//Time_Show_LED2控制位

sbitSNTime_Show_LED1=P2^4;

sbitEWTime_Show_LED2=P2^7;

sbitEWTime_Show_LED1=P2^6;

sbitEW_LED2=P2^3;

sbitEW_LED1=P2^2;

sbitSN_LED2=P2^1;

sbitSN_LED1=P2^0;

sbitSN_Yellow=P1^6;//SN黄灯

sbitEW_Yellow=P1^2;//EW黄灯

sbitEW_Red=P1^3;//EW红灯

sbitSN_Red=P1^7;//SN红灯

sbitEW_ManGreen=P3^0;//EW人行道绿灯

sbitSounder=P3^0;

sbitSN_ManGreen=P3^1;//SN人行道绿灯

sbitAdd_Button=P3^6;

sbitReduces_Button=P3^7;

sbitAdd_Button1=P3^5;

sbitReduces_Button1=P3^4;

bitFlag_SN_Yellow;

bitFlag_EW_Yellow;

charTime_EW;//东西方向倒计时单元

charTime_SN;//南北方向倒计时单元

ucharW=60,SN=40,EWL=19,SNL=19;//程序初始化赋值,正常模式

ucharEW1=60,SN1=40,EWL1=19,SNL1=19;//用于存放修改值的变量

ucharcodetable[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,

0x7D,0x07,0x7F,0x6F};//1~~~~9段选码

ucharcodeS[8]={0X28,0X48,0X18,0X48,0X82,

0X84,0X81,0X84};

//交通信号灯控制代码

/**********************延时子程序************************/

voidDelay(uchara)

{

uchari;

i=a;

while(i--){;}

}

/*****************显示子函数**************************/

voidDisplay(void)

{

charh,l,h1,l1;

h=Time_SN/10;

l=Time_SN%10;

P0=table[l];

SN_LED2=1;

Delay

(2);

SN_LED2=0;

P0=table[h];

SN_LED1=1;

Delay

(2);

SN_LED1=0;

h=SN1/10;

l=SN1%10;

P0=table[l];

SNTime_Show_LED1=1;

Delay

(2);

SNTime_Show_LED1=0;

P0=table[h];

SNTime_Show_LED2=1;

Delay

(2);

SNTime_Show_LED2=0;

h1=Time_EW/10;

l1=Time_EW%10;

P0=table[l1];

EW_LED2=1;

Delay

(2);

EW_LED2=0;

P0=table[h1];

EW_LED1=1;

Delay

(2);

EW_LED1=0;

h1=EW1/10;

l1=EW1%10;

P0=table[l1];

EWTime_Show_LED1=1;

Delay

(2);

EWTime_Show_LED1=0;

P0=table[h1];

EWTime_Show_LED2=1;

Delay

(2);

EWTime_Show_LED2=0;

}

/*******************外部0中断服务程序********************/

voidEXINT0(void)interrupt0using1

{

{EX0=0;//关中断

if(Add_Button==0)//东西时间加

{

EW1+=5;

if(EW1>=80)

{

EW1=80;

}

}

if(Reduces_Button==0)//东西时间减

{

EW1-=5;

if(EW1<=20)

{

EW1=20;

}

}

EX0=1;

}

{

EX0=0;

if(Add_Button1==0) //南北时间加

{

SN1+=5;

if(SN1>=95)

{

SN1=95;

}

}

if(Reduces_Button1==0) 

{

SN1-=5;

if(SN1<=20)

{

SN1=20;

}

}

EX0=1;}

}

/********************T0中断服务程序*****************/

voidtimer0(void)interrupt1using1

{

staticucharcount;

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

count++;

if(count==10)

{

if(Flag_S

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

当前位置:首页 > 职业教育 > 职高对口

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

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