ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

基于51单片机的交通控制系统设计|毕业设计项目|毕设项目|单片机项目|物联网专业|毕业设计

基于51单片机的交通控制系统设计|毕业设计项目|毕设项目|单片机项目|物联网专业|毕业设计 一、項目介绍摘 要城市化持续推进之际城市交通堵塞现象越发严重智能交通信号控制系统的意义不言而喻它可提升道路通行效率本文以STC89C51单片机作为核心规划并且达成了一套较为完善的交通灯控制方案。系统依照十字路口交通运行规律制定了东西向和南北向红黄绿信号灯的自动循环控制方案而且经由LED数码管及时显现倒计时时间方便驾驶员和行人清楚掌握信号灯剩余时间硬件设计包含单片机最小系统信号灯显示电路数码管显示电路键盘输入电路以及驱动电路利用74HC245推动芯片提升 I / O 口推动能力保证负载稳定运行。软件设计采取模块化编程理念划分出主程序模块定时中断模块按键处理模块以及显示推动模块凭借定时器中断达成精准计时用动态扫描技术来推动数码管显示经由有限状态机做到交通状态的平滑转换系统还特意设计了独立式键盘可以用于设置时间参数和控制紧急模式从而提升了系统的灵活性与实用性。经调试及检测可知该系统运行稳定且可靠计时精准显示清楚按键反应敏捷可满足十字路口交通控制的基本需求此系统成本低操作简便扩展能力佳适合用于中小城市的路口学校附近工业园区等地的交通经营项目。关键词单片机STC89C51交通灯倒计时显示状态机主要研究内容本文以STC89C51单片机为核心控制器设计并实现了一套功能完整的交通灯控制系统。主要研究内容包括以下几个方面先要剖析典型十字路口的交通流运行规律并确立信号灯状态转换的逻辑联系从而规划出契合实际需求的控制方案遵照技术文档里给出的状态转换图系统设有4种主要状态以及2个过渡状态东西向和南北向会轮流享有通行权经由黄灯来提示执行状态转换以此保障路口的安全通行。接着要开展系统硬件电路的设计工作涵盖单片机最小系统信号灯显示电路数码管显示电路键盘输入电路和驱动电路等各个模块在元器件选型的时候从性能成本和可得性这些方面予以全面考量选取STC89C51单片机当作主控芯片运用74HC245驱动芯片加强负载能力选择两体一体化共阴极数码管用于倒计时显示。 系统软件程序设计环节需采用模块化编程理念把程序分解成主程序模块定时中断模块按键处理模块和显示驱动模块经由定时器中断达成精确计时用动态扫描技术来带动数码管显示并用状态机思维做到交通状态的平滑转换完成系统硬件调试软件调试以及联调试验之后要核查各功能是否达成剖析其中的问题并给出改进方向。需求分析交通灯控制系统是路口交通运作的关键设施需达成安全性可靠性和实用性这三大基本要求从功能需求看该系统要可自动操控东西和南北方向红黄绿三色信号灯的亮与灭并依照预先设定好的时间规律依次循环切换遵照技术文档里所列的状态转换图系统必要做到诸多状态的循环控制其中涵盖主状态和过渡状态这样的控制形式顺应国内大半路口的通行惯例东西向与南北向的通行时延可以按实际交通量来安排。 系统需具备倒计时显示功能分别在四个路口设置 LED 数码管用来即时显示当前状态所剩时间这样就能让驾驶员和行人提前判断信号灯的变化情况。系统还要有参数设置功能经由按键就能调节各状态的持续时限从而顺应不同时段以及不同路口的交通状况从性能需求来讲系统计时要精准信号灯的切换过程应当流畅且没有颤动现象数码管显示也要清晰稳定而且不能闪烁就可靠性而言系统要有抗干扰能力在恶劣环境下仍可正常运行而且复位电路能够促使系统在上电或者出现异常时自动回归正常操作状态至于经济性方面则要采用成本比较低的元件把整体造价控制在恰当的范围之内如此一来才方便推广并投入使用。从扩展性需求来看本系统需保留紧急控制功能一旦救护车消防车等特种车辆经过时可由人工或者自动转入紧急模式两边均亮红灯以保障特种车辆得以优先通行。等到特种车辆离开之后系统会自动回到原先的工作状态而且系统还要设有违规检测接口日后可以扩充连接车辆检测传感器检测到违规变道情况时发出声光警报或者拍照记录关于人机交互部分除了最基本的按键设定之外可以考虑增设 LCD 显示屏即时显示当前工作模式及其设置参数从而提升操作的直观程度。 电源这一方面来说系统得要符合市电供电环境的要求并且也要有备用电源接口以防停电造成交通陷入混乱。针对前面提到的各种需求加以深入剖析之后就可以给后面硬件选型以及软件设计给予清晰的指引方向从而保证最终所设计出来的系统能够达到实际应用的目的。交通状态转换方案根据技术文档中提供的交通状态图和交通状态及红绿灯状态表本系统采用多状态循环控制方案。具体状态转换逻辑如下初始时东西方向信号灯显示红色南北方向则显示绿色此情形表明东西方向禁止通行南北方向可以通行而且其历时长短能够预先设定。这一时限能依照路口的实际车流量来调节在早晚高峰时段可适当地延长其时间过渡阶段表现为东西方向信号灯仍旧显示红色南北方向的绿色信号灯熄灭黄色信号灯开始亮起这个阶段起到警示南北方向的通行权限将要终止提醒驾驶员做好停车准备的作用经过了状态转变之后所处的主要状态就是东西方向信号灯显示绿色南北方向信号灯显示红色此状况显示东西方向准许通行南北方向禁止通行它的历时长短同样可以事先设定而且还可以按照主次道路之间的交通需求差别予以调整还存在一种过渡情况即东西方向出现黄色信号灯而南北方向的红色信号灯依旧处于点亮状态此情形用来告知东西方向的通行权限即将耗尽。 前面所述各种状态全部完成后便会回到最初状态从而创建起循环控制体系。这种状态转换方案针对路口通行的安全性和高效性展开设计在主状态下仅有一个方向享有通行权如此便规避交叉冲突。处于过渡状态时黄灯的亮起告知驾驶员状态即将改变黄灯时段内已跨越停止线的车辆仍可前行未跨过停止线的车辆则需准备好停车如此既能保障通行效率又能保证安全而状态持续时间的设定依照实际交通需求的差别来执行大致合乎多数路口主干道和次干道的实际交通需求差距状况要是东西向与南北向的车流量差不多那么其持续时间亦可被安排成一致技术文件里显示能够经由按键设置定时器所以实际操作起来按照现场调研得出的交通流量信息可以灵活地调节各状态下所停留的时延从而做到某种程度上的自适应调节。 本方案具备紧急模式按下紧急按键以后系统就会立刻把两个方向都转为红灯以清空路口给特种车辆让路再按一次紧急按键或者经过一定时限之后系统才会回到中断之前的状态并重新开始运行这样的设计提升了系统处理突发事件的能力。总体架构设计本系统采取模块化设计思维其整体架构包含硬件层引导层及应用层这三个层级硬件层牵涉单片机最小系统信号灯显示电路数码管显示电路键盘输入电路以及驱动电路等实际组件引导层则包含了各个硬件模块的引导程序比如 I/O 口初始化程序定时器初始化程序数码管动态扫描程序等等应用层要达成交通状态控制逻辑按键处理逻辑以及紧急模式处理逻辑这些关键功能该系统把 STC89C51 单片机当作核心控制器经由 I/O 口来控制信号灯的开关凭借独立式按键来获取用户输入并利用数码管来显示倒计时信息系统总的框图清楚地表现出各个模块之间的关联及其数据流动方向。在具体硬件结合上单片机最小系统包含STC89C51芯片晶振与电容形成起来的时钟电路还有由电容和电阻合成的按键复位电路。信号灯显示电路用发光二极管来模仿四个路口的红黄绿三种颜色的灯并利用驱动芯片提升其推动能力从而保证LED亮度充足数码管显示电路则选用的是四位一体共阴极数码管用以显示东西南北这四个方向的倒计时数字经由动态扫描技术做到显示效果凭借人眼视觉暂留的原理只要扫描频率足够高就会给人一种四个数码管一起平稳显示的感觉键盘输入电路采取独立按键设计各个按键占据一个 I/O 口用于设定时间开启紧急模式等事项。 软件架构上主程序采用前后台系统设计其中无限循环充当后台任务来处理按键扫描及状态更新事务定时器中断当作前台任务去承担精确计时和数码管刷新的任务此架构既能保障计时准确无误又能简化程序设计符合该系统功能需求。二、文档介绍三、项目设计主程序流程软件程序设计对于交通灯控制系统来说非常重要其决定了系统功能如何达成以及运行效率高低本系统软件运用模块化设计思路把整个程序拆解成主程序模块定时中断模块按键处理模块以及显示激发模块这四个大致独立的部分。这些模块之间依靠全局变量和函数调用来传达信息结构较为明晰方便执行调试与后续保障工作主程序堪称整个软件的支撑框架承担系统启动持续性循环任务安排以及异常情况应对等工作职责当系统上电或者被复位时主程序会先执行一些初始化步骤比如关闭看门狗设定堆栈指针初始化 I/O 口的状态调整定时器的工作模式及初始值启动定时器中断并初始化全局变量之类的事情。 初始之后主程序就踏入无休止循环当中在此期间持续检测按键状态更新交通状况并操控信号灯亮灭还要静候定时器中断的到来主程序流程图清楚地显示出程序运行的全部过程。主程序的核心是有限状态机它可做到交通状态的循环转换定义状态变量来显示当前主状态过渡状态及其余时间。在主循环里程序持续查看余下时间是不是为零一旦某个状态的余下时间被减到零就依当前状态转到下一个状态还要设置新状态的持续时间并给出信号灯输出比如开始时计数结束程序就会把状态改成过渡状态设定好过渡状态的持续时间然后调用信号灯控制函数去关闭对应方向的绿灯并打开黄灯依靠状态机来做到这种方式逻辑很明晰便于领会和改动若要调整状态的持续时间或者增添新的状态只须要改相关的代码就行。主程序中有对按键处理函数的调用定时扫描按键状态发现有效按键便执行相应功能要保障系统具备随时响应的能力所以主循环的执行时间应当越短越好防止出现长时间的等待或者繁杂的运算那些耗时的任务可以放到中断服务程序当中去处理亦或是拆分成很多小步来逐步完成。定时中断程序定时中断程序对于本系统做到精准计时十分关键其职责在于生成标准的秒信号而且推动数码管执行动态显示该设计运用定时器处于16位定时器模式经由设置恰当的定时时延定时器初值的计算需依照晶振频率以及机器周期来完成借助相关计算即可得出应被载入定时器的初值大小。当定时器执行初始化时须要设定工作模式加载初值开启中断功能并开启定时器本身之后定时器便开始运行每次经过所定的时间间隔就会引发一次中断事件而中断服务程序会把中断发生的次数加以累加统计等到这一累计数值达到预定目标之后就把秒标志位置于“1”状态然后刷新各方向剩余时限相关的变量内容。定时中断程序还负责数码管的动态扫描显示。由于数码管需要持续刷新才能稳定显示如果在主程序中用延时循环扫描会占用大量CPU时间影响其他任务的执行。因此将数码管扫描放在定时中断中是最佳选择每进入一次中断服务程序就切换一个数码管位送出对应的段码。中断频率经过合理设置扫描完所有数码管位所需时间合适刷新频率满足无闪烁感的要求。中断服务程序的流程是首先重新设置定时器的初始值确保下一次定时精准无误其次统计中断次数判定是否已到达秒信号。再次执行数码管扫描步骤依照当下的扫描位索引从显示缓冲区获取相应数字的段码并经由 I/O 口予以输出还要把先前被点亮的位给关闭把当前的位选中最后清除中断标志回到主程序当中显示缓冲区属于一个数组该数组用来存储各个数码管想要显示的数字主程序会在状态转换或者时间被更新的时候去改变这个缓冲区的内容而中断程序则承担着把缓冲区中的内容表现出来的任务这样一种生产者 - 消费者模型很好地化解了主程序和中断程序之间存在的数据同步难题。按键处理程序按键处理程序负责识别用户按键输入并执行相应功能是人机交互的核心。由于机械按键存在抖动问题程序必须采取去抖措施。本设计的按键处理流程如下在主循环里要定期调用按键扫描函数此函数会读取按键端口的状态然后拿这个状态和上次读取到的值做对比一旦察觉到按键状态发生了改变就开启去抖动延迟去抖动延迟采取软件延迟的办法调用完延时函数之后还要重新读取按键状态要是还是跟前面检查到的那个状态相符合就可以判定这是一个有效的按键操作针对按键被按下这种情形按照对应的按键编号来执行相关功能至于按键放开的情况大多数时候不需要做些什么不过对于一些得一直按住才生效的功能来说可以凭借检测到按键放开当作结束的标志。 按键的功能如下定义加键处于设置模式时可提升当前状态持续时间每次按下增加固定时间段。减键用来缩减持续时间但不得低于最低预设值设置键用以进出设置模式在设置模式里数码管会闪烁显示出可调节的参数按下加键或者减键实施调整再按下设置键予以确认并返回。紧急键负责开启或者关闭紧急模式按下之后两个方向都会亮起红灯全部计时停止运行按下此键或者经过一定时限以后才会复原原先状况。按键处理程序会针对长按和组合键这两种情况加以考量其长按功能的达成原理在于一旦监测到按键被按下并且得到确认之后并不会马上执行一次操作而是开动一个长按定时器假定按键保持按住的状态达到了预定的时间以后便会进入到连加或者连减的模式当中也就是每隔一段固定的时间就自动地执行一次加法或者减法的操作直至按键被松开为止。而所谓的组合键则是用以完成一些特别的功能譬如说当加键和减键一同被按下时就可以做到复位回出厂设置的目的也就是把所有的相关状态历时重新设回到默认的初始设定上去想要做到这一点就得让程序去记住各个按键各自按下之时的时刻以及是否已经被处理过之类的信息此外按键处理程序还要具有一定的抗干扰能力对于那些持续时间非常短暂的脉冲信号就应该当作干扰来不予理会在处于紧急状况的时候除了紧急键以外的所有其他按键都要被关闭掉以免因误按而影响到紧急通行的流程顺畅。 按键处理程序的设计需兼顾用户操作的便捷性和系统运行的安全性使得系统既灵活又可靠。显示驱动程序显示驱动程序要把时间信息以数字形式清晰地表现到数码管上这是改善系统用户体验的关键部分本系统用的是四位一体的共阴极数码管用来显示东西方向和南北方向的倒计时秒数显示驱动程序的重点在于动态扫描技术和段码转换技术。动态扫描的原理之前已经讲过依靠人眼的视觉暂留特点来分时点亮各个数码管所谓段码转换就是把数字变成数码管各个段的亮与灭的合成共阴极数码管的段码表得按照硬件的拼接方式去决定。 比方说显示数字的时候就得点亮对应的段所以其对应的二进制以及十六进制的表现形式就要设准确鉴于采用的是低电平来点亮那么实际上输出的段码便是取反之后的值所以在真正的编程过程当中一定要按照硬件的拼接方式来确定合适的段码表才行。显示驱动程序的工作流程如下定时中断服务程序当中定时切换扫描位从显示缓冲区获取当前位对应的数字经由查表得到段码并借助I / O口予以输出而且还要关闭之前点亮的位选择当前位。显示缓冲区属于多维数组用以表现各路口方向的十位与个位主程序每隔一秒更新的时候把各个方向剩余的时间转化为十位和个位数字存入显示缓冲区如果处于设置模式为达成数码管闪烁的效果程序增添了一个闪烁标志当进入设置模式之后定时把当下正在设置的位置显示成全灭而其余位置则照常显示从而产生闪烁的视觉效果告知用户哪些参数能够被调节。 显示驱动程序具备亮度调节功能经由调整每个位点亮的时间比例可以改变数码管的整体亮度进而符合不同环境光线的要求。比如白天时可加大点亮时间来提升亮度夜晚则减小点亮时间以减小亮度并缩减功耗。系统硬件总体构成本系统的硬件电路包含五个主要部分它们分别是单片机最小系统信号灯显示电路数码管显示电路键盘输入电路以及驱动电路这些部分相互配合以达成交通灯自动控制的目的其中单片机最小系统起到控制的核心作用其内部含有STC89C51单片机时钟电路以及复位电路该系统需运行控制程序对输入信号执行处理并发出相应的控制指令信号灯显示电路由高亮度发光二极管形成被分为四组来模仿东西南北四个方向的红黄绿三种颜色的信号灯每组中的三个LED对应红灯黄灯和绿灯。 数码管显示电路采用四位一体且为共阴极数码管分别设置于四个路口方向随时显示当下信号状态的倒计时秒数从而让驾驶员与行人清楚认识到余下时间键盘输入电路有独立式按键这个按键可增添时间削减时间确定设置以及开启紧急模式利于现场调整并且适合应对特殊情况驱动电路用的是总线驱动器这样就能提升单片机 I/O 口的推动能力保证信号灯和数码管得到足量的工作电流使得显示既清楚又稳定。硬件电路设计依照可靠性经济性与可扩展性的原则来执行在可靠性层面所有的元器件均采用工业级产品其工作温度范围符合户外使用的条件电路板设计时充分考量到抗干扰措施电源线被加粗关键信号线实施屏蔽处理并把晶振尽量放置在靠近单片机引脚之处以减小寄生电容。从经济性角度看只要符合功能需求就在众多元器件当中挑选性价比较高的来进行选用从而有效地掌握成本至于可扩展性电路板事先就保留了一些I/O口以及扩展接口这样就能为日后添加诸如车辆检测传感器无线通讯模块之类的外部设备带来便利。 硬件总体形成较为明晰各模块环绕单片机呈星形相连此种结构便于调试及维修电源部分经由稳压器把市电整流并降压成稳定电压来向整个系统供电而且留有备用电池接口在断电时可使时钟芯片持续计时从而保障时间参数不会遗失。在键盘电路设计当中关键之处在于考量按键抖动现象机械式按键在按下或者松开的时刻会出现短暂的抖动情况抖动之时电平会发生多次翻转。如果未予处理那么单片机大概率会被误判为多次按键按压解决抖动问题存在两种办法一是依靠硬件来达到目的比如利用触发器或者滤波电路这必然会加大成本并且让电路变得更复杂一些另一种则是软件去抖这种方法既简便又实用就是在检测到按键按下以后稍微延迟一段时间之后再去重新检测一次倘若此时还是处于低电平状态的话便可以认定这就是一个有效的按键信号本项目就采用了软件去抖这样的方案于是在有关于按键处理的那一部分程序代码里插入了专门用于产生延时效应的函数指令从而绕过了那段时间内存在的不稳定因素然后再去获取按键的真实工作状况。 要想加强按键操作的可靠性可以添加按键释放检测即只有检测到按键被松开之后才会执行相应功能防止长时间按压时出现连续触发的情况。在设计按键电路的时候还要注意防范静电放电可以在按键引脚和地之间并联一个小电容来吸收静电以此来保护单片机I/O口免受损害对于那些需要频繁操作的按键应该选择具有较长使用寿命和较好手感的按键开关这样才能保证其在长时间使用过程中维持可靠的工作性能。驱动电路设计驱动电路在单片机系统中起着承上启下的重要作用它将单片机的弱信号放大为能够驱动外部负载的强信号。本系统中需要驱动的负载包括多个LED信号灯和多位数码管段总电流需求较大而单片机I/O口的驱动能力有限因此必须增加驱动电路。本设计选用总线驱动器作为主要驱动芯片该芯片是常用的总线驱动器具有双向传输功能输出驱动能力强每路可输出足够的拉电流或灌电流。所选驱动芯片的主要特性包括其工作电压范围较广能与TTL电平相适配具备三态输出功能可轻松做到总线隔离。其传送延误时间处于合理区间利于实际应用而且功耗较低在此套系统当中采用了多片驱动芯片其中一片专门用来激发信号灯LED另有两片用以激发数码管。驱动电路设计的具体实现如下对于信号灯驱动电路来说把单片机有关的引脚同第一片驱动芯片的输入端相接该驱动芯片的输出端借助限流电阻连接到各个 LED 的阳极LED 的阴极则接地。驱动芯片的控制引脚要么接到高电平要么接到低电平这样才能保证数据传送的方向正确而且芯片一直维持在使能状态就数码管段选驱动而言把单片机 I/O 口与第二片驱动芯片的输入端相连此驱动芯片的输出端经过限流电阻之后再连接到数码管的段选引脚至于数码管位选驱动则是将单片机别的 I/O 口同第三片驱动芯片的输入端相接该驱动芯片的输出端直接同数码管的公共阴极相连。 采用低电平点亮数码管的时候位选驱动芯片输出低电平时会流入电流所以要选用灌电流能力强的芯片设计驱动电路的时候还要考虑电源滤波在每个驱动芯片的电源引脚旁边并联一个小电容来滤除高频噪声在总的电源输入端并联一个大容量的电解电容以稳定电源电压。驱动芯片应该尽可能贴近被驱动器件来布置从而减小由于长线传递而产生的干扰和压降。总 结本文以STC89C51单片机为核心设计并制作了一套功能完备的交通灯控制系统该系统可自动控制十字路口四个方向红黄绿信号灯的轮流转换做到东西向与南北向的交替通行而且经由LED数码管即时显示倒计时时间从而优化了路口通行的安全性与效率在硬件设计上完成了单片机最小系统信号灯显示电路数码管显示电路键盘输入电路以及驱动电路的原理图设计和PCB布局采用驱动芯片化解了单片机I/O口驱动能力欠缺的情况。 在软件设计方面运用模块化编程理念把程序分解成主程序模块定时中断模块按键处理模块以及显示驱动模块凭借定时器中断达成精准计时用动态扫描技术来激发数码管显示靠有限状态机做到交通状态的顺畅切换。系统专门设计了独立式键盘以此来设定时间参数操控紧急模式使得系统更具灵活性实用性更强经过硬件调试软件调试和功能检测证实该系统各个功能都符合设计要求计时精准显示稳固按键反应快捷紧急模式运行可靠此设计另外增进了对单片机原理及其应用的认知也为日后开发更为复杂的智能交通控制系统汇集了珍贵经验。
返回列表