单片机控制交通灯的设计大学生.doc

上传人:本田雅阁 文档编号:2051107 上传时间:2019-02-08 格式:DOC 页数:30 大小:1.71MB
返回 下载 相关 举报
单片机控制交通灯的设计大学生.doc_第1页
第1页 / 共30页
单片机控制交通灯的设计大学生.doc_第2页
第2页 / 共30页
单片机控制交通灯的设计大学生.doc_第3页
第3页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机控制交通灯的设计大学生.doc》由会员分享,可在线阅读,更多相关《单片机控制交通灯的设计大学生.doc(30页珍藏版)》请在三一文库上搜索。

1、单片机控制交通灯的设计 - 1 - 单片机控制交通灯的设计单片机控制交通灯的设计 摘要摘要 交通控制系统是近现代社会随着物流、出行等交通发展产生的一套独特的 公共管理系统。要保证高效安全的交通秩序,除了制定一系列的交通规则,还 必须通过一定的科技手段加以实现。本文在对目前交通控制进行深入分析的基 础上,运用检测传感、实时调整智能化控制的实现技术,将传感器监测、实时 调整车辆通行时间的算法与单片机控制作用相结合,提出了基于单片机的交通 控制系统设计方案。 8051 单片机的交通灯控制系统由 8051 单片机、交通灯显示、LED 倒计时、 车流量检测及调整、违规检测、紧急处理、时间模式手动设置等模

2、块组成。系 统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、急车强行 通过、车流量检测及调整、交通异常状况判别及处理等相关功能。理论证明该 系统能够简单、经济、有效地疏导交通,提高交通路口的通行能力。 本设计主要做了如下几方面的工作:一是确定系统交通控制的总体设计,包 括,十字路口具体的通行禁行方案设计以及系统应拥有的各项功能,二是进行 传感器的硬件电路、显示电路等的设计和基本功能要求。 关键词:关键词:交通灯 单片机 MSC-51 计时 单片机控制交通灯的设计 - 2 - ABSTRACT Traffic control system is a modern society wi

3、th logistics, travel etc of traffic development a unique set of public management system. To ensure the effective safety traffic, except for a series of traffic rules, still must through certain technological means to achieve. Based on analysis of traffic control, based on real-time detection sensor

4、, adjust the implementation technology of intelligent control, real-time monitoring, sensor adjust vehicles time algorithm and single-chip microcomputer control function is proposed, which combines the traffic control system based on single chip design scheme. This design mainly do the following asp

5、ects: one is the work of the traffic control system design, including the crossroads, specific design and system should be restricted with each function, two is that the sensor, the hardware circuit design of the circuit and the basic function and requirement. Keywords: traffic light SCM MSC-51 timi

6、ng 单片机控制交通灯的设计 - 3 - 目录目录 摘 要 1 ABSTRACT .2 绪论 .5 第一章 交通灯的背景 .6 1.1 交通灯的背景 .6 1.1.1 交通灯的历史 6 1.1.3 交通控制存在的问题 7 1.1.4 交通灯的功能与作用 7 1.1.5 用单片机控制交通灯的优点 8 1.2 单片机简介 .8 1.2.1 单片机的概述 8 1.2.2 单片机的发展历程 8 1.2.3 单片机的内部结构图 9 第二章 单片机控制交通系统总体设计 .10 2.1 单片机交通控制系统通行方案设计 .10 2.2 交通控制的工作原理 .12 2.3 单片机交通控制系统的基本构成及原理 .

7、15 第三章 系统硬件的设计15 3.1 系统硬件的总电路构成及原理 .15 单片机控制交通灯的设计 - 4 - 3.1.1 系统硬件电路构成 16 3.1.2 系统工作原理 16 3.1.3 AT89S51 芯片内部结构简介17 3.1.4 主要引脚功能 19 3.2 交通灯软件的设计 .20 3.2.1 相应程序的代码 21 3.2.3 交通控制的程序 23 第四章 实验平台 .24 4.1 实验平台 .24 4.2 实验步骤 .25 致谢 .29 参考文献 .30 单片机控制交通灯的设计 - 5 - 绪论绪论 今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效 的手段。但这

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

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

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

