单片机完成交通灯控制系统的设计与实现_第1页
单片机完成交通灯控制系统的设计与实现_第2页
单片机完成交通灯控制系统的设计与实现_第3页
单片机完成交通灯控制系统的设计与实现_第4页
单片机完成交通灯控制系统的设计与实现_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

学科::理工大学成人教育职称永成职业学院毕业设计(论文)题目交通信号灯控制系统的设计:学生:导师:摘要交通控制系统是现代社会物流、旅游等交通运输发展产生的独特的公共管理系统。为保障高效安全的交通秩序,除了制定一系列交通规则外,还必须通过一定的科技手段来实现。本文在深入分析当前交通控制编制依据上,采用检测感知和智能控制实时调整的实现技术,将传感器监测和车辆通过时间实时调整算法与控制相结合。单片机的功能,提出了一种基于单片机的智能控制系统。交通控制系统设计方案。8051单片机红绿灯控制系统由8051单片机、红绿灯显示、LED倒计时、车流检测与调节、违章检测、应急处理、时间模式手动设置等模块组成。该系统除具备基本的红绿灯功能外,还具有手动设置通行时间、倒计时显示、应急车辆强制通行、交通流量检测与调整、交通异常情况识别与处理等相关功能。理论证明,该系统可以简单、经济、有效地分流,提高交通路口的通行能力。本次设计主要在以下几个方面进行:一是确定系统交通控制的总体设计,包括路口具体交通禁止方案的设计和系统应具备的功能;二是进行传感器的硬件电路、显示电路的设计及基本功能要求等。三是软件系统的设计。对于这个系统,我是用单片机的汇编语言来写的,软件一般都是写的。关键词:交通管制,传感器检测,AT89C51,倒计时显示,异常情况判别目录摘要0目录0前言1第1章微控制器概述2单片机流量控制系统选题背景21.2单片机交通控制系统选题的现实意义21.3国外研究现状与发展41.3.1国外交通控制技术41.3.2交通控制存在的问题41.4单片机交通控制系统的主要研究内容5第二章单片机交通控制系统总体设计62.1单片机交通控制系统的设计62.2单片机交通控制系统功能要求72.2.1倒计时显示7_2.2.2流量检测与调整72.2.3手动设置时间82.2.4应急处理82.2.5违规检测82.3单片机交通控制系统的基本组成和原理8第三章系统硬件电路设计103.1系统硬件整体电路组成及原理103.1.1系统硬件电路结构103.1.2系统工作原理103.2MCU12的选择3.2.1MCU12概述3.2.2AT89C51芯片12的主要性能1芯片12部分结构框图3.2.4AT89C51芯片最小系统133.3其他硬件的介绍与连接143.3.1车流检测电路及仿真143.3.2违规检测电路与仿真153.3.3八段LED数码管163.3.4其他设备17第四章系统软件程序设计194.1程序主体设计流程194.2理论基础204.2.1定时器原理204.2.2软件延时原理204.2.3中断原理214.2.4红绿灯时间调整原理214.3子程序模块设计224.3.1按键扫描程序224.3.2状态灯显示与判断234.3.3LED倒计时显示234.3.4流量检测中断服务子程序244.3.5紧急停止和违规中断服务子程序244.3.6红绿灯时间调整程序254.3.7去抖程序264.4源程序264.5系统软件调试314.5.1TKS模拟器314.5.2集成开发环境KEIL314.5.3系统软件调试32结论34至35参考文献36介绍如今,交通信号灯安装在各个路口,已成为交通车辆分流最常见、最有效的手段。但这项技术自19世纪以来就已经存在。1858年,在英国伦敦的主要街道上安装了一盏以气体为光源的红蓝机械扳手式信号灯,用于指挥车厢的通行。这是世界上第一个红绿灯。1868年,英国机械工程师奈特在伦敦威斯敏斯特议会大厦前的广场上安装了世界上第一个燃气红绿灯。它由红绿两个旋转的方形玻璃灯笼组成,红色表示“停止”,绿色表示“注意”。1969年电动交通信号灯出现在美国。这种交通信号灯由红色、绿色和黄色的圆形光投射器组成。它于1914年安装在纽约市第五街的一座塔上。红灯表示“停止”,绿灯表示“通过”。1918年,出现了可控红绿灯和红外线红绿灯。可控红绿灯,一种是在地下安装压力检测仪,车辆一接近红灯就会变绿;红灯变为绿色。当行人踏上压敏路面时,红外交通灯可以检测到有人即将过马路。红外线光束可以将信号灯的红光延长一段时间,延缓汽车的释放,避免交通事故。信号灯的出现,实现了有效的交通管制,对疏通车流、提高道路通行能力、减少交通事故等起到了明显的作用。1968年联合国《道路交通与道路标志信号协定》规定了各种信号灯的含义。绿灯是通过信号,面对绿灯的车辆可以直行、左转和右转,除非另一个标志禁止某种转弯。左转和右转的车辆必须优先考虑在交叉路口合法行驶的车辆和穿过人行横道的行人。红灯是禁止通行的信号,遇到红灯的车辆必须在交叉路口的停车线后面停车。黄灯是警告信号。面对黄灯的车辆不能越过停车线,但车辆距离停车线太近无法安全停车时可以进入路口。第1章微控制器概述1.1单片机交通控制系统选题背景随着人口的快速增长、交通的爆炸式发展以及道路资源的限制,交通管制应运而生。一直在处理流量。自18世纪工业革命以来,工业发展带动了整个交通的发展,从而催生了独立的交通控制知识和管理组织。交通控制系统是现代社会物流、旅游等交通运输发展产生的独特的公共管理系统。确保高效安全的交通秩序,除了制定一系列交通规则外,还必须通过一定的技术手段来实现。现代人类科学技术,特别是电子科学技术的发展和成熟,可以更好地解决系统建立所需的硬件和软件方面的技术问题。目前对交通控制的研究可以完全实现自动化智能化,甚至可以将整个区域整合为一个统一的系统,还可以根据正常时间段和特定紧急时间段的情况进行科学的自动调整。交通运输在社会工业经济和人们的生活生产中起着非常重要的作用。随着单片机和传感技术的飞速发展,自动检测领域发生了很大的变化,自动交通监控研究取得明显进展,将以其卓越的性能逐步取代传统的交通控制措施。性能价格比。.1.2单片机交通控制系统选题的现实意义城市道路交通自动控制系统的发展以城市交通信号控制技术为主导,与汽车工业同步发展。在其各个发展阶段,由于交通中各种矛盾的不断出现,人们总是尽力将各个历史阶段的最新科技成果应用到自动交通控制中,从而推动自动交通控制技术的不断发展。早在1850年,城市十字路口不断增长的交通就引发了人们对安全和拥堵的担忧。世界上第一盏自动交通信号灯的诞生,拉开了城市交通管制的序幕。1868年,英国工程师奈特在伦敦威斯敏斯特街的十字路口安装了一盏红绿相间的煤气灯。,用于控制十字路口的马车通行,但一次瓦斯爆炸导致红绿灯消失了近半个世纪。1914年及稍晚一点,美国克利夫兰、纽约和芝加哥的红绿灯又出现了,而且都是用电供电的,和现在意义上的信号灯差不多。1926年,英国人首先安装并使用自动控制器来控制红绿灯,这是城市交通自动控制的起点。早期的红绿灯采用“定时定时”的方式实现自动控制,对早期的交通畅通情况起到了一定的作用。但随着汽车工业的发展,车流量的增加,随机变化的增强,以往单一的“定时定点”模式已经不能满足客观需要,因此,方案信号控制器开始出现,并逐渐取代传统的控制器,只有一种控制方案。1930年代初,美国首先开始使用车辆感应式信号控制器,英国紧随其后,当时使用的车辆检测器为气动胶管检测器。车辆感应控制器的特点是可以根据检测器测得的车流量调整绿灯时间的长短,从而更有效地利用绿灯时间,减少路口车辆的延时,并且比时序控制方式具有更大的灵活性。性别。车辆传感控制的这一特点刺激了车辆检测技术的发展。继气动胶管探测器之后,雷达、超声波、光电、地磁、电磁、微波、红外、环形线圈等探测器相继问世。在当今城市道路交通自动控制、交通监控和交通数据采集系统中,应用最广泛的是环形线圈车辆检测器。超声波检测仪主要在日本等少数几个国家得到广泛应用。计算机技术的出现为交通控制技术的发展注入了新的活力,实现了以城市或区域为基础的整体交通控制系统,而不是简单的路口。1952年,美国科罗拉多州丹佛市首先利用模拟计算机和交通探测器实现了交通信号网络定时方案的自动选择信号灯控制,而加拿大多伦多在1964年完成了计算机控制信号灯的实际应用。一套由IBM650计算机控制的交通信号协调控制系统成为世界上第一个拥有电子数字计算机城市交通控制系统的城市。这是道路交通控制技术发展的里程碑。可以说,在近一百年的发展中,道路交通信号控制系统经历了手动到自动,从固定定时到灵活定时,从无感控制到感应控制,从单点控制到主干控制,来自区域控制。到网络控制的长期过程。交通管制研究的发展旨在解决由于需求增加而导致的人流量负担增加所带来的问题。受限于道路建设的暂时短缺和车辆的快速增长,需要让更多的车辆安全高效地利用有限的空间。道路资源,避免因乱、冲等不受控制的原因造成不必要的堵塞甚至瘫痪,此外,还需要实时调整整条交通线路上的车辆数量,转移多条线路的分流。交通网络是城市的动脉,象征着一个城市的工业文明水平。交通事关人们在财产、安全和时间方面的利益。优秀而科学的交通控制技术对于资源物流和人们的出行具有重要意义。只有保证交通线路畅通安全,才能保证出行畅通,物流准时到位,乃至生命通道的延伸。1.3国外研究现状与发展1.3.1国外交通管制技术目前,在世界各国广泛应用的最具代表性但实施的城市道路交通信号控制系统包括英国的TRANSYT和SCOOTS交通控制系统以及澳大利亚的SCATS系统。在信号机的发展过程中,自适应理论受到了各种研究机构的欢迎,如上述的SCOOTS和SCATS系统。近年来,国外仍然倾向于引入自适应理论来开发交通信号控制系统,特别是在美国,有十几所大学或研究机构正在开发自适应交通信号控制系统,其中一个代表是美国亚利桑那大学。美国开发了RHODES。我国交通运输领域的发展起步较晚。基本上,新中国成立后,随着各种条件的成熟和社会发展的要求,交通管制体系得到建立和完善。城市交通是一个综合性很强的复杂问题,必须从政策、制度、制度、管理、收费价格、基础设施建设和投资等方面同步解决。我国城市经济社会的快速发展,使得社会对交通的需求急剧增加。对此也提出了严峻的挑战。一句话城市发展规划、建设和运营,就是在广泛借鉴和吸收国外先进经验编制依据上,建立和完善适合我国国情的城市交通体系。1.3.2交通管制问题我国城市交通现状及存在的问题,借鉴国外城市交通管理的先进经验,强调建立城市交通管理体系的重要性,提出交通规划加强城市交通研究,建立稳定的交通基础设施.落实公交优先政策,建立先进的交通信息系统等对策。随着城市机动车增长速度的加快。1994年,水平轨道上城市机动车辆近500辆。1990年代以来,经济发展加快。从1985年到1995年,机动车的增长率达到了13%左右,而且近年来有所增加。但与此同时,城市道路建设规模也在不断扩大。中国城市普遍存在道路密度低、道路面积率低的问题。这也是中国城市是有机大城市的重要原因。中国城市道路的密度仅为6.8km每平方公里,而在1980年代,世界发达国家已达到20km每平方公里。1990年代,我国部分城市道路面积比例为5.9%和6.4%,而国外东京为13.8%,巴黎为25%,普遍高于我国。近年来,尽管国家不断加大城市道路建设的力度,但仍跟不上车辆的增长速度,与世界其他国家相比仍有较大差距。的士和公共汽车的发展和运营情况不尽如人意。虽然车辆和线路的长度增加了,但运行速度成为瓶颈,新增产能被运输效率低下所抵消。交通管理水平仍不发达。随着交通需求的不断增加,我国中小城市交通管理和交通安全的现代化设施不足。在车辆、道路和交通管理系统、城市交通信号控制系统、人工智能技术在城市交通控制中的应用、信息采集和信息提供技术等方面与发达国家存在较大差距。近年来,虽然一些城市研究引进了国外一些先进的交通信号管理系统,但由于交通管理设施不足,我国交通事故率居高不下。城市交通流的速度逐年下降。目前,许多城市的交通量逐年增加,但运输速度普遍下降,这是由于交通不畅造成的。1.4单片机交通控制系统的主要研究内容本设计基于整个交通控制系统的发展,主要研究以下几个方面:以智能化、集成化、功能强大的单片机芯片为控制中心,设计了一套交叉口交通控制系统来指挥交叉口的实时交通控制。交通状况。本次设计主要做了以下几个方面:一是确定系统交通控制的总体设计,包括路口具体交通禁止方案的设计和系统应具备的功能。除了倒计时显示提示外,根据实际情况,还需要交通流量检测与自调整模拟功能、违章检测与处理、紧急情况处理和键盘设置等强大功能。二是智能传感器硬件电路和显示电路设计中各器件的选择与连接,对各器件和模块的基本功能要求进行总体配置。三是软件系统设计。对于本系统,本人使用单片机汇编语言进行编写,对单片机的结构和工作条件做了充分的研究,了解了定时器、中断和延时原理,大致完成了软件编写。第二章单片机交通控制系统总体设计2.1单片机交通控制系统设计它位于十字路口,分为东西方向和南北方向。任何时候都只允许一个方向通过,禁止另一个方向通过。它会持续一段时间。其具体状态如下图所示。说明:黑色表示开启,白色表示关闭。交通状态从状态1到状态6再循环到状态1,重复循环,如图2.1所示:直到状态6再循环到状态1,通过对具体路口红绿灯状态的演示分析,我们可以把这四种状态总结如下:图2.1交通状况◆东西方向红灯灭,绿灯同时亮,南北方向黄灯灭,红灯亮,倒计时20秒。该州禁止东西通行,允许南北通行。◆东西方向绿灯灭,黄灯同时亮,南北方向红灯亮,倒计时2秒。在这种状态下,除了已经通过的车辆之外的所有车辆都必须等待状态转换。◆南北方向红灯灭,绿灯同时亮,东西方向黄灯灭,红灯亮,倒计时20秒。该州允许东西方向通行,禁止南北方向通行。◆南北方向绿灯灭,黄灯同时亮,东西方向红灯亮,倒计时2秒。在这种状态下,除了已经通过的车辆之外的所有车辆都必须等待状态转换。下面我们可以用一张图来表示点亮状态和停止状态的关系如下:状态1状态3状态4状态6东西禁止的等待转型经过等待转型南北经过等待转型禁止的等待转型红灯1100黄色的东西0001绿灯的东西0010南北红灯0011南北绿灯1000南北黄灯0100表2.1交通状况和红绿灯状态东、西、北、南四个路口有红、绿、黄三盏灯和2个数码管。在任何路口,遇到红灯禁止通行,转绿灯通行。状态和红绿灯状态如表2.1所示。说明:0表示关闭,1表示开启。2.2单片机交通控制系统功能需求本设计可以模拟基本的交通控制系统,使用红绿灯指示禁止通行、通过和等待信号、倒计时显示、交通流量检测和调整、交通违章处理和应急处理。2.2.1倒计时显示当灯光颜色发生变化时,倒计时显示屏会提醒驾驶员在“停止”和“通过”之间做出适当的选择。司机和行人普遍愿意选择带有倒计时显示的信号控制方式,并认为带有倒计时显示的路口更安全。倒计时显示是在信号灯颜色发生变化的关键时刻,用来减少驾驶员复杂判断的一种方法。它可以提醒驾驶员信号灯颜色变化的时间,帮助驾驶员在“停车”和“通过”之间。做出正确的选择。2.2.2流量检测与调整随着我国经济建设的蓬勃发展,城市人口和机动车保有量迅速增加,车流量日益增加,交通拥堵现象日益严重,交通事故时有发生到时间。车辆检测器作为智能交通系统的基本组成部分,在智能交通系统中占有重要地位。现阶段,车辆检测器的检测方法有很多,各有优缺点,如红外检测器、地磁检测器、机械压电检测器、磁频检测器、波频检测器、视频检测器等。交通流量检测器一般由传感器+单片机+外围设备实现。而且目前国内使用的红绿灯都是固定红绿灯时间,自动切换。红灯时间和绿灯时间是根据路口东西向和南北向的车流量通过统计方法确定的。交警不断观察交叉口的两个方向,根据车辆密度和车流速度决定是否切换红绿灯,以确保最佳的道路交通控制状态。2.2.3手动时间设置除了根据车流量对系统进行自动控制和调节外,还可以通过键盘手动设置,增加了人的可控性,避免了自动故障和事故的发生。在紧急情况下,所有的灯都可以设置为红色。键盘是单片机系统中最常用的人机界面。一般来说,有两种类型:独立的和行列式的。前一种软件写起来简单,但在key数较多时尤其浪费I/O口资源,一般用在key数较少的系统中。后者适用于按键数量较多的场合,但在单片机的I/0口资源比较少,需要较多按键的情况下,这种方式还是不能满足设计要求。系统不需要太多按键控制,I/O口足够,可以直接作为独立机型使用。2.2.4紧急处理交通路口的紧急情况在所难免,比如发生重大事故、救护车等急救车辆通过等,我们要尽量让其畅通无阻。个人生死等。因此,在交通管制中增加一个不停车按钮就可以达到这个目的。2.2.5违规检测交通规则是每个人都必须遵守的,但闯红灯等违规行为也时有发生。虽然交警和其他交通管理人员可以进行实时监管,但它们是能源密集型的,并且可以通过在十字路口设置检测传感器来自动发出警报。2.3单片机交通控制系统的基本组成和原理采用单片机设计交通灯控制系统。单片机可以直接控制信号灯的状态变化,基本可以指挥具体的交通流向。当然也可以通过连接LED数码管显示倒计时提醒出行者,更加人性化。在此基础上,系统增加了违章检测电路和车流检测电路,为单片机采集数据。单片机对此进行具体处理,及时调整控制指令。为了超越视觉指挥的限制,蜂鸣器连接在听觉上加强指挥提醒。图2.2系统整体框图据此,设计系统以单片机为控制核心,连接成最小系统。车流检测模块、违章检测模块、按钮设置模块产生输入,信号灯状态模块、LED倒计时模块和蜂鸣器状态模块接收输出。.系统的整体框图如上所示。键盘设置模块输入系统输入方式选择和具体通过时间设置的信号,系统进入正常工作状态,执行红绿灯状态显示控制,同时向LED数码管输入时间数据倒计时用于实时显示。在这个过程中,违规检测和紧急关键信号也被实时捕获,从而达到实时控制异常状态的目的。紧急停止按钮和违规检测呼叫随时中断。在模式选择中,如果是自动模式,会不断调用车流检测模块对车流进行检测和统计,到达一定时间后,修正通过时间,以满足不同道路的需要条件。第三章系统硬件电路设计3.1系统硬件整体电路组成及原理为实现本设计所需的具体功能,89C可选择AT52单片机及外围器件组成最小控制系统,12个发光二极管分为红、绿、黄三色灯4组组成一个信号灯指示模块,8个LED各组成一个倒计时显示。模块,交通流量检测传感器采集流量数据,光敏传感器捕捉违规信号,几个按钮形成时间设置和模式选择按钮和紧急按钮等,通过蜂鸣器报警。3.1.1系统硬件电路组成该系统以单片机为核心,形成集车流采集、处理、自动控制于一体的闭环控制系统。系统硬件电路由车流检测电路、单片机、违章检测电路、状态灯、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系统如何运作系统上电或手动复位后,系统等待模式选择设置键被按下。有两种模式:自动红绿灯时间和红绿灯时间设置。如果此时按下F键,将设置为自动模式。如果此时按下S键,则设置为时间设置模式。依次按S键数次,按J键数次可设置两个方向的红绿灯时间。,然后按F键确认。实际上,这个过程就是设置存储时间值的寄存器来指示是否要进行流量检测和调整。接下来,系统必须先显示状态灯和LED数码管,将状态码值发送到P2端口,将要显示的时间值的个位和十位分别发送到P0和P1端口,同时时间以50ms为一个周期,用软件方法计时1秒,当达到1秒时,时间值减1,LED数码管刷新。当时间达到一个状态所需的全部时间时,进行下一个状态的判断和连接,加载下一个状态对应的状态码值与时间值相匹配。当然,必须打开两个外部中断,其中之一是违规信号的输入或停止-停止信号。一旦信号有效,中断启动,进入中断服务子程序,并开启蜂鸣器禁止一切访问。当按下F键时,中断结束。返回。二是交通流检测信号的输入。如果检测到有车辆通过,则进入相应的中断子程序,将存储车流量的寄存器加1,然后返回中断结束。每个全状态循环周期,如果是自动模式,必须对检测到的交通流量数据进行一次处理,确定双向交通的优先级,然后调整下一个状态循环的红绿灯时间,达到自动的目的控制。图3.1基于单片机的红绿灯控制系统电路图3.2单片机的选择3.2.1微控制器概述单片机简称单片机,又称微控制器、嵌入式微控制器等,属于第四代电子计算机。它将中央处理器、存储器、输入/输出接口电路和定时器/计数器集成在一个芯片上,具有体积小、功耗低、价格低、抗干扰能力强、可靠性高等特点。因此,它适用于工业过程控制、智能仪器仪表和测控系统中使用的前端设备。正是由于这个原因,国际上逐渐使用微控制器(MCU)这个名称来代替单片机(SCM)。“单片机”更能体现单片机的本质,但由于单片机的名称已为国内大多数人所接受,所以仍沿用“单片机”的名称。微控制器的主要特点是:1)具有优异的性价比。2)集成度高、体积小、可靠性高。3)强大的控制功能。3.2.2AT89C52芯片芯片AT89C52是ATMEL生产的8位单片机,具有2K字节的闪存。机器。它具有以下特点:★指令89C兼容51种产品★包括2K字节可重编程闪存★耐1000次写入/擦除循环★工作电压范围2.7V~6V★全静态运行0Hz~24MHz★二级程序内存锁定★包括128*8-bitRAM★15条可编程I/0引脚★2个16位计数器/定时器★6个中断源★带可编程串行通讯口★可直接驱动LED输出★片内模拟电压比较器★低功耗空载和掉电模式此外,单片机还具有体积小、价格低的特点。3.2.3AT89C51芯片AT89C51是一款低电压、高性能的8位CMOS微型计算机,具有2K字节的闪存可编程可擦除存储器(EEPROM)。它采用ATMEL的高密度非易失性存储器技术制造,与行业标准MCS-51指令集和引脚结构兼容。通过将通用CPL1和闪存结合在一个芯片上,89CATMEL的AT52是一款功能强大的微型计算机,可为许多嵌入式控制应用提供高度灵活且低成本的解决方案。图3.2是89CAT52的结构框图。图3.289CAT2051结构图3.2.4AT89C52芯片最小系统其中最简单的单片机系统包括晶振、复位、电源、系统输入控制、输出显示,以便与其他外围模块进行通信(如通讯、数据采集等)。(1)时钟电路首先介绍一下单片机的晶振电路,即时钟电路。单片机的工作流程是在系统时钟的作用下,一个一个地执行内存中的程序。单片机的时钟电路由一个外接晶振和两个启动电容组成,构成单片机的时钟电路。晶振频率越高,单片机处理数据的速度越快,系统功耗也会相应增加。也会下降。单片机系统常用的晶振频率有6MHz、11.0592MHz、12MHz。本系统采用11.0592MHz晶振,电容可选22pF或30pF。(2)复位电路系统刚上电时,单片机部门的程序还没有开始执行,需要一段时间的准备时间,也就是复位时间。一个稳定的单片机系统必须设计复位电路。当程序跑掉或崩溃时,还需要进行系统重置。复位电路有很多种,如上电复位、手动复位等。(3)EA脚的功能及连接MCU的EA引脚控制程序是从内部存储器读取还是从外部存储器读取。由于单片机部门的flash容量很大,程序基本上是从部门的内存中读取的,即不需要外接ROM来存储程序,所以EA脚必须接高电平等级。本设计中复位方式采用开机/按键手动复位方式,时钟采用部分时钟。如下图3.3所示。图3.3本系统复位和时钟模式第四章系统软件程序设计4.1程序主体设计流程整个控制程序实际上分为几个模块:键盘设置处理程序、状态灯控制程序、LED显示程序、防抖动延时程序、二次状态判断及处理程序、急停或违规判断程序、中断服务子程序、小车流量计数程序、红绿灯时间调整程序等整个软件程序主要分为两部分:按键处理程序和50ms扫描程序。流程图如图4.1所示。图4.1系统总体流程图首先是按键处理程序,89C51通过扫描IO判断是否有按键被按下,然后判断是哪个按键被按下,根据按键值跳转到按键处理程序。关键处理结果可以设置两种工作模式:红绿灯时间设置模式和红绿灯时间自动模式。设置好后进入50ms扫描程序。50ms扫描程序启动后,首先刷新显示模块。如果是自动模式,则统计车流,然后扫描急停信号和违章信号。如果它被捕获,则调用中断。中断服务子程序主要是启动蜂鸣器直到它恢复。键按下。50毫秒后重新扫描。20次扫描后,当时间达到1s时,时间数据减1,显示模块中的显示缓存容量被修改。当半状态切换时,交通流量统计程序以一个状态变化周期依次统计两个方向的交通流量,然后调用红绿灯时间调整程序更新红绿灯时间。当前状态时间到了,判断其状态并加载相应数据,然后进入下一个状态。4.2理论基础4.2.1定时器原理定时器工作的基本原理其实就是给出初值,让它继续加1,直到递减为模值,然后把这个初值送到TH和TL。采用加法计数,可自动产生全1到全0的溢出中断请求。因此,我们可以将计数器满时所需的计数值设置为零,即将所需计数值设置为C,将初始计数值设置为TC,得到如下通式:TC=MC式中,M为计数器的模值。计数值不是目的,目的是时间值。时间设计一次,即定时器计数脉冲的周期为T0,为单片机系统主频周期的12倍。如果所需时间值为T,则有C=T/T0。计算公式变为:T=(M-TC)T0模值与计数器的工作方式有关。在模式0中,M为8192;方式一时,M的值为65536;在模式2和3中,它是256。由此可以计算出各种方法的最大延迟。例如单片机的主脉冲频率为12MHZ,经过12分频后,采用方式0时最大延迟仅为8.129毫秒,采用方式1时最大延迟仅为65.536毫秒.这就是为什么扫描周期是50ms,使用软件会延迟程序流程,这显然是不可行的。反之,只用计数器计时是不可能的,因为显然1秒已经超过了计数器的最大固定时间,所以我们必须结合使用定时器和软件来解决这个问题。4.2.2软件延迟原理MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1us。我们可以知道每条指令的周期数,这样我们就可以通过执行指令的数量来确定1秒的时间,但同时由于单片机的运行速度快,其他指令的执行时间可以忽略。我们设置一个软件计数器,初始值为20,时间T0为50毫秒。这样,当T0到50毫秒时,CPU响应其溢出中断请求,进入其中断服务程序。在中断服务程序中,CPU首先将软件计数器减1,然后判断是否为零。零表示已经过了1秒。设置定时器需要50毫秒,所以T0必须工作在模式1。所需初始值:TC=MT*T0=216-50ms/1us=15536=3CBOH,过程如下:...等待:JNBTF0,WAIT1CLRTF0MOVTH0,#01HMOVTL0,#0B01HDJNZR2,等待...4.2.3中断原理本系统主要使用外部中断。中断信号从引脚INT0和INT1输入,低电平有效。CPU将在每个时钟周期检测INT0和INT1上的信号。8051允许外部中断为电平或下降沿。输入中断请求信号可以通过设置TCON中的IT0和IT1位的状态来实现。以IT0为例,IT0=0,为电平触发方式,IT0=1,为下降沿触发方式,本设计采用电平方式,IE0为中断标志位,如果有中断信号则置位,和中断服务子程序响应后,IE0自动清零。IE中的EA是允许中断的总控制位,为1为使能,EX0为外部中断使能控制位,为1为使能。在优先级的允许下,一旦外部中断信号产生,单片机CPU首先保护断点,将PC值压入堆栈,然后执行相应的中断服务子程序。取保存的断点地址,发回PC,程序正常执行。4.2.4红绿灯时间调整原理交通流量检测传感器可以为单片机控制系统提供实时数据,系统对获取的数据进行模糊处理。实现红绿灯的模糊控制,需要解决路口当前交通状况的检测,完成以下任务:1、输入量的采集,系统采集两个输入量,即两个方向的车流量。2、输出的确认,即红绿灯的时间值。3.设计将输入映射到输出的模糊规则。4.确定激活的模糊规则的组合和清晰处理,以产生精确的输出控制信号。为了收集上述数据,在路口的四个侧面一共设置了2个传感器。分别检测两个方向的流量。流量检测不是最终目标。在每半个周期,系统将检测两个方向的交通流量数据。除以时间,就可以得到单位时间的交通流量,然后比较两个方向单位时间的交通流量,确定下一个红绿灯周期的时间,达到调整的目的。例如,一个循环后,南北车流量(此时设置南北绿灯,东西红灯时间为20s)为100辆,东西车流量(设置东-此时西绿灯,南北红灯时间为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键,为自动调整模式,然后进入下一个程序;如果先按S键,再按J键,F键是设置时间模式,然后进入下一个程序。在程序开始时,需要判断是否有按键按下。您可以连续添加S键值和F键值。总和值为1,表示没有按键,0表示有按键。程序如下:K1:MOVC,P0.0ANLC,P0.1C、K1...接下来,需要确定哪个键是特定键。如果是F键,它会自动将位置标记为1并进入下一个程序。否则就是S键,意思是设置南北绿灯时间,用R0存储数值,按1加1,同时还要判断J键是否按下此时。如果按下,则表示已经设置了南北绿灯时间。开始设置东西绿灯时间,用R1存储数值,同样按1加1,判断此时是否按下F键。,按下则表示时间设置完成,进入下一个程序。在这个过程中,S键和J键的计数是循环的,从初始值20开始,加到40循环回到20。例如S键程序判断如下:CJNZR0,#40,V1移动R0,#20V1:增量R0...4.3.2状态灯显示与判断在这个设计中,实际控制的只有6个灯,分别是:东西红灯、东西绿灯、东西黄灯、南北红灯、南北绿灯、南北黄灯.IO口定义如下,均为低电平有效。H_GREEN位P2.2H_YELLOW位P2.3L_REDBITP2.4L_GREEN位P2.5L_YELLOW位P2.6共4个状态:东西红灯亮,南北绿灯亮(11011101/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显示。程序如下:MOVA,P2CJNZA,#0DDH,D1MOVP2,#BDHD1:CJNZA、BDH、D2MOVP2,#EDHD2:CJNZA,#EDH,D3MOVP2,#E7HD3:CJNZA,#E7H,YMOVR2,#DDH...4.3.3LED倒计时显示LED定时每1秒刷新一次,当定时超过1秒时,存储时间的工作寄存器R4减1,然后送LED显示程序显示。接下来,时间数据R4的十位和一位将分别发送到P1和P0端口。首先将R4除以10,整数为A中的十位,余数为B中的个位,设置7段LED显示。对于data的数据表,用数据指针寄存器DPTR指向数据表的首地址,加上A中的偏移量,就可以指向十位数字,然后发送显示,同理对于一位数显示是正确的。具体程序如下:MOVA,R4移动B,#10DIVA,BMOVDPTR,#LEDMAPMOVCA,A+DPTRMOVP1,A移动A,BMOVCA,A+DPTRMOVP3,ALEDMAP:DB3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH...4.3.4流量检测中断服务子程序流量检测是利用外部中断引脚P3.3即INT1捕捉到低电平,然后进入相应的中断服务子程序,在子程序中,用R5测量南北向的流量,用R6来测量测量东西向交通流量,设置车辆方向标志为01H,判断车辆方向,流程如下:JNB01H,UINCR5U:INCR6...4.3.5紧急停止和违规中断服务程序紧急停止按钮和违规信号传感器都连接到外部中断引脚P3.2,即如果INT0捕捉到低电平,则进入中断。在中断程序中,首先将蜂鸣器P3.4端口设置为0以启动蜂鸣器。并等待恢复键F键P3.7被按下,然后关闭蜂鸣器返回。INT0:SETBP0.5P0.0,$本地呼叫延迟CLRP0.5视网膜病变...4.3.6红绿灯时间调整程序根据红绿灯时间调整原理,在一个周期内,R5和R6分别存储南北向和东西向的交通流量,然后计算单位时间的交通流量。此时南北向时间和东西向时间分别存储在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以上为圆。第一个圆圈明显表示东西向交通严重,应该增加时间;第二个圆圈表示两个方向相等,可以设置相同的时间,第三个圆圈表示南北交通严重,应该增加时间。具体设置如表4.1所示。南北和东西比0—0.70.8—1.51.5及以上调整南北时间203040调整东西向时间403020表4.1比例及调整时间从表中可以看出,对应的时间调整只有三个,分别是20、40;30,30;40,20.显然,这样简单的处理在实际应用中是很难满足的,但是这里,这个设计只是一个模拟的粗调过程,上面需要的程序如下:CJNZA,#7M1M2:MOVR2,#20MOVR1,#40输出M1:C,M2CJNZA,#15N1N2:移动R0,#30MOVR1,#30输出N1:C,N2移动R0,#40MOVR1,#20输出:CLRR5CLRR6RET...4.3.7去抖程序另外,在按键计数的过程中,机械抖动和软件之间还有一个矛盾,就是当程序检测到某个按键被按下时,它会计数一次,但实际上按键关闭后,会在显微镜下弹起,然后关闭,直到达到稳定。显然,后续的弹射是无效的。为了避免程序中出现这个问题,可以在检测到第一次关闭时调用延迟一定时间的程序。这里延迟程序完全由软件完成,利用程序执行一条指令的时间,加上两次累加和递减嵌套,程序如下:延迟:MOVR2,#14HA1:MOVR7,#0FFHDJNZR2,$DJNZR7,A1RET4.4源程序H_REDBITP2.1;定义IO口H_GREEN位P2.2H_YELLOW位P2.3L_REDBITP2.4L_GREEN位P2.5L_YELLOW位P2.6;主程序,选择设置红绿灯时间模式或自动调整模式组织机构0000HLJMP主组织机构0003H;中断入口LJMPINT0组织机构0030H主要:MOVR3,#20;用于嵌套50ms软件方法计时1s移动R0,#20;预设红绿灯时间MOVR1,#20CLREX0K1:MOVC,P3.7;等待检测按下了哪个模式按钮ANLC,P3.2C、K1JNBP3.7,F;按F键进入自动模式,进入扫描K2:JNBP3.2,S;按S键并等待计数SJMPK2F:LCALL延迟移动R0,#30MOVR1,#30设定00HSETBEASETBEX1SJMP开始S:LCALL延迟CJNZR0,#40,V1移动R0,#20V1:增量R0JNBP0.1,$JNBP3.6,J;J键按下并等待计数SJMPK2J:LCALL延迟CJNZR1,#40,V2MOVR1,#20V2:INCR1JNBP3.6,$JNBP3.7,开始;设置后设置时间模式,进入扫描JNBP3.6,JMOVP2,#0DDH;预设信号状态、时间和方向移动R4,R0SETB01HSETBEX0;程序启动,每50ms扫描一次开始:移动TMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HCLRTF0SETBTR0;开始50ms计时DJNZR3,是的;1s是否超时MOVR3,#20DJNZR4,Y;此状态是否结束,并设置下一个状态MOVA,P2CJNZA,#0DDH,D1MOVP2,#BDHMOVR4,#5D1:CJNZA、BDH、D2MOVP2,#EDH移动R4,R1CLR01HD2:CJNZA,#EDH,D3MOVP2,#E7HMOVR4,#5JNB00H,D3本地调用数据D3:CJNZA,#E7H,YMOVR2,#DDH移动R4,R0SETB01HY:MOVA,R4;LED倒计时显示移动B,#10DIVA,B暴民DPTR,#LEDMAPMOVCA,A+DPTRMOVP1,A移动A,BMOVCA,A+DPTRMOVP0,ALEDMAP:DBC0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90HJNB00H,等待;判断是否统计流量P3.3,等待;判断一辆车是否经过等待:JNBTF0,等待;50ms扫描完成一次SJMP开始INT1:JNB01H,U;判断车辆的方向INCR5U:INCR6视网膜病变INT0:SETBP3.4;中断服务子程序、红灯或急停按钮P3.7,$本地呼叫延迟CLRP3.4视网膜病变数据:MOVA,R6;交通流量数据处理和红绿灯时间调整MOVB,R0MUA,BMOVR6,AMOVA,R5MOVB,R1MUA,B移动B,#10MUA,BMOVB,R6DIVA,BCJNZA,#7M1M2:MOVR2,#20MOVR1,#40输出M1:C,M2CJNZA,#15N1N2:移动R0,#30MOVR1,#30输出N1:C,N2移动R0,#40MOVR1,#20输出:CLRR5CLRR6RET延迟:MOVR2,#14H;延迟程序,用于按键去抖动A1:MOVR7,#0FFHDJNZR2,$DJNZR7,A1RET结尾程序中的一些端口说明:P2状态灯P0LED一位P1LED十位P3.7F键自动调整模式/时间设定模式确认P3.2S键设置南北走时P3.6J键设置东西行车时间/紧急停车P3.3流量检测P3.2红外对管P3.4蜂鸣器R3为乘以50ms和计时1s节省20R4临时状态灯持续时间R0存储南北旅行时间R1存储东西行程时间R5测量南北方向的交通流量R6测量东西向的交通流量R2、R7用于软件延迟00H自控标志位01H车辆方向标志4.5系统软件调试4.5.1TKS模拟器模拟这个概念其实用的很广,终极意义就是用可控的手段来模拟真实的情况。单片机系统开发中的仿真包括软件仿真和硬件仿真。这种软件模拟方法主要是利用计算机软件来模拟单片机的实际运行,因此模拟一个独立于硬件的系统具有一定的优势。用户无需搭建硬件电路来验证程序,特别适用于算法繁重的程序。软件仿真的缺点是不能完全仿真硬件相关的部分,所以最终的设计必须通过硬件仿真来完成;硬件仿真使用附加硬件来代替用户系统的微控制器,完成微控制器的全部或大部分功能。使用附加硬件后,用户可以控制程序的运行,如单步、全速、查看资源断点等。4.5.2集成开发环境KEILKEILIDEVision2集成开发环境主要由以下几部分组成:◆uVision2IDE。ision2IDE包括:项目管理器、功能丰富的编辑器选项设置构建工具,带有交互式错误提示和在线帮助。使用vision2创建源文件并编写应用程序项目来管理它们。vision2可以自动完成编译汇编程序的操作;◆C51编译器和A51汇编器。Vision2IDE创建的源文件可以由C51编译器或A51汇编器处理以生成可重定位的目标文件。KEILC51编译器根据ANSIC语言标准支持C语言的所有标准特性,还增加了几个可以直接支持80C

温馨提示

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

最新文档

评论

0/150

提交评论