版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGEI毕业设计题目模拟交通灯系别专业班级姓名学号指导教师日期设计任务书设计题目:模拟交通灯设计要求:1.用单片机设计一个模拟交通灯,在十字路口的两个方向上各设一组红绿黄橙灯(橙色灯代表左转信号),显示顺序为:其中一个方向是绿灯、黄灯、红灯、橙灯,另一个方向是橙灯、红灯、黄灯、绿灯。2。设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间.其中左转灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。3。当各条路上任意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。设计进度要求:第一周:确定题目;查找和题目有关的资料;第二周:查找资料,阅读资料;第三周:结合实物写总体设计方案;第四周:硬件选片和硬件设计;第五周:软件设计;第六周:上机调试;第七周:写毕业设计;第八周:毕业答辩.指导教师(签名):PAGEI摘要随着社会经济的快速发展,人们的生活水平提高,拥有车辆的家庭越来越多,但随之而来的交通问题也成为政府关注的问题。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。本人选择制作交通灯作为课题加以研究。分析了现代城市交通控制与管理问题的现状,结合城乡交通的实际情况阐述了交通灯控制系统的工作原理,利用单片机89S51为核心部件,外加定时器、复位电路、晶振电路、显示电路等,设计一个比较符合交通规则的模拟交通灯,包括人行道,车行道、南北东西左转、应急车道,以及基本的交通灯的功能,同时给出了一种简单实用的城市交通灯控制系统的硬件电路设计方案。关键词:交通灯,单片机,定时器目录TOC\o"1—2”\h\z\uHYPERLINK\l”_Toc186730420”1方案选择 1HYPERLINK\l”_Toc186730421"1.1交通灯的总体设计思路 11。4显示方案 2HYPERLINK\l”_Toc186730425”1。5按键设计方案 32。1整体硬件原理 42。2单片机89S51的简介 5HYPERLINK\l”_Toc186730429"2.3单片机附属电路 72.474LS373的功能 8HYPERLINK\l”_Toc186730431"2.574LS07的功能 92.6数码显示-—七段LED数码管 10HYPERLINK\l”_Toc186730433"2.7键盘接口工作原理 12HYPERLINK\l”_Toc186730434”3十字交通灯的软件设计 14HYPERLINK\l”_Toc186730435"3。1软件的设计 14_Toc186730437”4测试、调试及结果分析 234.1状态灯显示测试 23_Toc186730440"4.3结果分析 24_Toc186730442"致谢 26HYPERLINK\l”_Toc186730443"参考文献 27字形,还有一只发光二极管作为小数点。因此,这种七段数码管又可称为八段数码管。如图所示,这八段发光管分别称为a,b,c,d,e,f,g,dp。通过8个发光段的不同组合,可以显示0~9和A~F等16个数字字母,从而可以实现十六进制整数和小数的显示。LED数码管可以分为共阴极和共阳极两种结构。共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光。共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低电平有效,当某段输入低电平该段便发光。在此设计中我使用的是共阴极,将所有的发光二极管的阴极接在一起,段码接89S51的P1口,位码接P2口,在需要显示的段输入高电平1,来模拟显示交通灯亮的时间.图2.10数码管的管脚分配图2.11数码管的共阴极结构图2。12数码管的共阳极结构七段LED数码管与单片机的连接,将一个八位并行I/O口与数码管的各发光二极管引脚相连.要显示某字型,只要使此字型的相应的字段点亮即可,实际上就是送一个用不同电平组合代表的数据至数码管。我在设计中所用的是P1口,连接方法如下:图2.13LED显示器与单片机接口电路2。7键盘接口工作原理在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信.2.7.1按键开关的去除抖动目前,89S51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3。6所示。可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为5~10ms。由于抖动,会造成被查询的开关状态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的.为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。图2.14按键过程2。7。2按键的接口电路在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘.如图3.7所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大.故只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。图2。1589S51与按键连接
3十字交通灯的软件设计3。1软件的设计交通灯的控制主要是利用单片机,是单片机的一个典型应用,首先用发光二极管的亮与灭来模拟交通灯的各种运行状态。考虑交通灯的功能,东西南北各两组,一个十字路口至少需4组交通灯(每组是四个发光二极管)。指挥转弯和直行的关键,是设计控制交通灯的亮与灭。考虑南北、东西方向灯的亮灭规律相同,故可以考虑用四个两组交通灯来模拟实际北东运行的交通灯;东一组四个发光二极管,北一组四个发光二极管,分别用红、绿、黄、橙来指示直行和转弯。先南北直行红灯亮48秒,而后黄灯亮3秒,再直行绿灯亮30秒,黄灯亮3秒;然后南北转弯绿灯亮15秒,黄灯亮3秒,南北交通灯都亮红灯;东西交通灯以同样规律变化。可用中断计数器控制,来显示不同的二极管来模拟交通灯不同的状态。同时使用数码管来显示时间,提醒行人停止行走或准备行走.(1)每次绿灯变红灯时,要求黄灯先亮3秒,黄灯亮时,绿灯灭。(2)要求在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)均有倒计时显示时间。所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行。依据上述可以列出各个路口灯的逻辑表,如表3.1所示表3。1十字交通灯逻辑状态表状态次数东西方向南北方向状态时间红绿黄橙红绿黄橙P2。0P2.1P2。2P2。3P2。4P2。5P2。6P2.710111101121H48S20111110141H3S30111111081H15S41101110144H3S51011011112H48S61101011114H3S71110011118H15S81101110144H3S表中的“1"代表逻辑高电平,即为灯亮;“0”代表逻辑高电平,即为灯灭。依上表可以向相应的端口送逻辑值。先南北直行红灯亮48秒,而后黄灯亮3秒,再直行绿灯亮30秒,黄灯亮3秒,如图3.1所示,然后南北转弯绿灯亮,黄灯亮,南北交通灯都亮红灯,如图3。2所示。东西交通灯以同样规律变化。其状态分别如下:图3。1十字交通灯的南北运行模拟状态图图3。2十字交通灯的南北左转模拟状态图交通灯设计主要分以下几个模块:交通灯亮灭控制模块,交通灯显示模块,倒计时计数模块,倒计时显示模块。(1)交通灯亮灭控制模块,是通过时间的变化来传输的。条件达到时即进行状态转换。用一个计数器,当时间从初值48、30、15、3开始倒计至0时发生相应的交通灯红,绿,黄,橙亮灭的转变.而时间为0时,重新置为同上初值。(2)交通灯显示模块,将LED__COM端共阴点即送高电平“1”,就可以启动。由交通灯控制模块来控制交通灯的亮灭变换。(3)倒计时计数模块及显示模块主要用于记录显示时间,以方便行人,可以用数码管显示,要注意的是需要将二进制数通过修正关系转化成BCD码。而当使能信号置0复位时,时间也要清零。3。2程序流程图及程序介绍3。2。1主程序介绍主程序初始化和按键控制,首先将时间、中断、次数、和显示分别进行初始化,然后启动定时器对时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描按键程序,用无条件跳转指令返回,再调用显示程序,如此周而复始的循环,如图3.3所示。(1)主程序流程图图3。3主程序流程图(2)部分主程序START:MOVTMOD,#01H;定时器T0初始化MOVTH0,#3CH;定时器T0初始化MOVTL0,#0B0H;定时器T0初始化MOVR7,#20H;定时器次数初始化MOVR6,#08H;循环次数初始化SETBEA;总允许中断SETBET0;T0允许中断MOVDPTR,#TAB2查表送初值TT1:CLRAMOVCA,@A+DPTR查表取状态送寄存器MOVP2,A状态送P2口TT2:INCDPTR地址指针加1CLRAMOVCA,@A+DPTRMOVR4,A取第一个状态时间送R4DJNZR4,TT1判断状态时间是否到0CLRAINCDPTR地址指针加1MOVCA,@A+DPTR查表取状态送寄存器MOVP2,A状态送P2口显示LJMPTT2调用语音程序SETBTR0关闭定时器LOOP:LCALLDISPLAY调用显示LCALLAISJMPLOOP3。2.2显示子程序介绍调用段码表,使数码管显示十字交通灯每个状态正确的时间从而提醒路人注意,根据时间准备停止或准备行走.(1)显示子程序流程图图3.4显示子流程图(2)部分显示子程序DISPLAY:MOVA,R4ADDA,#09查表程序,调用TAB表MOVCA,@A+pcMOVP0,A段码送P0口MOVP1,#01H位码送P1口LCALLDEALY调用延时RET子程序返回TAB:DB3FH,06H,5BH,4FH,66H,6DH段码表DB7DH,07H,7FH,6FHDEALY:MOVR2,#550MS的延时程序LL1:MOVR3,#20NOPLL2:DJNZR3,LL2DJNZR2,LL13。2。3中断程序介绍中断技术是计算机中在实时处理和实时控制中不可缺少的一个重要的技术员,它即和硬件有关,也和软件有关。而且中断是现代计算机必须具备的重要功能。实现同步工作:计算机有了中断功能后,就解决了快速CPU与低速外设之间的矛盾,可以使CPU与外设同时工作.实现实时处理:在实时控制系统中,为使控制系统能保持在最佳工作状态,被控系统的各种控制参量可随向计算机发出中断请求,要求CPU处理。对此,必须作出快速响应和及时处理,这种实时处理功能只有靠中断技术才能实现。在这里我们使用中断的第一个作用,实现同步工作,以达到在二极管显示状态的同时在数码管上显示时间,从而提醒路人注意,根据时间准备停止或准备行走.还用于判断一个状态是否显示完,实现交通灯轮流显示。(1)中断程序流程图图3.5中断程序流程图(2)部分中断程序介绍CTCO:PUSHACC保护现场PUSHPSWDJNZR7,BACK1判断定时器1S是否到MOVR7,#20重装初值DJNZR4,BACK1判断本次状态是否显示完DJNZR6,NEXT判断本次状态时间是否走完MOVR6,#08重装状态时间MOVDPTR,#TAB2重送初状态NEXT:CLRAMOVCA,@A+DPTR查表取状态送寄存器MOVP2,A状态送P2口显示INCDPTR指针加1CLRAMOVCA,@A+DPTRMOVR4,A取状态时间送R4INCDPTRBACK1:MOVTH0,#3CHMOVTL0,#0B0HPOPPSWPOPACCRETITAB2:DB0D7H,09H,0A7H,03H,67H,09H,6BH,03HDB7DH,09H,7AH,03H,76H,09H,0B6H,03H3.2。2按键子程序流程图它包含倒计时调整和紧急状态两个状态.主程序中放了一个按键的判断指令,当按键按下K1的时候,程序就自动的跳转到按键子程序处理。当检测到K2键按下的时候就自动返回到主程序。当出现紧急的情况的时候,按下K1就切换到紧急状态,当紧急事件处理完毕的时候,按下K2,就可以返回正常状态(1)按键程序流程图图3。6按键程序流程图(2)部分按键程序介绍AI:JBP3.0,N1判断P3。1按键是否按下LCALLDEALY软件去抖JBP3.0,N1判断P3。1按键按下转至N1MM:LCALLDISPLAYJNBP3。0,MMP3。0按下,顺序执行MOVP2,#COH状态全为红灯亮LJMPBACK2N1:JBP3。1,BACK2P3.1按下,跳至BACK2LCALLDEALYJBP3。1,BACK2MM1:LCALLDISPLAYJNBP3。1,MM1P3。1按下,顺序执行MOVP2,#0CH恢复初始状态BACK2:RET子程序返回
4测试、调试及结果分析4。1状态灯显示测试当电路连接完毕后,将写好的测试程序刷写到芯片内,p3.1和p3.2端口分别送高电平和低电平,通电即可检测。数码管的测试,将串口的和电路板上的接口连接,将写好的测试程序刷写到芯片内,开电源即可测试。4.2整体电路调试写入程序:打开微福软件进行仿真器设置,设置如下图4。1图4.1伟福软件设置图保存程序:建立自己的程序名zyj。ASM,存在自己新建的文件夹下,方法如图4.2图4。2程序保存过程图运行程序:编绎正确后,单击执行程序,观察执行过程,分析结果。如图图4。3程序执行过程图用扁平线连接实验箱的单片机最小应用系统模块的P2口和发光二极管输出模块.再用串行数据通信线连接计算机与仿真器。打开KELL软件,建立项目,添加源程序,进行编译至无错误。进行软件设置,打开实验箱电源与模块电源,点击运行,观察效果。4。3结果分析程序运行后,二极管八个状态依次循环正确,但数码管显示不正确,仔细调试后发现软件错误,表调用错误,地址指针应用PC而不应该用DPTR。在遇到紧急情况时,按下P3.0,P3。1时,全部为熄灭,初值送错,应该给相应的P2。5和P2。1口送低电平0,使其东西、南北绿灯发光,其它均送高电平熄灭,从而可以达到在有紧急情况时,东西、南北所有的车辆可以给紧急车辆让行的目地。
总结历时一个月的毕业设计结束了,我的交通灯模拟程序也已经在老师的帮助下成功运行了,而且也实现了正常情况下绿灯变红灯时,要求黄灯先亮3秒,黄灯亮时,绿灯灭。在绿灯亮(通行时间内)和红灯亮(禁止通行时间内)时均有倒计时显示。所以基本符合现实功能,能够指挥车辆在十字路口完成左转和不同路口的直行.而且还可以在有紧急情况时,使东西、南北的绿灯亮以利于特种车辆通行.由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,而且这些都没有考虑到一些特殊人群如盲人与色盲等,应该再加一些语音提示呀等等措施,相信如果这样可以大大降低交通事故率,但这需要在实践以及以后的学习中进一步完善。
致谢本设计得到了指导老师的大力帮助,并查阅了大量的资料,有不妥或不对之处,欢迎指正,谢谢!感谢校领导和老师,给我们创造了一个学习的机会,也特别感谢张老师在设计中对我的支持和帮助,让我在毕业的最后一段时间里学到了很多知识,经过这几个月的紧张的毕业设计,使我在理论和动手能力上都有了进一步的提高。在张老师的悉心指导下,让我对所学的单片机等专业知识进行系统的复习,并且学到了许多新的知识。在设计过程中受到老师的指导及同学的关心.特别是张老师,她治学严谨、学识渊博,一直以来对本人的学习及研究工作给予悉心指导,使我的毕业设计得以顺利完成。老师帮我解决了很多问题,在此我向老师表示衷心的感谢!同时也要感谢各位同学,是你们让我的学习和生活充满乐趣,感谢你们对本这次设计提供的帮助!三年同学之情让我难以忘怀,只是今后大家就要各奔前程,但我相信我们在一起的日子,我会记一辈子的。感谢我的爸爸妈妈,焉得谖草,言树之背,养育之恩,无以回报,你们永远HYPERLINK"/click/click.php?cpid=12&ads_id=32&pid=99000170&cid=174&url=http%3A///nutrition/&k=%u5065%u5EB7&s=http%3A///lunwen/76/159/lunwen_99789.html&rn=845679&v=1&ref=http%3A///s%3Ftn%3Dbaidusite%26ie%3Dgb2312%26bs%3D%25B5%25A5%25C6%25AC%25BB%25FA%25B5%25C4%25D7%25E9%25B3%25C9%26sr%3D%26z%3D%26cl%3D3%26f%3D8%26wd%3D%25C2%25DB%25CE%25C4%25D6%25C2%25D0%25BB%26ct%3D0”\t”_blank”健康快乐是我最大的心愿。在设计完成之际,回忆几周的设计生活,使我感受颇深,我的成功和老师同学的帮助是分不开的,再一次向你们表示真诚的谢意。尊敬的领导,敬爱的老师,亲爱的同学,深深的道一声“谢谢了!”
参考文献[1]李朝青.《单片机原理及接口技术》(修订版)。北京:北京航空航天大学出版社,2006[2]李广弟.《单片机基础》北京:北京航空航天大学出版社,2003[3]何立民。《单片机应用技术大全》北京:北京航空航天大学出版社,2002[4]张毅刚。《单片机原理及接口技术》。哈尔滨:哈尔滨工业大学出版社,2001[5]谭浩强。《单片机课程设计》。北京:清华大学出版社,2000徐安、陈耀、李玲玲、《单片机原理与应用》2003年2月1次印刷徐爱均《单片机高级语言C51Windows环境编程与应用》2001年7月1次印刷郭培源、沈明山、陈启鼎《电子电路及电子器件》2000年8月1次印刷杨邦文《常用CMOSCC4000系列集成电路速查手册》2005年11月1次印刷[10]魏立君、韩华琦、模拟开关和数据选择器《CMOS4000系列60种常用电路应用》2004年1月1次印刷
附录程序介绍ORG0000HLJMPSTARTORG000BHLJMPCTCOORG0030HSTART:MOVTMOD,#01H;定时器T0初始化MOVTH0,#3CH;定时器T0初始化MOVTL0,#0B0H;定时器T0初始化MOVR7,#20H;定时器次数初始化MOVR6,#08H;循环次数初始化SETBEA;总允许中断SETBET0;T0允许中断MOVDPTR,#TAB2查表送初值TT1:CLRAMOVCA,@A+DPTR查表取状态送寄存器MOVP2,A状态送P2口TT2:INCDPTR地址指针加1CLRAMOVCA,@A+DPTRMOVR4,A取第一个状态时间送R4DJNZR4,TT1判断状态时间是否到0CLRAINCDPTR地址指针加1MOVCA,@A+DPTR查表取状态送寄存器MOVP2,A状态送P2口显示LJMPTT2调用语音程序SETBTR0关闭定时器LOOP:LCALLDISPLAY调用延时LCALLAISJMPLOOPDISPLAY:MOVA,R4ADDA,#09查表程序,调用TAB表MOVCA,@A+pcMOVP0,A段码送P0口MOVP1,#01H位码送P1口LCALLDEALY调用延时RET子程序返回TAB:DB3FH,06H,5BH,4FH,66H,6DH段码表DB7DH,07H,7FH,6FHDEALY:MOVR2,#550MS的延时程序LL1:MOVR3,#20NOPLL2:DJNZR3,LL2DJNZR2,LL1RETCTCO:PUSHACC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论