11、量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同 单片机控制交通灯的设计 - 6 - 时也减小了工作人员的劳动强度。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的 作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很 好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通 控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。 第一章第一章 交通灯的背景交通灯的背景 1.1 交通灯的背景交通灯的背景 1.1.1 交通灯的历史交通灯的历史 19 世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。其 中,着红装

12、的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦 敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868 年 12 月 10 日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时 英国机械师德哈特设计、制造的灯柱高 7 米,身上挂着一盏红、绿两色的提 灯-煤气交通信号灯,这是城市街道的第一盏信号灯。在灯的脚下,一名手持 长杆的警察随心所欲地牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤 气灯罩 ,它的前面有两块红、绿玻璃交替遮挡。不幸的是只面世 23 天的煤气 灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。 1.1.31.1.3 交通控制存在的问题

13、交通控制存在的问题 我国城市交通运输的现状和存在的问题,借鉴国外城市交通管理的先进经 验,强调建立城市交通管理体制的重要性,提出加强城市交通研究的交通规划, 建立稳定的交通基础设施建设的资金出道,实行公交优先政策,建立先进的交 通信息系统等对策。 随着城市机动车增长速度的加快。1994 年卧轨城市机动车保有量已接近 500 完辆。20 世纪 90 年代以来,经济的发展加快,从 1985 年到 1995 年,机动 车增长率达 13%左右,近几年更是增多。 然而,在此同时,城市道路建设规模也在加大,我国城市普遍存在道路密 单片机控制交通灯的设计 - 7 - 度,道路面积率偏低的问题,这是我国城市哟

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

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

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

17、控制交通灯的设计 - 8 - 1.2.2 单片机的发展历程单片机的发展历程 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。 单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 在 MCS-51 系列单片机中,有两个子系列:51 子系列和 52 子系列。每个 子系列有诺干中型号。51 系列有 8051、8751 和 8031 三个型号,后来经过改进 产生了 80c51、87c51、80c31 三个型号;52 系列有 5021、8752、8032 三个型 号,改进后的型号是 80c52/87c52、80c32。改进后的型号更加省电。52 系列比 对应的 51 系

18、列增加了定时器 T2 并将内部程序存贮器增加到 8KB。Inter 公司停 止生产 MCS-51 系列单片机之后将生产权转让给了许多其他公司,于是出现了许 多与 Mcs-51 兼容的单片机。现在生产 mcs-51 兼容单片机的公司对其进行了不 同程度的改进和提高。我们现在使用比较的多的是 AT89C51/AT89S51 等。 1.2.3 单片机的内部结构图单片机的内部结构图 图 1.1 单片机的内部结构图 单片机控制交通灯的设计 - 9 - 除去图中的存储电路和,I/O 部件剩下的是 CPU,它可以分为运算器和控制 器两部分。运算器功能部件包括算术逻辑运算单元 ALU、累加器 ACC、寄存器

19、B、暂存寄存器 TMP1、TMP2、程序状态字寄存器 PSW 等。控制器功能部件包括 程序计数器 PC、指令寄存器 IR、指令译码器 ID、定时控制逻辑电路 CU、数据 指针寄存器 DPTR、堆栈指针 SP 及时钟电路等。 第二章第二章 单片机控制交通灯的总体设计单片机控制交通灯的总体设计 2.1 单片机交通控制系统通行方案设计单片机交通控制系统通行方案设计 2.1.1 单片机控制交通系统通行方案设计单片机控制交通系统通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另 一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其 具体状态如下图所示。说明:黑

