毕业论文-基于STC89C51单片机的交通灯控制器设计_第1页
毕业论文-基于STC89C51单片机的交通灯控制器设计_第2页
毕业论文-基于STC89C51单片机的交通灯控制器设计_第3页
毕业论文-基于STC89C51单片机的交通灯控制器设计_第4页
毕业论文-基于STC89C51单片机的交通灯控制器设计_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

1、.毕业论文基于STC89C51单片机的交通灯控制器设计姓 名: 所在系部: 机电工程系 班级名称: 12级电气1班 学 号: 指导老师: 2015年 5 月基于STC89C51单片机的交通灯控制器设计摘 要 随着社会经济的发展,交通在人们的日常生活中占有重要的地位,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。 本设计根据十字路口南北和东西车流量的实时监控,基于ST

2、C89C51单片机设计了一种交通灯控制器,利用发光二极管和数码管实现了设置红、绿灯亮灭时间的功能,红、绿灯循环点亮,绿灯倒计时结束为5秒的黄灯闪烁警示,利用按键使得系统具有倒计时,时间设置,紧急情况处理,根据具体情况手动控制的功能。软件上采用KEIL C 编程,主要编写了主程序,数码管显示程序,中断程序,延时程序等。通过实验证明了本系统能够很好地实现本次设计要求的功能,还拥有增减、倒计时时间、南北通行、东西通行和紧急模式等5个功能,而且精确度够高、操作简单、稳定性较强等优点。关键词:交通灯;单片机;模拟The traffic light controller designAbstract Wi

3、th the development of social economy, the transportation is very important in People's Daily life,and the urban transportation problem more and more aroused people's concern. The relations coordination of People,cars and the road has become one of the important issues that the traffic manage

4、ment department needs to solve. So, it has increasingly become major problems of the traffic transportation management and the urban planning departments to solve that how to take the suitable control method to make the best use of urban freeway which has consumed manpower and material resources, an

5、d to relieve traffic congestion of the main road-ramp, and the surrounding areas of urban.According to real-time monitoring crossroads of north-south and east-west traffic, this system design of a traffic light controller based on STC89C51 microcontroller, using digital tube LED and a set of red and

6、 green light will consume time function, traffic light cycle light, green light for 5 seconds of the end of the countdown yellow lights Flashing warning, using the button makes the system has a countdown, time Settings, emergency processing, manual control and vehicle violation detection based on th

7、e specific situation, and other functions. In the light of the KEIL C software programming, mainly to write the main program, LED digital tube display program, interrupt program delay procedures, etc. Proved by experiments that the system can achieve good functions of this designs requirements, also

8、 has a countdown time increase or decrease, north-south traffic, east-west traffic and emergency mode and other five functions, besides has advantages of precision and high stability, simple operation, strong enough.目 录1 绪论11.1 交通灯控制器的研究背景11.2 交通灯控制器的研究意义21.3 交通灯控制器的发展前景32 总体设计方案52.1 设计思路52.2 系统总框图6

9、2.3 系统工作原理63 硬件设计83.1 系统设计83.2 主控模块设计83.2.1 STC89C51内部结构93.2.2 STC89C51单片机的I/O口功能104 软件设计224.1 编程语言224.2 控制程序设计234.3 主程序模块244.4 定时器T0254.5 按键子程序设计284.6 显示程序模块315 调试与检测345.1 硬件调试345.2 软件调试355.3 软硬联试355.4 性能测试结果356 结论37参考文献38谢 辞39附录A:系统原理图40附录B:系统实物图41附录C:系统元件清单42附录D:系统源程序43;661 绪论1.1 交通灯控制器的研究背景交通信号灯

10、关系着人们的生命和财产安全,目前,红绿灯安装在各个路口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的扳手式信号灯,用以指挥车马通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。

11、红灯亮表示“停止”,绿色亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左右转弯车辆都必须让

12、合法地正在路口内行驶的车辆和过人行道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通管理中引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤

13、造成的经济损失,同时也减小了工作人员的劳动强度。中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。1.2 交通灯控制器的研究意义交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。汽车现已成为人们日常生活中必不可少的交通工具。汽车在给人们带来便利的同时,也带来了一系列令人困惑的问题,如环境污染、交通拥挤、交通事故频繁发生,给人们的生命和财产带来了很

