1摘要近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P3口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过P0口输出至双位数码管)。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。关键词:单片机;交通灯AbstractInrecentyears,withtherapiddevelopmentofscienceandtechnology,theapplicationofSCMisgoingdeep,drivingthetraditionaldetectiontechniquestorenewdaybyday.Inthereal-timeexaminationandintheautomaticcontrolmonolithicintegratedcircuitapplicationsystem,themonolithicintegratedcircuitoftentookacorepartuses.Themonolithicintegratedcircuitaspectknowledgeisonlyinsufficient,butshouldalsoactaccordingtotheconcretehardwarearchitecturesoftwareandhardwareunion,tobeimproved.Theintersectionvehiclesshuttle,thepedestrianisbustling,cardealershiptrafficlane,personsidewalk,methodical.Thendependingonwhattorealizesthisorderlyorder?thetrafficlightsontheautomaticcontrolsystem.Therearegreatnumberkindsofmodestocontrolthetrafficlights.ThesystemusesaseriesofMCS-51asthecenterAT89C51single-chipdevicedesignedtocontrolthetrafficlights,soastorealizethefunctionofsettingred,greenlighttimeby8051chip’sP3portaccordingtotheactualtrafficflows,lightingthered-lightandgreen-lightbyturnandlightingtheyellow-lighttowarmwhile5secondsleft(outputtingthetrafficlightsignalbyP1,outpuingthetimebyP0andshowingthetimeondouble-digitsnixietube).Shortofthedesigncycle,highreliability,practical,simpleoperation,easymaintenance,theexpansionofpowerfulisthissystem.Keywords:SCM;MCU;trafficlight2目录中英文摘要························11设计要求·························42设计目的·························33方案比较、设计与论证···················34原理分析·························44.1交通灯显示时序的理论分析···············44.2交通灯显示的理论分析·················75程序设计流程图······················66总体设计与电路图·····················86.1芯片选择·······················86.2设计电路图·····················106.3PROTEUS仿真图:··················116.4交通灯程序·····················127仿真测试、数据及结果分析·················188总结与展望························17致谢····························20参考文献:·························21附录···························2031设计要求1.1程序开始运行先南北段通行、东西段禁止60s,后东西段通行、南北段禁止60s,依此循环。1.2系统分三种工作模式:正常模式、繁忙模式、特殊模式,并且通过三个按钮“正常”、“繁忙”、“特殊”可相互转化。1.3正常模式:直行时间显示数码管显示60。此时南北段直行通行(绿灯)、东西段禁止(红灯)40s,南北段人行道通行(绿灯),东西段人行道禁止(红灯),同时南北段和东西段方向的数码管分别从40s和60s开始倒计时,至最后5s时南北段绿灯变成黄灯闪烁;此后南北段左拐(左拐灯亮)通行、东西段禁止(红灯)20s,南北段、东西段人行道都禁止(红灯),同时南北段和东西段方向的数码管都从20s开始倒计时,至最后5s时南北段左拐灯变成黄灯闪烁;再后东西段直行通行(绿灯)、南北段禁止(红灯)40s,东西段人行道通行(绿灯),南北段人行道禁止(红灯),同时东西段和南北段方向的数码管分别从40s和60s开始倒计时,至最后5s时东西段绿灯变成黄灯闪烁;最后东西段左拐(左拐灯亮)通行、南北段禁止(红灯)20s,东西段、南北段人行道都禁止(红灯),同时东西段和南北段方向的数码管都从20s开始倒计时,至最后5s时东西段左拐灯变成黄灯闪烁。1.4繁忙模式:繁忙指示灯亮,南北段、东西段的通行时间改为45s,其中左拐的时间改为15s,其它与正常模式类似。1.5特殊模式:特殊模式灯亮,南北段、东西段的通行时间改为75s,其中左拐的时间改为20s,其它与正常模式类似。2设计目的2.1了解交通灯管理的基本工作原理2.2熟悉AT89C51的工作原理和应用编程2.3熟悉AT89C51并行接口的各种工作方式和应用2.4熟悉AT89C51计数器/定时器的工作方式和应用编程外部中断的方法2.5掌握多位LED显示问题的解决3方案比较、设计与论证3.1显示界面方案3.1.1倒计时显示该系统要求完成倒计时的功能。因只需显示数字,基于上述原因,我们考虑完全采4用数码管显示,四个路口分别采用一个二位阴极数码管即可。3.1.2状态灯显示该系统要求完成状态灯显示的功能。求于简单,我们把各个路口的红灯和黄灯设成直行和左拐两个通行方式所共有,也就是说,一个路口只需四个状态灯,一个直行通行的绿灯,一个左拐通行的绿灯,一个共有的红灯,一个共有的黄灯。3.2输入方案该系统要求能手动改变东西与南北的通行时间、紧急情况处理,我们采用扩展I/O口方法,在外部中断P32口上扩展三个中断口,分别连接三个按钮。该方案的优点是:使用灵活,并且可提供较多I/O口,节省了AT89C51的中断口资源。4原理分析4.1交通灯显示时序的理论分析下图所示为一种红绿灯规则的状态图。图4.1状态S1南北直行通行图4.2状态S2南北左拐通行图4.3状态S3东西直行通行图4.4状态S4东西左拐通行5共四种状态,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行如下图所示:依据上述车辆行驶的状态图,可以列出各个路口灯的逻辑表如下表所示(其中逻辑值“1”代表直行通行,逻辑值“0”代表禁止通行,逻辑值“L”代表左拐通行):S1的状态ESWN逻辑值0101显示时间正常模式下为40SS2的状态ESWN逻辑值0L0L显示时间正常模式下为20SS3的状态ESWN逻辑值1010显示时间正常模式下为40SS4的状态ESWN逻辑值L0L0显示时间正常模式下为20S图4.5交通灯状态循环图6程序就是在上述四种状态下循环转化的。一个周期四个状态,在正常模式下共花费2分钟。4.2交通灯显示的理论分析4.2.1倒计时显示的理论分析利用定时器中断,设置TH0=TH1=(65536-50000)/256,即每0.05秒中断一次。每到第20次中断即过了20*0.05秒=1秒时,使时间的计数值减1,便实现了倒计时的功能。4.2.2状态灯显示的理论分析黄灯闪烁同样可以利用定时器中断。每到第10次中断即过了10*0.05秒=0.5秒时,使黄灯标志位反置,即可让黄灯1秒闪烁一次。5程序设计流程图图5.1定时器0中断流程图T0响应N南北黄灯标志位为1N东西黄灯标志位为1Y0.5s到Y1s到南北黄灯位置反团里Y东西黄灯位置反团里Y返回倒计时减1,计数值置0NN7图5.2主程序流程图开始南北直行通行东西禁止南北左拐通行东西禁止AT89C51初始化南北黄灯闪烁南北黄灯闪烁通行35秒YN闪烁5秒YN通行15秒YN闪烁5秒YN东西黄灯闪烁东西直行通行南北禁止东西左拐通行南北禁止东西黄灯闪烁通行35秒YN闪烁5秒YN通行15秒YN闪烁5秒YN8图5.3外部中断0中断流程图6总体设计与电路图6.1芯片选择INT0响应N“繁忙”键按下N“特殊”键按下N“正常”键按下返回关中断开中断正常模式设置Y繁忙模式设置Y特殊模式设置YAT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8051产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,可以按照常规方法对其进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。图6.1AT89C51芯片引脚图96.2设计电路图图6.2电路图图中大部分连线采用总线形式。共五个二位阴极数码管,其中四个分别用于四个路口的倒计时显示,另外一个用于总体的直行时间显示,五个数码管的阳极都接到AT89C51的P0口,阴极接到P2口;共32个发光二极管,其中16个绿色发光二极管,14个红色发光二极管,2个黄色发光二极管,四个路口每个路口各有一个红(禁行)、黄(警告)发光二极管,二个绿色发光二极管(通行),一个用于直行通行,一个用于左拐通行,四个人行道,每个人行道两边各有一红、绿发光二极管,另外两个红色发光二极管分别用于繁忙模式和特殊模式的指示,其中四个路口的二极管接到P1口,人行道的发光二极管接到P3口,繁忙模式和特殊模式的指示灯接P2口;外部中断0接上三个按钮,分别用于繁忙、特殊、正常模式的转化。106.3PROTEUS仿真图:图6.3PROTEUS仿真图116.4交通灯程序/***********************************************************十字路口交通灯控制C程序*****************************************************