20、色表示亮,白色表示灭。交通状态从状态 1 开 始变换,直至状态 6 然后循环至状态 1,周而复始,即如图 2.1 所示: 图 2.1 交通状态 单片机控制交通灯的设计 - 10 - 通过具体的路口交通灯状态的演示分析我们可以把这四个状态归纳如 下: 东西方向红灯灭,同时绿灯亮,南北方向黄灯灭,同时红灯亮,倒计时 20 秒。此状态下,东西向禁止通行,南北向允许通行。 东西方向绿灯灭,同时黄灯亮,南北方向红灯亮,倒计时 2 秒。此状态 下,除了已经正在通行中的其他所以车辆都需等待状态转换。 南北方向红灯灭,同时绿灯亮,东西方向黄灯灭,同时红灯亮,倒计时 20 秒。此状态下,东西向允许通行,南北向禁

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

22、 南北绿灯 1000 南北黄灯 0100 单片机控制交通灯的设计 - 11 - 2.2 交通灯控制工作原理交通灯控制工作原理 总开关闭合,交通灯开始工作。南北黄灯亮,东西红灯亮,延迟 20 秒;然 后,南北绿灯亮,东西红灯亮,延迟 4 分钟;南北绿灯闪,亮十秒,灭十秒, 循环 3 次,再南北绿灯灭,红灯亮; 南北通行结束,东西开始运行。东西黄灯亮,南北红灯亮,延迟 20 秒; 东西绿灯亮,南北黄灯亮,延迟 4 分钟; 东西绿灯闪,亮十秒,灭十秒,循环 3 次,东西绿灯灭,红灯亮; 按上述状态从开始依次循环。 2.2.1 输入输出控制信号的配置输入输出控制信号的配置 1输入:总开关 S0 P1.

23、0 . 当总开关 S0 闭合,P1.0=1;反之,开关 S0 断开,P1.0=0 2 输出;南北黄灯 P1.1,当 P1.1=1 时南北黄灯亮,P1.1=0 时南北黄灯 灭。 单片机控制交通灯的设计 - 12 - 南北红灯 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.

24、6=0 时东西绿灯灭。 (南北通行,东西禁行) 单片机控制交通灯的设计 - 13 - (南北禁行,东西通行) 2.3 单片机交通控制系统的基本构成及原理单片机交通控制系统的基本构成及原理 单片机设计交通灯控制系统,可用单片机直接控制信号灯的状态变化,基 本上可以指挥交通的具体通行,当然,接入 LED 数码管就可以显示倒计时以提 醒行使者,更具人性化。本系统在此基础上,加入了违规检测电路和车流量检 测电路为单片机采集数据,单片机对此进行具体处理,及时调整控制指挥,为 了超越视觉指挥的局限性,同时接上蜂鸣器,在听觉上加强了指挥提醒作用。 单片机 红黄绿信号灯 8 级 LED 数码管显示 车流量传感

25、 器 最小系统 外围接口 按键控制 蜂鸣器 单片机控制交通灯的设计 - 14 - 图 2-2 系统的总体框图 据此,本设计系统以单片机为控制核心,连接成最小系统,由倒计时模块, 违规检测模块和按键设置模块等产生输入,信号灯状态模块,LED 倒计时模块 和蜂鸣器状态模块接受输出。系统的总体框图如上所示。 键盘设置模块对系统输入模式选择及具体通行时间设置的信号,系统进入正 常工作状态,执行交通灯状态显示控制,同时将时间数据倒计时输入到 LED 数 码管上实时显示。在此过程中还要实时捕捉违规检测和紧急按键信号,以达到 对异常状态进行实时控制的目的。急停按键和违规检测随时调用中断。 第三章第三章 系统