14、大的损失。城市交通问题困扰城市发展、制约城市经济建设的重要因素,人们对交通有效控制的意识越来越强烈。随着我国国民经济和城市化的迅速发展,城市交通堵塞问题越来越严重,而街道各十字路口,又是车辆通行的瓶颈所在。解决城市交叉口的交通拥挤问题越来越紧迫。对于拓宽道路,投资甚多,且征用土地在城市中难于实现,因此改善道路交通设施,提高现有道路的利用率不失为解决道路拥塞比较好的方案。交通信号灯的出现,使交通得以有效管制。对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。世界卫生组织的报告指出,全世界每天有3000多人死于道路交通伤害。因道路交通伤害引起的85%的死亡以及90%的伤残调整寿命年发生在

15、中、低收入国家。研究表明,2000到2020年,道路交通事故死亡人数在高收入国家将下降30%左右,而在中、低收入国家则会大幅度增加,如果不采取适当措施,到2020年,道路交通伤害预计将成为全球疾病与伤害负担的重要原因。交通安全问题不仅仅是交通领域的问题,它的严重程度已经成为社会问题。根据联合国和世界卫生组织的有关报告,人们每天所而对的各种问题中,道路交通伤害是最复杂也是最危险的。据估计,全世界每年约有120万人死于道路交通事故,受伤者多达5000万人。如果不采取强有力的预防措施,今后20年中道路交通事故致死和受伤人数将增加65%左右。交通安全已经成为一个波及社会各个部门的全球性问题。交通问题是

16、世界各国面临的共同问题。交通拥挤造成了巨大的时间浪费,加大了环境污染。我国大多数城市的平均行车速度已降至20km/h以下,有些路段甚至只有7-8km/h;由于车辆速度过慢,尾气排放增加,使得城市的空气质量进一步恶化。 交通问题造成了巨大的经济损失,据研究报道,美国每年因交通阻塞造成的经济损失约410亿美元,日木东京每年因交通拥挤造成的时间损失相当于1000多亿美元。为了缓解经济发展带来的交通运输方面的压力,尽量的利用现有的资源,使其发挥最大的作用,各国都加大了对智能交通系统的研究和建设的力度。交通控制和管理性能方面通常是评估一些重要的属性,例如:成本、时间、可靠性和安全性。一个有效的和高效的流

17、量控制和管理系统有利于社会的大量减少燃料消耗,保护环境,促进发展,减少交通拥堵,提高安全性。交通控制灯是我们日常生活中重要的交通控制设施,安装在各个交叉路口,在疏导车辆通行中有着很重要的意义。1.3 交通灯控制器的发展前景我国对城市交通灯控制系统的分析与研究工作起步较晚,20世纪80年代,我国一方面把城市交通灯技术的提高放在了交通改变的核心地位;另一方面制定了开发与引进相结合的方针政策,逐渐建立了一些简单的城市交通灯控制系统。在北京和上海等大城市,采用简易单点的信号灯,并与国外的几个交通灯控制系统相结合使用,但对于西安、成都等中小城市,主要采用的仍然是简易单点信号灯以及与集中协调式的信号灯。而

18、以上系统的红绿灯的时间,都是事先预设好的,在运行期间固定不变。这些交通信号灯控制系统暂时虽然获得较好的效果,对其交通起到了一定的作用。随着我国机动车的增多,这些简单的控制系统已经远远不能够满足当前我国交通的需求。为了解决上述问题,我国的交通灯控制系统需要进行的改进主要包括:完善交通灯控制系统的实时性;降低成本、使其安装及维修方便;合理解决混合交通流问题:实现区域网络协调控制:对于小型的路口,应研制并设计能够对交通流量进行监控的交通信号灯系统。所以,现今的交通控制系统不断趋向智能化。智能交通系统是指人们将先进的信息技术、数据通讯传输技术、电子控制技术、传感器技术以及计算机处理技术等有效地综合运用

