基于STM32的交通灯控制系统设计_第1页
基于STM32的交通灯控制系统设计_第2页
基于STM32的交通灯控制系统设计_第3页
基于STM32的交通灯控制系统设计_第4页
基于STM32的交通灯控制系统设计_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

摘要早期,交通信号灯采用的是固定配时的控制方式,无法根据车流量的变化而随时调整绿灯时间,这导致绿灯的使用效益降低,同时也增加了车辆在交叉口的延误[1]。因此,经常出现交通堵塞的情况,给城市带来了极大的压力,对国民幸福感指数产生了影响。本论文以STM32单片机为核心,设计了一种具备基本功能和根据车流量调节时间的交通灯系统。该系统旨在改善道路交通拥堵问题,提供人民愉快的出行体验。通过对车流量的实时检测和分析,交通灯系统能够智能地调整红绿灯时间,以确保交通流畅和安全。本论文的研究成果对于交通管理和道路安全具有重要的意义,并为未来的交通灯设计和改进提供了有益的参考。关键词:交通灯;车流量识别;紧急控制;AbstractTheearlyuseoftrafficlightsisafixedtimingcontrolmethod,andthegreenlighttimecannotbeadjustedwiththechangeoftrafficflow,whichreducestheefficiencyofgreenlightuseandincreasesthedelayofvehiclesatintersections[1].Trafficjamsoccurfrequently,whichbringsgreatinconveniencetocitizens'workandlife,andaffectsthenationaleconomy. Thetrafficlightdesignisbasedonasingle-chipmicrocomputerSTM32.Basedontheknowledgeofthesingle-chipmicrocomputerandthecurrentdevelopmentoftrafficlights,atrafficlightisdesignedtohavebasicfunctions.Allowsambulances,policecarsandfiretruckstopass.Improvetrafficcongestionandcreateapleasanttravelexperienceforthepeople.Trafficlightsarewidelyusedbecausetheyaresimple,practical,flexible,andeasytooperate.Alleviatedtheproblemoftrafficcongestion.Keywords:Trafficlights;Trafficflow;EmergencycontrolTOC\o"1-3"\h\u摘要 IAbstract II第一章绪论 11.1交通灯的发展背景及意义 11.2国内外研究现状 21.3经济学分析与社会影响31.3.1经济学分析31.3.2社会影响431.4本章小结4第二章交通灯的总体设计 52.1交通灯系统框图 52.2研究内容 62.3设计要求 62.4本章小结7第三章系统硬件设计 83.1系统设计 83.2单片机的概述 83.2.1单片机特点 83.2.2STM32单片机引脚功能 83.2.3最小系统 93.2.4复位电路 93.2.5时钟电路 103.3电源电路 113.3.1电源电路的设计 113.3.2电源工作原理 123.4车流量检测模块 123.4.1光电开关概述 123.4.2车流量检测方案 143.4.3主控器的选择 153.4.4显示模块 15(1)显示方案选择 15(2)数码管原理 16(3)数码管显示部分 163.4.6ESP8266模块163.4.7紧急模块 173.5本章小结18第四章系统程序设计 194.1编程语言环境 194.1.1编程语言的选择 194.1.2系统语言开发环境 204.2交通灯流程图设计 204.2.1主程序设计 204.2.2定时及计数程序设计 204.3中断程序设计 214.3.1显示程序设计 214.4手机APP开发214.5本章小结21第五章仿真与调试 225.1Protues简介 225.2绘制仿真原理图 225.3加载仿真程序 225.4系统仿真 225.5系统调试 255.6本章小结25总结与展望 26总结 26展望 26参考文献 27致谢 28附录 29第一章绪论1.1交通灯的发展背景及意义自新中国成立以来,我国的经济持续高速增长,城市和农村一路修建高速公路、架桥和马路,车辆数量不断增加,导致交通拥堵和事故频发,造成生命和财产的巨大损失。因此,交通灯的发明对于缓解这一现象非常重要。如果没有交通灯,全球将会陷入无序状态,影响人们的日常生活和经济发展。根据调查,大多数交通事故都是由于不遵守交通规则而引起的,因此交通灯的存在对于解决这一问题尤其至关重要。在我国,交通灯的发展经历了不断改进与变革,从最初的白炽灯到现在的LED灯,交通灯的作用不断得到发挥。然而,当前的交通灯仍面临着一些问题,如不能根据车流量灵活控制,不能应对紧急情况等。在此基础上,本次研究提出了一种新型STM32交通灯控制系统,该系统通过采用单片机和LED数码管,实现了车流量检测、调整和倒计时通行等功能。传统的交通灯控制系统往往存在运行效率低下和资源浪费的问题,而该系统以其简便高效的特点,有望成为未来交通灯技术的重要发展方向。1.2国内外研究现状交通灯的演进经历了多个阶段和技术的推动。在交通灯出现之前,道路交通常常陷入混乱,交通拥堵和安全问题不断加剧。然而,随着时间的推移,交通灯得到了改进和创新。最初的交通信号灯设计可以追溯到1868年,当时一位英国工程师设计了一个旋转的红绿色交通信号灯。这个早期的设计后来演变成了使用煤气作为能源的信号灯和可翻转指示牌。然而,这些早期的信号灯仍然需要人工操作,无法实现自动化。随着技术的不断进步,交通信号灯开始向自动化方向发展。1927年,英国进行了一次电动交通信号灯的自动化实验。这一实验奠定了交通灯自动化的基础,使得交通信号灯能够根据预设的时间间隔自动切换灯光。进一步的发展发生在1936年,当时澳大利亚墨尔本开始使用了Marshal交通标志显示系统。这个系统利用了机械装置和电气信号,使得交通灯的控制更加精确和可靠。此外,晶体管和集成电路的发展也为交通灯的自动化提供了条件。这些技术的引入使得交通灯能够更加高效地运行,以适应日益增长的交通需求。多伦多市引入了一种全面交通信号灯系统,该系统由计算机芯片进行控制,并安置在十字路口的中央位置。与此不同的是,德国的交通信号灯设立在停止线处,红绿灯和右转灯都有独立的控制。在多伦多的交通信号灯系统中,车辆的直行受到红绿灯的控制,当红灯亮起时,车辆是不允许右转的,除非专门设置了右转灯。这种由计算机芯片控制的全面交通信号灯系统为城市交通管理带来了一系列的优势。首先,中央放置的交通信号灯使得驾驶员更容易观察到交通信号,减少了因视线受阻而造成的交通事故的风险。其次,计算机芯片的应用使得信号灯的控制更加精确和可靠,减少了人为操作带来的误差和不确定性。这种全面交通信号灯系统的特点还在于对右转行为的控制,确保了交通流畅和安全,避免了右转车辆与直行车辆之间的冲突。与此相比,德国的交通信号灯系统更加注重对不同方向行驶车辆的控制。通过在停止线处设置信号灯,德国的交通信号灯系统更加强调红绿灯和右转灯的独立控制。这种设置使得车辆在右转时需要专门的右转灯指示,以确保安全的右转行为。相比之下,在多伦多的交通信号灯系统中,右转行为的控制更加灵活,并且车辆的直行与红绿灯的控制密切相关。在某些美国地区,计时器交通信号灯已经被引入并成功应用,以提醒行人和车辆遵守交通规则,并显示红绿灯剩余时间。这种交通信号灯的安装已经成为全球共识,并在许多城市道路广泛使用。同时,荷兰则采用了LED交通信号灯,并将其安装在路面上,以提高人行横道的安全性。计时器交通信号灯的引入为交通管理带来了显著的益处。通过在交通信号灯上设置计时器,行人和车辆可以清晰地了解红绿灯的剩余时间,从而更好地规划行动。这不仅有助于减少行人和车辆之间的冲突,还能提高道路的交通效率。此外,计时器交通信号灯还能够增强行人和车辆的交通意识,促使他们更加谨慎和合规地行驶。与此同时,LED交通信号灯在荷兰的应用进一步提高了人行横道的安全性。传统的交通信号灯通常安装在路口的上方,但荷兰采用了一种创新的方法,将LED交通信号灯安装在路面上,直接引导行人和车辆的视线。这种设计使得交通信号灯更加清晰可见,尤其是对于行人来说,能够更直接地注意到交通信号的变化。这种安装方式不仅提高了交通信号灯的可见性,还减少了行人因不注意交通信号而引发的交通事故的风险。中国城市面临着日益严重的交通拥堵问题,为了解决这一问题,政府采取了多种措施。在这些措施中,交通信号灯作为交通管理的重要工具,也得到了相应的改进和创新。传统的交通信号灯常常采用箭头或二极管等显示元素,但其转换时间通常是固定的,无法根据实际交通状况进行灵活调整。然而,为了应对交通拥堵并节约通行时间,越来越多的交通灯开始采用PLC(可编程逻辑控制器)或单片机等先进技术,并编写相应的程序来控制交通流量。PLC和单片机作为现代控制器,具备高度可编程性和灵活性,能够根据实时交通信息动态调整交通灯的转换时间。通过编写程序,交通灯可以根据交通状况和流量密度进行智能控制,以实现交通信号的优化和流畅通行。这种智能化的控制方式可以根据实际需要进行调整,以提高交通效率、减少拥堵,并为行人和车辆提供更加安全和便捷的通行环境。1.3经济学分析和社会影响1.3.1经济学分析近年来,由于交通控制系统带来的流量优化,令智能交通灯市场飞速攀升。随着交通拥堵加剧、对节能解决方案的需求和智慧城市计划的实施,智能交通信号灯市场逐渐兴起。这一市场的进一步发展为交通拥堵问题提供了更多的解决方案,使得城市交通更加高效,并为城市的可持续发展做出了积极贡献。交通灯作为社会活动的命脉,在发展社会仅仅和提升群众幸福指数方面有着重要的作用。根据道路交通设施制造商介绍,自21世纪始,道路交通一直是妨碍中国城市发展的难题,并成为城市经济建设所面临的实际制约因素。针对这一问题,合理安排道路交通,并利用交通信号灯等控制手段进行疏通,是提升城市交通运输效率、加快城市发展步伐的重要途径。对于提高城市交通效率至关重要。这样能够为人们提供更为便利的交通通信方式,同时也促进了城市建设的发展。1.3.2社会影响交通灯具有保障和控制交通状况的特点,被普及于各种交通路段。它们是十字路口、车站、码头等公共场所的必需品,为人们的出行生活提供了便利近年来,随着计算机技术的日益成熟和广泛应用,交通信号灯的功能经历了一次重大改进,即数字化技术的出现,不仅给交通信号灯带来极大的便利,还进一步扩展了其功能。比如,数字化技术可以支持交通信号灯实现闪烁警示、鸣笛警示、时间程序自动控制、倒计时显示等功能。智能控制技术的应用已经成为许多交通信号灯系统的重要组成部分,通过拍照记录违规车辆和可调节参数的设置,实现了个性化的交通调节设计。对交通信号灯系统的研究和扩大应用对于优化交通管理、提高交通效率和保障交通安全具有现实意义。本设计遵循红灯停、绿灯行的原则,保证了交通系统的有序运行和参与者的安全通行。1.4本章小结本章主要介绍了交通灯的发展背景及意义。中国交通灯发展迅速。上海英租界最早引入交通灯,随着改革开放,交通灯普及。80年代后推出自动交通灯,分车道行驶降低事故。2000年前后LED灯成主流交通灯。本章还介绍了国内外研究现状和交通灯对社会的影响。第二章交通灯的总体设计2.1交通灯系统框图图STYLEREF1\s2.SEQ图\*ARABIC\s11交通灯总体框图如图2.1所示,,该设计还增加了车流量检测和按键功能,用于更准确地获取道路流量数据和实现相关交通控制功能。通过设置不同的按键,用户可以选择不同的模式,并且还能够在多种紧急情况下采取不同的措施,提高交通灯的应对能力。除了基本功能外,交通灯还具有以下附加功能。车流量检测调整随着我国经济实力增强,道路车辆增多,导致拥堵和事故增加。因此,交通灯智能化变得重要。利用单片机和程序设计,交通灯可根据车流量调整通行时间,保持最佳通行状态。这种技术方案可以大大提高交通流畅度,缓解交通压力,并使得十字路口的通行更加安全和高效。倒计时显示通过交通灯提示,驾车人员和行人可以根据其颜色和还剩余的时间来作出适当的选择,进而减少许多交通事故,提升道路交通安全系数。在路上,做出正确合理的选择极其重要。当看到交通灯显示不同颜色时,根据颜色和显示时间,驾驶员或行人都要依据情况作出前进或停止的决定,以确保道路交通的安全,最大程度的减少车祸的发生。紧急情况处理为了应对道路上的特殊情况,添加手动按键来设置不同的交通信号状态。这种手动按键的应用可以提供多种状态选择,以满足不同方向的紧急状况,确保紧急车辆顺利通行。手动按键设置的状态包括但不限于以下几种:首先是"全部禁行"状态,即所有方向的交通都被禁止,为紧急车辆提供优先通行的通道。其次是"全部通行"状态,让所有方向的交通都得以通行,以便迅速为紧急车辆腾出道路。此外,还可以设置"东西通行"和"南北通行"等特定方向通行的状态,根据实际情况调整交通流向,以确保紧急车辆能够顺利通过。通过手动按键设置不同的交通信号状态,交通管理系统能够迅速响应紧急情况,并提供相应的交通调控措施。这种灵活性和可调节性使得交通系统能够适应不同的紧急情况,为紧急车辆提供最佳的通行条件,同时最大限度地减少其他车辆的干扰。通过这些按键设置,可以更加高效地处理突发状况,减少事故发生的可能性,提高道路的流畅性和安全性。2.2研究内容基于STM32单片机的交通灯控制系统设计包括以下几个方面:在硬件方面,STM32单片机交通灯控制系统的设计需要考虑稳定性、可靠性和安全性,而且必须兼顾LED数码管的的显示和电源的供应等问题。车流量检测的方案及原理,是交通灯控制系统中关键的一环,它能够自动检测道路上车辆的数量,从而根据实时流量动态调整信号灯的工作方式。交通灯控制系统的程序设计及仿真交通灯控制系统的程序设计及仿真也是至关重要的一步,必须确保程序的正确性、可靠性和稳定性,同时提高仿真结果和实际情况的一致性,从而确保系统达到预期的效果。2.3设计要求在十字路口安装交通灯,需要每个方向有两个数码管显示通行时间。共计12个数码管和红、黄、绿三色灯,分别表示禁行、警示和通行。十字路口中主干道和支干道的车流量不同,南北方向通行时间较长因为车流量大,反观东西方向则通行时间较短,因为车流量较少。图2.2展示了十字路口红绿灯的显示情况。图STYLEREF1\s2.SEQ图\*ARABIC\s12十字路口交通灯通过该控制方式确保不同方向的流畅通行,预防车辆冲突和交通拥堵。南北通行键可以让南北方向车道通行,同时东西方向车道的通行变为禁止。表STYLEREF1\s2.SEQ表\*ARABIC\s11交通灯通行时间表南北方向东西方向序号状态序号状态绿灯亮38s,红黄灯灭红灯亮43s,绿黄灯灭黄灯亮5s,红绿灯灭绿灯亮20s,黄红灯灭红灯亮25s,绿黄灯灭黄灯亮5s,红绿灯灭回到状态1回到状态1表STYLEREF1\s2.SEQ表\*ARABIC\s12特殊按键通行时间表按键南北方向东西方向绿灯(s)黄灯(s)红灯(s)绿灯(s)黄灯(s)红灯(s)全部禁行\\60\\60全部通行3852520543东西通行\\2520\\南北通行38\\\\432.4本章小结本章主要确定了任务目标和需要达到的功能,确定了主控芯片的选择,车流量检测的检测方案,倒计时的显示和紧急情况的处理,规定了南北方向和东西方向信号灯的八种状态,并规定了红绿灯时长。为后续工作筑牢了基础。第三章系统硬件设计3.1系统设计该系统由STM32单片机和外围器件构成,使用12个发光二极管组成四组信号灯指示模块,表示交通灯状态。南北方向交通灯的绿、红、黄信号通过P1.0至P1.2口实现,而P1.3-P1.5口则控制东西方向交通灯绿、红、黄的状态。同时,P0和P2口被用来控制数码管,以此来实现交通灯亮灭时间等功能。我们为紧急情况设计了四个输入信号口,分别为P3.0、P3.1、P3.2、P3.3,以实现不同的控制功能。这些功能包括:全部禁止通行、全部开放通行、允许东西通行,以及允许南北通行等。3.2单片机的概述3.2.1单片机特点中央处理器、存储器和I/O接口等部分组成了STM32单片机,使其相当于微型计算机。在工业控制和智能装置等领域,STM32单片机有着广泛的应用前景。STM32单片机不仅价格便宜,而且抗干扰性强,功耗低。此外,STM32单片机在不同的发展阶段中逐步推陈出新,经历了八位、四位、十六位和三十二位等阶段。未来,相信STM32单片机会不断进化。3.2.2STM32单片机引脚功能图STYLEREF1\s3.SEQ图\*ARABIC\s11单片机引脚图该芯片的40号引脚(VCC)是电源端,接收5V电压。20号引脚(VSS)用作接地端。18号引脚(XTAL2)连接外部晶体和电容,产生时钟信号;若使用外部时钟则不需要连接。19号引脚(XTAL1)连接外部晶体和电容,仅在使用外部时钟时输入脉冲信号。9号引脚(RST)被用作复位信号端口,需要接入高电平才能生效。29号引脚(PSEN)用于允许程序存储器输出信号。30号引脚(ALE/PROG)用于地址锁存允许信号。若需要检查芯片是否可用,则可以用示波器检查该引脚的脉冲输出信号。31号引脚(EA/VPP)用于外部程序存储器地址允许输入端/固话编程电压输入端。另外,该芯片还有四个I/O端口:P0、P1、P2和P3,可以作为8位双向I/O端口使用。112号和13号引脚可用作外部中断1和外部中断0,它们的有效电平为低电平。14号和15号引脚则分别为定时器0和定时器1。3.2.3最小系统图3.2展示了一个最小系统,它是启动单片机运行的最简组合。电源电路通常包括电源适配器或电池以及相关的稳压和滤波器电路。这些电路的设计目的是确保单片机能够获得所需的电源电压和电流,以保证其正常运行和稳定性。晶振是另一个不可或缺的组成部分,它为单片机提供时钟信号。时钟信号是单片机内部操作的基础,它驱动各种时序和计时功能。晶振电路通常由晶体振荡器和相关的电路组成,用于产生稳定的时钟信号。准确的时钟信号是确保单片机各个部分协调工作和实现精确计时的关键。复位部分是确保单片机系统可靠启动和初始化的重要部分。复位电路通常包括复位电路和复位信号发生器。图STYLEREF1\s3.SEQ图\*ARABIC\s12最小系统3.2.4复位电路所有单片机系统都需要一个复位电路,在每次启动时复位电路会将其置于初始状态。当运行程序发生问题时,复位电路也会发挥作用,将其复位并恢复到正常状态,如图3.3所示。自动复位采用电容实现,当电路通电时,电容开始充电,产生一个正向脉冲信号,从而触发自动复位操作。这种自动复位方式利用电容的特性,能够在通电瞬间产生一个短暂的复位信号,将单片机恢复到初始状态。自动复位广泛应用于各种电子设备中,可以快速、可靠地实现系统的复位功能。手动复位通常在需要人工介入的情况下使用,例如交通灯系统。通过手动复位按键,交通灯系统可以根据需要重新启动,以便进行调试、设置或应对特殊情况。复位电路的选择取决于具体的应用需求和系统设计要求。自动复位适用于大多数电子设备,能够在电源通电时自动进行复位操作,无需人工干预。而手动复位适用于需要人工参与的场景,能够通过按下特定的按键来控制复位操作。图STYLEREF1\s3.SEQ图\*ARABIC\s13复位电路3.2.5时钟电路时钟电路产生准确稳定的振荡信号,用于协调单片机系统的工作。定时器电路是由石英振荡器、石英控制芯片以及电容器等元件组成的,其应用广泛[4]。时钟电路分为内部时钟和外部时钟两种类型[4]。晶体振荡器是内部时钟产生的关键组件,通过晶体振荡的特性来稳定产生频率精确的时钟信号。电容器则与晶体振荡器结合使用,用于调节振荡频率和稳定性。通过这种内部时钟的形式,单片机可以自主产生并使用稳定的时钟信号,满足其内部各个部件的时序要求。另一种工作方式是使用外部时钟。在外部时钟方式下,单片机通过接收外部时钟信号来同步其操作。外部时钟可以是由外部设备提供的稳定时钟信号,例如晶体振荡器或其他高精度时钟源。单片机接收外部时钟信号后,可以依据该时钟信号进行操作,保持与外部设备的同步。关于内部时钟和外部时钟的详细比较,可以参看图3.4[5]。图STYLEREF1\s3.SEQ图\*ARABIC\s14时钟电路3.3电源电路3.3.1电源电路的设计三端稳压器是一种电路元件,可调式稳压器则具有输出电压纹波小、稳压精度高等特点,通过外接电阻就能实现各种不同的输出电压[6]。串联型稳压电路加上保护电路通常是调节器电路的主要构成方式。该电路系统通常会在某种电压水平或状态下增加输出电压。现今的三端调节器在电路设计中发挥着重要的作用,它们能够降低电压或加阻以保持稳定的输出电压。稳压电路广泛采用多个系列,其中包括78、79和138系列等。本设计选择了两种类型的电源,根据末尾两位数字确定输出电压,并具有不同的电流能力。具体地,7805调节器提供5V的电压输出,适用于单片机等需要5V供电的电子设备,而7812调节器则提供12V的电压输出。这样的设计方案可以满足不同元器件的电源需求。电路结构如图所示,该结构涵盖了稳压电路的主要组成部分。在输入端,电源输入连接到相应的交流或直流电源。接着,输入电源经过滤波和保护电路以确保稳定和可靠的电源供应。随后,输入电源通过三端调节器进行电压调节,根据具体型号输出所需的稳定电压。输出电压经过滤波和稳压电容器以确保纹波和噪声的最小化,从而提供稳定的电源给所连接的设备。这样的设计方案具有实用性和可靠性,可以满足单片机等电子设备对稳定电源的要求。7805和7812系列调节器作为稳压电路的一部分,能够提供规定的输出电压,并通过电流能力的不同适应不同设备的需求。图STYLEREF1\s3.SEQ图\*ARABIC\s155v三端稳压电源图STYLEREF1\s3.SEQ图\*ARABIC\s1612v三端稳压电源3.3.2电源工作原理在上一节的讨论中我们阐述了电源电路的设计,其中单片机需要5v的电源。现在,我们将在图3.7中呈现该电路的最终版本。图STYLEREF1\s3.SEQ图\*ARABIC\s17电源电路220V依次经过变压器、桥式整流器和电容滤波器,将二次侧的交流电转换为直流电。在该电路中,7805电压稳压器提供5V输出电压以供单片机使用。3.4车流量检测模块3.4.1光电开关概述在光电传感器中,光电开关起着重要的作用。它能够将输入电流转化为光信号,并将光信号传递给接收器进行分析和判断。接收器根据接收到的光信号的强度或光的存在与否来确定物体的状态。通过对光信号的处理和分析,光电传感器能够实现对物体存在与否的准确检测。光电转换技术具有广泛的应用领域。其中包括物位检测、产品计数、宽度判别和速度确定等方面。在产品计数中,光电传感器能够对通过传感器的产品进行计数。在宽度判别中,光电传感器可以测量物体的宽度,从而进行判别和分类。在速度确定方面,光电传感器可以通过检测物体通过传感器的时间来确定物体的速度。此外,光电转换技术还可用作红外警报系统的一部分。光电传感器可以检测红外线的存在,从而实现对入侵或其他安全问题的警报和报警功能。工作原理的示意图如图3.8所示。图STYLEREF1\s3.SEQ图\*ARABIC\s18光电开关原理图光电传感器的接收器前端配备有透镜和光圈,后端则连接有检测电路,以检测有效信号。除此之外,元器件中还存在一些附件,包括发射板和光导纤维,其中还包括三角形反射镜。表STYLEREF1\s3.SEQ表\*ARABIC\s11检测方案分类表镜面反射式光电开关适用于需要检测物体遮挡情况的场景,可以快速、准确地感知物体的存在与否。对射式光电开关适用于不透明物体的检测。它由独立的发射器和接收器组成,通过对射光束的遮挡来判断物体的存在。当物体进入发射器和接收器之间的光路时,光束被遮挡,触发检测信号的产生。对射式光电开关在需要跨越较长距离或检测较大物体的情况下具有优势,并且对透明物体不敏感。反射式光电开关适用于高亮度或具有极大反射率的情况。它通常由单一的光电开关组件构成,将光束发送到目标物体,并通过物体表面的反射光进行检测。3.4.2车流量检测方案目前,许多交通灯系统存在着不先进的问题,它们缺乏车流量检测功能。然而,可以采用多种方案来实现车流量的检测,其中包括视频图像、红外、超声波和地感线圈等技术。视频图像方案是一种常用的车流量检测方法。它通过安装摄像头来拍摄和分析车道内的图像,从而实现对车辆的识别和计算车流量。这种方案具有安装方便、识别率高等优势。通过图像分析算法,可以对车辆进行精确的检测和计数。然而,视频图像方案在恶劣天气条件下可能受到影响,例如雨雪天气或强烈的光照条件可能导致图像质量下降,从而影响识别准确性。下图3.9为视频图像检测的实例。图STYLEREF1\s3.SEQ图\*ARABIC\s19视频图像检测原理超声波检测技术利用反射原理,通过计算超声波发射和接收的时间差来判定车辆是否通过。这种技术的安装非常方便,而且不需要进行路面铺设,因此可以避免对地面的破坏。此外,超声波检测技术还可以应对各种天气条件,在恶劣天气下也能保持稳定的检测效果。如图3.10所示。图STYLEREF1\s3.SEQ图\*ARABIC\s110超声波检测模块根据分析结果显示,使用视频图像检测技术在检测车流量时受天气影响较大,而地感线圈需要将其埋入地下,工程量较大。因此,综合考虑后,采用红外车辆检测器来检测车流量。单片机的P3.4和P3.5用于车流量检测。在状态1下,当南北车道的车辆数量在15辆到25辆之间时,交通灯的时间设置如下:南北绿灯持续48秒,黄灯持续5秒,红灯持续25秒,而东西方向的红灯持续53秒,黄灯持续5秒,绿灯持续20秒。通过这样的时间设置,可以在适当的时间内平衡南北方向和东西方向车流的需求。在状态2下,当东西南北车道的车辆数量均少于15辆时,交通灯的时间设置保持现状不变:南北绿灯持续38秒,黄灯持续5秒,红灯持续25秒,而东西绿灯持续20秒,黄灯持续5秒,红灯持续43秒。这样的时间设置适用于车流量较小的情况,以保持交通灯系统的稳定运行。3.4.3主控器的选择虽可以使用定时器、数字电路和计数器等多种组件构成交通灯控制系统,但是它比较复杂,而且车流量的检测难以实现,因此无法完成任务。为了更好地解决交通信号灯控制的问题,本论文采用STM32作为控制器。STM32是一款广泛应用于嵌入式系统的微控制器,具备中断、并行端口和定时器/计数器等丰富的功能,非常适用于交通信号灯控制的需求。STM32的中断功能能够实现对外部事件的及时响应和处理,使得交通信号灯能够根据实时的交通状况进行灵活的调控。通过配置和使用中断功能,交通信号灯能够在需要时快速切换信号状态,以满足不同车流量和交通需求。并行端口是STM32中的一个重要特性,它可以同时处理多个输入和输出信号。在交通信号灯控制中,通过适当配置并行端口,可以实现对多个信号灯的并行控制,提高交通灯系统的效率和灵活性。此外,STM32还具备定时器/计数器功能,可以用于精确计时和时间管理。在交通信号灯控制中,定时器/计数器功能可用于精确控制交通信号灯的各个时间参数,例如绿灯时间、黄灯时间和红灯时间等。通过合理配置和使用定时器/计数器功能,可以确保交通信号灯的时间控制准确可靠。除了功能丰富外,STM32还具备低功耗、低电压和高性能等特点。低功耗设计使得交通信号灯系统能够有效地利用能源资源,提高系统的能效。低电压特性使得STM32能够适应不同的电压要求,适用于各种交通信号灯系统的电源设计。高性能保证了STM32在处理复杂任务和快速响应的能力,使得交通信号灯系统能够稳定运行并满足实时性要求。因此,STM32作为主控器是非常合适的选择。3.4.5显示模块(1)显示方案选择为了实现完美的状态灯和倒计时显示,本论文提出了三种可供选择的方案。这些方案旨在解决数字显示有限和复杂性高等问题,以便满足实际道路需求。方案一是只使用数码管来实现状态灯和倒计时显示。然而,这种方案存在数字显示有限和复杂性高的问题,无法完全解决根本问题。由于数码管的局限性,其数字显示范围有限,无法满足复杂的显示需求,特别是在倒计时显示方面存在一定的限制。方案二采用LED显示屏,具有节能和图像质量好的优势,适合在宣传场合使用。然而,在交通场景中,这种方案可能会面临一些复杂性和体积较大的问题。由于LED显示屏的尺寸较大,其在交通中的应用可能受到空间限制,并且需要更复杂的安装和维护。为了克服以上方案的限制,本论文提出了方案三,即将LED数码管与点阵倒计时结合。这种方案既能够输出数字,又能够显示状态灯,符合实际道路需求。方案三采用LED显示状态灯,以直观的方式呈现交通状态,同时利用数码管显示倒计时时间。这样的设计不仅在视觉效果上美观,还提供了实用和便捷的功能。综合分析,认为方案三更符合要求,因此采用方案三。(2)数码管原理数码管是一种由发光二极管组成的显示器件,用于显示数字。在低电平的情况下,数码管会显示对应的数字。通过控制电平的变化,可以在数码管上显示不同的数字。每个数码管的发光二极管被分割成七段(a、b、c、d、e、f、g),并根据数字的不同进行控制,从而形成相应的数字显示。而相对来说,共阳极数码管就将每个二极管的阳极端连接在一起,并将它们接入到5V电压源上。当某个二极管的阴极保持低电平时,该二极管对应的数字段就会被点亮,如图3.11所示。图STYLEREF1\s3.SEQ图\*ARABIC\s111数码管结构图(3)数码管显示部分在人口较少的城市和农村,如果没有数码管来显示交通灯的信号,那么就会非常不安全。因此,在交通路口上方使用数码管显示交通灯状态和倒计时,可以帮助行人和车辆了解剩余时间,做出行驶决策。数码管的示意图如图3.12所示。图STYLEREF1\s3.SEQ图\*ARABIC\s112数码管图在实现数码管的正常显示过程中,连接数码管与单片机的端口起着重要的作用。具体而言,P0口用于进行段选,而P2口用于进行位选。通过正确配置这些端口,可以确保数码管能够显示所需的字符和数字。P0口主要负责段选,即确定要显示的字符码。在数码管中,每个数字或字符都与特定的段(例如a、b、c、d、e、f、g)相对应。通过控制P0口的输出,可以选择要点亮的段,从而显示特定的数字或字符。相反,P2口主要用于位选,即确定要点亮的数码管。在多位数码管中,每个数码管都与特定的位(例如第1位、第2位、第3位等)相对应。通过控制P2口的输出,可以选择要点亮的数码管,从而在合适的位置显示数字或字符。通过正确地配置P0口和P2口,并将它们连接到数码管的相应引脚,可以实现数码管的正常显示。单片机通过控制这些端口的电平变化,能够精确地选择要显示的字符码和数码管,从而实现所需的显示效果。图STYLEREF1\s3.SEQ图\*ARABIC\s113数码管连接方法为了实现数码管的准确显示,本论文采用了动态连接和扫描方式。这种方法通过巧妙地设计和控制数码管的电路连接,以实现同时显示多个数码管的效果,并确保每个数码管显示的数字或字符准确无误。在动态连接和扫描方式中,所有数码管的段选线被并联连接在一起,而位选线则用于控制有效数码管。通过轮流发送字形码和位选信号,可以实现数码管在人眼中同时显示的效果。这是因为人眼对于短暂的视觉暂留具有一定的特性,使得在快速切换的情况下,多个数码管的显示被视觉上合并为同时显示。具体而言,通过动态连接和扫描方式,首先选择一个数码管作为当前位选的目标,然后将相应的字形码发送到该数码管的段选线上。同时,位选信号被发送到位选线上,以确保只有当前位选中的数码管被点亮。接下来,通过快速切换位选信号的目标数码管,以依次点亮每个数码管,并发送相应的字形码,从而实现数码管的逐位扫描显示。3.4.5ESP8266模块在基于STM32的交通信号灯系统中,ESP8266模块可以被用作通信模块,以实现与其他设备之间的数据交互和远程控制功能。具体而言,ESP8266能够通过Wi-Fi连接到互联网,并将交通信号灯的状态信息上传至云端服务器,同时还能够从云端服务器接收控制指令,使远程控制交通信号灯成为可能。除此之外,ESP8266也可以作为局域网内的通信模块,实现交通信号灯之间的数据交互和协同控制。如图3.14所示。图3.14ESP8266模块3.4.6紧急模块作为交通信号灯设计中的一部分,设计师考虑到了紧急情况的可能性,使用了4个紧急按键。我们可以通过图3.15来更好地理解按键的连接方式和作用。图STYLEREF1\s3.15按键部分3.5本章小结本章主要介绍了交通灯控制系统的设计,包括硬件的实现。采用了STM32单片机及外围器件构成最小控制系统,通过P1口显示十字路口交通灯的亮灭情况,P0和P2控制数码管的交通灯亮灭时间。还介绍了光电传感器的原理,以及车流量检测方案的优缺点第四章系统程序设计4.1编程语言环境对于交通信号灯系统而言,其操作不仅依赖于硬件的支持,软件系统也是不可或缺的。软件系统和硬件系统之间的紧密合作,是保证整个系统正常运行的关键。借助软件的灵活性,我们无需改变硬件系统就可以实现不同的系统性能。软件和硬件系统在此过程中是不可分割的,缺一不可,硬件功能也无法完成。需要注意的是,不同的硬件系统需要使用不同的软件系统来协同完成任务。因此,系统的效率和稳定性与软件系统的性能直接相关,两者不可割裂。4.1.1编程语言的选择使用C语言对交通灯控制系统进行开发。此外,C语言在处理和效率方面也非常出色,在创建不同数据结构时也非常易于操作。借助指针类型,我们可以直接寻找内存地址并进行硬件操作,这使得C语言在开发系统程序和软件应用程序时变得更加实用[6]。我们总结出C语言的主要特征,其中包括简洁高效的操作方法和极强的灵活性,此外还存在着多种数据类型和运算符。泛的运算范围、足够表达运算结果、简洁明了的九种控制语句、三十几种运算符,都使其可用于不同的编程需求,同时保证了执行效率和质量[3]。虽然汇编语言可以使用更少的内存并具有更高的执行效率,但其代码复杂性较高,难以快速理解和应用,其扩展性和可读性也较差。因此,通过C语言实现交通信号灯控制系统的功能,将是一种更优秀的选择。4.1.2系统语言开发环境Keil软件作为一种方便且功能丰富的开发工具,在嵌入式系统的C语言和汇编语言编程中得到广泛应用。该软件提供了一套完善的开发环境和工具,具备良好的结构性和可读性,为开发者提供了高效、便捷的编程体验。在完成程序编写后,我们需要将其生成十六进制文件[7],并且将程序加载到单片机上进行验证测试。4.2交通灯流程图设计图STYLEREF1\s4.SEQ图\*ARABIC\s11流程图设计4.2.1主程序设计主程序设计旨在根据车流量的情况来合理调整交通灯的时间,以提高道路交通的效率和流畅性。通过采集东西和南北方向的车流量并准确确认车辆数量,单片机能够根据这些数据进行智能决策,并根据车流量的变化来执行三种不同的状态,从而改变交通灯的时间。在主程序设计中,首先通过合适的传感器或检测器来采集东西和南北方向的车流量数据。这些传感器可以是基于地感线圈、红外感应器、摄像头等技术原理的设备,能够准确地检测车辆的通过情况。收集到的车流量数据经过处理和分析后,可以得到每个方向上的车辆数量。接下来,单片机根据车流量的情况执行三种状态之一,以改变交通灯的时间。根据预设的阈值或逻辑条件,单片机可以判断当前车流量的高低,并相应地调整交通灯的时间。当车流量较高时,单片机可以选择延长绿灯时间,以便更多车辆通过交叉口,减少交通堵塞。相反,当车流量较低时,单片机可以缩短绿灯时间,以避免不必要的等待和能源浪费。通过这样的程序设计,可以更加精准地掌握当前路口各个方向的交通情况,同时从根本上保障行车安全和行驶效率。图STYLEREF1\s4.SEQ图\*ARABIC\s12主程序流程图4.2.2定时及计数程序设计单片机内置定时器计数器功能,可同时进行定时和计数操作,非常方便且应用广泛[10]。在本次开发中,我们选用单片机内置的定时器T0,并采用其模式1进行工作。在设置初值时,需要注意将TH0设置为0xfc,TL0设置为0x18,以便实现每1ms一次的定时操作。为了确保程序的稳定运行,我们需要打开中断总允许位和定时器溢出中断允许位,进行程序编写[11]。通过这样的操作,可以更加精准地掌握定时器计数器的工作状态,从而更好地应用于实际场景。4.3中断程序设计在设计中,如果出现紧急情况需要进行中断处理,此时需要放下当前的工作,处理中断请求。当中断处理完成后,需要重新回到之前的工作中继续执行。整个处理流程如图4.3所示。在实际应用中,中断处理程序的编写非常重要,可以极大地提高系统的可靠性和稳定性。此外,对于中断请求的优先级控制和异常处理也需要进行充分的考虑和实现,以确保系统的正常运行。中断开启中断开启执行中断程序返回中断点中断开启中断开启执行中断程序返回中断点图STYLEREF1\s4.SEQ图\*ARABIC\s13中断执行过程4.3.1显示程序设计交通灯设计中,倒计时显示和编程是关键。可选的显示方案包括单个数码管的BCD静态输出、双位数码管的动态显示和单个数码管的八段静态显示。经过综合考虑和实践,我们最终选择了动态显示方案进行倒计时的实现。具体实现过程如下:首先在程序中发送十位数码管的数值,由P0口进行控制;接着调用延时程序,等待一定时间后再发送个位数码管的数值,此时由P2口进行控制。这样做可以使得数码管的动态扫描显示效果更加流畅,使得倒计时的效果更加明显[12]。通过这样的方案设计和实现,倒计时的显示效果得到了有效地提升,为行车安全和通行效率的提升提供了可靠的保障[12]。图STYLEREF1\s4.SEQ图\*ARABIC\s14显示框图4.4手机APP开发wxBit是一款基于微信小程序开发的开源框架,可以用于快速开发手机应用程序。,通过图形化编程简单上手,还具有跨平台能力,开发者只需要编写一次代码即可在两个平台上运行。图4.5wxBit程序将STM32控制器和WiFi模块安装在交通信号灯上,手机app将AT指令发送到单片机模拟按键,用户可以通过手机控制交通信号灯的状态。图4.6APP开发界面4.5本章小结本章主要介绍了交通灯控制系统的编程语言选择和开发环境,以及主程序、定时及计数程序、中断程序和倒计时显示的设计。C语言和汇编语言都有各自的优缺点,但最终选择了C语言进行编程实现功能。使用keil软件进行编程,具有丰富的函数库和一整套流程,方便编写和调试程序。定时器计数器和中断程序的设计都是交通灯控制系统中非常关键的部分,需要仔细设计和编写。倒计时显示方案选择了动态显示,通过P0口和P2口控制十位数和个位数的显示,实现了快速扫描和流畅的显示效果。第五章仿真与调试5.1Protues简介Protues拥有一项独特功能,即可以模拟微型计算机和单片机的外围设备。通过这一功能,用户可以在软件中进行准确的外围设备仿真,而无需实际连接任何硬件设备。由此可见,它是单片机和外围设备设计最佳的工具之一。例如使用Proteus软件,用户可以方便地进行数字设备、单片机系统、外围电路和通信接口的模拟。它提供了一个直观的界面,使用户能够轻松地搭建电路原型,并对其进行仿真。通过Proteus的仿真功能,用户可以模拟不同的输入条件,观察电路的输出响应,并进行性能分析。除了模拟功能,Proteus还提供了一系列实用工具,如示波器和逻辑分析器,以帮助用户观察和分析电路的运行情况。这些工具能够捕捉电路中的信号波形、逻辑状态和时序信息,从而帮助用户进行故障排查、优化设计和验证功能。值得注意的是,Proteus还支持多种单片机系列的系统仿真。它提供了包括常见单片机型号在内的广泛支持,使得用户能够模拟和调试特定单片机系统的行为。通过Proteus的调试功能,用户可以观察单片机的寄存器状态、存储器访问和外围设备交互,从而更全面地理解和优化单片机系统的性能。Protues软件不仅可以实现原理图设计和混合模式仿真,还可以进行PCB系统特性设计以及手动自动的布线设计,具有广泛的应用领域,例如在教学技能培养和产品开发等方面广泛应用[9]。5.1绘制仿真原理图使用Proteus软件,通过主菜单和图形编辑窗口进行交通灯设计。选择交通灯元件并拖拽到图形编辑窗口,然后进行连线操作。在此过程中,也可以点击终端模式,将电源和地线连接起来。如果需要进行车流量检测,也可以用开关来进行模拟,达到仿真效果的目的[13]。通过这样的操作方式,我们可以更加直观地感受到交通灯的工作原理和实际效果,确保设计的可靠性和稳定性[10]。5.2加载仿真程序在Keil软件中编写程序并保存为十六进制文件,然后在Proteus软件中加载该文件到单片机中进行仿真。为确保程序的稳定性和可靠性,还需要将单片机的时钟频率设置为12MHZ。完成以上操作后,程序就可以成功地加载到单片机中去,实现系统的正常运行[14]。5.3系统仿真在交通灯的仿真过程中,根据设计的设置顺序,交通灯系统开始按照预定的时间参数进行运行。首先,南北方向的灯开启绿灯,持续38秒,为该方向的车辆通行提供了充足的时间窗口。随后,绿灯开始闪烁黄灯,持续5秒,向车辆发出停止的信号。最后,南北方向的灯亮起红灯,持续25秒,为其他方向的车辆提供过马路的机会。东西方向的灯在南北方向的绿灯持续20秒后,亮起红灯,持续43秒,确保该方向的车辆停车等待。接着,红灯转为黄灯,持续5秒,为东西方向的车辆发出停止信号。这个仿真效果可以在图5.1中清晰地展示出来,图中显示了交通灯在不同时间段的状态变化,以及红、绿、黄灯的亮灭情况。图STYLEREF1\s5.SEQ图\*ARABIC\s11默认状态仿真图紧接着,我们需要进行车流量检测的仿真实验。我们可以根据自己设计的需要,通过控制南北车辆检测开关的频率,将其限制在15次以下。此时,系统将进入状态3,并保持时间不变。在这种状态下,东西方向的绿灯持续时间为20秒,之后进入43秒的红灯期,在此期间,黄灯会亮5秒钟[11]。仿真结果将如图5.2所示。同样,如果我们控制的是东西车辆检测开关的频率,系统对应的时间也将保持不变。图STYLEREF1\s5.SEQ图\*ARABIC\s12南北车流量检测仿真图如果我们控制南北车辆检测开关的频率在15次至25次之间,系统将进入状态2。仿真结果将如图5.3所示。同样地,如果我们控制的是东西车辆检测开关的频率在15次至25次之间,系统对应的时间也会延长10秒[12][12]。图STYLEREF1\s5.SEQ图\*ARABIC\s13状态2的车流量仿真图当南北车辆检测开关的频率超过25次时,系统将进入状态1,此时系统会通过延长时间的方式进行调整。根据设定的参数,交通灯系统中南北方向的绿灯时间经过调整,增加了20秒,从原先的38秒变为现在的58秒。这意味着如果东西方向的车辆流量较大,系统会根据实时的车流情况进行自适应调整,以保证该方向的车辆得到合理的通行时间。为了验证这一设定的效果,进行了相应的仿真实验,并通过图5.4展示了仿真结果。图中清晰地显示了交通灯系统在不同时间段的状态变化,包括红、黄、绿灯的亮灭情况以及各个方向交通信号的切换。图STYLEREF1\s5.SEQ图\*ARABIC\s14状态1的车流量仿真图除了车流量检测功能,本次实验还设置了紧急控制功能。现在,我们需要对这一功能进行仿真验证。首先,启动仿真程序,并在程序运行过程中点击“禁行”按钮,此时交通灯各个方向将会显示红灯60秒。在交通灯系统中,当点击“通行”按钮后,交通灯将恢复正常通行。为了验证上述设定的效果,进行了相应的仿真实验,并通过图5.5展示了仿真结果。图中清晰地显示了交通灯系统在不同时间段的状态变化,包括红、黄、绿灯的亮灭情况以及各个方向交通信号的切换。图STYLEREF1\s5.SEQ图\*ARABIC\s15全部禁行通行仿真图通过点击“南北通行”按钮,交通灯系统能够根据交通需求调整交通流向,保证交通的顺畅与安全。为了验证上述设置的效果,进行了相应的仿真实验,并通过图5.6展示了仿真结果。图中清晰地显示了交通灯系统在不同时间段的状态变化,包括南北方向和东西方向红、绿灯的亮灭情况。此时,南北方向绿灯持续时间为38秒,而东西方向的红灯持续时间为43秒。[13]。图STYLEREF1\s5.SEQ图\*ARABIC\s16东西通行仿真图5.4系统调试在系统调试过程中,发现了程序内部错误导致通行时间未按设定进行调整。经过修复和调试,最终解决了该问题。在程序运行过程中,我们还遇到了一些困难,比如有时候如果按下按键中的其中一个,就有可能导致倒计时显示数字不全。我们起初以为是程序本身或者数码管存在问题,但是检查了程序和更换了数码管后依然无法解决这个问题,之后我们才意识到这是由于我们自身的操作不当导致的。此外,在测试过程中,我们发现交通灯从绿灯变成红灯或者从红灯变成绿灯都需要先变成黄灯,才能完成整个切换。然而,在现实生活中,交通灯的红灯并不需要这样转换,这与实际情况并不符合。为了解决这个问题,我们无法从电路方面入手,因此必须从软件方面入手。我们的解决方案是,在绿灯切换成红灯时,系统会保持原方向的红灯亮5秒后再进行切换,这样另一方向从绿灯切换成红灯时也能保持同步,不会出现错误和混乱的情况。接下来进行硬件测试,首先在STM32开发板平台上将各个传感器正确连接并检查焊接完好。如果正常工作则在液晶显示屏上显示的车流计数会随着光电传感器的开关而计数,并且随着手部遮挡光电传感器的次数而累加。交通灯控制系统实物图如图5.7所示。5.7实物效果图5.5本章小结本章介绍了Protues软件的基本功能和应用,包括绘制仿真原理图、加载仿真程序和系统仿真。通过实际操作,我们了解了如何使用Protues软件进行交通灯控制系统的仿真设计,并在调试过程中发现了一些问题,如程序编写错误、数码管显示不全等。最后,我们提出了解决方案,以便更好地实现仿真设计的目标。总结与展望总结交通灯设计的价值在于其在现代交通中扮演着重要角色。它不仅能够有效地控制交通流向和平衡交通流量,还能提升道路安全性和交通效率。通过车流量检测和按键设置功能,交通灯系统能够根据实际交通需求进行动态调整,确保交通信号的合理性和灵活性。同时,红绿灯信号和数码管显示功能为交通参与者提供了清晰的交通指示和倒计时信息,有助于减少事故风险和提升驾驶员的交通意识。然而,交通灯设计仍面临一些技术挑战和改进空间。例如,如何更准确地检测车流量、如何优化红绿灯信号的时序、如何提高交通灯系统的智能化水平等都是需要进一步研究和改进的方向。随着科技的不断进步和电子工程师的不断探索,交通灯设计将成为未来研究的热点之一。总而言之,交通灯设计作为一项经过深入研究和实践的成果,以单片机为核心,具备车流量检测、按键设置、红绿灯信号和数码管显示等功能。尽管存在技术挑战和改进空间,但它在现代交通中扮演着重要角色,能够缓解道路拥堵问题,适用于各类城市。随着未来的发展,交通灯设计将继续成为电子工程师研究的热点,并为交通管理和道路安全做出更大的贡献。展望在交通灯设计的过程中,我们不可避免地意识到自身的能力和知识面的不足之处。这些不足让我们认识到设计的持续改进和完善是必要的。我们需要不断更新自己的技术知识,提高设计水平,以应对不断变化的交通需求和挑战。未来的研究方向包括但不限于优化交通灯通行时间调整、增加新的功能模块,以及构建更智能化的系统来满足日益发展的城市需求。在优化交通灯通行时间调整方面,我们可以探索更精确的车流量检测技术,利用数据分析和预测算法来实现更精准的交通信号控制。同时,通过增加功能模块,如紧急车辆优先通行、可变速限制等,可以进一步提升交通灯系统的效能和安全性。另外,构建智能化的交通灯系统是一个重要的研究方向。通过应用人工智能、机器学习和物联网等先进技术,交通灯系统可以更加智能地适应城市的交通需求和流量变化。例如,基于实时数据和智能算法的交通灯优化、智能协调和交通预测等,都是可以进一步研究和探索的方向。在完成设计过程中,我们也逐渐了解和熟悉了仿真软件。这四年来,我们掌握了一些专业知识,并对电气专业有了更清晰的认识。我们查阅了大量资料,提高了自己的理论知识和动手能力,特别是在单片机编程方面的知识上表现出色。这些经验和知识对我们未来的学习和工作都具有很大的帮助。参考文献胡瑞楠.基于51单片机的智能交通灯系统设计[J].通讯世界,2018,(08):252-253.黄慧喜.基于车流量监测的智能交通灯控制设计[J].汽车维修,2018,(04):6-8.野媛.浅析C语言的发展、特点及其应用[J].科学技术创新,2017,(33):101-102.姚琪琛.基于流量监测的智能交通灯控系统[D].湖南大学,2015.WenLiangWu.DesignofIntelligentTrafficLightControlSystemBasedonMultiCPU[J].AppliedMechanicsandMaterials,2015,3752.ChengHuiYang.AKindofTrafficLightControllerSimulationDesign[J].AdvancedMaterialsResearch,2014,2879.刘新英,高玉雪.基于单片机的交通灯控制系统设计[J].电子设计工程,2014,22(03):174-177.李萍.基于AT89S51的智能交通灯控制系统设计与仿真[J].电子设计工程,2014,22(01):190-193.苏玉萍.基于单片机的交通灯控制系统的设计与仿真[J].甘肃科技,2011,27(19):32-34+5.黄菊生.《单片机原理与接口技术》[M].北京:国防工业出版社,2007.马西秦.《自动检测技术》[M].北京:机械工业出版社,2002.李朝青,卢晋,王志勇,等.《单片机原理接口技术》[M].北京:北京航空航天大学出版社,2017.姚琪琛.基于流量监测的智能交通灯控系统[D].湖南:湖南大学,2015.致谢今年是大学的最后一年,这也是我在学校的最后一篇设计。四年的学习生涯即将画上句号。学习的这四年中,有过迷茫也有过失落,最终还是坚持下来,留下了满满的收获。想到即将毕业,心中十分的不舍,仍感谢大家的陪伴与支持。感谢母校对我的栽培,四年中最美的青春年华在这里度过,在以后的人生路上,我会牢记我们学校校训,不断的拼搏奋斗,为母校尽一份勉薄之力。感谢四年来的任课老师,你们不仅教给我们知识,还对我们无微不至的关怀,照亮了我们的人生,滋润了我们的心田。本次设计中让我学到了学习必须勤奋、严谨。在这我要感谢我的指导老师黄老师,从选题到设计完成,全志勇导师和黄东导师多次对我指导和帮助,提出宝贵意见,直至修改合格。从老师那也学习到了认真严谨。是我将来的学习模范,同时也感谢我的同学,他们在我的大学时光里给我鼓励,最后也要感谢我的父母是你们在大学期间给了我丰富的物质和情感支持,让我的大学生活没有后顾之忧,感谢我在大学遇到的每一个人,是与你们的一个个故事,让我的大学生活如此丰富多彩。通过这个设计,理论与实际联系起来,并从中受益。这次毕业的项目包含了大量的理论知识、技术要求、广泛的工作和很强的囊括性,所以得到充分锻炼。在设计时。了解了交通灯的原理、设计方法和过程。包括各种资料的查询,整个系统设计及硬件软件的选择、程序设计方法的积累、仿真多方面内容的运用。它对于运用专业知识,解决实际问题的能力,思考能力,探索能力以及科学研究创新能力具有积极的作用。在设计中由于自己的知识技能有限出现的不足之处,请各位专家老师批评指出。最后,向参与答辩和评阅的专家和教授表示衷心而热烈的感谢!附录交通灯程序代码如下:#include"reg52.h" //此文件中定义了单片机的一些特殊功能寄存器typedefunsignedintu16; //对数据类型进行声明定义typedefunsignedcharu8;//数码管控制端口sbitLSA=P0^0;sbitLSB=P0^1;sbitLSC=P0^2;sbitLSD=P0^3;sbitLSE=P0^4;sbitLSF=P0^5;sbitLSG=P0^6;sbitLSH=P0^7;sbitled1=P1^0;//南北黄sbitled2=P1^1;//南北红sbitled3=P1^2;//南北绿sbitled4=P1^3;//东西黄sbitled5=P1^4;//东西红sbitled6=P1^5;//东西绿sbitkey1=P3^0;sbitkey2=P3^1;sbitkey3=P3^2;sbitkey4=P3^3;sbitkey5=P3^4;//东西sbitkey6=P3^5;//南北sbitkey7=P3^6;sbitkey8=P3^7;u8codesmgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值u8aa,bb;//中间变量u8table=0;//切换标志位u8nbshi,dxshi,moshi;//时间中间标记u8nbzlshi=38,huangshi=5,nbzhshi=25;//南北各灯时间u8dxzlshi=20,dxzhshi=43;//东西各灯时间 u8dxhshi,nbhshi;//南北东西红灯时间 u8jinji=0,dxjinzhi,nbjinzhi;//紧急按钮标志 u8miao,fen; u8nbcl,dxcl; /********************************************************************************函数名:delay*函数功能 :延时函数,i=1时,大约延时10us*******************************************************************************/voiddelay(u16i){ while(i--); }/********************************************************************************函数名:Timer0Init*函数功能 :定时器0初始化*输入:无*输出:无*******************************************************************************/voidTimer0Init(){ TMOD|=0X01;//选择为定时器0模式,工作方式1,仅用TR0打开启动。TH0=0XFC; //给定时器赋初值,定时1ms TL0=0X18; ET0=1;//打开定时器0中断允许 EA=1;//打开总中断 TR0=1;//打开定时器 }voidkey(){if(key1==0) { delay(100); if(key1==0) { jinji=0; moshi=0; } while(!key1); } if(key2==0)//紧急按钮 { delay(100); if(key2==0) { jinji=1; moshi=4; nbshi=dxshi=60; } while(!key2); } if(key3==0) { delay(100); if(key3==0) { moshi=2; jinji=0; nbshi=nbzhshi;//南北红 dxshi=dxzlshi; } while(!key3); } if(key4==0) { delay(100); if(key4==0) { moshi=0; jinji=0; nbshi=nbzlshi;//南北绿灯时间 dxshi=dxzhshi; } while(!key4); }if(key5==0) { delay(100); if(key5==0) { dxcl++; } while(!key5); } if(key6==0) { delay(100); if(key6==0) { nbcl++; } while(!key6); }}voidhlhdeng(u8deng){switch(deng) { case0x00:led1=1;//黄//南北绿东西红 led2=1;//红 led3=0;//绿 led4=1;//黄 led5=0;//红 led6=1;//绿 break; case0x01: led1=0;//黄//南北黄东西红 led2=1;//红 led3=1;//绿 led4=1;//黄 led5=0;//红 led6=1;//绿 break; case0x02: led1=1;//黄//南北红东西绿 led2=0;//红 led3=1;//绿 led4=1;//黄 led5=1;//红 led6=0;//绿 break; case0x03: led1=1;//黄//南北红东西黄 led2=0;//红 led3=1;//绿 led4=0;//黄 led5=1;//红 led6=1;//绿 break; case0x04: led1=1;//黄//南北东西红 led2=0;//红 led3=1;//绿 led4=1;//黄 led5=0;//红 led6=1;//绿 break; }}/********************************************************************************函数名:DigDisplay*函数功能 :数码管动态扫描函数,循环扫描8个数码管显示*******************************************************************************/voidsmg(u8nbshi,u8dxshi){ P0=0Xee;//南北 aa=nbshi/10; P2=smgduan[aa]; delay(50); P0=0Xdd; bb=nbshi%10; P2=smgduan[bb]; delay(50); P0=0Xbb;//东西 aa=dxshi/10; P2=smgduan[aa]; delay(50); P0=0X77; bb=dxshi%10; P2=smgduan[bb]; delay(50);}voidsmg1(u8dc,u8xc,u8nc,u8bc){ P0=0Xfb;//东 aa=dc/10; P2=smgduan[aa]; delay(50); P0=0Xf7;

温馨提示

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

评论

0/150

提交评论