单片机控制交通灯毕业论文_第1页
单片机控制交通灯毕业论文_第2页
单片机控制交通灯毕业论文_第3页
单片机控制交通灯毕业论文_第4页
单片机控制交通灯毕业论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PAGE - 23 - 绪论1.1交通灯的背景 1.1.1 交通灯的历史19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯-煤气交通信号灯,这是城市街道的第一盏信号灯。在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤气灯罩 ,它的前面有两块红、绿玻璃交替遮挡。不

2、幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。 1.1.2交通控制存在的问题我国城市交通运输的现状和存在的问题,借鉴国外城市交通管理的先进经验,强调建立城市交通管理体制的重要性,提出加强城市交通研究的交通规划,建立稳定的交通基础设施建设的资金出道,实行公交优先政策,建立先进的交通信息系统等对策。随着城市机动车增长速度的加快。1994年卧轨城市机动车保有量已接近500完辆。20世纪90年代以来,经济的发展加快,从1985年到1995年,机动车增长率达13%左右,近几年更是增多。然而,在此同时,城市道路建设规模也在加大,我国城市普遍存在道路密度,道路面积率偏低的问题

3、,这是我国城市哟其是大城市有机的一个重要原因。我国城市道路的密度只有6.8km每平方千米,而在20世纪80年代,世界发达国家就已到达20km每平方千米。20世纪90年代,我国部分城市道路面积率,北京为5.9%,上海为6.4%,而国外东京为13.8%,巴黎为25%,普遍高于我国。近几年,国家虽不断加大城市道路建设的力度,但仍赶不上车辆的增长速度,且与世界其他国家相比,差距仍很大。1.1.3交通灯的功能与作用信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的

4、车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。1.1.4 用单片机控制交通灯的优点优点: 单片机价格适当,它体积小,运算速度快,定时器通过中断方式给CPU发送信号,使

5、CPU可以及时响应,减少了系统开销降低了系统功耗。单片机通过程序方式控制各种输入输出信号,可以方便的设计运行规则,而且可以在系统运行过程中设定交通灯亮灭的时间和选择规则,从而实现多种复杂功能。 2.缺点:可靠性差、抗干扰性能差、通用性差、扩展能力比较弱、处理能力会弱于PLC(若做大系统复杂的交通灯控制,估计有些困难)、通讯不如PLC方便,编程语言复杂些. 综上述:比如要把整个城市的交通灯系统接入交通控制指挥中心,单片机做底层单个交通灯控制没有什么问题, 考虑到城市的环保与节能等原因,我们应该采用单片机控制交通灯,单片机不仅仅是成本低廉,并且结构简单,比较易于控制。如果出现问题也能很快找出问题并

6、且处理。1.1.5 单片机的概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。第二章 单片机控制交通灯的总体设计2.1单片机交通控制系统通行方案设计2.1.1单片机控制交通系统通

7、行方案设计设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示:图2.1 交通状态 通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如下:东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向禁止通行,南北向允许通行。东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。南北方向红灯灭

8、,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时20秒。此状态下,东西向允许通行,南北向禁止通行。南北方向绿灯灭,同时黄灯亮,东西方向红灯亮,倒计时2秒。此状态下,除了已经正在通行中的其他所以车辆都需等待状态转换。下面我们可以用图表表示灯状态和行止状态的关系如下:表2.1 交通状态及红绿灯状态状态1状态3状态4状态6东西向禁行等待变换通行等待变换南北向通行等待变换禁行等待变换东西红灯1100东西黄灯0001东西绿灯0010南北红灯0011南北绿灯1000南北黄灯0100东西南北四个路口均有红绿黄3灯和数码显示管2个,在任一个路口,遇红灯禁止通行,转绿灯允许通行,之后黄灯亮警告行止状态将变换。状

9、态及红绿灯状态如表2.1所示。说明:0表示灭,1表示亮。2.2 交通灯控制工作原理 总开关闭合,交通灯开始工作。南北黄灯亮,东西红灯亮,延迟20秒;然后,南北绿灯亮,东西红灯亮,延迟4分钟;南北绿灯闪,亮十秒,灭十秒,循环3次,再南北绿灯灭,红灯亮;南北通行结束,东西开始运行。东西黄灯亮,南北红灯亮,延迟20秒;东西绿灯亮,南北黄灯亮,延迟4分钟;东西绿灯闪,亮十秒,灭十秒,循环3次,东西绿灯灭,红灯亮;按上述状态从开始依次循环。2.2.1输入输出控制信号的配置 1输入:总开关S0P1.0.当总开关S0闭合,P1.0=1;反之,开关S0断开,P1.0=02输出;南北黄灯P1.1,当P1.1=1