19、于整个运输体系中,从而建立起的一种在大范围内、全方位发挥作用的实时、准确、高效的运输综合管理系统。实施智能交通系统工程不仅能够提高交通的效益与效率,增强交通安全性,降低环境污染,而且有利于合理利用土地与能源,甚至对于国民经济的持续发展与社会经济效益的全而提高都是至关重要的。2 总体设计方案2.1 设计思路交通灯是城市交通的重要指挥系统,与人们的日常生活密切相关。随着经济的快速发展,城市中的车辆逐渐增多,交通拥挤和堵塞现象日趋严重,引起交通事故频发、环境污染加剧等一系列问题。交通灯控制系统为解决这些问题起到重要的作用。本设计是采用MSC-51系列单片机STC89C52为中心器件来设计交通灯控制器

20、,发光二极管和数码管实现了设置红、绿灯燃亮时间和显示的功能,控制十字路口红绿灯以及人行道红绿灯交替亮和熄灭。通过按键进行对交通控制系统的控制,实现增减数码管倒计时时间、南北通行、东西通行和全路禁行等功能。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用STC89C51单片机以及单片机最小系统和

21、三极管驱动电路以及外围的按键和数码管显示等部件,设计一个基于单片机的交通灯设计。设计通过两位一体共阴极数码管显示,并能通过按键对定时进行设置。本系统实用性强、操作简单、扩展功能强。设计通过STC89C51单片机以及单片机最小系统和74HC245驱动数码管(数码管更亮,白天看的很清楚)以及外围的按键和数码管显示等部件,数码管倒计时显示时间。使其能模仿城市十字路口交通灯的能力,并满足对特殊情况的控制要求。每条道路上各配有一组红、黄、绿交通信号灯,其中红灯亮,表示该道路禁止通行;黄灯亮表示该道路上未过停车线的车辆禁止通行,已过停车线的车辆继续通行;绿灯表示该道路允许通行。用数码管显示各灯燃亮倒计时时

22、间。该电路自动控制十字路口两组红、黄、绿交通灯的状态转换,实现十字路口自动化。并设定黄灯常亮(深夜模式)、禁行、东西通行、南北通行、切换多种燃亮模式,最后实现燃亮时间可调的功能。用以满足各时段各中路况的通行能力。2.2 系统总框图本设计以单片机为控制核心,采用模块化设计。主要有以下几个功能模块:单片机控制系统模块、驱动显示模块、LED倒计时模块、信号灯状态模块、按键控制模块、复位电路、振荡电路和最小系统外围接口组成。 单片机红黄绿信号灯8段LED数码管复位电路最小系统外围接口按键控制驱动显示图2-1 系统的总体框图单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基本上可以指挥交通

23、的具体通行。接入LED数码管可以显示倒计时以提醒行驶者,更具人性化。按键设置模块可对系统输入模式进行选择及设置具体通行时间。2.3 系统工作原理(1)按键输入设置交通灯初始模式,并设置燃亮时间。通过89C51的P3口输入到系统;(2)通过89C51单片机的P0口向驱动电路的数据口传送信息,再由驱动电路驱动LED数码管显示倒计时的时间;(3)通过89C51单片机的P2口显示红、黄、绿三色灯的燃亮时间。3 硬件设计3.1 系统设计根据系统框图,可知本系统主要有单片机控制系统模块、驱动显示模块、LED倒计时模块、信号灯状态模块、按键控制模块、复位电路、振荡电路等组成。 单片机89C51信号灯发光二极

24、管时间显示LED数码管复位电路按键74HC245图3-1 硬件结构图按键主要是用来设置各信号灯燃亮的模式和时间,74HC245用来驱动8段LED数码管显示时间,用发光二极管模拟信号灯。单片机RST引脚上接复位电路,XTAL1和XTAL2接入晶振时钟电路。3.2 主控模块设计主控模块是对整个系统进行控制,是整个系统的“大脑”,在本次设计中,采用STC89C51作为主控芯片。与MCS-51单片机产品兼容,8K字节在系统可编程Flash存储器,1000次擦写周期,全静态操作:0Hz33Hz,三级加密程序存储器,32个可编程I/O口线,三个16位定时器/计数器,八个中断源,全双工UART串行通道,低功

25、耗空闲和掉电模式,掉电后中断、可唤醒,双数据指针,掉电标识符。其有以下主要优点:高速,高可靠;低功耗,超低价;加密性强,无法解密;强抗静电,强抗干扰。 3.2.1 STC89C51内部结构STC89C51是一种低功耗,高性能的CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有8位CPU和在线系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。图3-2 内部结构图STC89C51具有以下标准功

