课程设计(论文)基于单片机的交通灯控制系统设计

上传人:1666****666 文档编号:38887289 上传时间:2021-11-09 格式:DOC 页数:22 大小:515KB
返回 下载 相关 举报
课程设计(论文)基于单片机的交通灯控制系统设计_第1页
第1页 / 共22页
课程设计(论文)基于单片机的交通灯控制系统设计_第2页
第2页 / 共22页
课程设计(论文)基于单片机的交通灯控制系统设计_第3页
第3页 / 共22页
点击查看更多>>
资源描述
基于单片机的交通灯控制系统设计1 设计任务与要求本次课程设计的时间是2009年6月,需要完成的任务是用单片机实现交通灯的基本功能,该系统除了可以实现基本交通灯功能外,也能实现倒计时紧急特殊模式等功能。详细功能为:在白天正常东西方向和南北方向通车,通车时间均为45秒。正常通车情况下,可以对通车的时间进行倒计时计数,并通过显示器显示出来。如果遇到特殊情况,在处理特殊事件时,可使整个十字路口禁止通车。强制东西通行,适用某些需要只进行东西通车的情况。强制南北通行,适用某些需要只进行南北通车的情况。在夜间车流量较少的情况下,正常东西方向和南北方向通车,通车时间均为10秒,相对与白天通行模式,车辆等待时间减少,提高了通行效率。2 系统设计 此次设计通过ATMEL公司的单片机AT89C51对整个交通灯电路进行控制。根据上面的功能要求,本次设计需要完成正常模式计时功能紧急特殊模式夜间模式等四个功能。在正常模式下,交通灯每45秒改变一次通行方向,使得南北和东西交替通行。而LED显示系统则显示到下一次改变所剩的时间,利于司机调整车辆状况。每到同行方向转换时,绿灯闪烁,变为黄灯。提醒司机注意通行方向的改变,避免不必要的危险。本交通灯的设计运用了单片机的外部中断,系统的紧急和夜间模式的切换采用中断系统完成。这样在任何通行情况下都可进入以上两种模式。在设计中,设置外部中断0为夜间模式触发按钮,由电平触发完成,设置为低优先级,设置外部中断1为紧急模式触发按钮,由电平触发完成,设置为高优先级。此时无论紧急状况(如车祸等)发生在何时都可以直接进入紧急模式以便于交通管理人员处理问题。同时,通过在紧急模式下软件检测p3.7和p3.6是否不为1来触发东西及南北强制通行模式,以弥补外部中断的不足,实现更多的功能。此次设计运用了软件延时程序,这样不仅调整延时长短十分灵活,而且不占用内部定时/计数器的资源。设计中通过对指令运行的次数进行循环来实现软件延时。当晶振频率为12MHz时有以下时间周期:震荡周期:1/12微秒;状态周期:1/6微秒;机器周期:1微秒;指令周期:14微秒;(根据指令的不同而不同)软件延时的优点是较为灵活,调整更为容易,且不受延时时间限制。但软件延时长时间占用系统资源,使得CPU工作效率不高,在中断频繁的系统中其定时精度也受到中断的影响。但本系统要求延时时间较长,且没有频繁申请的中断系统,所以选择软件延时配合外部申请中断模式切换较为合理。2.1硬件系统设计 根据上面的功能要求,硬件系统主要模块有单片机模块显示模块按键模块,其硬件总电路图如附录二所示。2.1.1 单片机模块AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。本设计中AT89C52使用12MHz晶振。XTAL1(19脚)和XTAL2(18脚):外接晶体引脚,XTAL1和XTAL2分别接外部晶振一端;RST:即为RESET,该引脚为单片机的上电复位或掉电保护端。在此设计中接正常模式按扭;P3.7:使用第二功能,接强制南北通行按扭;P3.6:使用第二功能,接强制东西通行按扭;P3.3:使用第二功能INT1,接紧急工作模式按扭;P3.2:使用第二功能INT0,接夜间工作模式按扭;P1.0P1.7:输出BCD码,用来控制LED显示器的显示控制;P2.7、P2.6、P2.5:输出高低电平,用来控制南北交通信号灯;P2.1、P2.2、P2.3:输出高低电平,用来控制东西交通信号灯;第40脚为电源端VCC,接+5V电源,第20引脚为接地端VSS。单片机与其他模块的连接如下图1所示:图1 单片机与其它模块的连接2.1.2 显示模块传统的共阳极或共阴极的数码管其显示输入需要为段码,这样就使得电路相对复杂和繁琐。对于相同的功能在成本相差不大的情况下,此处运用了带BCD译码电路的LED显示器。这样既可使线路简化,又可使可靠性提高本设计中使用的自带BCD译码电路的LED显示器,其主要特点是采用四线BCD码输入,可显示0-F十六进制数。使用时直接输入BCD码 即可显示相应的数字,使得电路大大简化。设计时,把P1.0P1.7当 做BCD码输出端口,连接到LED显示器上,这样可把BCD码直接转换成可显示的数字,显示模块的连接如图2所示: 图2 显示模块 图中的总线接至单片机的P1.0P1.7端口。2.1.3 按键模块 在此系统中,按键模块是实现各项功能的关键,按键通过电阻与单片机相连接,可以对单片机进行控制,低电平信号对相应的单片机引脚有效,可使按键的另一端接地。本设计中有强制东西通行按键强制南北通行按键夜间模式按键正常模式按键紧急模式按键五个按键,分别对应着相应的子模式。如图3所示:图3 按键模块 各按键与单片机相对应的接口见上面的单片机模块。2.2 系统软件设计 根据前面的要求以及硬件的设置情况,本系统的软件部分需要进行中断设置。为了实现上述要求,软件部分应包括正常模式夜间模式紧急模式强制通行等子程序。主程序流程图如图4所示:调用正常通行子程序INT1中断?调用紧急模式子程序INT0中断?调用夜间模式子程序外部中断初始化开始NN图4 主程序流程图开机上电处于正常模式下,交通灯每45秒改变一次通行方向,使得南北和东西交替通行。而显示系统则显示到下一次改变所剩的时间,利于司机调整车辆状况。每到同行方向转换时,绿灯闪烁,变为黄灯。提醒司机注意通行方向的改变,避免不必要的危险。在设计运用了单片机的外部中断,系统的紧急和夜间模式的切换采用中断系统完成。这样在任何通行情况下都可进入以上两种模式。在设计中,设置外部中断0为夜间模式触发按钮,由电平触发完成,设置为低优先级,设置外部中断1为紧急模式触发按钮,由电平触发完成,设置为高优先级。此时无论紧急状况(如车祸等)发生在何时都可以直接进入紧急模式以便于交通管理人员处理问题。同时,通过在紧急模式下软件检测p3.7和p3.6是否不为1来触发东西及南北强制通行模式,以弥补外部中断的不足,实现更多的功能。总程序见附录一。2.2.1正常工作模式子程序 正常模式下,交通灯每45秒改变一次通行方向,使得南北和东西交替通行,其流程图如图5所示。其主要程序为:MOVR6,#03H;绿灯闪烁次数MOVR0,#00H;MOVP2,R0;灯全灭SETBP2.7;南北绿灯亮SETBP2.1;东西红灯亮ACALLDISPLAY;显示倒计时ACALLFLASHN;南北方向绿灯闪烁CLRP2.7;南北绿灯灭SETBp2.6;南北黄灯亮ACALLDELAY2;短延时2CLRP2.6;南北黄灯灭CLRP2.1;东西红灯灭SETBP2.3;东西绿灯亮SETBP2.5;南北红灯亮ACALLDISPLAY;显示倒计时ACALLFLASHS;东西方向绿灯闪烁CLRP2.3;东西绿灯灭SETBP2.2;东西黄灯亮ACALLDELAY2;短延时2CLRP2.2;东西黄灯灭开始外部中断初始化东西45秒倒计时显示南北45秒倒计时显示进入正常工作状态图5 正常工作模式流程图2.2.2 延时子程序设计中通过对指令运行的次数进行循环来实现软件延时。当晶振频率为12MHz时每个机器周期是1微秒,一条NOP指令是一个机器周期,一条DJNZ指令是两个机器周期,所以可写出如下的1秒延时子程序:DELAY:MOV R2,#33DEL3:MOV R3,#100DEL2:MOV R4,#75DEL1:NOP NOP DJNZ R4,DEL1 DJNZ R3,DEL2 DJNZ R2,DEL3其流程图如6所示:开始R2-33R3-100R4-75DJNZ R4DJNZ R3DJNZ R返回图6秒延时子程序流程图2.2.3 夜间模式子程序 系统在主程序中已经完成中断初始化,在正常模式下,其随时可通过中断0进入夜间模式,不受当时通行方向的影响。夜间模式中,交通灯每45秒改变一次通行方向,使得南北和东西交替通行。其流程图如图7。其程序为: YEJIAN: MOV R0,#00H ;夜间模式 MOV P2,R0 ;灯全灭 SETB P2.7 ; 南北绿灯亮 SETB P2.1 ;东西红灯亮 ACALL DISPLAY1 ;显示倒计时 ACALL FLASHN ;南北方向绿灯闪烁 CLR P2.7 ;南北绿灯灭 SETB P2.6 ;南北黄灯亮 ACALL DELAY2 ;短延时2 CLR P2.6 ;南北黄灯灭 CLR P2.1 ;东西红灯灭 SETB P2.3 ;东西绿灯亮 SETB P2.5 ;南北红灯亮 ACALL DISPLAY1 ;显示倒计时 ACALL FLASHS ;东西方向绿灯闪烁 CLR P2.3 ;东西绿灯灭 SETB P2.2 ;东西黄灯亮 ACALL DELAY2 ;短延时2 CLR P2.2 ;东西黄灯灭 LJMP YEJIAN 开始外部中断0初始化东西10秒倒计时显示南北10秒倒计时显示进入夜间工作状态图7 夜间工作模式2.2.4 绿灯闪烁子程序 每到同行方向转换时,绿灯闪烁,提醒司机注意通行方向的改变,避免不必要的危险。绿灯闪烁的程序分南北方向和东西方向,以南北方向为例,流程图如图8所示,其程序为: SETBP2.7;南北方向绿灯闪烁子程序ACALLDELAY1;短延时1CLRP2.7;灭南北方向绿灯ACALLDELAY1;短延时1DJNZR6,FLASHN;循环3次MOVR6,#3;重装循环次数RET开始亮绿灯延时灭绿灯R6-R6-1 R6=0?返回图8 绿灯闪烁子程序流程图2.2.5 显示倒计时子程序 通过LED显示器显示距离换向时间还剩多少,利于司机调整车辆状况,其程序为: DISPLAY:MOVR0,#44;显示子程序MOVR7,#45;循环次数L1:MOVDPTR,#TABLE;表地址送DPTRMOVA,R0;秒数送AMOVCA,A+DPTR;查表MOVP1,A;查表得BCD送P1DECR0;秒数减一ACALLDELAY;延时一秒DJNZR7,L1;循环RET;返回此程序是通过循环查表来实现倒计时显示的,其流程图如图9所示: 开始R0-44 R7-45DPTR-#TABLE查表,把BCD码送P1R0-R0-1延时1秒R7-R7-1 R7=0? 返回图9 显示子程序流程图3 系统测试与实现根据上面的设计,此次课程设计使用WAVE 2000和Proteus软件仿真,其中使用WAVE2000软件汇编源程序,使用Proteus软件对硬件电路进行模拟。3.1汇编源程序 在伟福2000中,输入源程序后,对源程序进行编译,经调试源程序可以运行。汇编结果如图10所示:图10 汇编结果3.2Proteus仿真 在此次设计中,用Proteus对硬件部分进行模式。在Proteus中输入原理图后,在单片机中载入上面汇编的hex文件,运行仿真,结果如下:按下正常模式按键后,系统开始工作,南北方向和东西方向交替通行45秒。仿真结果如图11所示:图11 正常工作模式模拟结果 按下夜间模式按键后,系统进入夜间工作模式,南北先通行10秒,然后东西通行10秒,如此交替运行,模拟结果如图12所示:图12 夜间工作模式模拟结果无论系统处于那种工作模式,按下紧急模式键后,系统便进入紧急工作状态,在紧急状态下,各方向禁止通行,模拟结果如图13所示:图13 紧急工作模式模拟结果在紧急工作模式下,可以实现强制东西通行或强制南北通行,例如按下强制东西通行后,只可以东西通行,显示器显示在45秒,如图14所示:图14 强制东西通行模式模拟结果4 课程设计总结随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。单片机作为我们的主要专业课之一,虽然在开始学习时我对这门课并没有什么兴趣,觉得那些程序指令枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。通过这次的单片机课程设计,我更进一步了解到单片机的优点和强大功能,在查找资料的过程中,认识到单片机应用的广泛性。在设计中,我并没有局限于普通十字路口交通灯方案,而是根据实际情况加入了夜间模式等其他功能。在实现这些功能的同时,对单片机系统有了一个更深刻的认识。同时通过此次课程设计,熟练掌握了汇编语言的编程方法,进一步熟悉了外部中断的使用方法,学习了中断优先级的设置方法。通过使用仿真软件Proteus,深化了对软硬件联合调试的意义的理解,在仿真的过程中肖老师指点了许多存在的问题,使我大大提高了联调的效率。但由于我的知识水平有限,设计的单片机交通灯系统还是存在一些的缺点和不足。如没能实现左右转向信号灯的设计,不能根据车流量的大小来控制各方向的通车时间,希望在以后的学习过程中,能够尽快的解决这些问题。最后,我觉得作为一名电子信息工程专业的学生,单片机的课程设计是很有意义的,在这个过程中可以学会如何把自己平时所学的东西应用到实际中。虽然我对这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得有点难,也没有很有效的办法通过自身去理解,但是靠着这两个多星期的“学习”,在小组同学的帮助和讲解下,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。我觉得课程设计反映的是一个从理论到实际应用的过程,这个过程对缺乏实际经验的我们是非常重要的。通过这次单片机课程设计使我认识到自身知识及能力的薄弱,更让我知道实践的重要性。在以后的学习过程中,我会更加努力学习MCU的相关知识和应用,真正能够运用单片机组成的微控制系统解决各种实际的问题。参考文献1 何立民主编.MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,19952 薛钧义,张彦斌.MCS-51系列单片微型计算机及其应用.西安:西安交通大学出版社,19973 丁元杰.单片微机原理及应用.北京:机械工业出版社,19944 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用.西安:西安电子科技大学出版社,19985 李广弟.单片机基础.北京:北京航空航天大学出版社,1992附录一 交通灯控制系统源程序ORG 0000HSJMPMAINORG0003H;外部中断0入口(夜间模式)LJMPYEJIANORG0013H;外部中断1入口(紧急模式)LJMPJINJI ORG 0100HMAIN:;主程序实现正常工作状态SETBEA ;开总中断SETBEX0;开外部中断0CLRPX0;中断0低优先级CLRIT0;电平触发SETBEX1;开外部中断1SETBPX1;中断1高优先级CLRIT1;电平触发MOVR0,#00H;MOVP2,R0;灯全灭SETBP2.7;南北绿灯亮SETBP2.1;东西红灯亮ACALLDISPLAY;显示倒计时CLRP2.7;南北绿灯灭CLRP2.1;东西红灯灭SETBP2.3;东西绿灯亮SETBP2.5;南北红灯亮ACALLDISPLAY;显示倒计时LJMPMAIN;循环执行正常模式显示程序DISPLAY:MOVR0,#441;显示子程序MOVR7,#45;循环次数L1:MOVDPTR,#TABLE;表地址送DPTRMOVA,R0;秒数送AMOVCA,A+DPTR;查表MOVP1,A;查表得BCD送P1DECR0;秒数减一ACALLDELAY;延时一秒DJNZR7,L1;循环RET;返主夜间状态YEJIAN: MOV R0,#00H ;夜间模式 MOV P2,R0 ;灯全灭Y: SETBP2.6;南北方向黄灯亮 SETBP2.2;东西方向黄灯亮 ACALLDELAY1;短延时1 CLRP2.6;南北方向黄灯灭 CLRP2.2;东西方向黄灯灭 ACALLDELAY1;短延时1 SJMP Y ;循环 紧急状态 JINJI:MOVR2,#00H;紧急状态通行子程序MOVP1,#45H ;显示45秒 SETBP2.5;南北红灯亮SETBP2.1;东西红灯亮J:SJMPJ;紧急状态循环延时1SDELAY1:MOV R2,#10;短延时1子程序DEL1:MOV R3,#100DEL2:MOV R4,#75DEL3:NOP NOP DJNZ R4,DEL6 DJNZ R3,DEL7 DJNZ R2,DEL8 RETTABLE:DB ;0-44双位BCD码译码表00000000B,00000001B,00000010B,00000011B,00000100B,00000101B,00000110B,00000111B,00001000B,00001001BDB 00010000B,00010001B,00010010B,00010011B,00010100B,00010101B,00010110B,00010111B,00011000B,00011001BDB 00100000B,00100001B,00100010B,00100011B,00100100B,00100101B,00100110B,00100111B,00101000B,00101001BDB 00110000B, 00110001B,00110010B,00110011B,00110100B,00110101B,00110110B,00110111B,00111000B,00111001BDB 01000000B , 01000001B, 01000010B, 01000011B,01000100BEND附录二 系统总电路图- 22 -
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!