基于51单片机的交通信号灯控制系统设计.docx
《基于51单片机的交通信号灯控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的交通信号灯控制系统设计.docx(29页珍藏版)》请在冰豆网上搜索。
![基于51单片机的交通信号灯控制系统设计.docx](https://file1.bdocx.com/fileroot1/2023-2/26/5ba3a3c2-af19-488b-8a9d-f8ab795dc12c/5ba3a3c2-af19-488b-8a9d-f8ab795dc12c1.gif)
基于51单片机的交通信号灯控制系统设计
基于51单片机的交通信号灯控制系统设计
毕业综合实践报告
题目:
基于单片机信号灯控制系统设计
姓名
张文轩
学号
2013191294096
学院
应用科技学院
专业
电子信息工程
指导教师
钮文良
企业指导教师
协助指导教师
2016年04月25日
摘要
近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往作为核心器件来使用。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
交通信号灯控制方式很多,本系统采用MSC-51系列单片机AT9S51和可编程并行I/O接口芯片89S51位中心器件来设计交通灯控制器,实现了能根据实际车流量通过89S51的P1口设置红绿灯点亮时间的功能,红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警告,本系统实用性强,操作简单,扩展功能强。
交通的亮灭规则为:
初始状态南北方向红灯亮,东西方向绿灯亮,延迟50s后,东西方向黄灯亮。
延迟10s后,南北方向绿灯亮,同时东西方向红灯亮,延迟40s后,南北黄灯亮,延迟10s后,南北方向红灯亮,东西方向黄灯亮,重复上述过程。
关键词:
交通灯AT89S51单片机
1绪论
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。
随着中国加入WTO,我们不但要在经济、文化等各方面与国际接轨,在交通控制方面也应与国际接轨。
如果交通控不好道路还是无法保障畅通安全。
作为交通控制的重要组成部份单片机。
因此,本人选择制作交通灯作为课题加以研究。
我国大中城市交通系统压力沉重。
交通管制当以人性化、智能化为目的,做出相应的改善。
以此为出发点,本系统采用的单片机控制的交通信号灯。
该系统分为单片机主控电路、键盘控制电路和显示电路三部分组成。
并在软硬件方面采取一些改进措施,实现了根据十字路口车流量、进行对交通信号灯的智能控制,使交通信号灯现场控制灵活、有效从一定程度上解决了交通路口堵塞车辆停车等待时间不合理等问题。
系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广阔的应用前景。
1.1交通灯的研究背景
随着城市经济的高速发展,机动化交通在城市交通中所占的比例不断增加。
但以机动车交通为主体的交通发展方式也给城市带来了诸多问题。
道路上汽车数量的增加,使得尾气污染、交通拥堵、交通事故等愈加严重,同时也降低了城市居民的出行安全保障(夏天,2010)。
城镇道路建设由于历史等原因的相对滞后,人们也越来越受到交通拥堵、交通事故频发等问题所带来的困扰,特别是街道的各十字路口,更成为交通网中通行能力的隘口和交通事故的多发源(覃娴,2012)。
交通安全问题不仅仅是交通领域的问题,它的严重程度已经成为社会问题。
根据联合国和世界卫生组织的有关报告,人们每天所而对的各种问题中,道路交通伤害是最复杂也是最危险的。
据估计,全世界每年约有120万人死于道路交通事故,受伤者多达5000万人。
如果不采取强有力的预防措施,今后20年中道路交通事故致死和受伤人数将增加65%左右。
交通安全已经成为一个波及社会各个部门的全球性问题。
世界卫生组织的报告指出,全世界每天有3000多人死于道路交通伤害。
因道路交通伤害引起的85%的死亡以及90%的伤残调整寿命年发生在中、低收入国家。
研究表明,2000到2020年,道路交通事故死亡人数在高收入国家将下降30%左右,而在中、低收入国家则会大幅度增加,如果不采取适当措施,到2020年,道路交通伤害预计将成为全球疾病与伤害负担的重要原因(王笑京,2008)。
交通问题是世界各国面临的共同问题。
交通拥挤造成了巨大的时间浪费,加大了环境污染。
我国大多数城市的平均行车速度已降至20km/h以下,有些路段甚至只有7-8km/h;由于车辆速度过慢,尾气排放增加,使得城市的空气质量进一步恶化。
交通问题造成了巨大的经济损失,据研究报道,美国每年因交通阻塞造成的经济损失约410亿美元,日木东京每年因交通拥挤造成的时间损失相当于1000多亿美元。
为了缓解经济发展带来的交通运输方面的压力,尽量的利用现有的资源,使其发挥最大的作用,各国都加大了对智能交通系统的研究和建设的力度(梁琳,2008)。
1.2国内外科研现状
智能交通系统的研究和推进在我国还处于起步阶段,但ITS作为跨世纪经济增长点和交通系统建设必然选择的重要性已得到国家相关部门的高度重视。
1998年1月交通部正式批复成立交通智能运输系统工程研究中心(ITSC)。
为加强该中心在交通智能交通系统的开发及试验能力,投资1400万元建设交通智能运输系统中心试验室,将为今后国家制定道路交通运输的发展和政策提供科学依据,现已完成了“交通智能运输系统发展战略研究”。
1998年2月,在国家科委的领导下,交通智能交通系统工程研究中心还与欧盟合作成立了中欧ITS信息服务中心(STICNISC/ITS),并于同年7月正式向国际社会提供基于Internet的信息咨询和技术服务。
1.3智能交通在东亚地区的发展情况
韩国的智能交通系统示范工程选在光州市,该工程预计耗资100亿韩元(1250万美元),选取了交通感应信号系统、公交车乘客信息系统、动态线路引导系统、自动化管理系统、即时播报系统、电子收费系统、停车预报系统、运行中测重系统、智能交通系统中心建立9项内容进行开发和检测智能交通系统技术和效益,并以此验证智能交通在韩国的适用性。
香港早在1977年就在九龙设置了一套电脑化区域交通控制系统,现在全港约有320组交通灯由电脑控制,有利于车辆尽快通过交叉口的时间。
公路上所有车辆都配有无线对讲机,随时向公司报告行车情况并接受公司的行车指示。
2单片机概述
单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用英文字母的缩写MCU表示单片机,它最早是被用在工业控制领域。
单片机由芯片内仅有CPU的专用处理器发展而来。
最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。
INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
早期的单片机都是8位或4位的。
其中最成功的是INTEL的8031,因为简单可靠而性能不错获得了很大的好评。
此后在8031上发展出了MCS51系列单片机系统。
基于这一系统的单片机系统直到现在还在广泛使用。
随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。
90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。
随着INTELi960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。
目前,高端的32位单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。
而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。
事实上单片机是世界上数量最多的计算机。
现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。
手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。
而个人电脑中也会有为数不少的单片机在工作。
汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!
单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。
概括的讲:
一块芯片就成了一台计算机。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可,用它来做一些控制电器一类不是很复杂的工作足矣了。
我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它的身影!
它主要是作为控制部分的核心部件。
它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!
但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!
只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!
对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。
可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等。
现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。
究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。
第三章芯片简介
3.1AT89C51芯片简介
1、主要元器件介绍
单片机主控电路的主要元件是AT89C51,
AT89C51是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技能生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的处理方案。
AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规要领执行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
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口同时为闪烁编程和编程校验接收一些控制信号。
ST:
复位输入。
当振荡器复位器件时,要保持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.274HC244芯片简介
74HC244芯片是一个八同相三态缓冲器/线驱动器如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为74HC244,由该芯片可构成三态数据缓冲器。
74HC244芯片的引脚排列如图3-1所示。
图3-174HC244芯片的引脚排列
74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。
当I/O和2/OE都为低电平时,输出端Y和输入端A状态相同;当I/O和2/OE都为高电平时,输扩展阅读:
74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。
当1C和2G都为低电平时,输出端Y和输入端A态相同;当1G和2G都为高电平时,输出呈高阻态。
3.3LED晶体管分析
简单的LED显示器有LED状态显示器(俗称发光二极管)、7段LED显示器(俗称数码管)和16段LED显示器。
发光二极管用于显示系统的两种状态;数码管用于显示数字;LED16段显示器用于字符显示。
这里用7段数码管。
7段数码管由8个发光二极管构成,通过不同组合可用来显示数字0~9,字符A~F、H、L、P、R、U、Y等及减号“-”与小数点“.”其外形结构及动静态显示共阴阳接法如图3-2所示:
图3-2数码管图及动静态显示共阴阳接法图
第四章设计思路
本设计采用MSC-51系列单片机来设计交通灯控制器,能根据实际车流量设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示;东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。
红灯亮禁止通行,绿灯亮允许通行。
黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。
(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。
时间为60秒(可设定)。
(2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。
(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。
时间为80秒(可设定)。
东西方向车流大通行时间长。
本设计在东、西、南、北四个方向各有红黄绿三个灯,在东西方向有两个数码管,在南北方向也有两个数码管。
实际交通通路图4-1如下:
图4-1实际交通通路
第五章交通信号灯硬件设计
5.1交通信号灯硬件设计说明
本系统选用MSC-51系列的AT89C51单片机作为控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89C51单片机的驱动能力有限,所以信号灯控制器由两片74HC244实现总线的驱动,一个74HC244完成位控的控制和驱动,另一个74HC244完成数码管的7段输出,在输出口上个串联一个100欧姆的电阻和7段数码管限流。
通过P2用做输出显示控制口。
P0口通过电阻和数码管控制LED数码管实现交通倒计时的记录,P3.0~P3.5则实地点亮红绿黄灯的控制,P1口当做普通输入口直接控制人行道红绿灯规律变化。
当单片机复位之后,默认处于倒计时模式,启动定时器,定时器每隔150us溢出一次,根据定时器溢出次数来计时,到1秒时将时间的计数器减一,当“设置键”按下,存放倒计时初值的空间由0变为1,切换到设置模式。
可以使用“递增键”“递减键”对计时初值进行修改。
按下“确认键”时,回到计时模式开始以新的初始值进行倒计时,当倒计时为0时,存放时间的空间里的内容由1变为2,处于闪烁状态,在这种状态下,根据按键的情况有分别切换到计时和设置状态。
5.2电源电路
电源电路具体模拟电路图5-1所示:
图5-1电源模拟电路
5.3总体硬件设计
交通信号灯采用发光二极管共阴极接法,当输入高电平时二极被点亮。
图为对应的交通信号灯的电路图为图:
图5-3交通信号灯的红绿灯电路图
其中D1,D4,D6为东西方向红绿灯,D2,D3,D5也为东西方向红绿灯,D8,D10,D12为南北方向红绿灯,D7,D9,D11为南北方向红绿灯。
5.4交通信号控制码
交通灯控制电路的核心元件采用单片机AT89C51,其内部带有4KB的ROM,无须扩展存储器。
信号灯的控制由单片机的p1.0~p1.5控制,6个信号灯以共阴极方式连接,当P1口输出为高电平时信号灯点亮,为实现上述控制要求,P1口共输出四种控制码如表5-1所示:
表5-1P1口输出控制码列表
B道绿灯
B道黄灯
B道红灯
A道绿灯
A道黄灯
A道红灯
控制码
状态说明
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
0
0
0
0
1
1
0
0
0CH
A道放行B道禁止
0
0
0
0
1
0
1
0
0AH
A道警告B道禁止
0
0
1
0
0
0
0
1
21H
A道禁止B道放行
0
0
0
1
0
0
0
1
11H
A道禁止B道警告
5.5倒计时显示设计
要实现计时功能则需要使用定时器来计时,通过设置定时器的初始值来控制溢出中断时间的时间间隔,再利用一个变量记录定时器的溢出的次数,达到定时1秒的功能。
当即使每到1秒后,东西、南北信号灯个状态的暂存剩余时间的变量减1。
但暂存变量的时间减到0时,切换至下一个状态,如此循环重复执行。
本设计采用动态扫描,用4个数码管分别显示东西、南北的倒计时,将暂存各状态剩余时间的数字从变量中提取出“个位”和“十位”,用动态扫描的方式在数码管中显示。
整个程序依据定时器的溢出数来计时,每计时1秒则相应状态的时间减1,一直减到0时触发下一个状态的开始。
其具体显示状态如图5-4所示:
图5-4动态扫描LED显示
5.6复位电路设计
单片机复位是使CPU初始化操作,主要是使CPU与其他功能部件都处在一个确定初始状态,并从这个状态开始工作。
复位后PC=0000H,是单片机从第一个单元取指令。
无论是在单片机刚接上电源时还是断电后或者发生故障后都要复位。
单片机复位期间不产生ALE和PSEN信号,即ALE=0和PSEN=1,复位期间不会有任何取指令操作。
在RST引脚持续加上两个机器周期(24个振荡周期)的高电平,单片机即发生复位。
例如,若时钟频率为12MHz,每个机器周期为1us,则只需2us以上时间的高电平即可实现复位。
复位电路图如图5-5所示:
图5-5复位电路
该电路除具备上电复位功能外,若要复位,则只需按图中的RESET键,此时,电源Vcc经电阻R1、R2分压,在RST端产生一个复位高电平。
复位后内部各专用寄存器状态如表5-2所示,其中“@”表示无效位。
表5-2专用寄存器状态显示表
寄存器
复位状态
寄存器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0~P3
FFH
SCON
00H
IP
@@000000B
SBUF
不定
IE
0@@00000B
PCON
0@@@0000B
5.7时钟电路设计
时钟电路用于产生单片机工作所需要的时钟信号,唯一的时钟信号控制下的时序可以保证单片机各部件的同步工作。
根据产生的方式不同分为内部和外部两种时钟电路,本设计使用内部时钟,电路图如5-6所示:
图5-6内部时钟电路图
89c51芯片内部有一个高增益反相