26、能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C51可降至0Hz静态逻辑操作,支持2种软件可选择节电模式,空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作暂停,直到下一个中断或硬件复位为止。 3.2.2 STC89C51单片机的I/O口功能图3-3 89C51单片机引脚图在STC89C51中,有四个双向I/O端口P0P3口,每个端口都是由锁存器、输出驱动器、输入缓冲

27、器组成。当CPU控制系统与外部设备交换信息时,都是通过端口锁存器进行的。四个I/O端口都可作输入输出使用,其中P0和P2口通常用于对外部存储器的访问。P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平,对P0端口写“1”时,引脚用作高阻抗输入。而访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。而在Flash编程时,P0口也用来接收指令字节,在程序校验时,输出指令字节,程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平,对P1端口写“

28、1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用,作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所示。在Flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0:T29(定时器/计数器T2的外部计数输入),时钟输出;P1.1:T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制);P1.5:MOSI(在线系统编程用);P1.6:MISO(在线系统编程用);P1.7:SCK(在线系统编程用);P2口:P2口是一个具

29、有内部上拉电阻的8位双向I/O口。P2输出缓冲器能驱动4个TTL逻辑电平,对P2端口写“1”时,内部上拉电阻把端口拉高,可以作为输入口使用。而作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址,在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高

30、,可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为STC89C51特殊功能(第二功能)使用,如下所示。在Flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0:RXD(串行输入口);P3.1:TXD(串行输出口);P3.2:INTO(外中断0);P3.3:INT1(外中断1);P3.4:TO(定时/计数器0);P3.5:T1(定时/计数器1);P3.6:WR(外部数据存储器写选通);P3.7:RD(外部数据存储器读选通);P3口还接收一些用于Flash闪存编程和程序校验的控制信号。RST:复位输入,当振荡器工作时,RST引脚

31、出现两个机器周期以上高电平为单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSE

32、N:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平,接(VCC端),CPU则执行内部程序存储器的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:反向振

33、荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.3 复位电路的设计单片机芯片的第9脚RST是复位信号输入端。单片机系统在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态等情况下都需要复位。复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态开始工作。STC89C51单片机的复位靠外部电路实现,信号从RST引脚输入,高电平有效,只要保持RST引脚高电平2个机器周期,单片机就能正常复位。常见的复位电路有上电复位电路和按键复位电路二种,本设计使用按键复位。图3-4 复位电路图3.4 时钟电路的设计时钟电路用于产生MCS

34、-51单片机工作时所必须的时钟控制信号。其内部电路在时钟信号控制下,严格地按时序执行指令进行工作。在执行指令时,CPU首先要到程序存储器中取出需要执行的指令操作码,然后译码,并由时序电路产生一系列控制信号去完成指令所规定操作。图3-5 晶振电路单片机是一种时序电路,必须要有时钟信号才能正常工作。单片机芯片的18脚、19脚分别为片内反向放大器的输出端和输入端,只要在18脚(XTAL2)和19脚(XTAL1)之间接上一个12MHz的晶振,再加上2个30pF的瓷片电容即可构成单片机所需的时钟电路。他们构成一个稳定的自激振荡器。该电容的大小影响振荡器频率的高低、振荡器的稳定性和起振的快速性。为单片机提

35、供标准时钟。其中两个瓷片电容起微调作用。此外,当采用外部时钟时,19脚(XTAL1)接地,18脚(XTAL2)接外部时钟信号。3.5 74HC245总线收发器74HC245是一种典型的CMOS型三态缓冲门电路,双向三态输出,八线双向收发器。主要应用于大屏显示,以及其它的消费类电子产品中增加驱动。电压工作范围:3V5V。图3-6 74HC245引脚图第1脚DIR,为输入输出端口转换用,DIR=“1”高电平时信号由“A”端输入“B”端输出,DIR=“0”低电平时信号由“B”端输入“A”端输出。第2-9脚“A”信号输入输出端,A0=B0,A7=B7,A0与B0是一组,如果DIR=“1”OE=“0”则

