《基于单片机的交通灯控制器的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于单片机的交通灯控制器的设计与实现.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于单片机的交通灯控制器的设计与实现摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用本设计采用74190 芯片倒计时控制,每个方向用两片相连实现,另外用74153芯片,因为分析中设置的时间末位均为5,所以只要用一片74153 对高位置位,将低位的初值预置锁定
2、为5,而高位则根据需要由反馈部分提供预置值。绿灯时间可检测车流量并可通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。 关键词:单片机,交通灯,车流量 Microcontroller-based traffic light controller design and implementation of Abstract: With the rapid development of science and technology in recent years, SCM applications are deepening at the same time promote the grow
3、ing of traditional control detection technology updates. In real-time detection and automatic control of the microcomputer application system, the microcontroller is often used as a core component, only the microcontroller is not enough knowledge, but also based on specific hardware structure of har
4、dware and software combination to be improved. Crossroads shuttle vehicles, pedestrians bustling, car dealers driveway, people walkways, methodical. Then rely on to achieve this discipline of the order of it? Is the traffic lights by the automatic control system. Traffic signal control many ways. Th
5、e system uses this design uses a 74190 chip countdown control in each direction, connected with the two realized, also used the 74153 chip, because the time set Bottom of the analysis are five, so as long as 74,153 pairs of high position with a bit of the low initial pre-locked to 5, while the high
6、is provided as needed by the feedback part of the preset values. Green time of traffic flow can be detected by a double-digit LED display. The system practical, simple, extending strong function. Keywords: microcontroller, traffic lights, Traffic flow 1 绪论 今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在1
7、9世纪就已出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯
8、,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用 2 交通管理方案论证 2.1 设计任务东西 (A)、南北
9、(B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。红灯的设计时间为40秒,绿灯及左转绿灯各为20秒。设A道和B道的车流量相同。 2.2 方案介绍 整个交通灯控制由四个状态组成,可以用程序设计实现,也可用时序逻辑实现.以下方案就是分别用了这两种方法。 方案1 设计思想:采用分模块设计的思想,程序设计实现的基本思想是一个计数器 , 选择一个单片机,其内部为一个计数,是十六进制计数器,模块化后,通过设置或程序清除来实现状态的转换, 由于每一个模块的计数都不是相同, 这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加
10、一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数, 如图中A道和B道,分别为次干道的置数选择和主干道的置数选择。以主干道为例,简述其设计思想。如前分析,已经确定该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表 表1主干道的置数表 状态 主干道预置数 次干道预置数 00 40 20 01 不要置数 20(左转) 10 20 40 11 20(左转) 不要置数 由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的四个状态去译码,从而得到不同的输出,即预置数,由上分
11、析可用一个计数器和跳转指令去完成的预置数。 而红绿灯的显示也是一样,由状态分析可以得出红绿灯的变化表: 表2红绿灯的变化表 状态 主干道灯显示 次干道灯显示 00 红灯 绿灯 01 红灯 左转绿灯 10 绿灯 红灯 11 左转绿灯 红灯 通过这张表就可以用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本
12、身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组电路去判断符合的状态。 方案2 本方案分三步: (1)要建立三路信号灯的控制系统,本设计采用7408 芯片通过组合逻辑控制三路灯的显示关系。 (2)建立显示控制系统,本设计采用74190 芯片倒计时控制,每个方向用两片相连实现,另外用74153芯片,因为分析中设置的时间末位均为5,所以只要用一片74153 对高位置位,将低位的初值预置锁定 表3红绿灯的变化表 状态 主干道灯显示 次干道灯显示 00(15S) 红灯 绿灯 01(05S) 红灯 黄灯 10
13、(15S) 绿灯 红灯 11(05S) 黄灯 红灯 (3)而高位则根据需要由反馈部分提供预置值。 (4)建立反馈和细节连接部分,本部分主要解决显示和灯控的同步问题本系统采用倒计时系统减为0,如当系统减为0 时通过两个D触发器得到两个变量,即为开头分析中的状态,通过它的变化得到不同的逻辑关系,驱动74153 控制哪组灯亮(对应关系如表所示),另外他还要同步反馈到显示系统的置数环节。 注意:本实验中若采用更复杂的四片74190控制主干道的两组灯,再用八片74153分别对74190置数可实现任意数值的交通灯系统。另外对7408 片子的控制红灯的端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯
14、时,另一边的红灯在闪烁。 方案比较: 方案1(以下称1)用了模块设计,而方案2(以下称2)采用的是一般设计,相比之下1有较强的可读性和较强的可修改性,而2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。 我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。 3
15、 交通灯系统硬件设计 3.1 单片机概述 单片机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。 通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。 目前单片机渗透到我
16、们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。它主要是作为控制部分的核心部件。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 3.2 系统构成 电路板一块,AT89S51单片机一片,74HC164芯片八片,七段数码管八个。74LS04反向器一片,发光二极管13个(
17、8个绿的,4个红的用于交通控制,1个用于标识电源),7805三端稳压电源一个,一个按键,一条数据下载线。 系统工作流程(图1) (1)程序设置初始时间,通过AT89S51单片机内部相应寄存器来实现。 (2) 由AT89S51单片机的定时器每秒钟通过P3.0口向74HC164的数据端口送信息,由74HC164的输出口显示红、绿、黄灯的燃亮时间情况;由AT89S51的P1.0、P1.1、P1.2、P1.3口显示每个灯的燃亮情况。 (3)AT89S51通过程序设置各个信号灯的燃亮时间,通过程序设置左转绿、绿、红时间依次为20秒、20秒、40秒循环,由AT89S51的 P3口向74HC164的数据口输
18、出。 (4)通过AT89S51单片机的P3口来控制系统是工作。 (5)74HC164的A、B口用于串行输出时间位,经过串并转换送到七段数码管的八的引脚。而P1口用于输出控制信号而通过74LS04反向器实现控制各个灯的情况它采用5V的直流电来驱动二极管。 (6)AT89S51本身集成了看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输出,引起RESET复位信号复位系统。 3.3芯片选择与介绍 3.3.1 AT89S51芯片 选用的AT89S51与同系列的AT89C51在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其主要功能列举如下: (1) 为一般控制应
19、用的 8 位单片机 (2)晶片内部具有时钟振荡器 (3)内部程式存储器(ROM)为 4KB 图1 (4)内部数据存储器(RAM)为 128B (5)外部程序存储器可扩充至 64KB (6)外部数据存储器可扩充至 64KB (7)32 条双向输入输出线,且每条均可以单独做 I/O 的控制 (8)5 个中断向量源 (9)2 组独立的 16 位定时器 (10)1 个全双工串行通信端口 (11)8751 及 8752 单芯片具有数据保密的功能 3.3.2 74HC164芯片介绍 74HC164为串行输入、并行输出移位寄存器,74HC164为单向总线驱动器。 在串行口为方式0状态,即工作在移位寄存器方式
20、,波特率为振荡频率的十二分之一。器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔 一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时,允许从TXD端输出移位脉冲。第一帧(8位)数据发送完毕时,各控制信号均恢复原状态,只有TI保持高电平,呈中断申请状态。第一个74HC164把第一帧数据并行输出,LED1显示该数据。然后,用软件将TI清0,发送第二帧数据。第二帧数据发送完毕,LED1显示第二帧数据,第一帧数据串行输入给第二个74HC164,LED2显示第一帧数据。依此类推,直到把数据区内所有数据发送出去。应该注意,数据全部发送完后,第一
21、帧数据在最后一个LED显示。由于TXD端最多可以驱动8个TTL门。 3.3.3 74LS04输出信号与信号灯 要使行人能看见信号灯的情况,必须把P1口输出的信号进行放大,这里我们用74LS04反向器,当极性为高电平时晶闸管导通,该支路指示灯亮;当极性为低电平时关断,该支路指示灯灭。 LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点亮。 74LS04(6反向器)主要对信号起了反向作用。 7805的功能,提供稳定的+5V电压。 4 交通灯软件设计 4.1 程序设计流程图 4.2延时的设定 延时方法可以有两种一种是利用AT89S51内部定时器的溢出中断来确定1秒的时间,另一种
22、是采用软件延时的方法。 4.2.1 计数器初值计算 我们采用在主程序中设定一个初值为20的软件计数器和使T1定时50毫秒这样每当T1到50毫秒时就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,先使软件计数器减,然后判断它是否为零。为0表示秒已到可以返回到输出时间显示程序。 4.2.2 相应程序代码 ()定时器的设置 定时器需定时毫秒。 START: MOV TMOD, #10H ;令为定时器方式 MOV TH0, #3CH ;装入定时器初值 MOV TL0, #0BOH SETB EA ; 打开总中断 SETB ET1 ;开1中断 SETB ER ;启动1计数器 CLR F
23、LAG1 CLR FLAG2 CLR FLAG3 MOV R3,#20H ;软件计数器赋初值 ()相应中断服务子程序 ORG001B LJMPDSD ORG 0030H DSD: INC R3 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH CJNE R3,#20,FH DEC R0 DEC R1 MOV R3,#00H FH: RETI 1. 程序的软件延时: AT89S51的工作频率为033MHZ,我们选用的AT89S51单片机的工作频率为12MHZ。机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12M)=1us。我们可以知道具
24、体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间。 具体的延时程序分析: DELAY: MOV R4,#08H 延时1秒主程序 DE2: LCALL DELAY1 DJNZ R4, DE2 RET DELAY1:MOV R4,#00H ;延时125us 子程序 D1: MOV R5,#00H D2: DJNE R5,DL2 DJNE R4,D1 RET DELAY1为一个双重循坏 循环次数为256*256=65536 所以延时时间=65536*2=us 约为125us DELAY R4设置的初值为8 主延时程序循环8次,所以125us*8= 1秒 由于单片机的运行速度很快其
25、他的指令执行时间可以忽略不计。 4.3 程序的主控制循环调用 用来实现四个状态之间的转换,代码如下: CJNE R2, #01H, AA ;判断不相等刚跳转 JB FLAG1, AA ;FLAG1为1则跳转 LJMP SEC ;跳转到SEC AA: CJNE R2, #02H, AAA JB FLAG2, AAA SETB F0 LJMP THR AAA: CJNE R2, #03H, BB JB FLAG3, BB LJMP FOU BB: CJNE R2, #04H, BBB ;判断不相等则跳转 CLR F0 ;F0位清0 CLR FLAG1 CLR FLAG2 CLR FLAG3 LJM
26、P FIR BBB: CJNE R0, #00H, SGL INC R2 ;R2加1 LJMP DIAOY 5.实验步骤 5.1 编写程序代码 程序代码分为3个模块:中断模块,循环模块,算法模块。 5.2 按照系统硬件连线图连接好系统并调试 调试程序 打开Keil软件,新建工程; 选择芯片; 新建文档,把编写好代码写入文档并保存了ASM文件; 把保存的文档加载到Source Group; 编译程序; 设置转换成16进制; 运行程序的结果; 2. 把编写好的16进制文件(jtd.hex) 输入单片机AT89S51仿真器和对其进行初始化。 3给实验板进行通电,观察运行结果,不一致则跳到第一步进行反
27、复调试,直到与预定目的一致。 结论 本系统就是利用了AT89S51芯片的I/O引脚。系统采用美国ATMEL公司生产的单片机AT89S51,以及其它芯片(如:74HC164、74LS04六位反向器、L7805三端稳压电源)来设计交通灯控制器,实现了红灯亮40秒,绿灯和左转绿灯各亮20秒。并通过AT89S51来控制74LS04芯片的输出口设置红、绿灯燃亮的功能和控制74HC164来实现在七段数码管上的时间显示;为了系统稳定可靠系统内集成了“看门狗”芯片,避免了系统因为死机而停止工作的情况发生。系统设计简便、实用性强、操作简单、程序设计简便。 系统不足:时间设定中没有黄灯的等待闪烁时间,以及自动根据
28、车流改变红绿灯时间,此外,还没有充分考虑的把现代管理、人工智能运用到交通的控制中,来计算交通控制点之间的距离,来更合理的安排红、绿灯的持续时间,使城市的交通管理更加人性化。使人们远离目前的交通拥塞的现象。 参考文献 1胡汉才 单片机原理及其接口技术 M 清华大学出版,1996 2蔡美琴 MCS-51系列单片机系统及其应用 高等教育出版社 2004.2 3付家才 单片机控制工程实践技术M 化学工业出版社,2004.5 4潘新民 微型计算机控制技术 M 人民邮电出版社,1999.9 5余锡存 单片机原理及接口技术M 西安电子科技大学出版社,2000.7 6雷丽文 等.微机原理与接口技术M 电子工业出版社,1997.2 7蒋万君 在论循环时序电路的简便设计J 机电一体化,2005 第5期 8周立功 增强型80C51单片机速成与实战 北京航空航天大学出版社2004.5 9何立民 单片机应用技术选编 北京航空航天大学出版社 2004.3 10何立民 单片机应用技术选编 北京航空航天大学出版社 2004.3 11何立民 MCS-51系列单片机应用系统设计 北京航空航天大学出版社, 1995. 12李华 MCS -51系列单片机实用接口技术M 北京航空航天大学出版社,1993