10、时南北黄灯亮,P1.1=0时南北黄灯灭。南北红灯P1.2,当P1.2=1时南北红灯亮,P1.2=0时南北红灯灭。南北绿灯P1.3,当P1.3=1时南北绿灯亮,P1.3=0时南北绿灯灭。东西黄灯P1.4,当P1.4=1时东西黄灯亮,P1.4=0时东西黄灯灭。东西红灯P1.5,当P1.5=1时东西红灯亮,P1.4=0时东西红灯灭。东西绿灯P1.6,当P1.6=1时东西绿灯亮,P1.6=0时东西绿灯灭。 (南北通行,东西禁行)(南北禁行,东西通行)2.3单片机交通控制系统的基本构成及原理 单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通的具体通行,当然,接入LED数码

11、管就可以显示倒计时以提醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。 单片机红黄绿信号灯8级LED数码管显示车流量传感器最小系统外围接口按键控制蜂鸣器 图2-2 系统的总体框图 据此,本设计系统以单片机为控制核心,连接成最小系统,由倒计时模块,违规检测模块和按键设置模块等产生输入,信号灯状态模块,LED倒计时模块和蜂鸣器状态模块接受输出。系统的总体框图如上所示。键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正常工作状态,

12、执行交通灯状态显示控制,同时将时间数据倒计时输入到LED数码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。第三章 系统硬件电路的设计3.1系统硬件总电路构成及原理实现本设计要求的具体功能,可以选用AT89C52单片机及外围器件构成最小控制系统,12个发光二极管分成4组红绿黄三色灯构成信号灯指示模块,8个LED东西南北各两个构成倒计时显示模块,光敏传感器捕获违规信号,若干按键组成时间设置和模式选择按钮和紧急按钮等,以及用1个蜂鸣器进行报警。3.1.1系统硬件电路构成 图3.1 总体设计电路图 本系统以单片机为核心,

13、组成一个集车流量采集、处理、自动控制为一身的闭环控制系统。系统硬件电路由单片机、违规检测电路,状态灯,LED显示,按键,蜂鸣器组成。其具体的硬件电路总图如上图所示。3.1.2系统工作原理系统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种:红绿灯时间自动和红绿灯时间设置。若此时F键按下,则设置为自动模式,若此时按下的是S键,则设置为时间设置模式,依次按S若干次,J键若干次可设置好两个方向的红绿灯时间,再按F键确认。其实这个过程就是将存储时间值的寄存器进行设置,以及标志是否要进行车流量检测及调整。接下来,系统必须先显示状态灯及LED数码管,将状态码值送显P2口,将要显示的时间值的个位和

14、十位分别送显P0和P1口,在此同时以50ms为周期,用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态的相应状态码值以及时间值,3.1.3 AT89S51芯片内部结构简介 AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4k bytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。它集Flash程序存储器 既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能

15、强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(内部RAM):数据存储器用于存放变化的数据。AT89S51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。程序存储器(内部ROM):程序存储器用于存放程序和固定不变的常数等。通常采用只读存储器,且其又多种类型,在89系列单片机中

16、全部采用闪存。AT89S51内部配置了4KB闪存。定时/计数器(ROM): 定时/计数器用于实现定时和计数功能。AT89S51共有2个16位定时/计数器。 并行输入输出(I/O)口: 8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。每个口都由1个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数据的并行输入与输出,有些I/O口还有其他功能。 全双工串行口: A89S51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 时钟电路:时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。中断系统:A

17、T89C51共有5个中断源,其中有2个外部中断源和3个内部中断源。中断系统的作用主要是对外或内部的中断请求进行管理与处理。图3.2 AT89S51系列单片机的内部结构示意图 3.1.4 主要引脚功能AT89S51 引脚图如下图 所示:VCC:电源电压GND:地P0口:P0口是一组8位漏极开路型双向I0口,也即地址数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。P1口:Pl 是一个带内部上拉电阻的8位双向IO口,Pl的输出缓冲级可驱动(

18、吸收或输出电流)4个TTL逻辑门电路。对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,Pl接收低8位地址。3.2交通灯软件的设计3.2.1程序主体设计流程 图4.1 系统总流程图全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,红绿灯时间调整程序等。3.2.2 相应程序的代码 定时器的原理及设置定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模

19、值,这个初值是送到TH和TL中的。它是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此,我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M为计数器模值。计数值并不是目的,目的是时间值,设计1次的时间,即定时器计数脉冲的周期为T0,它是单片机系统主频周期的12倍,设要求的时间值为T,则有C=TT0。计算通式变为:T=(MTC)T0模值和计数器工作方式有关。在方式0时M为8192;在方式1时M的值为65536;在方式2和3为256。就此可以算出各种方式的最大延时。如单片机的主脉冲频率为12MHZ,经过12分频后,

20、若采用方式最大延时只有8.129毫秒,采用方式最大延时也只有65.536毫秒。这就是为什么扫描周期为50ms的原因,若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然秒钟已经超过了计数器的最大定时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。定时器需定时毫秒,故1工作于方式。初值计算: TC=MT/T计数21650ms/1us=15536=3CBOH START: MOV TMOD, #10H ;令为定时器方式 MOV TH0, #3CH ;装入定时器初值 MOV TL0, #0BOH SETB EA ; 打开总中断 SETB ET1 ;开