36、A1输入B1输出,其它类同。如果DIR=“0”OE=“0”则B1输入A1输出,其它类同。第11-18脚“B”信号输入输出端,功能与“A”端一样,不再描述。第19脚OE,使能端,若该脚为“1”A/B端的信号将不导通,只有为“0”时A/B端才被启用,该脚也就是起到开关的作用。第10脚GND,逻辑地。第20脚VCC,电源正极。本设计中使用74HC245用于实现数据总线的双向异步通信。为了保护脆弱的主控芯片,通常在主控芯片的并行接口与外部受控设备的并行接口间添加缓冲器。当主控芯片与受控设备之间需要实现双向异步通信时,自然就得选用双向的八路缓冲器了,74HC245就是面向这种需求的。表3-1 74HC2

37、45真值表控制输入运行GDIRLLB数据到A总线LHA数据到B总线HX隔开3.6 LED数码管数码管按段数分为7段数码管和8段数码管,8段数码管比7段数码管多一个发光二极管单元(由小数点显示);按能显示多少个“8”可分为1位、2位、4位等数码管,按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。LED数码管显示器是由发光二极管显示字段的51单片机输出设备,LED数码管的结构简单。因此,单片机应用系统常采用八段LED数码管作为显示器,这种显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管

38、,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。图3-7 共阳极共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。图3-8 共阴极数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。第一类为静态显示驱动:静态驱动也称直流驱动。静态驱动是指

39、每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89C51单片机可用的I/O端口才32个,实际应用必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。第二类为动态显示驱动:数码管动态显示接口是单片机中应用最广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a、b、c、d、e、f、g、dp”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控

40、制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显出字形,没有选通的数码管就不亮。通过分时轮流控制各个数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动,在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度够快,给人的感觉就是一组稳定的显示数据,不会有闪烁的感觉,动态显示的效果和静态显示是一样的,但能够节省大量的I/O端口,而且功耗更低。基于交通灯所要实现的的功

41、能要求,所以选用第二种,动态显示驱动。本设计采用的是0.36英寸10个管脚的2位共阳极数码管。图3-9 内部结构图3.7 信号灯电路设计本设计用红、黄、绿三色发光二极管模拟红、黄、绿三色交通信号灯。发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性。当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,此时产生的能量大部分以光的形式出现,因此而发光,当所有二极管都发出光时,大多数都不是很有效的,在普通二极管里,半导体材料本身吸引

42、大量的光能而结束。发光二极管是由一个塑性灯泡覆盖集中灯光于一个特定方向。由于不同材料的禁带宽度不同,所以由不同材料制成的发光二极管会发出不同波长的光。另外,有些材料由于组分和掺杂不同,例如,有的具有很复杂的能带结构,相应的还有间接跃迁辐射等,因此有各种各样的发光二极管。发光二极管在制作时,使用的材料有所不同,那么就可以出现不同颜色的光。发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等等。发光二极管的外形有圆形、长方形、三角形、正方形、组合形、特殊形等。常用的发光二极管应用电路有4种,即直流驱动电路,交流驱动电路,脉冲驱动电路,变色发光驱动电路。因此我们选的二极管颜色为红色、黄色、绿色。

43、绿灯是通行信号,面对绿灯的车辆可以直行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线。发光二极管有两个引脚,其中长引脚接电源正端,较短的引脚接电源负端。根据本设计的特点,红绿灯的显示不可少,红绿灯的显示采用普通的发光二极管。每个方向上设置红、绿、黄灯,总共4组。如果东西红灯亮,那南北方向就是绿灯亮,反之亦然,所以在硬件上连接图上也是对称分布的,如图所示。图3-10 信号灯分布图在本设计中,实际控制的灯只有6个,即:东西红灯、东西绿灯、东西黄灯,南北红灯、南北绿灯、南北黄灯。其中均是高电平有效。3.8 按键控制电路本设计设置了8个按键,

44、K0、K1、K2、K3、k4、k5、k6、K7。每个按键一段接地,另一端89C51单片机P3口各接口,低电平有效。P接增加倒计时时间、P接减少倒计时时间、P接南北通行、P接东西通行、P接紧急模式、P接深夜模式和P接切换状态。当按键按下端口接地,单片机捕获到低电平,从而知道相应的中断输入信息。时间可调:当主干道方向的车辆过多发生堵塞,正常的信号灯时序将会使交通状况更加恶化。所以设立增加倒计时时间、减少倒计时时间这2个功能按键,通过按键对时间进行手动设置,增加了人为的可控性,避免车少长等和减缓车多交通堵塞的麻烦。南北、东西通行:交通路口出现各种状况在所难免,如救护车等急行车通过时,必须其中一个方向

