您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 带倒计时显示的十字路口交通灯
城南学院带倒计时显示的十字路口交通灯第1页共17页1绪论1.1背景及目的单片机课程设计是对“单片机原理及其应用”课程的全面练习和训练,是实践教学的重要环节。通过本次课程设计,综合运用“单片机原理及其应用”课程和其他有关先修课程的理论和生产实际知识去分析和解决具体问题,并使所学知识得到进一步巩固、深化和发展。初步培养学生对工程设计的独立工作能力,学习设计的一般方法。通过课程设计树立正确的设计思想,提高我们分析问题、解决问题的能力。进行设计基本技能的训练,如查阅设计资料和手册、程序的设计、调试等。1.2设计任务利用51系列单片机设计一交通灯控制系统。设计要求:(1)系统由单片机系统,键盘,LED显示,交通灯演示系统组成;(2)具有基本的交通灯功能;(3)具有倒计时,紧急情况处理的功能;(4)既要求倒计时数字输出,有要求有状态灯输出。城南学院带倒计时显示的十字路口交通灯第2页共17页2课程设计的总体方案及硬件设计2.1AT89S51简介AT89S51采用了CMOS技术,与AT89C51相比,其集成度高、速度快、低功耗。除具有4KBflash存储器、128BRAM、4个可编程I/O口、2个十六位定时/计数器、6个中断源、64KB程序存储器、64KB数据存储器寻址能力等基本特性外,它还有以下功能;●ISP在线编程功能●最高时钟频率33MHz●内部看门狗计数器●双数据指针DPTR0、DPTR1●电源关闭标识●全新加密算法2.2任务分析与整体设计思路试题要求实现的功能主要包括计时功能、动态扫描以及状态的切换等几部分,整体设计的系统框图如下:2.1整体设计的系统框图选用MCS51系列AT89S51单片机作为微控制器,选择两个四联的共阴极数码管组成8位显示模块,由于AT89S51单片机驱动能力有限,采用两片74HC244城南学院带倒计时显示的十字路口交通灯第3页共17页实现总线的驱动,一个74HC244完成共阴极数码管位控线的控制和驱动,另一个74HC244完成数码管的7段码输出,在7段码输出口上各串联一个100欧姆的电阻对7段数码管限流。用P3口的P3.0-P3.5完成发光二极管的控制,实现交通灯信号的显示,每个发光二极管串联500欧姆电阻起限流作用。另外用P1^0口设置一个开关用于控制紧急情况处理的功能,当遇到紧急情况时人工手动将两路路灯都置为红灯。2.3紧急处理电路和复位电路其电路图如下;图2.2紧急处理电路图图2.3复位电路如图紧急处理就是一个接地的开关接到P1.0口,属于低电平有效。而复位则稍微复杂一点,它采用上电加按键电平复位方式,属于高电平有效。RC时间常数应该大于两个机器周期。2.4晶振电路设计其电路图如下;城南学院带倒计时显示的十字路口交通灯第4页共17页图2.4晶振电路图如图XTAL1、XTAL2为单片机内部接外部晶体的两个引脚,分别为方向放大器的输入输出端。XTAL1、XTAL2接晶体振荡器,如此构成频率为11.0592MHz的自激振荡器。发出的脉冲直接进入片内定时控制器件。2.5倒计时显示电路设计如图所示;城南学院带倒计时显示的十字路口交通灯第5页共17页图2.5倒计时显示电路图如图所示选择两个四联的共阴极数码管组成4位显示,驱动芯片采用74HC244,每段数码管工作在1.5V。工作电流在10mA(电流不能太大,否则会烧坏),由于接5V电源,需接100欧姆的电阻对7段数码管限流。2.6LED灯控制电路设计电路图如下;图2.6交通灯状态显示电路图如图所示,交通灯状态显示电路由东西和南北两个方向各三个LED灯组成,有其不同的颜色灯来指示各方向的的行驶车辆。灯的状态可由软件编程控制。编程为以下跳转状态:一状态:南北方向绿灯亮28秒,红、黄灯灭,东西方向红城南学院带倒计时显示的十字路口交通灯第6页共17页灯亮25秒,绿、黄灯灭。二状态:南北方向黄灯亮3秒,红、绿灯灭,东西方向绿灯亮28秒,红、黄灯灭。三状态南北方向红灯亮25秒,绿、黄灯灭,东西方向黄灯亮3秒,红、绿灯灭.然后再跳回一状态。3软件设计3.1程序设计思路在与硬件的的结合下设计,由于没有键盘功能,因此只涉及定时计数和动态扫描功能。主程序将变量初始化之后,设置单片机定时器和中断特殊功能寄存器的初始值,将定时器T1的工作方式设置为8位自动装载模式,定时器每隔200us产生一次溢出。在初始化变量与寄存器后,主程序进入一个循环结构,在循环中只做动态扫描的工作,根据东西、南北两向的剩余时时间进行动态扫描显示。计时以及状态的切换通过定时器的中断服务程序来实现,在中断服务程序中,每计时到一秒时,则各方向当前状态的剩余时间减1,一直减到0时触发下一个状态的开始,改变交通灯的指示。另外由于加了一个紧急处理人工按键,就在主程序里面加一个while语句控制。3.2交通灯设计程序流程图主程序Mian()初始化变量动态扫描打开中断初始化定时器的相关寄存器城南学院带倒计时显示的十字路口交通灯第7页共17页图3.1交通灯主程序流程图图3.2中断服务程序流程图定时器中断T1溢出计数T1_cnt+1T1_cnt4000南北方向倒计时cnt_sn==0?T1_cnt=0cnt_sn=cnt_sn-1南北状态state_val_sn++退出中断NNYYstate_val_sn==0?state_val_sn==1?state_val_sn==2?南北交通灯按序号1的状态显示南北交通灯按序号2的状态显示南北交通灯按序号3的状态显示YNNYY东西方向倒计时cnt_ew==0?cnt_ew=cnt_ew-1东西状态state_val_ew++NYstate_val_ew==0?state_val_ew==1?state_val_ew==2?东西交通灯按序号1的状态显示东西交通灯按序号2的状态显示东西交通灯按序号3的状态显示YNNYY城南学院带倒计时显示的十字路口交通灯第8页共17页4总结通过这次单片机课程设计的学习,让我深刻的体会到课本的的理论知识和实践操作之间的那种过渡还真的不是一件简单的事。可能在理论上我们学得还不错,但是实践却不一定你就能做好了。有时候在书上的理论都是在还算蛮理想的状态下的理论,而实践中却会有这样那样的因素导致结果跟理论会有出入。刚刚拿到题目时,就有一种无从下手的感觉。平时也听了老师讲的一些实例设计,听的时候挺顺的,感觉就应该那样。可自己动手动脑时就发现了里面还有很多琐碎的东西要注意要自己亲力亲为。这样子做下来经常就会因为自己的粗心而犯下很多低级的错误。不过还好的就是我开始就把我们要做的事情分成了几个模块,然后再个个击破。基本上还不算太乱。所以做设计的时候要学会一个好重要的东西就是要有一个布局的概念,例如:软硬件的功能分布,P/O的排布,软件的模块分布等等。一句话就是眼里要有大局和小局的分化,这样设计出来的东西才有条理。设计做完,从中对单片机的各引脚得功能和I/O的使用条件有了更深一步的理解。主要还是从中更懂得了理论是是实践的基础,实践更能检验理论的真实性,学会了实际问题要视情况而定。城南学院带倒计时显示的十字路口交通灯第9页共17页参考文献【1】李鸿.单片机原理及应用【M】.长沙:湖南大学出版社,2005.【2】周明德.微机原理与接口技术【M】.人民邮电出版社.【3】张一斌,余建坤.单片机原理课程设计【M】.中南大学出版社.【4】谷树忠,刘文洲,姜航.AltiumDesigner教程【M】.北京:电子工业出版社.城南学院带倒计时显示的十字路口交通灯第10页共17页附录A源程序代码#includereg52.h#defineucharunsignedchar#defineuintunsignedint#defineweiP2sbitheng_red=P3^0;sbitheng_yellow=P3^1;sbitheng_green=P3^2;sbitshu_red=P3^3;sbitshu_yellow=P3^4;sbitshu_green=P3^5;sbitkey1=P1^0;voiddelay(uintdly){uinti,j;for(i=dly;i0;i--)for(j=250;j0;j--);}uintb=28,c=25,ten1,one1,ten2,one2,temp1=0,temp2=0;ucharcodea[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};uintdeng,xianshi,jishu;voiddisp(uintshi1,uintge1,uintshi2,uintge2){wei=0xff;P0=a[ge1];城南学院带倒计时显示的十字路口交通灯第11页共17页wei=0xfe;delay(2);wei=0xff;P0=a[shi1];wei=0xfd;delay(2);wei=0xff;P0=a[ge2];wei=0xef;delay(2);wei=0xff;P0=a[shi2];wei=0xdf;delay(2);}main(){TMOD=0X11;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TH1=(65536-5000)/256;TL1=(65536-5000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;城南学院带倒计时显示的十字路口交通灯第12页共17页while(1){while(!key1){EA=0;shu_red=0;heng_red=0;shu_green=1;heng_green=1;shu_yellow=1;heng_yellow=1;}EA=1;ten1=b/10;one1=b%10;ten2=c/10;one2=c%10;disp(ten1,one1,ten2,one2);if(xianshi=200){xianshi=0;b--;c--;if(b==0){temp1=temp1+1;if(temp1==3)城南学院带倒计时显示的十字路口交通灯第13页共17页temp1=0;switch(temp1){case0:b=28;break;case1:b=25;break;case2:b=3;break;}}if(c==0){temp2=temp2+1;if(temp2==3)temp2=0;switch(temp2){case0:c=25;break;case1:c=3;break;case2:c=28;break;}}}switch(deng){case0:heng_red=0;shu_green=0;heng_green=1;shu_red=1;heng_yellow=1;城南学院带倒计时显示的十字路口交通灯第14页共17页break;case1:shu_green=1;shu_yellow=0;break;case2:heng_red=1;heng_green=0;shu_yellow=1;shu_red=0;break;case3:heng_green=1;heng_yellow=0;break;}}}voidshijian()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;jishu++;if(jishu==500)deng=1;if(jishu==560)城南学院带倒计时显示的十字路口交通灯第15页共17页deng=2;if(jishu==1060)deng=3;if(jishu==1120){deng=0;jishu=0;}}voiddisplay()interrupt3{TH1=(65536-5000)/256;TL1=(65536-5000)%256;xianshi++;}城南学院带倒计时显示的十字路口交通灯第16页共17页附录B系统原理图城南学院带倒计时显示的十字路口交通灯第17页共17页附录C系统PCB图3
本文标题:带倒计时显示的十字路口交通灯
链接地址:https://www.777doc.com/doc-5497726 .html