21、1中断SETB ER ;启动1计数器CLR FLAG1 CLR FLAG2 CLR FLAG3 MOV R3,#20H ;软件计数器赋初值()相应中断服务子程序 ORG001B LJMPDSD ORG 0030H DSD: INC R3 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH CJNE R3,#20,FHDEC R0 DEC R1MOV R3,#00HFH: RETI程序的软件延时:AT89S51的工作频率为033MHZ,我们选用的AT89S51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12

22、M)=1us。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。具体的延时程序分析:DELAY: MOV R4,#08H 延时1秒主程序 DE2: LCALL DELAY1 DJNZ R4, DE2 RETDELAY1:MOV R4,#00H ;延时125us 子程序 D1: MOV R5,#00H D2: DJNE R5,DL2 DJNE R4,D1 RET DELAY1为一个双重循坏 循环次数为256*256=65536 所以延时时间=65536*2=131072us 约为125us DELAY R4设置的初值为8 主延时程序循环8次,所以125us*8=

23、 1秒3.3 交通控制的程序(1)主程序START: MOV SP,#80HMOV R0,#00HMOV R7,#8FHCLEARDISP: MOV R0,#00HINC R0DJNZ R7,CLEARDISPMOV TIMED0,#78HMOV TIMED1,#6EHMOV TIMED2,#46HMOV TIMED3,#3CHMOV TIMED4,#0AHCLR SNEWFLAGMOV TMOD ,#11HMOV TL0,#0B0HMOV TH0,#3CHMOV TL1,#0B0HMOV TH1,#3CHJB SCAN.7,SSST第四章 实验平台4.1实验平台我们采用的是Keil Soft

24、ware生产的Cx51编译器。运行在Windows XP操作平台下。 开启计算机进入Keil C51编译器介面。 Keil C51编译器介面4.2 实验步骤4.2.1编写程序代码程序代码分为3个模块:中断模块、延时模块,循环模块中断程序 ORG001B LJMPDSD ORG 0030H DSD: INC R3 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH CJNE R3,#20,FHDEC R0 DEC R1MOV R3,#00HFH: RETI延时程序DELAY: MOV R4,#08H 延时1秒主程序 DE2: LCALL DELAY1 DJNZ R4, D

25、E2 RETDELAY1:MOV R4,#00H ;延时125us 子程序 D1: MOV R5,#00H D2: DJNE R5,DL2 DJNE R4,D1 RET 循环程序DIAOY:;循环控制子程序CJNE R2, #01H, AA;判断不相等刚跳转JB FLAG1, AA;FLAG1为1则跳转LJMP SEC ;跳转到SECAA:CJNE R2, #02H, AAAJB FLAG2, AAASETB F0LJMP THRAAA:CJNE R2, #03H, BBJB FLAG3, BBLJMP FOUBB:CJNE R2, #04H, BBB;判断不相等则跳转CLR F0;F0位清0

26、CLR FLAG1CLR FLAG2CLR FLAG3LJMP FIRBBB:CJNE R0, #00H, SGLINC R2;R2加1LJMP DIAOY4.2.2 调试程序 = 1 * GB2 打开Keil软件,新建工程; = 2 * GB2 选择芯片; = 3 * GB2 新建文档,把编写好代码写入文档并保存了ASM文件; = 4 * GB2 把保存的文档加载到Source Group; = 5 * GB2 编译程序; = 6 * GB2 设置转换成16进制; = 7 * GB2 运行程序的结果;2. 把编译好的16进制文件(jtd.hex) 输入单片机AT89S51仿真器和对其进行初始

27、化。3给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直到与预定目的一致。以下是在程序调试过程中出现在情况:通电以后,把程序装好,数码管是的数字不变,按复位键后重新开始还是如此。经过和同组人的共同分析后,发现是中断系统在计时到了1秒以后,赋的初值R0,R1没有减1,修改如下:DSD:INC R3MOV TH1, #3CHMOV TL1, #0B0HCJNE R3, #20, FH;判断是否够 1秒DEC R0DEC R1MOV R3, #00H;R3清0FH:RETI;中断返回通电以后,东西、南北方向的时间均递减,20秒以后,东西方向的20秒用完,变成东西左转、南北各20秒,此

28、后,时间显示和红绿灯不再变化,一直保持这一状态。经过老师和同组人的共同努力,终于找到原因,问题出在循环控制过程中,当经过第一次20秒判断后,寄存器R2加1,当再次运行到循环控制处时,判断R2与#01H相同,程序跳到SEC处执行,此后一直如此。解决方法如下:设置3个标记位:FLAG1 BIT 00H;标记00H位FLAG2 BIT 01HFLAG3 BIT 02H在循环控制中加入判断如:DIAOY:CJNE R2, #01H, AA;判断不相等刚跳转JB FLAG1, AA;FLAG1为1则跳转LJMP SEC ;跳到SEC在跳到SEC后,在运行到该程序后加给FLAG1置数,程序如下:SEC:CLR P1.0SETB P1.1CLR P1.2CLR P1.3MOV R0, #20MOV R1, #20SETB FLAG1LJMP SGL本系统就是利用了AT89S51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片(如:74HC164、74LS04

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论