《单片机完成交通灯控制系统的设计与实现537.pdf》由会员分享,可在线阅读,更多相关《单片机完成交通灯控制系统的设计与实现537.pdf(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 职称永成职业学院 毕业设计(论文)题目 交通信号灯控制系统的设计 专 业 班:学 生 卡:学生:导师:摘要 交通控制系统是现代社会物流、旅游等交通运输发展产生的独特的公共管理系统。为保障高效安全的交通秩序,除了制定一系列交通规则外,还必须通过一定的科技手段来实现。本文在深入分析当前交通控制编制依据上,采用检测感知和智能控制实时调整的实现技术,将传感器监测和车辆通过时间实时调整算法与控制相结合。单片机的功能,提出了一种基于单片机的智能控制系统。交通控制系统设计方案。8051 单片机红绿灯控制系统由 8051 单片机、红绿灯显示、LED 倒计时、车流检测与调节、违章检测、应急处理、时间模式手动设
2、置等模块组成。该系统除具备基本的红绿灯功能外,还具有手动设置通行时间、倒计时显示、应急车辆强制通行、交通流量检测与调整、交通异常情况识别与处理等相关功能。理论证明,该系统可以简单、经济、有效地分流,提高交通路口的通行能力。本次设计主要在以下几个方面进行:一是确定系统交通控制的总体设计,包括路口具体交通禁止方案的设计和系统应具备的功能;二是进行传感器的硬件电路、显示电路的设计及基本功能要求等。三是软件系统的设计。对于这个系统,我是用单片机的汇编语言来写的,软件一般都是写的。关键词:交通管制,传感器检测,AT 89C51,倒计时显示,异常情况判别目录 摘要 1 目录错误!未定义书签。前言错误!未定
3、义书签。第 1 章微控制器概述 2 单片机流量控制系统 2 1.2 单片机交通控制系统选题的现实意义 2 1.3 国外研究现状与发展 4 1.3.1 国外交通控制技术 4 1.3.2 交通控制存在的问题 4 1.4 单片机交通控制系统的主要研究内容 5 第二章单片机交通控制系统总体设计 5 2.1 单片机交通控制系统的设计 5 2.2 单片机交通控制系统功能要求 7 2.2.1 倒计时 77 _ 2.2.2 流量检测与调整 7 2.2.3 手动设置时间 8 2.2.4 应急处理 8 2.2.5 违规检测 8 2.3 单片机交通控制系统的基本组成和原理 8 第三章系统硬件电路设计 9 3.1系统
4、硬件整体电路组成及原理 9 3.1.1 系统硬件电路结构 10 3.1.2 系统工作原理 10 3.2 MCU 11 3.2.1 MCU 12 概述 11介绍 如今,交通信号灯安装在各个路口,已成为交通车辆分流最常见、最有效的手段。但这项技术自 19 世纪以来就已经存在。1858 年,在英国伦敦的主要街道上安装了一盏以气体为光源的红蓝机械扳手式信号灯,用于指挥车厢的通行。这是世界上第一个红绿灯。1868 年,英国机械工程师奈特在伦敦威斯敏斯特议会大厦前的广场上安装了世界上第一个燃气红绿灯。它由红绿两个旋转的方形玻璃灯笼组成,红色表示“停止”,绿色表示“注意”。1969 年 1 月 2 日,煤气
5、灯爆炸,警察受伤,被取消。电动交通信号灯出现在美国。这种交通信号灯由红色、绿色和黄色的圆形光投射器组成。它于 1914 年安装在纽约市第五街的一座塔上。红灯表示“停止”,绿灯表示“通过”。1918 年,出现了可控红绿灯和红外线红绿灯。可控红绿灯,一种是在地下安装压力检测仪,车辆一接近红灯就会变绿;红灯变为绿色。当行人踏上压敏路面时,红外交通灯可以检测到有人即将过马路。红外线光束可以将信号灯的红光延长一段时间,延缓汽车的释放,避免交通事故。信号灯的出现,实现了有效的交通管制,对疏通车流、提高道路通行能力、减少交通事故等起到了明显的作用。1968 年联合国道路交通与道路标志信号协定规定了各种信号灯
6、的含义。绿灯是通过信号,面对绿灯的车辆可以直行、左转和右转,除非另一个标志禁止某种转弯。左转和右转的车辆必须优先考虑在交叉路口合法行驶的车辆和穿过人行横道的行人。红灯是禁止通行的信号,遇到红灯的车辆必须在交叉路口的停车线后面停车。黄灯是警告信号。面对黄灯的车辆不能越过停车线,但车辆距离停车线太近无法安全停车时可以进入路口。第 1 章微控制器概述 1.1 单片机交通控制系统选题背景 随着人口的快速增长、交通的爆炸式发展以及道路资源的限制,交通管制应运而生。一直在处理流量。自 18 世纪工业革命以来,工业发展带动了整个交通的发展,从而催生了独立的交通控制知识和管理组织。交通控制系统是现代社会物流、
7、旅游等交通运输发展产生的独特的公共管理系统。确保高效安全的交通秩序,除了制定一系列交通规则外,还必须通过一定的技术手段来实现。现代人类科学技术,特别是电子科学技术的发展和成熟,可以更好地解决系统建立所需的硬件和软件方面的技术问题。目前对交通控制的研究可以完全实现自动化智能化,甚至可以将整个区域整合为一个统一的系统,还可以根据正常时间段和特定紧急时间段的情况进行科学的自动调整。交通运输在社会工业经济和人们的生活生产中起着非常重要的作用。随着单片机和传感技术的飞速发展,自动检测领域发生了很大的变化,自动交通监控研究取得明显进展,将以其卓越的性能逐步取代传统的交通控制措施。性能价格比。.1.2 单片
8、机交通控制系统选题的现实意义 城市道路交通自动控制系统的发展以城市交通信号控制技术为主导,与汽车工业同步发展。在其各个发展阶段,由于交通中各种矛盾的不断出现,人们总是尽力将各个历史阶段的最新科技成果应用到自动交通控制中,从而推动自动交通控制技术的不断发展。早在 1850 年,城市十字路口不断增长的交通就引发了人们对安全和拥堵的担忧。世界上第一盏自动交通信号灯的诞生,拉开了城市交通管制的序幕。1868 年,英国工程师奈特在伦敦威斯敏斯特街的十字路口安装了一盏红绿相间的煤气灯。,用于控制十字路口的马车通行,但一次瓦斯爆炸导致红绿灯消失了近半个世纪。1914 年及稍晚一点,美国克利夫兰、纽约和芝加哥
9、的红绿灯又出现了,而且都是用电供电的,和现在意义上的信号灯差不多。1926 年,英国人首先安装并使用自动控制器来控制红绿灯,这是城市交通自动控制的起点。早期的红绿灯采用“定时定时”的方式实现自动控制,对早期的交通畅通情况起到了一定的作用。但随着汽车工业的发展,车流量的增加,随机变化的增强,以往单一的“定时定点”模式已经不能满足客观需要,因此,方案信号控制器开始出现,并逐渐取代传统的控制器,只有一种控制方案。1930 年代初,美国首先开始使用车辆感应式信号控制器,英国紧随其后,当时使用的车辆检测器为气动胶管检测器。车辆感应控制器的特点是可以根据检测器测得的车流量调整绿灯时间的长短,从而更有效地利
10、用绿灯时间,减少路口车辆的延时,并且比时序控制方式具有更大的灵活性。性别。车辆传感控制的这一特点刺激了车辆检测技术的发展。继气动胶管探测器之后,雷达、超声波、光电、地磁、电磁、微波、红外、环形线圈等探测器相继问世。在当今城市道路交通自动控制、交通监控和交通数据采集系统中,应用最广泛的是环形线圈车辆检测器。超声波检测仪主要在日本等少数几个国家得到广泛应用。计算机技术的出现为交通控制技术的发展注入了新的活力,实现了以城市或区域为基础的整体交通控制系统,而不是简单的路口。1952 年,美国科罗拉多州丹佛市首先利用模拟计算机和交通探测器实现了交通信号网络定时方案的自动选择信号灯控制,而加拿大多伦多在
11、1964 年完成了计算机控制信号灯的实际应用。一套由 IBM650 计算机控制的交通信号协调控制系统成为世界上第一个拥有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。可以说,在近一百年的发展中,道路交通信号控制系统经历了手动到自动,从固定定时到灵活定时,从无感控制到感应控制,从单点控制到主干控制,来自区域控制。到网络控制的长期过程。交通管制研究的发展旨在解决由于需求增加而导致的人流量负担增加所带来的问题。受限于道路建设的暂时短缺和车辆的快速增长,需要让更多的车辆安全高效地利用有限的空间。道路资源,避免因乱、冲等不受控制的原因造成不必要的堵塞甚至瘫痪,此外,还需要实时调
12、整整条交通线路上的车辆数量,转移多条线路的分流。交通网络是城市的动脉,象征着一个城市的工业文明水平。交通事关人们在财产、安全和时间方面的利益。优秀而科学的交通控制技术对于资源物流和人们的出行具有重要意义。只有保证交通线路畅通安全,才能保证出行畅通,物流准时到位,乃至生命通道的延伸。1.3 国外研究现状与发展 1.3.1 国外交通管制技术 目前,在世界各国广泛应用的最具代表性但实施的城市道路交通信号控制系统包括英国的 TRANSYT 和 SCOOTS 交通控制系统以及澳大利亚的 SCATS系统。在信号机的发展过程中,自适应理论受到了各种研究机构的欢迎,如上述的 SCOOTS 和 SCATS 系统
13、。近年来,国外仍然倾向于引入自适应理论来开发交通信号控制系统,特别是在美国,有十几所大学或研究机构正在开发自适应交通信号控制系统,其中一个代表是美国亚利桑那大学。美国开发了 RHODES。我国交通运输领域的发展起步较晚。基本上,新中国成立后,随着各种条件的成熟和社会发展的要求,交通管制体系得到建立和完善。城市交通是一个综合性很强的复杂问题,必须从政策、制度、制度、管理、收费价格、基础设施建设和投资等方面同步解决。我国城市经济社会的快速发展,使得社会对交通的需求急剧增加。对此也提出了严峻的挑战。一句话城市发展规划、建设和运营,就是在广泛借鉴和吸收国外先进经验编制依据上,建立和完善适合我国国情的城
14、市交通体系。1.3.2 交通管制问题 我国城市交通现状及存在的问题,借鉴国外城市交通管理的先进经验,强调建立城市交通管理体系的重要性,提出交通规划加强城市交通研究,建立稳定的交通基础设施.落实公交优先政策,建立先进的交通信息系统等对策。随着城市机动车增长速度的加快。1994 年,水平轨道上城市机动车辆近 500 辆。1990 年代以来,经济发展加快。从 1985 年到 1995 年,机动车的增长率达到了 13%左右,而且近年来有所增加。但与此同时,城市道路建设规模也在不断扩大。中国城市普遍存在道路密度低、道路面积率低的问题。这也是中国城市是有机大城市的重要原因。中国城市道路的密度仅为 6.8k
15、m 每平方公里,而在 1980 年代,世界发达国家已达到 20km 每平方公里。1990 年代,我国部分城市道路面积比例为 5.9%和 6.4%,而国外东京为 13.8%,巴黎为 25%,普遍高于我国。近年来,尽管国家不断加大城市道路建设的力度,但仍跟不上车辆的增长速度,与世界其他国家相比仍有较大差距。的士和公共汽车的发展和运营情况不尽如人意。虽然车辆和线路的长度增加了,但运行速度成为瓶颈,新增产能被运输效率低下所抵消。交通管理水平仍不发达。随着交通需求的不断增加,我国中小城市交通管理和交通安全的现代化设施不足。在车辆、道路和交通管理系统、城市交通信号控制系统、人工智能技术在城市交通控制中的应
16、用、信息采集和信息提供技术等方面与发达国家存在较大差距。近年来,虽然一些城市研究引进了国外一些先进的交通信号管理系统,但由于交通管理设施不足,我国交通事故率居高不下。城市交通流的速度逐年下降。目前,许多城市的交通量逐年增加,但运输速度普遍下降,这是由于交通不畅造成的。1.4 单片机交通控制系统的主要研究内容 本设计基于整个交通控制系统的发展,主要研究以下几个方面:以智能化、集成化、功能强大的单片机芯片为控制中心,设计了一套交叉口交通控制系统来指挥交叉口的实时交通控制。交通状况。本次设计主要做了以下几个方面:一是确定系统交通控制的总体设计,包括路口具体交通禁止方案的设计和系统应具备的功能。除了倒
17、计时显示提示外,根据实际情况,还需要交通流量检测与自调整模拟功能、违章检测与处理、紧急情况处理和键盘设置等强大功能。二是智能传感器硬件电路和显示电路设计中各器件的选择与连接,对各器件和模块的基本功能要求进行总体配置。三是软件系统设计。对于本系统,本人使用单片机汇编语言进行编写,对单片机的结构和工作条件做了充分的研究,了解了定时器、中断和延时原理,大致完成了软件编写。第二章单片机交通控制系统总体设计 2.1 单片机交通控制系统设计 它位于十字路口,分为东西方向和南北方向。任何时候都只允许一个方向通过,禁止另一个方向通过。它会持续一段时间。其具体状态如下图所示。说明:黑色表示开启,白色表示关闭。交
18、通状态从状态 1 到状态 6 再循环到状态 1,重复循环,如图 2.1 所示:直到状态 6 再循环到状态 1,通过对具体路口红绿灯状态的演示分析,我们可以把这四种状态总结如下:图 2.1 交通状况 东西方向红灯灭,绿灯同时亮,南北方向黄灯灭,红灯亮,倒计时20 秒。该州禁止东西通行,允许南北通行。东西方向绿灯灭,黄灯同时亮,南北方向红灯亮,倒计时 2 秒。在这种状态下,除了已经通过的车辆之外的所有车辆都必须等待状态转换。南北方向红灯灭,绿灯同时亮,东西方向黄灯灭,红灯亮,倒计时20 秒。该州允许东西方向通行,禁止南北方向通行。南北方向绿灯灭,黄灯同时亮,东西方向红灯亮,倒计时 2 秒。在这种状
19、态下,除了已经通过的车辆之外的所有车辆都必须等待状态转换。下面我们可以用一张图来表示点亮状态和停止状态的关系如下:状态 1 状态 3 状态 4 状态 6 东西 禁止的 等待转型 经过 等待转型 南北 经过 等待转型 禁止的 等待转型 表 2.1 交通状况和红绿灯状态 东、西、北、南四个路口有红、绿、黄三盏灯和 2 个数码管。在任何路口,遇到红灯禁止通行,转绿灯通行。状态和红绿灯状态如表 2.1 所示。说明:0 表示关闭,1 表示开启。2.2 单片机交通控制系统功能需求 本设计可以模拟基本的交通控制系统,使用红绿灯指示禁止通行、通过和等待信号、倒计时显示、交通流量检测和调整、交通违章处理和应急处
20、理。2.2.1 倒计时显示 当灯光颜色发生变化时,倒计时显示屏会提醒驾驶员在“停止”和“通过”之间做出适当的选择。司机和行人普遍愿意选择带有倒计时显示的信号控制方式,并认为带有倒计时显示的路口更安全。倒计时显示是在信号灯颜色发生变化的关键时刻,用来减少驾驶员复杂判断的一种方法。它可以提醒驾驶员信号灯颜色变化的时间,帮助驾驶员在“停车”和“通过”之间。做出正确的选择。2.2.2 流量检测与调整 随着我国经济建设的蓬勃发展,城市人口和机动车保有量迅速增加,车流量日益增加,交通拥堵现象日益严重,交通事故时有发生到时间。车辆检测器作为智能交通系统的基本组成部分,在智能交通系统中占有重要地位。现阶段,车
21、辆检测器的检测方法有很多,各有优缺点,如红外检测器、地磁检测器、机械压电检测器、磁频检测器、波频检测器、视频检测器等。交通流量检测器一般由传感器+单片机+外围设备实现。而且目前国内使用的红绿红灯 1 1 0 0 黄色的东西 0 0 0 1 绿灯的东西 0 0 1 0 南北红灯 0 0 1 1 南北绿灯 1 0 0 0 南北黄灯 0 1 0 0 灯都是固定红绿灯时间,自动切换。红灯时间和绿灯时间是根据路口东西向和南北向的车流量通过统计方法确定的。交警不断观察交叉口的两个方向,根据车辆密度和车流速度决定是否切换红绿灯,以确保最佳的道路交通控制状态。2.2.3 手动时间设置 除了根据车流量对系统进行
22、自动控制和调节外,还可以通过键盘手动设置,增加了人的可控性,避免了自动故障和事故的发生。在紧急情况下,所有的灯都可以设置为红色。键盘是单片机系统中最常用的人机界面。一般来说,有两种类型:独立的和行列式的。前一种软件写起来简单,但在 key 数较多时尤其浪费 I/O 口资源,一般用在 key 数较少的系统中。后者适用于按键数量较多的场合,但在单片机的 I/0 口资源比较少,需要较多按键的情况下,这种方式还是不能满足设计要求。系统不需要太多按键控制,I/O 口足够,可以直接作为独立机型使用。2.2.4 紧急处理 交通路口的紧急情况在所难免,比如发生重大事故、救护车等急救车辆通过等,我们要尽量让其畅
23、通无阻。个人生死等。因此,在交通管制中增加一个不停车按钮就可以达到这个目的。2.2.5 违规检测 交通规则是每个人都必须遵守的,但闯红灯等违规行为也时有发生。虽然交警和其他交通管理人员可以进行实时监管,但它们是能源密集型的,并且可以通过在十字路口设置检测传感器来自动发出警报。2.3 单片机交通控制系统的基本组成和原理 采用单片机设计交通灯控制系统。单片机可以直接控制信号灯的状态变化,基本可以指挥具体的交通流向。当然也可以通过连接 LED 数码管显示倒计时提醒出行者,更加人性化。在此基础上,系统增加了违章检测电路和车流检测电路,为单片机采集数据。单片机对此进行具体处理,及时调整控制指令。为了超越
24、视觉指挥的限制,蜂鸣器连接在听觉上加强指挥提醒。单片机车流量传感器最小系统外围接口电路8段LED数码管显示红黄绿信号灯蜂鸣器按键控制 图 2.2 系统整体框图 据此,设计系统以单片机为控制核心,连接成最小系统。车流检测模块、违章检测模块、按钮设置模块产生输入,信号灯状态模块、LED 倒计时模块和蜂鸣器状态模块接收输出。.系统的整体框图如上所示。键盘设置模块输入系统输入方式选择和具体通过时间设置的信号,系统进入正常工作状态,执行红绿灯状态显示控制,同时向 LED 数码管输入时间数据倒计时用于实时显示。在这个过程中,违规检测和紧急关键信号也被实时捕获,从而达到实时控制异常状态的目的。紧急停止按钮和
25、违规检测呼叫随时中断。在模式选择中,如果是自动模式,会不断调用车流检测模块对车流进行检测和统计,到达一定时间后,修正通过时间,以满足不同道路的需要条件。第三章系统硬件电路设计 3.1 系统硬件整体电路组成及原理 为实现本设计所需的具体功能,89C 可选择 AT 52 单片机及外围器件组成最小控制系统,12 个发光二极管分为红、绿、黄三色灯 4 组组成一个信号灯指示模块,8 个 LED 各组成一个倒计时显示。模块,交通流量检测传感器采集流量数据,光敏传感器捕捉违规信号,几个按钮形成时间设置和模式选择按钮和紧急按钮等,通过蜂鸣器报警。3.1.1 系统硬件电路组成 该系统以单片机为核心,形成集车流采
26、集、处理、自动控制于一体的闭环控制系统。系统硬件电路由车流检测电路、单片机、违章检测电路、状态灯、LED 显示屏、按键、蜂鸣器等组成。其具体硬件电路图如图 3.1 所示。其中,P0 和 P1 用来发送和显示两个 LED 数码管,P2 用来控制红绿黄发光二极管,XTAL1 和 XTAL2 接晶振时钟电路,REST 脚接接复位电路,P3.2为 INT1 接违章检测电路和急停/东西向时间设置键 J,P3.3 为 INT1 接交通流量检测电路,P3.6 接到南北时间设定键 S,P3.7 接自动模式选择/返回键F,P3.4 接蜂鸣器。3.1.2 系统如何运作 系统上电或手动复位后,系统等待模式选择设置键
27、被按下。有两种模式:自动红绿灯时间和红绿灯时间设置。如果此时按下 F 键,将设置为自动模式。如果此时按下 S 键,则设置为时间设置模式。依次按 S 键数次,按 J键数次可设置两个方向的红绿灯时间。,然后按 F 键确认。实际上,这个过程就是设置存储时间值的寄存器来指示是否要进行流量检测和调整。接下来,系统必须先显示状态灯和 LED 数码管,将状态码值发送到 P2端口,将要显示的时间值的个位和十位分别发送到 P0 和 P1 端口,同时时间以 50ms 为一个周期,用软件方法计时 1 秒,当达到 1 秒时,时间值减 1,LED 数码管刷新。当时间达到一个状态所需的全部时间时,进行下一个状态的判断和连
28、接,加载下一个状态对应的状态码值与时间值相匹配。当然,必须打开两个外部中断,其中之一是违规信号的输入或停止-停止信号。一旦信号有效,中断启动,进入中断服务子程序,并开启蜂鸣器禁止一切访问。当按下 F 键时,中断结束。返回。二是交通流检测信号的输入。如果检测到有车辆通过,则进入相应的中断子程序,将存储车流量的寄存器加 1,然后返回中断结束。每个全状态循环周期,如果是自动模式,必须对检测到的交通流量数据进行一次处理,确定双向交通的优先级,然后调整下一个状态循环的红绿灯时间,达到自动的目的控制。图 3.1 基于单片机的红绿灯控制系统电路图 3.2 单片机的选择 3.2.1 微控制器概述 单片机简称单
29、片机,又称微控制器、嵌入式微控制器等,属于第四代电子计算机。它将中央处理器、存储器、输入/输出接口电路和定时器/计数器集成在一个芯片上,具有体积小、功耗低、价格低、抗干扰能力强、可靠性高等特点。因此,它适用于工业过程控制、智能仪器仪表和测控系统中使用的前端设备。正是由于这个原因,国际上逐渐使用微控制器(MCU)这个名称来代替单片机(SCM)。“单片机”更能体现单片机的本质,但由于单片机的名称已为国内大多数人所接受,所以仍沿用“单片机”的名称。微控制器的主要特点是:1)具有优异的性价比。2)集成度高、体积小、可靠性高。3)强大的控制功能。3.2.2 AT 89C52 芯片 芯片 AT 89C52
30、 是 ATMEL 生产的 8 位单片机,具有 2K 字节的闪存。机器。它具有以下特点:指令 89C 兼容 51 种产品包括 2K 字节可重编程闪存 耐 1000 次写入/擦除循环工作电压范围 2.7V6V 全静态运行 0Hz24MHz 二级程序内存锁定 包括 128*8-bit RAM 15 条可编程 I/0 引脚 2 个 16 位计数器/定时器6 个中断源 带可编程串行通讯口可直接驱动 LED 输出 片内模拟电压比较器低功耗空载和掉电模式 此外,单片机还具有体积小、价格低的特点。3.2.3 AT 89C51 芯片 AT 89C51 是一款低电压、高性能的 8 位 CMOS 微型计算机,具有
31、2K 字节的闪存可编程可擦除存储器(EEPROM)。它采用 ATMEL 的高密度非易失性存储器技术制造,与行业标准 MCS-51 指令集和引脚结构兼容。通过将通用 CPL1 和闪存结合在一个芯片上,89CATMEL 的 AT 52 是一款功能强大的微型计算机,可为许多嵌入式控制应用提供高度灵活且低成本的解决方案。图 3.2 是 89CAT52 的结构框图。图 3.2 89CAT 2051 结构图 3.2.4 AT 89C52 芯片最小系统 其中最简单的单片机系统包括晶振、复位、电源、系统输入控制、输出显示,以便与其他外围模块进行通信(如通讯、数据采集等)。(1)时钟电路 首先介绍一下单片机的晶
32、振电路,即时钟电路。单片机的工作流程是在系统时钟的作用下,一个一个地执行内存中的程序。单片机的时钟电路由一个外接晶振和两个启动电容组成,构成单片机的时钟电路。晶振频率越高,单片机处理数据的速度越快,系统功耗也会相应增加。也会下降。单片机系统常用的晶振频率有 6MHz、11.0592MHz、12MHz。本系统采用 11.0592MHz晶振,电容可选 22pF 或 30pF。(2)复位电路 系统刚上电时,单片机部门的程序还没有开始执行,需要一段时间的准备时间,也就是复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑掉或崩溃时,还需要进行系统重置。复位电路有很多种,如上电复位、手动复位等。(3
33、)EA 脚的功能及连接 MCU 的 EA 引脚控制程序是从内部存储器读取还是从外部存储器读取。由于单片机部门的 flash 容量很大,程序基本上是从部门的内存中读取的,即不需要外接 ROM 来存储程序,所以 EA 脚必须接高电平等级。本设计中复位方式采用开机/按键手动复位方式,时钟采用部分时钟。如下图 3.3 所示。图 3.3 本系统复位和时钟模式 第四章系统软件程序设计 4.1 程序主体设计流程 整个控制程序实际上分为几个模块:键盘设置处理程序、状态灯控制程序、LED 显示程序、防抖动延时程序、二次状态判断及处理程序、急停或违规判断程序、中断服务子程序、小车流量计数程序、红绿灯时间调整程序等
34、 整个软件程序主要分为两部分:按键处理程序和 50ms 扫描程序。流程图如图 4.1 所示。图 4.1 系统总体流程图 首先是按键处理程序,89C51 通过扫描 IO 判断是否有按键被按下,然后判断是哪个按键被按下,根据按键值跳转到按键处理程序。关键处理结果可以设置两种工作模式:红绿灯时间设置模式和红绿灯时间自动模式。设置好后进入 50ms 扫描程序。50ms 扫描程序启动后,首先刷新显示模块。如果是自动模式,则统计车流,然后扫描急停信号和违章信号。如果它被捕获,则调用中断。中断服务子程序主要是启动蜂鸣器直到它恢复。键按下。50 毫秒后重新扫描。20次扫描后,当时间达到 1s 时,时间数据减
35、1,显示模块中的显示缓存容量被修改。当半状态切换时,交通流量统计程序以一个状态变化周期依次统计两个方向的交通流量,然后调用红绿灯时间调整程序更新红绿灯时间。当前状态时间到了,判断其状态并加载相应数据,然后进入下一个状态。4.2 理论基础 4.2.1 定时器原理 定时器工作的基本原理其实就是给出初值,让它继续加 1,直到递减为模值,然后把这个初值送到 TH 和 TL。采用加法计数,可自动产生全 1 到全0 的溢出中断请求。因此,我们可以将计数器满时所需的计数值设置为零,即将所需计数值设置为 C,将初始计数值设置为 TC,得到如下通式:TC=MC 式中,M 为计数器的模值。计数值不是目的,目的是时
36、间值。时间设计一次,即定时器计数脉冲的周期为 T0,为单片机系统主频周期的 12 倍。如果所需时间值为 T,则有 C=T/T0。计算公式变为:T=(MTC)T0 模值与计数器的工作方式有关。在模式 0 中,M 为 8192;方式一时,M 的值为 65536;在模式 2 和 3 中,它是 256。由此可以计算出各种方法的最大延迟。例如单片机的主脉冲频率为 12MHZ,经过 12 分频后,采用方式 0 时最大延迟仅为 8.129 毫秒,采用方式 1 时最大延迟仅为 65.536 毫秒.这就是为什么扫描周期是 50ms,使用软件会延迟程序流程,这显然是不可行的。反之,只用计数器计时是不可能的,因为显
37、然 1 秒已经超过了计数器的最大固定时间,所以我们必须结合使用定时器和软件来解决这个问题。4.2.2 软件延迟原理 MCS-51 的工作频率为 12MHZ,机器周期与主频有关,机器周期是主频的12 倍,所以一个机器周期的时间为 12*(1/12MHZ)=1us。我们可以知道每条指令的周期数,这样我们就可以通过执行指令的数量来确定 1 秒的时间,但同时由于单片机的运行速度快,其他指令的执行时间可以忽略。我们设置一个软件计数器,初始值为 20,时间 T0 为 50 毫秒。这样,当 T0 到 50 毫秒时,CPU 响应其溢出中断请求,进入其中断服务程序。在中断服务程序中,CPU 首先将软件计数器减
38、1,然后判断是否为零。零表示已经过了 1 秒。设置定时器需要 50 毫秒,所以 T0 必须工作在模式 1。所需初始值:TC=MT*T0=216-50ms/1us=15536=3CBOH,过程如下:.等待:JNB TF0,WAIT1 CLR TF0 MOV TH0,#01H MOV TL0,#0B01H DJNZ R2,等待.4.2.3 中断原理 本系统主要使用外部中断。中断信号从引脚 INT0 和 INT1 输入,低电平有效。CPU 将在每个时钟周期检测 INT0 和 INT1 上的信号。8051 允许外部中断为电平或下降沿。输入中断请求信号可以通过设置 TCON 中的 IT0 和 IT1 位
39、的状态来实现。以 IT0 为例,IT0=0,为电平触发方式,IT0=1,为下降沿触发方式,本设计采用电平方式,IE0 为中断标志位,如果有中断信号则置位,和中断服务子程序响应后,IE0 自动清零。IE 中的 EA 是允许中断的总控制位,为 1 为使能,EX0 为外部中断使能控制位,为 1 为使能。在优先级的允许下,一旦外部中断信号产生,单片机 CPU 首先保护断点,将 PC 值压入堆栈,然后执行相应的中断服务子程序。取保存的断点地址,发回 PC,程序正常执行。4.2.4 红绿灯时间调整原理 交通流量检测传感器可以为单片机控制系统提供实时数据,系统对获取的数据进行模糊处理。实现红绿灯的模糊控制,
40、需要解决路口当前交通状况的检测,完成以下任务:1、输入量的采集,系统采集两个输入量,即两个方向的车流量。2、输出的确认,即红绿灯的时间值。3.设计将输入映射到输出的模糊规则。4.确定激活的模糊规则的组合和清晰处理,以产生精确的输出控制信号。为了收集上述数据,在路口的四个侧面一共设置了 2 个传感器。分别检测两个方向的流量。流量检测不是最终目标。在每半个周期,系统将检测两个方向的交通流量数据。除以时间,就可以得到单位时间的交通流量,然后比较两个方向单位时间的交通流量,确定下一个红绿灯周期的时间,达到调整的目的。例如,一个循环后,南北车流量(此时设置南北绿灯,东西红灯时间为20s)为 100 辆,
41、东西车流量(设置东-此时西绿灯,南北红灯时间为 30s)如果有 90 辆车,则单位时间内南北和东西交通流量之比为:(100/20)/(90)/30)=1.6。显然,南北交通很严重,所以现在可以调整南北绿灯和东西红灯的时间。长。上述 1.6 的比例仍然是一个确定的值。多少是多,多少是少?需要设置模糊规则,划定几个取值范围,对应具体的调整时间,系统会调用具体的输出值。.4.3 子程序模块设计 4.3.1 钥匙扫描仪 首先程序连续扫描模式设置按键,分别记录为:IO 口的 P3.6、P3.2、P3.7 对应的 S 键、J 键、F 键,低电平有效,键序列已指定。F 键,为自动调整模式,然后进入下一个程序
42、;如果先按 S 键,再按 J 键,F 键是设置时间模式,然后进入下一个程序。在程序开始时,需要判断是否有按键按下。您可以连续添加 S 键值和 F 键值。总和值为 1,表示没有按键,0 表示有按键。程序如下:K1:MOV C,P0.0 ANL C,P0.1 C、K1.接下来,需要确定哪个键是特定键。如果是 F 键,它会自动将位置标记为 1 并进入下一个程序。否则就是 S 键,意思是设置南北绿灯时间,用R0 存储数值,按 1 加 1,同时还要判断 J 键是否按下此时。如果按下,则表示已经设置了南北绿灯时间。开始设置东西绿灯时间,用 R1 存储数值,同样按 1 加 1,判断此时是否按下 F 键。,按
43、下则表示时间设置完成,进入下一个程序。在这个过程中,S 键和 J 键的计数是循环的,从初始值 20 开始,加到40 循环回到 20。例如 S 键程序判断如下:CJNZ R0,#40,V1 移动 R0,#20 V1:增量 R0.4.3.2 状态灯显示与判断 在这个设计中,实际控制的只有 6 个灯,分别是:东西红灯、东西绿灯、东西黄灯、南北红灯、南北绿灯、南北黄灯.IO 口定义如下,均为低电平有效。H_GREEN 位 P2.2 H_YELLOW 位 P2.3 L_RED BIT P2.4 L_GREEN 位 P2.5 L_YELLOW 位 P2.6 共 4 个状态:东西红灯亮,南北绿灯亮(1101
44、1101/DDH);东西红灯亮,南北黄灯亮(10111101/BDH);东西绿灯亮,南北红灯亮(11101101/EDH);东西黄灯亮,南北红灯亮(11100111/E7H)。括号内为 P2 端口 P2.7、P2.6、P2.5、P2.4、P2.3、P2.2、P2.1、P2.0的 8 个引脚值及对应的十六进制代码。用于显示发光二极管时,十六进制代码通过 MOV 指令直接送到 P2 口。刚才的四种状态是依次变化的,这涉及到状态的判断和连接。先将 P2端口的值与所有 4 个状态码进行比较,如果相同,则判断当前状态成功,然后将下一个状态的状态码发送给 P2 显示。程序如下:MOV A,P2 CJNZ
45、A,#0DDH,D1 MOV P2,#BDH D1:CJNZ A、BDH、D2 MOV P2,#EDH D2:CJNZ A,#EDH,D3 MOV P2,#E7H D3:CJNZ A,#E7H,Y MOV R2,#DDH.4.3.3LED 倒计时显示 LED 定时每 1 秒刷新一次,当定时超过 1 秒时,存储时间的工作寄存器R4 减 1,然后送 LED 显示程序显示。接下来,时间数据 R4 的十位和一位将分别发送到 P1 和 P0 端口。首先将 R4 除以 10,整数为 A 中的十位,余数为B 中的个位,设置 7 段 LED 显示。对于 data 的数据表,用数据指针寄存器DPTR 指向数据表
46、的首地址,加上 A 中的偏移量,就可以指向十位数字,然后发送显示,同理对于一位数显示是正确的。具体程序如下:MOV A,R4 移动 B,#10 DIV A,B MOV DPTR,#LEDMAP MOVC A,A+DPTR MOV P1,A 移动 A,B MOVC A,A+DPTR MOV P3,A LEDMAP:DB 3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH.4.3.4 流量检测中断服务子程序 流量检测是利用外部中断引脚 P3.3 即 INT1 捕捉到低电平,然后进入相应的中断服务子程序,在子程序中,用 R5 测量南北向的流量,用 R6 来测量测量东西向交
47、通流量,设置车辆方向标志为 01H,判断车辆方向,流程如下:JNB 01H,U INC R5 U:INC R6.4.3.5 紧急停止和违规中断服务程序 紧急停止按钮和违规信号传感器都连接到外部中断引脚 P3.2,即如果INT0 捕捉到低电平,则进入中断。在中断程序中,首先将蜂鸣器 P3.4 端口设置为 0 以启动蜂鸣器。并等待恢复键 F 键 P3.7 被按下,然后关闭蜂鸣器返回。INT0:SETB P0.5 P0.0,$本地呼叫延迟 CLR P0.5 视网膜病变.4.3.6 红绿灯时间调整程序 根据红绿灯时间调整原理,在一个周期内,R5 和 R6 分别存储南北向和东西向的交通流量,然后计算单位
48、时间的交通流量。此时南北向时间和东西向时间分别存储在 R0 和 R1 中,则两个方向的流量比为(R5/R0)/(R6/R1)=(R5*R1)/(R6*R0)。显然,该比率是一个小数点大约为 1 的值。但是,在微控制器程序中只采用整数。重要的数据信息会丢失,所以在这个设计中,先将(R5*R1)乘以 10,比例变成 10 左右的值。把那个比例值放在 A 中,然后做时间调整。由于种种限制,时间调整只画了 3 圈。比值 0 到 0.7 为圆,0.8 到 1.5为圆,1.5 以上为圆。第一个圆圈明显表示东西向交通严重,应该增加时间;第二个圆圈表示两个方向相等,可以设置相同的时间,第三个圆圈表示南北交通严
49、重,应该增加时间。具体设置如表 4.1 所示。南北和东西比 0 0.7 0.8 1.5 1.5 及以上 调整南北时间 20 30 40 调整东西向时间 40 30 20 表 4.1 比例及调整时间 从表中可以看出,对应的时间调整只有三个,分别是 20、40;30,30;40,20.显然,这样简单的处理在实际应用中是很难满足的,但是这里,这个设计只是一个模拟的粗调过程,上面需要的程序如下:CJNZ A,#7 M1 M2:MOV R2,#20 MOV R1,#40 输出 M1:C,M2 CJNZ A,#15 N1 N2:移动 R0,#30 MOV R1,#30 输出 N1:C,N2 移动 R0,#
50、40 MOV R1,#20 输出:CLR R5 CLR R6 RET.4.3.7 去抖程序 另外,在按键计数的过程中,机械抖动和软件之间还有一个矛盾,就是当程序检测到某个按键被按下时,它会计数一次,但实际上按键关闭后,会在显微镜下弹起,然后关闭,直到达到稳定。显然,后续的弹射是无效的。为了避免程序中出现这个问题,可以在检测到第一次关闭时调用延迟一定时间的程序。这里延迟程序完全由软件完成,利用程序执行一条指令的时间,加上两次累加和递减嵌套,程序如下:延迟:MOV R2,#14H A1:MOV R7,#0FFH DJNZ R2,$DJNZ R7,A1 RET 4.4 源程序 H_RED BIT P