45、畅通无阻。因此需要在设计中加入按键进行中断控制。使其需要通行的方向绿灯一直燃亮,而另一端红灯一直燃亮。等到紧急情况结束,切换正常模式恢复交通指挥。紧急模式:交通路口出现紧急状况在所难免,如发生交通事故,我们都必须立刻停止当前车辆的行驶,毕竟这种情况应该是分秒必争的,时时刻刻关系着公共财产安全和个人安危。因此需要在设计中加入按键进行中断控制,当急行情况发生时,南北绿灯东西红灯或东西绿灯南北红灯,倒计时显示变为00不动。通过倒计时显示就可以知道路面情况正处于特殊状况后,提高人们的注意力。按键弹起,交通灯恢复中断前状态,数码管继续倒计时。深夜模式:在深夜时段,交通路口的车流量大幅度减少,这时正常的交

46、通模式不适合实际情况的需要。因此设置按键进行控制,当深夜时间车辆很少时,东西、南北方向四个黄灯同时燃亮,提醒人们注意交通情况,减速慢行,相互谦让,安全的通过交通十字路口。既保证了交通的安全,同时也减短通过交通路口的时间,提高效率。本设计采用轻触按键,其原理图如下所示。图3-11 轻触按键结构原理图1脚和2脚是导通的,3脚和4脚是导通的。所以说电路中只要接1、3脚或1、4脚或2、3脚或2、4脚就可以导通了。3.9 电源电路单片机芯片一般外接+5V电压,74HC245总线收发器外接电压VCC也是+5V。所以整个电路中所提供的电源为+5V。本设计采用DC电源提供电路电压,用USB电源线外接电源,DC

47、电源接口连接自锁开关,作为整个电路的总开关。图3-12 DC电源及自锁开关原理图DC电源的2、3脚接地,1脚实际是VCC(电源),但是电路中要接自锁开关,然后开关的另一个脚再接电源。自锁开关在电路中起到电源的开关作用,常开的其中一脚接DC电源插口电源脚,常开的另一脚接电路的VCC。4 软件设计4.1 编程语言在基于51单片机交通灯控制器的软件设计当中,采用C语言作为开发语言。与汇编语言相比,C语言在功能上、结构上、可读性、可维护性上有明显的优势,易学易用,因此出现了专门用于51系列单片机编程的C语言C51.目前最先进、功能最强大的C51编译器是Keil C51。在单片机的开发应用中,逐渐引入了

48、高级语言,C语言就是其中的一种。对用习惯了的汇编语言的人来说,高级语言可控性不好,不如汇编语言那样能够随心所欲。但是使用汇编语言会遇到很多问题,首先它的可读性和可维护性不强,特别是当程序没有很好标注的时候,其次就是代码的可重用性也比较低。使用C语言就可以很好的解决这些问题。C语言具有良好的模块化,容易阅读和维护等优点。由于模块化,用C语言编写的程序有很好的可移植性,功能化的代码能够很方便地从一个工程移植到另一个工程,从而减少了开发时间。用C语言编写程序比用汇编语言更符合人们的思考习惯,开发者可以更专心地考虑算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。很多系统特别是实时时钟系统都是

49、用C语言和汇编语言联合编写的。对时钟要求严格时,使用汇编语言是唯一的方法。除此之外,包括硬件接口的操作都应该用C语言来编写。语言的特点就是可以使程序员尽量少地对硬件进行操作,它是一种功能性和结构性很强的语言。对于大多数51系列单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点:(1)不需要了解处理器的指令集,也不必了解存储器的结构;(2)寄存器分配和寻址方式由编译器进行管理,编程时不需要考虑存储器的寻址和数据类型等细节;(3)指定操作的变量选择组合提高了程序的可读性;(4)可使用与人的思维更相近的关键字和操作函数;(5)与使用汇编语言编程相比,程序的开发和调试时间大大缩短;(6)C