26、硬件电路的设计系统硬件电路的设计 3.1 系统硬件总电路构成及原理系统硬件总电路构成及原理 实现本设计要求的具体功能,可以选用 AT89C52 单片机及外围器件构成最 小控制系统,12 个发光二极管分成 4 组红绿黄三色灯构成信号灯指示模块,8 个 LED 东西南北各两个构成倒计时显示模块,光敏传感器捕获违规信号,若干 按键组成时间设置和模式选择按钮和紧急按钮等,以及用 1 个蜂鸣器进行报警。 单片机控制交通灯的设计 - 15 - 3.1.1 系统硬件电路构成系统硬件电路构成 E A/V P 31 X 1 19 X 2 18 R ES ET 9 R D 17 W R 16 IN T 0 12

27、IN T 1 13 T 0 14 T 1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSE N 29 A LE /P 30 T XD 11 R XD 10 8051 C RY ST A L 11.0592M HZ C 1 C 2 220v交交交交交交 0.22f0.1 f 交交C5 1 2 3 4 D 1 V in

28、 1 GND 2 V out 3 L M7805 +5v+21.6v G Y R Y G R R G Y Y G R 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND a bf c g d e dp A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND a bf c g d e dp A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND a bf c g d e dp D S? A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp

29、 9 G ND a bf c g d e dp D S? A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND a bf c g d e dp D S? A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND a bf c g d e dp D S? A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND a bf c g d e dp D S? A MB E RC C 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 G ND

30、a bf c g d e dp D S? A MB E RC C vcc vcc A 1104 交交交交交交交交交交交交 vcc vcc J F S R 2R 3 R 4 R 5 交交交交 vcc R 8 1K V CC R 9 A 7 B 1 C 2 D 6 L T 3 B I/R BO 4 R BI 5 a 13 b 12 c 11 d 10 e 9 f 15 g 14 U ? 7448 vcc A 1104 交交交交交交交交交交交交 vcc 0.3K 0.3K 0.3K 0.3K 0.3K 0.3K 0.3K0.3K0.3K 0.3K0.3K0.3K p10 p11 p12 p13 p1

31、4 p15 p10 p11 p12 p13p14p15 p10 p11 p12 p13p14p15 vccvccvcc vcc vcc vcc vccvccvcc P20 P21 P22 P23 P24 P25 P26 P27 P20P21 P22P23 P24P25 P26P27 vcc R 1 C 3 vcc vccvcc vcc 图 3.1 总体设计电路图 本系统以单片机为核心,组成一个集车流量采集、处理、自动控制为一身 的闭环控制系统。系统硬件电路由单片机、违规检测电路,状态灯,LED 显示, 按键,蜂鸣器组成。其具体的硬件电路总图如上图所示。 3.1.2 系统工作原理系统工作原理 系

32、统上电或手动复位之后,系统等待模式选择设置键按下,模式分两种:红 绿灯时间自动和红绿灯时间设置。若此时 F 键按下,则设置为自动模式,若此 时按下的是 S 键,则设置为时间设置模式,依次按 S 若干次,J 键若干次可设 置好两个方向的红绿灯时间,再按 F 键确认。其实这个过程就是将存储时间值 的寄存器进行设置,以及标志是否要进行车流量检测及调整。 接下来,系统必须先显示状态灯及 LED 数码管,将状态码值送显 P2 口,将 要显示的时间值的个位和十位分别送显 P0 和 P1 口,在此同时以 50ms 为周期, 用软件方法计时 1 秒,到达 1s 就要将时间值减 1,刷新 LED 数码管。 时间

33、到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次 状态的相应状态码值以及时间值, 单片机控制交通灯的设计 - 16 - 3.1.3 AT89S51 芯片内部结构简介芯片内部结构简介 AT89S51 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位单片机, 片内含 4k bytes 的可系统编程的 Flash 只读程序存储器,器件采用 ATMEL 公司 的高密度、非易失性存储技术生产,兼容标准 8051 指令系统及引脚。它集 Flash 程序存储器 既可在线编程(ISP)也可用传统方法进行编程及通用 8 位微 处理器于单片芯片中,ATMEL 公司的功能强大,低价位 AT

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

