基于89C51的交通灯控制系统设计目录摘要...................................................................................................11.设计任务与要求..................................................................................12.系统硬件设计......................................................................................23.系统软件设计......................................................................................54.Proteus软件仿真................................................................................65.设计心得..............................................................................................76.参考文献..............................................................................................7附录.........................................................................................................81交通灯控制系统设计摘要自从1858年英国人发明了原始的机械扳手交通灯之后,随后的一百多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。近年来,随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入人民的生活当中。本模拟交通灯系统利用单片机AT89C51作为核心元件,实现了通过信号灯对路面状况的智能控制。从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。本模拟系统由单片机硬/软件系统,两位8段数码管和LED灯显示系统等组成,较好的模拟了交通路面的控制。关键词:交通灯单片机数码管LED灯1.设计任务与要求东西、南北两干道交于十字路口,各干道有一组红、绿、黄三个指示灯,指挥车辆和行人安全通行。东西方向为主干道,通行时间为40秒;南北方向为支干道,通行时间为30秒。通行时间最后3秒,绿灯灭,黄灯闪烁,黄灯闪烁完毕变更通行车道。通行时间由数字显示器显示,黄灯3秒闪烁不单另计时。22.系统硬件设计根据上面的功能要求,硬件系统主要有单片机模块、指示灯模块和倒计时显示模块。各模块选择如下:(1)单片机模块主控芯片采用AT89C51单片机,其管脚图如图1所示。图1AT89C51引脚图AT89C51是AT89C5X系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。AT89C51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。AT89C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。AT89C51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。AT89C51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。3AT89C51共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。AT89C51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。AT89C51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。AT89C51内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但AT89C51单片机需外置振荡电容。本设计中,使单片机运行在最小系统。时钟电路由两个20nF的微调电容和一个晶振组成。AT89C51内部有一个用于构成振荡器的高增益反相放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器。本系统采用12Hz的振荡器,机器周期为1us。复位操作有上电自动复位、按键电平复位和外部脉冲复位三种方式。本设计采用按键电平复位。按键电平复位是通过复位端经电阻与电源接通实现,如下图2所示。图2AT89C51最小系统(2)指示灯模块设计电路中每个路口的控制信号灯应有三个,即红灯、黄灯、绿灯各一个。因此,本电路的设计中应用到红灯、黄灯、绿灯个四个。同一方向的两个路口的同一颜色指示灯是同时亮灭,为简化电路,可让这两个灯接同一引脚。这样可用P1口控制所有的指示灯。为简化设计,信号灯不采用当个的发光二极管,而采用现用的交通灯组件。该组4件及其与单片机引脚的接法如下:东西方向南北方向指示灯红灯绿灯黄灯红灯绿灯黄灯引脚P1.3P1.4P1.5P0.0P1.1P1.2图3指示灯及其接线引脚(3)倒计时显示模块由于黄灯3秒闪烁时间不单另计时,四个路口的倒计时是同步的。两位的倒计时采用两个四位的七段数码显示管。传统的共阳极或共阴极的数码管其显示输入需要为段码,这样就使得电路相对复杂和繁琐。对于相同的功能在成本相差不大的情况下,本设计中使用的自带BCD译码电路的LED显示器,其主要特点是采用四线BCD码输入,使用时直接输入BCD码即可显示相应的数字,使得电路大大简化。设计时,把P0口当做BCD码输出端口,连接到LED显示器上,这样可把BCD码直接转换成可显示的数字。图4倒计时显示模块53.系统软件设计本系统的主程序流程如下:开始东西方向亮绿灯,南北方向亮红灯倒计时40.39.38……4东西方向绿灯灭,黄灯闪烁南北方向依旧亮红灯倒计时3.2.1南北方向亮绿灯,东西方向亮红灯倒计时30.29.28……4南北方向绿灯灭,黄灯闪烁东西方向依旧亮红灯倒计时3.2.1图5主程序流程图开机上电便处于正常运行状态,东西方向通行40秒后变为南北方向通行30秒,如此70秒循环一次,使得东西方向和南北方向交替通行。显示系统则显示到下一次改变通行方向所剩的时间,利于司机调整车辆状况。每到通行方向转换时,正在通行的方向绿灯熄灭,变为黄灯闪烁,提醒司机注意通行方向的改变,避免不必要的危险。延时方法可以有两种,一种是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。本程序的倒计时采用软件延时。总程序见附录。64.Proteus软件仿真在此次设计中,用Proteus对硬件部分进行模式。在Proteus中输入原理图后,在单片机中载入汇编程序生成的hex文件,运行仿真,结果如下:图6东西方向通行仿真结果图7东西方向黄灯闪烁仿真结果图8南北方向通行仿真结果75.设计心得随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。单片机作为我们的主要专业课之一,虽然在开始学习时我对这门课并没有什么兴趣,觉得那些程序指令枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。在设计中,我对单片机系统有了一个更深刻的认识。同时通过此次课程设计,熟练掌握了汇编语言的编程方法,进一步熟悉了外部中断的使用方法。通过使用仿真软件Proteus,深化了对软硬件联合调试的意义的理解,在仿真的过程中肖老师指点了许多存在的问题,使我大大提高了联调的效率。最后,我觉得作为一名气工程专业的学生,单片机的课程设计是很有意义的,在这个过程中可以学会如何把自己平时所学的东西应用到实际中。虽然我对这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得有点难,但是靠着这两个多星期的学习突击,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。我觉得课程设计反映的是一个从理论到实际应用的过程,这个过程对缺乏实际经验的我们是非常重要的。通过这次单片机课程设计使我认识到自身知识及能力的薄弱,更让我知道实践的重要性。在以后的学习过程中,我会更加努力学习MCU的相关知识和应用,真正能够运用单片机组成的微控制系统解决各种实际的问题。6.参考文献1.《单片机技术及C51程序设计》唐颖,2012,电子工业出版社;2.《单片机原理与应用——基于实例驱动和Proteus仿真》李林功,2011,科学出版社;3.《MCS-51系列单片机应用系统设计》何立民,1995,北京航空航天大学出版社;4.《单片机基础》李广弟,1992北京航空航天大学出版社;5.《单片微机原理及应用》丁元杰,1994,机械工业出版社。8附录源程序如下:org0000hmovp1,#00hmain:setbp1.0setbp1.4acallxianshi1clrp1.4acallshanden1clrp1.5clrp1.0setbp1.1setbp1.3acallxianshi2clrp1.1acallshanden2clrp1.2clrp1.3sjmpmainxianshi1:movr7,#0lp1:mova,r7movdptr,#TABLEmovca,@a+dptrmovp0,aacalldelay1incr7cjner7,#37,lp1retxianshi2:movr7,#10lp2:mova,r7movdptr,#TABLEmovca,@a+dptrmovp0,aacalldelay1incr7cjner7,#27,lp2retshanden1:movp0,#03setbp1.5acalldelay2clrp1.5acalldelay2setbp1.5acalldelay2clrp1.5acalldelay2movp0,#02setbp1.5acalldelay2clrp1.5acalldelay2setbp1.5acalldelay2clrp1.5acalldelay2movp0,#01setbp1.5acalldelay2clrp1.5acalldelay2setbp1.5acalldelay2clrp1.5acalldelay29retshanden2:movp0,#03setbp1.2acalldelay2clrp1.2acalldelay2setbp1.2acalldelay2clrp1.2acalldelay2movp0,#02setbp1.2acalldelay2clrp1.2acalldelay2setbp1.2acalldelay2clrp1.2acalldelay2movp0,#01setbp1.2acalldelay2clrp1.2acalldelay2setbp1.2acalldelay2clrp1.2acalldel