1、 江苏畜牧兽医职业技术学院论文(设计) 毕业论 文( 设计 ) 基于单片机的交通灯的设计 指导老师: 班 级: 高专机电 091 系 (部): 机电工程系 专 业: 机电一体化 答辩时间: 2012.5 江苏畜牧兽医职业技术学院论文(设计) 单片机交通灯设计 摘 要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新 。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机 方面知识是不够的,还应根据具体硬件结构软 硬 件结合,加以完善。 十字路口车辆 穿梭 ,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠
2、的 就 是交通信号灯的自动指挥系统。交通信号灯控制方式很多。 本系统采用 MCS-51 系列单片机 AT89C51 为中心器件来设计交通灯控制器,实现了能根据实际车流量通过 8051 芯片的 P3 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩 5秒时黄灯闪烁警示(交通灯信号通过 P1口输出,显示时间通过 P0 口输出至双位数码管)。本系统设计周期短、可靠性高、实用性强、操作简单 、维护方便、扩展功能强。 关键词:单片机;交通灯 Abstract In recent years, with the rapid development of science and technology,
3、 the application of SCM is going deep, driving the traditional detection techniques to renew day by day. In the real-time examination and in the automatic control monolithic integrated circuit application system, the monolithic integrated circuit often took a core part uses. The monolithic integrate
4、d circuit aspect knowledge is only insufficient, but should also act according to the concrete hardware architecture software and hardware union, to be improved. The intersection vehicles shuttle, the pedestrian is bustling, car dealership traffic lane, person sidewalk, methodical. Then depending on
5、 what to realizes this orderly order? the traffic lights on the automatic control system. There are great number kinds of modes to control the traffic lights. The system uses a series of MCS-51 as the center AT89C51 single-chip device designed to control the traffic lights, so as to realize the func
6、tion of setting red, green light time by 8051 chip s P3 port according to the actual traffic flows, lighting the red-light and green-light by turn and lighting the yellow-light to warm while 5 seconds left(outputting the traffic light signal by P1,outpuing the time by P0 and showing the time on doub
7、le-digits nixie tube). Short of the design cycle, high reliability, practical, simple operation, easy maintenance, the expansion of powerful is this system. Key words: SCM; MCU; traffic light 江苏畜牧兽医职业技术学院论文(设计) 目 录 1 绪论 . 1 2 交通管理方案论证 . 1 2.1 设计任务 . 1 2.2 方案介 绍 . 2 3 交通灯系统硬件设计 . 4 3.1 单片机概述 . 4 3.2
8、系统构成 . 5 3.3芯片选择与介绍 . 5 3.3.1 AT89S51 芯片 . 5 3.3.2 74HC164 芯片介绍 . 7 3.3.3 74LS04 输出信号与信号灯 . 8 3.3.4 交通灯控制线路图 . 9 4 交通灯软件设计 . 10 4.1 程序设计流程图 . 10 4.2延时的设定 . 12 4.2.1 计数器初值计算 . 12 4.2.2 相应程序代码 . 12 4.3 程序的主控制循环调用 . 13 4.4 对现有程序的扩充 . 14 5实验平台 . 14 5.1实验平台 . 14 5.2实验步骤 . 15 5.2.1 编写程序代码 . 15 5.2.2 按照系统硬
9、件连线图连接好系统并调试 . 15 结论 . 16 致谢 . 17 参考文献 . 17 程序实现代码 . 19 江苏畜牧兽医职业技术学院论文(设计) 1 1 绪论 今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在 19世纪就已出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。 1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两 块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。 1869年 1月
10、2日,煤气灯爆炸,使警察受伤,遂被取消。 1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市 5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时 ,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时 ,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路
11、通行能力,减少交通事故有明显效果。 1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄 灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。 随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济发展的需求
12、。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强 度。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益 ,为创造美好的城市交通形象发挥更多的作用。 2 交通管理方案论证 2.1 设计任务 东西( A)
13、、南北( B)两干道交于一个十字路口,各干道有一组红、左转绿、绿三个指示灯,指挥车辆和行人安全通行。红灯亮禁止通行, 绿灯亮允许通行。红灯的设计江苏畜牧兽医职业技术学院论文(设计) - 2 - 时间为 40秒,绿灯及左转绿灯各为 20秒。设 A 道和 B道的车流量相同。 2.2 方案介绍 把设计任务细化为四个状态,其对应状态:如图 1 图 1 状态转换图 整个交通灯控制由四个状态组成,可以用程序设计实现,也可用时序逻辑实现 .以下方案就是分别用了这两种方法。 方案 1 设计思想: 采用分模块设计的思想,程序设计实现的基本思想是一个计数器 , 选择一个单片机,其内部为一个计数,是十六进制计数器,
14、模块 化后,通过设置或程序清除来实现状态的转换, 由于每一个模块的计数多不是相同, 这里的各模块是以预置数和计数器计数共同来实现的,所以要考虑增加一个置数模块,其主要功能细分为,对不同的状态输入要产生相应状态的下一个状态的预置数, 如图中 A道和 B道 ,分别为次干道的置数选择和主干道的置数选择。以主干道为例,简述其设计思想。如前分析,已经确定该系统有四个状态,而置数子模块可定要将下一状态的预置数准备好,所以很容易得到主干道的置数表如:表 1 状态 主干道预置数 次干道预置数 00 40 20 01 20 20(左转 ) 10 20 40 11 20(左转) 20 表 1 置数表 A 道为 4
15、0 秒红灯, B 道绿灯 20 秒 A 道为 20 秒红灯, B 道左转 20 秒绿灯 A 道为 20 秒绿灯, B 道为 40 秒红灯 A 道左转 20 秒绿灯, B 道为 20 秒红灯 江苏畜牧兽医职业技术学院论文(设计) 3 由该表,就可以通过程序循环的方法设计该模块,主要思想是通过数据判断指令、跳转指令实现,由主控制器计时和中断产生的四个状态去译码,从而得到不同的输出,即预置数,由上分析可用一个计数器和跳转指令去完成的预置数。 而红绿灯的显示也是一样,由状态分析可以得出红绿灯的变化表如:表 2 状态 主干道灯显示 次干道灯显示 00 红灯 绿灯 01 红灯 左转绿灯 10 绿灯 红灯
16、11 左转绿灯 红灯 表 2 红绿灯变化表 通过这张表就可以 用组合电路实现该功能了,可以用数据选择器的思想,在本系统中,直接通过门电路的译码,接下来就是计数模块了,其主要的功能细分为,要从预置数开始递减计数,一个状态结束,通过判断,通知主控制模块,使之进入下一模块。还有一个必须考虑到的就是,预置数必须在下一个状态来之前准备好,而红绿灯的状态变化,必须和计数状态同步,于是引起预置数变化的程序要超前于系统本身的状态变化,所以,系统中的两个状态转换时,在上一状态结束时设置预置数,而控制红绿灯的是随着系统本身状态的变化而变化,体现在本子电路中就是有两组电路去判断符合的状态。 方案 2 设计思想: 状
17、态转换表如:表 3 状态 主干道灯显示 次干道灯显示 00(15S) 红灯 绿灯 01(05S) 红灯 黄灯 10(15S) 绿灯 红灯 11(05S) 黄灯 红灯 表 3 状态转换表 本方案分三步: ( 1)要建立三路信号灯的控制系统,本设计采用 7408 芯片通过组合逻辑控制三路灯的显示关系。 ( 2)建立显示控制系统,本设计采用 74190 芯片倒计时控制,每个方向用两片相连实现,另外用 74153芯片,因为分析中设置的时间末位均为 5,所以只要用一片 74153 对高位置位, 将低位的初值预置锁定为 5,而高位则根据需要由反馈部分提供预置值。 ( 3)建立反馈和细节连接部分,本部分主要
18、解决显示和灯控的同步问题本系统采用倒计时系统减为 0,如当系统减为 0 时通过两个 D触发器得到两个变量,即为开头分析中的状态,通过它的变化得到不同的逻辑关系,驱动 74153 控制哪组灯亮(对应关系如表所示),另外他还要同步反馈到显示系统的置数环节。 江苏畜牧兽医职业技术学院论文(设计) - 4 - 注意 : 本实验中若采用更复杂的四片 74190控制主干道的两组灯,再用八片 74153分别对 74190置数可实现任意数值的交通灯系统。另外对 7408 片子的控制红灯的 端口用一个与门将一端再接一个频率一定的方波,使一边为黄灯时,另一边的红灯在闪烁。 方案比较: 方案 1(以下称 1)用了模
19、块设计 , 而方案 2(以下称 2)采用的是一般设计,相比之下 1有较强的可读性和较强的可修改性,而 2则在设计上显得较简单,设计纯朴,便于测试,它的优势则在于提供了一条较为便捷的解决方案。 2首先将许多逻辑关系简化到极点,而后将其一起集成用较少的芯片去完成所需功能。 我们从中可以得出的是,我们最终的设计应该尽量使用模块化设计。对工程设计人员来说,将来的产品无论从修改还是升级考虑对有好处,但另外我们又需将 设计简单化,因此我觉得在设计初期尽可能的简单化设计,而一旦设计的各项测试通过了,在有可能的条件下将设计模块化,所以本设计以第一方案为主进行。 3 交通灯系统硬件设计 3.1 单片机概述 单片
20、机是由运算器、控制器、存储器、输入设备以及输出设备共五个基本部分组成的。单片机是把包括运算器、控制器、少量的存储器、最基本的输入输出口电路、串行口电路、中断和定时电路等都集成在一个尺寸有限的芯片上。 通常,单片机由单个集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和 I/O 接口电路等。因此,单片机只 需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。 单片机经过 1、 2、 3、 3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的 CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压、低功耗。 可以说,二十世纪跨越了三个“电”的时代,即电气时
21、代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称 PC 机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进 行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词 “智能型”,如智能型洗衣机等。现在有些
22、工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。 目前 单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。它主要是作为控制部分的核心部件。因此,单片机的学习、开发与应用将造就一
23、批计算机应用与智能化控制的科学家、工程师。 江苏畜牧兽医职业技术学院论文(设计) 5 3.2 系统构成 电路板一块, AT89S51 单片机一片, 74HC164 芯片八片,七段数码管八个。 74LS04反向器一片,发光二极管 13个( 8个绿的, 4个红的用于交通控制, 1个用于标识电源) ,7805三端稳压电源一个,一个按键,一条数据下载线。 系统结构框图如:图 2 图 2 系统结构框图 系统各部分工作: (1)程序设置初始时间,通过 AT89S51单片机内部相应寄存器来实现。 (2) 由 AT89S51单片机的定时器每秒钟通过 P3.0口向 74HC164的数据端口送信息,由 74HC1
24、64的输出口显示红、绿、黄灯的点亮时间情况;由 AT89S51的 P1.0、 P1.1、 P1.2、P1.3口显示每个灯的点亮情况。 (3) AT89S51通过程序设置各个信号灯的点亮时间,通过程序设置左转绿、绿、红时间依次为 20秒、 20秒、 40秒循环,由 AT89S51 的 P3口向 74HC164的数据口输出。 (4)通过 AT89S51单片机的 P3口来控制系统是工作。 (5)74HC164的 A、 B 口用于串行输出时间位,经过串并转换送到七段数码管的八的引脚。而 P1口用于输出控制信号而通过 74LS04 反向器实现控制各个灯的情况它采用5V的直流电来驱动二极管。 (6)AT8
25、9S51 本身集成了看门狗指令,当系统出现异常看门狗将发出溢出中断。通过专用端口输出,引起 RESET 复位信号复位系统。 3.3芯片选择与介绍 3.3.1 AT89S51 芯片 选用的 AT89S51 与同系列的 AT89C51 在功能上有明显的提高,最突出是的可以实现在线的编程。用于实现系统的总的控制。其 主要功能列举如下 : 1、为一般控制应用的 8 位单片机 2、晶片内部具有时钟振荡器(传统最高工作频率可至 33MHz) 3、内部程式存储器( ROM)为 4KB 4、内部数据存储器( RAM)为 128B 键盘控制返回 AT89S51 单 片 机 系 统 LCD 显示与 LED倒计时
26、模块 接 口 电 路 74HC 164 江苏畜牧兽医职业技术学院论文(设计) - 6 - 5、外部程 序存储器可扩充至 64KB 6、外部数据存储器可扩充至 64KB 7、 32 条双向输入输出线,且每条均 可以单独做 I/O 的控制 8、 5 个中断向量源 9、 2 组独立的 16 位定时器 10、 1 个全双工串行通信端口 11、 8751 及 8752 单芯片具有数据保密的功能 12、单芯片提供位逻辑运算指令 AT89S51 各引脚功能介绍: 如图 3 图 3 AT89S51 VCC: ATAT89S51 电源正端输入,接 +5V。 VSS:电源地端。 XTAL1:单芯片系统时钟的反向放
27、大器输入端。 XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两个引脚与地之间加入一个 20PF 的小电容,可以使系统更稳定, 避免噪声干扰而死机。 RESET: AT89S51 的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间, AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址 0000H处开 始读入程序代码而执行程序。 EA/Vpp: “EA“为英文 “External Access“的缩写,表示存取外
28、部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部 EPROM江苏畜牧兽医职业技术学院论文(设计) 7 中)来执行程序。因此在 8031及 8032中, EA引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至 8751内部 EPROM 时,可以利用此引脚来输入 21V的烧录高压( Vpp)。 ALE/PROG: ALE是英文 “Address Latch Enable“的缩写,表示地址锁存器启用信号。ATAT89S51可以利用这个引脚来触发外部的 8位锁存器(如 74LS373
29、),将端口 0的地址总线( A0 A7)锁进锁存器中,因为 ATAT89S51 是以多工的方式送出地址及数据。平时在程序执行时 ALE 引脚的输出频率约是系统工作频率的 1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录 8751 程序代码时,此引脚会被当成程序规划的特殊功能来使用。 PSEN:此为 “Program Store Enable“的缩写,其意为程序储存启用,当 8051被设成为读取 外部程序代码工作模式时( EA=0),会送出此信号以便取得程序代码,通常这支脚是接到 EPROM的 OE脚。 ATAT89S51可以利用 PSEN 及 RD引脚分别启用存在外部的 RAM与 E
30、PROM,使得数据存储器与程序存储器可以合并在一起而共用 64K的定址范围。 PORT0( P0.0 P0.7):端口 0 是一个 8 位宽的开路电极( Open Drain)双向输出入端口,共有 8个位, P0.0 表示位 0, P0.1表示位 1,依此类推。其他三个 I/O端口( P1、P2、 P3)则不具有此电路组态,而是内部有一提升电路, P0在当作 I/O 用时可 以推动 8个 LS 的 TTL 负载。如果当 EA 引脚为低电平时(即取用外部程序代码或数据存储器),P0 就以多工方式提供地址总线( A0 A7)及数据总线( D0 D7)。设计者必须外加一个锁存器将端口 0送出的地址锁
31、住成为 A0 A7,再配合端口 2所送出的 A8 A15合成一组完整的 16位地址总线,而定位地址到 64K的外部存储器空间。 PORT2( P2.0 P2.7):端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时,此端口便能当成输入端口来使用。 P2除了当作一般 I/O端口使用外,若是在 ATAT89S51扩充外接程序存储器或数据存储器时,也提供地址总线的高字节 A8 A15,这个时候 P2便不能当作 I/O来使用了。 PORT1( P1.0 P1.7):端口 1 也是具有内部提升电路的双向 I/O 端口,其
32、输出缓冲器可以推动 4 个 LS TTL 负载,同样地,若将端口 1 的输出设为高电平,便是由此端口来输入数据。如果是使用 8052或是 8032的话, P1.0 又当作定时器 2的外部脉冲输入脚,而 P1.1可以有 T2EX功能,可以做外部中断输入的触发引脚。 PORT3( P3.0 P3.7):端口 3 也具 有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4个 TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下: P3.0: RXD,串行通信输入。 P3.1: TXD,串行通信输出。 P3.2: INT0,外部中断 0输入。 P3.3: INT1,外部中断 1输入。 P3.4: T0,计时计数器 0输入。 P3.5: T1,计时计数器 1输入。 P3.6: WR:外部数据存储器的写入信号。 P3.7: RD,外部数据存储器的读取信号。 3.3.2 74HC164 芯片介绍 74HC164为串行输入、并行输出移位寄存器, 74HC164为单向总线驱动器。