35、和固定不变的常数等。通常采用只读存储器,且 其又多种类型,在 89 系列单片机中全部采用闪存。AT89S51 内部配置了 4KB 闪存。 定时/计数器(ROM): 定时/计数器用于实现定时和计数功能。AT89S51 共有 2 个 16 位定时/ 计数器。 并行输入输出(I/O)口: 8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。 每个口都由 1 个锁存器和一个驱动器组成。它们主要用于实现与外部设备中数 据的并行输入与输出,有些 I/O 口还有其他功能。 全双工串行口: A89S51 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,

36、该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 时钟电路: 时钟电路的作用是产生单片机工作所需要的时钟脉冲序列。 中断系统: AT89S51 共有 5 个中断源,其中有 2 个外部中断源和 3 个内部中断源。 中断系统的作用主要是对外部或内部的终端请求进行管理与处理。 单片机控制交通灯的设计 - 18 - 图 3.2 AT89S51 系列单片机的内部结构示意图 3.1.4 主要引脚功能主要引脚功能 AT89S51 引脚图如图 3.3 所示: 单片机控制交通灯的设计 - 19 - VCC:电源电压 GND:地 P0 口:P0 口是一组 8 位漏极开路型双向 I0 口,也即地址数据总线

37、 复用口。作为输出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“l”可 作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时 转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 P1 口:Pl 是一个带内部上拉电阻的 8 位双向 IO 口,Pl 的输出缓冲级 可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“l” ,通过内部的 上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存 在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL) 。Flash 编程 和程序校验期间,Pl 接收低 8 位地址。 3.23.2 交通

38、灯软件的设计交通灯软件的设计 3.2.13.2.1 程序主体设计流程程序主体设计流程 图 4.1 系统总流程图 单片机控制交通灯的设计 - 20 - 全部控制程序实际上分为若干模块:键盘设置处理程序,状态灯控制程序, LED 显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程 序,中断服务子程序,红绿灯时间调整程序等。 3.2.23.2.2 相应程序的代码相应程序的代码 ()定时器的原理及设置 定时器工作的基本原理其实就是给初值,让它不断加 1 直至减完为模值, 这个初值是送到 TH 和 TL 中的。它是以加法记数的,并能从全 1 到全 0 时自动 产生溢出中断请求。因此,我们可

39、以把计数器记满为零所需的计数值,即所要 求的计数值设定为 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 分频后,若采用方式最大延时只有 8.12

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

41、 打开总中断 SETB ET1 ;开1 中断 SETB ER ;启动1 计数器 CLR FLAG1 CLR FLAG2 CLR FLAG3 MOV R3, #20H ;软件计数器赋初值 ()相应中断服务子程序 ORG 001B LJMP DSD ORG 0030H DSD: INC R3 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH CJNE R3,#20,FH DEC R0 DEC R1 MOV R3,#00H FH: RETI 程序的软件延时: AT89S51 的工作频率为 033MHZ,我们选用的 AT89S51 单片机的工作频率为 12MHZ。机器周期与主

42、频有关,机器周期是主频的 12 倍,所以一个机器周期的 时间为 12*(1/12M)=1us。我们可以知道具体每条指令的周期数,这样我们就 可以通过指令的执行条数来确定 1 秒的时间。 单片机控制交通灯的设计 - 22 - 具体的延时程序分析: 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=6553

43、6 所以延时时间 =65536*2=131072us 约为 125us DELAY R4 设置的初值为 8 主延时程序循环 8 次,所以 125us*8= 1 秒 3.33.3 交通控制的程序交通控制的程序 (1)主程序 START: MOV SP,#80H MOV R0,#00H MOV R7,#8FH CLEARDISP: MOV R0,#00H INC R0 DJNZ R7,CLEARDISP MOV TIMED0,#78H MOV TIMED1,#6EH 单片机控制交通灯的设计 - 23 - MOV TIMED2,#46H MOV TIMED3,#3CH MOV TIMED4,#0AH

