交通灯设计.docx
《交通灯设计.docx》由会员分享,可在线阅读,更多相关《交通灯设计.docx(21页珍藏版)》请在冰点文库上搜索。
交通灯设计
摘要
本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展。
交通也日渐复杂,交通的自动化也不断更新,交通的一些指挥系统光靠人来完成是远远不够的,这就需要设计各种交通指挥自动化系统来完成这些复杂的工作。
从而使交通指挥系统更加有秩序,更加安全。
至此本人设计了交通信号灯控制系统,来指挥十字路口车辆的停通,使红绿灯指挥系统实现自动化,无人化。
该交通灯控制系统控制的是东西和南北两个方向上的车辆通行,系统共采用6个发光二极管来模拟各路交通信号灯,1个LED七段数码管以倒计时的方式显示各个方向上允许通行或禁止通行的信号灯剩余的时间。
停35S,准备5S,之后通行30S,并在东西和南北两个方向上这两种状态不断循环。
此系统核心元件为单片机AT89C51,单片机)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
对其编写相关程序来控制交通信号灯和数码管的时间显示。
此设计的硬件电路不是很复杂,关键在于软件的设计,即程序的编写。
本设计采用的程序编写语言为现在流行的C语言,简单又便于阅读。
编写程序的原则是:
1.满足设计的要求。
2.尽量采用最好,最有效的算法。
3.编写时应尽量用最简洁的语言。
编写好源程序后,采用keil软件对其进行编译,使其生成单片机可以识别的.hex文件,再把此文件导入单片机89C51中即可。
关键词:
交通灯单片机数码管彩色小灯
Abstract
Thisdesignisthetrafficsignalcontrolsystems,associetyadvances,thecontinuousdevelopmentofsociety.Traffichasbecomemorecomplex,automationisalsoconstantlyupdatedtraffic,thetrafficofsomepersontocompletethecommandsystemaloneisnotenough,whichrequiresthedesignoftrafficcontrolautomationsystemstoaccomplishthesecomplextasks.Sothatthetrafficcontrolsystemmoreorderly,moresecure.SofarIhavedesignedatrafficsignalcontrolsystemtostopthevehiclethroughtheintersectioncommand,commandsystemtoautomatethetrafficlights,unmanned.
Thetrafficlightcontrolsystemandcontrolthethingsonthenorth-southvehicletrafficinbothdirections,thesystemusesatotalofsixlight-emittingdiodetrafficlightstosimulateseparateways,aseven-segmentLEDdisplaywithacountdowntoallowaccessinalldirectionsorprohibitthepassageofthesignalremainingtime.Stop10S,readyto5S,afterthepassage10S,andtwointheEastandNorth-Southdirectiononthecycleofthesetwostates.ThesystemcorecomponentsofthemicrocontrollerAT89C51,SCM),lowvoltage,high-performanceCMOS8-bitmicroprocessors,commonlyknownasthemicrocontroller.ThedeviceusesATMELhighdensitynon-volatilememorymanufacturingtechnologymanufacturing,andindustry-standardMCS-51instructionsetandoutputpinsarecompatible.Owingtothemulti-function8-bitCPUandflashmemorycombinedinasinglechip,ATMEL'smicrocontrollerAT89C51isahighlyeffectiveformanyembeddedcontrolsystemprovidesahighlyflexibleandinexpensivesolution.Itswrittenprocedurestocontrolthetrafficlightsanddigitaltimedisplay.Thedesignofthehardwarecircuitisnotverycomplicated,thekeyliesinsoftwaredesign,thatthepreparationprocedure.ThisdesignusesaprogramminglanguageforthenowpopularClanguage,simpleandeasytoread.Programmingprincipleis:
1.Tomeetthedesignrequirements.
(2)maximizetheuseofthebestandmosteffectivealgorithm.3shouldbepossibletowritethemostsimplelanguage.Afterwritinggoodsourcecode,compileitusingkeilsoftwaretogeneratethemicrocontrollercanbeidentified.Hexfile,thenimportthefileinthe89C51microcontrollercan.
Keywords:
AT89C51TrafficlightsSmallcoloredlightsLED
目录
摘要I
AbstractII
第1章绪论1
1.1概述1
1.2交通灯设计方案选择与论证1
1.3设计目的1
1.4交通灯控制系统的简单说明................................................................................2
第2章系统总体设计方案及硬件设计3
2.1硬件电路各元件介绍3
2.1.1核心芯片AT89C51单片机的说明..................................................................3
2.1.2其他元件的说明5
2.2总电路的设计及过程说明6
2.2.1设计基本框架图6
2.2.2总体电路的工作原理6
2.2.3各端口控制作用6
2.2.4复位和时钟电路................................................................................................7
2.2.5晶振电路设计....................................................................................................8
第3章交通灯的软件设计10
3.1Keil软件的介绍....................................................................................................10
第4章交通灯仿真调试过程12
4.1PROTEUS仿真软件介绍12
4.2运行状态..................................................................................................................................13
结论15
参考文献16
附录18
第1章绪论
1.1概述
随着社会经济的发展,城市交通问题越来越引起人们的关注。
人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。
城市交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监指挥系统中最重要的组成部分。
所以,如何采用合适的控制方法,最大限度利用好耗
巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况。
目前,有一种“自动控制”控制交通灯的方法。
利用事先编制好的程序输入单片机,再利用单片机的定时、查询、中断功能;能够根据十字路口两个方向上车辆动态状况,采用查询的方式,根据具体情况,自动给予时间通行,其中利用中断方式来处理特殊情况。
这样既方便驾驶员、路人,同时还可以紧急处理一些紧急实况。
同样具有红、黄、绿灯的显示功能,为驾驶员、路人“照明”。
1.2交通灯设计方案选择与论证
交通灯控制系统,可由多种电路来构成,我们这里提供三种方案供选择:
方案一:
由普通的数字电路集成芯片组成
这种方案的特点是:
硬件设计思路简单,但用元器件多,电路比较复杂,焊接调试容易出错,而且不利于智能控制,调时电路复杂。
方案二:
用VHDL语言编程控制
这种方案的特点是:
硬件设计简单,电路结构清晰,电路比较复杂,VHDL语言编程控制硬件,可方便的进行仿真,调试。
方案三:
单片机控制
采用单片机控制,可提高电路的可靠性与稳定性,硬件电路比较简单,主要用软件来控制,控制方式灵活多样,能满足不同情况的控制,可利用中断等方式通过程序来方便的实现调时。
综合以上三种方案的特点,结合我们自身的知识结构,我们采用方案三,选择常用的51系列单片机构成。
1.3设计目的
在该设计中通过学生自主地设计和调试某一简单实际系统,综合应用单片机原理、微机原理、微机接口技术等课程方面的知识,熟练掌握单片机仿真系统的使用方法,达到提高综合应用相关知识的能力,掌握单片机系统设计全部设计过程的目的。
1.4交通灯控制系统的简单说明
此系统核心元件为单片机AT89C51,对其编写相关程序来控制交通信号灯和数码管的时间显示。
系统共采用6个发光二极管来模拟各路交通信号灯,1个LED七段数码管以倒计时的方式显示各个方向上允许通行或禁止通行的信号灯剩余的时间。
停10S,准备5S,之后通行10S,在东西和南北两个方向上这两种状态不断循环。
源程序采用C语言编写,并通过keil软件进行编译,最后倒入AT89C51单片机中,运行系统。
设计好后通过PROTUES软件仿真,并调试。
第2章系统总体方案及硬件设计
2.1硬件电路各元件介绍:
2.1.1核心芯片AT89C51
单片机的说明
(1).主要特性:
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
(2)管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
(3).振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
(4).芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.1.2其它元件的说明
交通信号灯:
采用红,黄,绿三色二极管封装在一起组成三色交通信号。
还有电阻九个。
2.2总电路的设计及过程说明
2.2.1设计基本框架图:
(如图6所示)
图6:
电路框架图
2.2.2总体电路的工作原理:
南北路处于禁止通行的状态,东西路处于允许通行的状态。
南北路亮红灯时,东西路亮绿灯;南北路亮绿灯时,东西路亮红灯。
南北路亮红灯时,东西路亮绿灯;当绿灯时间减完之后,东西路换为黄灯,南北路仍为红灯。
这样东西路与南北路的时间同时减完。
减完之后,东西路换为红灯,南北路换为绿灯,再经过一个绿灯时间,南北路换为黄灯,东西路仍为红灯。
这时东西路与南北路时间相同,同时减完。
减完后,南北路为红灯,东西路为绿灯。
如此循环下去。
利用89c52单片机控制交通灯系统工作。
其中P0口接数据输出口,与外部数码管连接,P2口与数码管的COM口连接,用于选择数据输出的地址,这样就可以实现时间的动态显示,并且节省了端口数。
P1口作为红黄绿灯的控制口,通过上拉电阻将红黄绿灯的正极接高电平,负极接在P1口上,我们可以利用控制单片机的P1口的输出数据控制红黄绿灯的亮灭。
2.2.3各端口控制作用:
p1口作为红黄绿灯信号的控制口,即p1.0,p1.2,p1.1分别控制南北方向的红黄绿灯信号,p1.4,p1.6,p1.5分别控制东西方向的红黄绿灯信号。
p0口作为驱动电路的输入,p2.0,p2.1,p2.2,p2.3作为数码管控选端1,2的输入。
p3口中的p3.2,p3.3即外部中断0和外部中断1作为紧急情况和调时开关的信号控制。
P3.5,p3.6,p3.7是紧急情况下的信号控制口。
红灯亮35秒,黄灯亮5秒,绿灯亮30秒。
初始状态为东西红灯,南北绿灯。
35S后转状态1东西红灯,南北黄灯。
35S后转状态2东西绿灯通车,南北红灯。
经过30S绿灯和5S黄灯后转状态3东西绿灯灭,亮黄灯,南北仍然红灯。
整个程序在晶振工作、单片机正常运行的情况下做循环。
系当统上电时,实验电路开始工作。
七段数码管开始从红灯和绿灯时间倒计时,计时起始信号由主控电路给出,定时结束信号也输入到主控芯片,由主控芯片启、闭三色信号灯或启动另一计时电路。
在这里正确的程序是核心,应该完成一个时序电路的工作。
其状态表
(1)为:
东西方向
南北方向
红10秒
绿10秒
红5秒
黄5秒
绿10秒
红10秒
黄5秒
红5秒
表
(1)
2.2.4复位和时钟电路:
8051的复位方式可以是自动复位,也可以是手动复位,见下图2-4。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失[5]。
图2-48051复位方式及内外部时钟方式
Pin30:
ALE/
当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲[10]。
如果单片机是EPROM,在编程其间,
将用于输入编程脉冲。
Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
Pin31:
/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当
为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如
为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地[6]。
在编程时,EA/Vpp脚还需加上21V的编程电压。
2.2.5晶振电路设计
每个单片机系统里都有晶振,全称是晶体振荡器,在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的始终频率越高,单片机的运行速度也就越快。
51单片机采用定时控制方式,因此它有固定的机器周期。
一个机器周期12个振荡脉冲周期,机器周期就是振荡脉冲的12分频。
当晶振频率为12MHZ,一个机器周期就为1微秒,6MHZ时,为2微秒。
晶振电路由两个电容组成,这两个电容叫晶振的负载电容,分别接在晶振的两个脚上和对地的电容,一般在几十皮法。
它会影响到晶振的谐振频率和输出幅度。
晶体旁边的两个电容接地,实际上就是电容三点式电路的分压电容,接地点就是分压点。
两个电容串联的值是并联在谐振回路上的,会影响振荡频率。
当两个电容量相等时,反馈系数是0.5,一般是可以满足振荡条件的,但如果不易起振或振荡不稳定可以减小输入端对地电容量,而增加输出端的值以提高反馈量。
图2-8晶振电路
第3章交通灯的软件设计
3.1Keil 软件的介绍
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
KeilC51开发系统基本知识KeilC51开发系统基本知识
系统概述
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软