50、语言中的库文件提供许多标准的列程,例如格式化输出、数据转换和浮点运算等;(7)通过C语言可实现模块化编程技术,从而可将已编制好的程序加入到信程序中;(8)C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,已完成的软件项目可以很容易地转换到其他的处理器或环境中。由于单片机硬件的限制。有些场合无法用C语言编写,而只能用汇编语言来编写程序。大多数情况下汇编程序能和用C语言编写的程序很好地结合在一起。4.2 控制程序设计本设计的全部控制程序实际上分为若干子程序:T0中断子程序,延时子程序,按键扫描子程序,键处理子程序,时间显示子程序、黄灯闪烁5s子程序等。根据设计的要求和功能,系统的工

51、作流程可以按如下方式进行:(1)程序设置初始时间,通过89C51单片机内部相应寄存器来实现;(2)由89C51单片机的定时器每秒钟通过P0口向74HC245的输入口输入信息,由74HC245的输出口显示红、绿、黄灯的燃亮时间,由89C51的P2口显示4组红、绿、黄灯的燃亮情况;(3)89C51通过程序设置每组信号灯的燃亮时间,通过程序设置红、绿、黄每组信号灯的燃亮状态;(4)当系统出现异常,通过手动复位方式,引起RESET复位信号复位系统。4.3 主程序模块主程序初始化和按键控制,首先将时间子程序、中断子程序、延时子程序、按键扫描子程序、键处理子程序和显示子程序分别进行初始化,然后启动定时器对

52、时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描按键程序,用无条件跳转指定返回,再调用显示程序,如此周而复始的循环,如下图所示。图4-1 主程序循环流程图LED状态信号灯总共有4个状态,中间间隔着一个5秒的黄灯闪烁时间。程序可根据按照流程图一步一步进行设计,然后把P2端口作为信号灯的输出端口来用二进制编码,编成8个状态,然后一个一个状态的输出,就可以实现信号灯的交替亮灭。再把P0端口作为数码管时间显示的输出端口。就可以实现数码管倒计时时间的功能。该交通信号灯控制系统的工作状态:(1)东西方向直行绿灯亮,南北方向红灯亮。表示东西方向车道允许直行,南北方向车道禁止通行。经过一定时间倒计时完

53、成后,南北红灯不变,东西黄灯闪烁5秒,转到下一工作状态。(2)南北方向直行绿灯亮,东西方向红灯亮。表示南北方向车道允许直行,东西方向车道禁止通行。经过一定时间倒计时完成后,东西红灯不变,南北黄灯闪烁5秒,转到下一个工作状态。东西方向绿灯亮,南北方向红灯亮,如此循环。图4-2 主程序流程图4.4 定时器T0延时方法可以有两种,一中是利用89C51内部定时器生溢出中断来确定1秒的时间,另一种是采用软延时的方法。本设计采用T0定时器方法来设定1S时间。其中T0定时又有两种方法:中断和查询。这里采用T0定时器中断方法。定时器工作的基本原理其实就是给初值,让它不断加1直至减完为模值,这个初值是送到TH和

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

55、5.536毫秒。这就是为什么扫描周期为50ms的原因。若使用软件则会耽搁程序流程,显然不可行。相反,时间计时方面却不可能只用计数器,因为显然1秒钟已经超过了计数器的最大定时时间,所以我们还必须采用定时器和软件相结合的办法才能解决这个问题。延时子程序:void delay(int ms)/延时子程序uint j,k;for(j=0;j<ms;j+)/延时ms for(k=0;k<124;k+);/大约1毫秒的延时在主程序中设定一个初值为20的软件计数器使定时器T0工作于方式1定时50毫秒,这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入它的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为0,为0表示1秒已到。定时器工作时必须给计数器送初值,将这个值送到TH和TL中。它是以加法计数的,并能从全1到全0时自动产生溢出中断请求。因此工作于方式1,定时器为16位计数器,其定时时间由下式计算:式中X为T0的初始值,该值和计数器工作方式有关。如单片机的主脉冲频率为12MHz,经过12分频方式0 方式1 所以,定时器T0工作于方式1,定时20次,就可定时1秒。定时中断子程序:void time0(void) interrupt 1 using 1 /定时中断子程序

温馨提示

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

评论

0/150

提交评论