44、 CLR SNEWFLAG MOV TMOD ,#11H MOV TL0,#0B0H MOV TH0,#3CH MOV TL1,#0B0H MOV TH1,#3CH JB SCAN.7,SSST 第四章第四章 实验平台实验平台 4.14.1 实验平台实验平台 我们采用的是 Keil Software 生产的 Cx51 编译器。运行在 Windows XP 操作平 台下。 开启计算机进入 Keil C51 编译器介面。 单片机控制交通灯的设计 - 24 - Keil C51 编译器介面 4.24.2 实验步骤实验步骤 4.2.1 编写程序代码 程序代码分为 3 个模块:中断模块、延时模块,循环模

45、块 (1)中断程序 ORG 001B LJMP DSD ORG 0030H DSD: INC R3 MOV TH0, #3CH ;重装入定时器初值 MOV TL0, #BOH CJNE R3,#20,FH DEC R0 单片机控制交通灯的设计 - 25 - DEC R1 MOV R3,#00H FH: RETI (2)延时程序 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 R

46、4,D1 RET (3)循环程序 DIAOY:;循环控制子程序 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 单片机控制交通灯的设计 - 26 - JB FLAG3, BB LJMP FOU BB:CJNE R2, #04H, BBB;判断不相等则跳转 CLR F0;F0 位清 0 CLR FLAG1 CLR FLAG2 CLR FLAG3 LJM

47、P FIR BBB: CJNE R0, #00H, SGL INC R2;R2 加 1 LJMP DIAOY 4.2.2 调试程序 打开 Keil 软件,新建工程; 选择芯片; 新建文档,把编写好代码写入文档并保存了 ASM 文件; 把保存的文档加载到 Source Group; 编译程序; 设置转换成 16 进制; 运行程序的结果; 2. 把编译好的 16 进制文件(jtd.hex) 输入单片机 AT89S51 仿真器和对其进行 初始化。 3给实验板进行通电,观察运行结果,不一致则跳到第一步进行反复调试,直 到与预定目的一致。 以下是在程序调试过程中出现在情况:通电以后,把程序装好,数码管是

48、的 单片机控制交通灯的设计 - 27 - 数字不变,按复位键后重新开始还是如此。经过和同组人的共同分析后,发现 是中断系统在计时到了 1 秒以后,赋的初值 R0,R1 没有减 1,修改如下: DSD: INC R3 MOV TH1, #3CH MOV TL1, #0B0H CJNE R3, #20, FH;判断是否够 1 秒 DEC R0 DEC R1 MOV R3, #00H;R3 清 0 FH:RETI;中断返回 通电以后,东西、南北方向的时间均递减,20 秒以后,东西方向的 20 秒用 完,变成东西左转、南北各 20 秒,此后,时间显示和红绿灯不再变化,一直保 持这一状态。 经过老师和同

49、组人的共同努力,终于找到原因,问题出在循环控制过程中, 当经过第一次 20 秒判断后,寄存器 R2 加 1,当再次运行到循环控制处时,判 断 R2 与#01H 相同,程序跳到 SEC 处执行,此后一直如此。解决方法如下: 设置 3 个标记位: FLAG1 BIT 00H;标记 00H 位 FLAG2 BIT 01H FLAG3 BIT 02H 在循环控制中加入判断如: DIAOY: CJNE R2, #01H, AA;判断不相等刚跳转 JB FLAG1, AA;FLAG1 为 1 则跳转 LJMP SEC ;跳到 SEC 在跳到 SEC 后,在运行到该程序后加给 FLAG1 置数,程序如下: 单片机控制交通灯的设计 - 28 - SEC: CLR P1.0 SETB P1.1 CLR P1.2 CLR P1.3 MOV R0, #20 MOV R1, #20 SETB FLAG1 LJMP SGL 致谢致谢 本论文是在李老师指导下完成的。从论

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1