十字路口交通信号灯系统.doc

十字路口交通信号灯系统设计

收藏

压缩包内文档预览:
预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图 预览图
编号:517064    类型:共享资源    大小:59.72KB    格式:RAR    上传时间:2015-11-12 上传人:QQ28****1120 IP属地:辽宁
3.6
积分
关 键 词:
毕业设计论文
资源描述:
十字路口交通信号灯系统设计,毕业设计论文
内容简介:
课程设计一、 内容提要目前,单片机已广泛应用到国民经济建设和日常生活的许多领域,成为测控技术现代化必不可少的重要工具。随着现代社会的高速发展,人民的生活水平日益地提高,私人汔车已不再是梦想,然而面对着大量交通工具的来来往往,没有一个好的秩序是行不通的,为此产生了以维护交通运输安全为课题的大量信号灯系统,而这里单片机的开发与利用倍受关注。题目:十字路口交通信号灯系统目的:通过课程设计,主要达到以下目的:1、 增进我们对单片机的感性认识,加深对单片机理论方面的理解。2、 使我们掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。3、 使我们了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下基础。4、 学习数据输出程序的设计方法5、 学习模拟交通灯控制的实现方法。6、 通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术。7、 通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解表关电路参数的计算方法。8、 掌握单片机的接口技术及相关外围芯片的外特性,控制方法。9、 通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发一单片机应用系统的全过程,为今后从事相应打下基础。要求:1、完成硬件电路分析及设计。 2、完成软件编制并通过测试。3、可实现附加功能,使用一个开关控制夜间行车,当开关按下后,只有黄灯在不停地闪烁,其它灯不亮。4、原理图设计要符合项目的工作原理,连线要正确,端了要不得有标号。5、图中所使用的元器件要合理选用,电阻,电容等器件的参数要正确标明。6、根据要求,将总体项能分解成若干个子功能模块,每个功能模块完成一个特定的功能。7、根据总体要求及分解的功能模块,确定各功能模块之间的关系,设置出完整的程序流程图。8、画出工作原理图,程序流程图并给出程序清单。原理:要完成本次课程设计,首先必须了解交通灯的燃灭规律。设有一十字路口2、4为南、北方向,1,3为东西方向,初始态为四个路口的红灯全亮。之后,东、西路口的绿灯熄灭,黄灯开始闪烁。闪烁若干次后,通车。延迟一段时间后,南、北路口的绿灯熄灭,黄灯开始闪烁。闪烁若干次后,再切换到东、西路口方向。之后,重复上述过程。各LED发光二极管共阳极,但名个发光二极管阴极接有与非门,因而使其点亮应使相应位置为高电平。 任务: 1、用8088、8255、8254及其它相关芯片实现模拟交通信号灯控制。 2、十字路口四个方向各有红黄绿三灯,绿灯的最后5秒要求闪烁。各灯闪亮情况安排如下: 东面:红灯95秒,黄灯5秒,绿灯20秒 南面:红灯85秒,黄灯5秒,绿灯30秒 西面:红灯95秒,黄灯5秒,绿灯20秒北面:红灯85秒,黄灯5秒,绿灯30秒二、 正 文1、 选题的意义和主要功能当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。为使我国尽快实现经济信息化,赶上发达国家水平,必须加速发展我国的信息技术和信息产业。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。本文主要从单片机的应用上来实现十字路口交通灯的管理,用以控制过往车辆的正常运作。2、 方案论证交通灯闪亮的过程 由以上交通灯的时间安排来看,东面红灯的时间是南、西和北面的黄灯与绿灯的时间之和:东红95s南黄5s南绿30s西黄5s西绿20s北黄5s北绿30s同理可推导出其他三个方向红灯的时间规律:南红85s西黄5s西绿20s北黄5s北绿30s东黄5s东绿20s西红95s北黄5s北绿30s东黄5s东绿20s南黄5s南绿30s北红85s东黄5s东绿20s南黄5s南绿30s西黄5s西绿20s由上可知,实验要求在某一时刻四个方向上只有一个方向的车辆可以通行,这有别于我们生活中的交通灯(东西或南北通车)。假设初始时四个方向的绿灯顺序为东南西北,则12盏交通灯的时序图(格数中为亮的灯)如下图(1):3、 硬件设计论述 使用的硬件芯片清单如下:a、 两个8254芯片,一个用于控制8个状态的时间变化,一个用于控制灯的闪 烁功能,包括绿灯最后5秒的闪烁和夜间黄灯的闪烁。图(1)交通灯时序图b、 一个8255芯片,用于控制交通灯状态变化。c、 一个74LS139芯片,实现地址译码。d、 一个8051芯片,用于驱动与控制整个程序。e、 若干个与非门、发光二极管和开关等。(1)说明:8255:PA、PB口为输出:PA0(东绿),PA1(南绿),PA2(西绿),PA3(北绿);PA4(东红),PA5(南红),PA6(西红),PA7(北红);PB0(东黄),PB1(南黄),PB2(西黄),PB3(北黄)。 PC口为输入:PC0:检测OUT1是否有高电平(旧状态结束,新状态开始);PC1:低电平则表示夜间行车。 I/O地址:由A7A6 A 5A4 A3 A2 A1 A0111000得:E0HE3H。 控制字确定:PA、PB口为输入,PC口为输入,使用方式0,因此可得控制字:10001001(89H)。 8254(1): 0计数器:使用方式2,由于要使OUT0为1s,所以计数初值为1000,因此控制字为:00110101(35H) 1计数器:使用方式0,由于计数数值要根据当前状态而改变(控制各状态时间),所以计数初值不确定,因此控制字为:01010001(51H) 2计数器:使用方式0,由于计数数值要根据当前状态而改变(控制绿灯闪烁),所以计数初值不确定,因此控制字为:10010001(91H) I/O地址:由A7A6 A 5A4 A3 A2 A1 A0111001得:E4HE7H。 8254(2): 0计数器:使用方式2,由于要使OUT0为0.5s(绿灯闪烁周期),所以计数初值为500,因此控制字为:00110101(35H) 1计数器:使用方式2,由于要使OUT1为1s(黄灯闪烁周期),所以计数初值为1000,因此控制字为:00110101(35H) 2计数器:不使用。 I/O地址:由A7A6 A 5A4 A3 A2 A1 A0111010得:E8HEBH。(2)程序设计思路 a、状态变化的实现交通灯的流程共有8个状态,通过不断地查询PC0口的状态来决定是否进入下一状态,由于8254(1)的1计数器工作在方式0(计数时输出低电平,计数完输出高电平)在计数时OUT1为低电平,说明下一状态的时间还没到,一旦OUT1为高电平,则立即置8254(1)的1计数器的计数初值为下一状态的时间,这时由于置入新的初值,OUT1将变为低电平,进行下一状态的计数,同时PA、PB口也变为下一状态。 b、绿灯最后5秒闪烁的实现 使用了8254(1)的2计数器对“绿灯最后5秒闪烁”进行了处理,比如说东方绿灯为20s,8254(1)的1计数器计数初值为20,而其2计数器的计数器计数初值为15,即是提前5s在OUT2输出高电平,而8254(2)的OUT0输出的是频率为2Hz的脉冲,如电路图所示,通过一些门电路把两个输出端接到四个绿灯上,就可以实现绿灯在最后5秒每隔0.5秒(2Hz)闪烁一次。c、 夜间行车(黄灯闪烁)的实现 如电路图所示,当开关打开时,PC1为高电平,8254(2)的GATE1为低电平,不能以2Hz的频率计数,黄灯正常亮与灭(不闪烁);当开关闭合以后,PC1为低电平,8254(2)的GATE1为高电平,可以计数了,而且程序也会把四方的黄灯(PB0PB3)置为高电平,通过8254(2)的OUT1输出1Hz的脉冲,可实现四方的黄灯每1秒闪烁一次。4软件设计论述(1)软件安装a、 将单片机实验开发系统软盘插入软驱b、 在C盘根目录上新建一名为TSC51的文件夹c、 将A盘中所有文件拷入TSC51文件夹中d、 在TSC51目录中运行TSC51.exe(2)系统调试a、用记事本、EDIT或其它编辑软件输入源程序(扩展名为.ASM,例如:源文件名为NAME1.ASM) b、转入DOS,进入C:TSC51TSC51c、运行A51B(例:键入A51BNAM1.ASM)进行文件过滤、编译、连接、定位等。d、进入C:TSC51目录,运行TMSD.EXE,根据提示输入要打开的文件名的路径及名称,进入调试界面。e. 根据SYSTEM菜单中OPEN命令项,根据提示输入要打开的文件名的路径及名称,进入调试界面。f、运行RUN菜单中的RUN命令项(或按功能键F1)在实验仪上观察实验结果。g、若要结束运行状态,则按CTRL+B键,然后用实验仪中REST按钮对实验仪复位。由上面的时序图可以分析出来,一个流程(四个方向各亮一次绿灯)的周期为120秒,其实就是单一方向的绿、红、黄灯的时间总和,而且一个流程中可分为8个状态,图(1)只给出某一状态之中发亮的灯。交通灯的大概流程如图(2)。图(2)交通灯流程图5、 硬件电路图6、 软件流程图初始化交通灯为状态18254(2)的0号赋值为500,8254(2)的1号赋值为10008254(1)的0号赋值为1000设置各芯片的控制字读取8255的PC口读取8255的PC口状态1状态6状态3状态4状态5状态7状态2状态8判断计数字num的值黄灯闪烁7、程序清单:datasegment num db 0 ;状态计数器 io82541 equ 0E4h ;设8254(1)I/O地址为E4h到E7h io82542 equ 0E8h ;设8254(2)I/O地址为E8h到EBh io8255 equ 0E3h ;设8255I/O地址为E0h到E3h io8255c equ 0E2h io8255b equ 0E1h io8255a equ 0E0hdata endsstack segment stackdb 400h dup(?) top label wordstackendscodesegmentassumecs:code,ds:data,ss:stackmain proc farmov ax,stackmovss,axpushdsxorax,axpushaxmovax,datamovds,ax mov dx,io82542+3 mov al,00110101b out dx,al mov al,01110101b out dx,al ;设定8254(2)状态字 mov dx,io82542 mov al,0f4h out dx,al mov al,01h out dx,al ;8254(2)的0号赋值为500 mov dx,io82542+1 mov al,0e8h out dx,al mov al,03h out dx,al ;8254(2)的1号赋值为1000 mov dx,io82541+3 mov al,00110101b out dx,al mov al,01010001b out dx,al mov al,10010001b out dx,al ;设定8254(1)状态字 mov dx,io82541 mov al,0e8h out dx,al mov al,03h out dx,al ;8254(1)的0号赋值为1000 mov dx,io8255 mov al,81h ;8255的PA输出PB输出PC低4位输入 out dx,al call opi1 ;初始化交通灯为状态1,即东面绿灯亮,其余方向红灯亮loop0: mov dx,io8255c in al,dx and al,02h jz loop1 ;判断PC1输入是否为1,为0则则为夜间行车,为1则为正常白天行车 mov dx,io8255b mov al,0fh ;设置在夜间时四个方向的黄灯亮 out dx,al jmp loop0 loop1: mov dx,io8255c in al,dx and al,01h jnz loop0 ;判断PC0输入是否为1,为0则循环检测,为1则检测到状态的变化 mov ah,num cmp ah,0 ;判断当前状态,以下类似,共八个状态,分别调用各自状态的子函数(opi1.opi8) jnz loop2 call opi1 jmp loop0loop2: cmp ah,1 jnz loop3 call opi2 jmp loop0loop3: cmp ah,2 jnz loop4 call opi3 jmp loop0loop4: cmp ah,3 jnz loop5 call opi4 jmp loop0loop5: cmp ah,4 jnz loop6 call opi5 jmp loop0loop6: cmp ah,5 jnz loop7 call opi6 jmp loop0loop7: cmp ah,6 jnz loop8 call opi7 jmp loop0loop8: call opi8 jmp loop0 retmain endpopi1 proc near push ax push bx push cx push dx mov dx,io82541+1 mov al,20 out dx,al ;8254(1)的1号赋值为20 mov dx,io82541+2 mov al,15 out dx,al ;8254(1)的2号赋值为15 mov dx,io8255a mov al,0e1h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,00h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi1 endp opi2 proc near ;交通灯状态2,即东面黄灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,5 out dx,al ;8254(1)的1号赋值为5 mov dx,io8255a mov al,0e0h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,01h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi2 endp opi3 proc near ;交通灯状态3,即南面绿灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,30 out dx,al ;8254(1)的1号赋值为30 mov dx,io82541+2 mov al,25 out dx,al ;8254(1)的2号赋值为25 mov dx,io8255a mov al,0d2h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,00h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi3 endp opi4 proc near ;交通灯状态4,即南面黄灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,5 out dx,al ;8254(1)的1号赋值为5 mov dx,io8255a mov al,0d0h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,02h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi4 endp opi5 proc near ;交通灯状态5,即西面绿灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,20 out dx,al ;8254(1)的1号赋值为20 mov dx,io82541+2 mov al,15 out dx,al ;8254(1)的2号赋值为15 mov dx,io8255a mov al,0b4h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,00h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi5 endp opi6 proc near ;交通灯状态6,即西面黄灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,5 out dx,al ;8254(1)的1号赋值为5 mov dx,io8255a mov al,0b0h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,04h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi6 endp opi7 proc near ;交通灯状态7,即北面绿灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,30 out dx,al ;8254(1)的1号赋值为30 mov dx,io82541+2 mov al,25 out dx,al ;8254(1)的2号赋值为25 mov dx,io8255a mov al,78h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,00h out dx,al ;8255的PB口输出黄灯状态 inc num pop dx pop cx pop bx pop ax retopi7 endp opi8 proc near ;交通灯状态8,即北面黄灯亮,其余方向红灯亮 push ax push bx push cx push dx mov dx,io82541+1 mov al,5 out dx,al ;8254(1)的1号赋值为5 mov dx,io8255a mov al,70h out dx,al ;8255的PA口输出绿灯和红灯状态 mov dx,io8255b mov al,08h out dx,al ;8255的PB口输出黄灯状态 mov bl,0 mov num,bl pop dx pop cx pop bx pop ax retopi8 endp codeendsend main三、 总结(1) 由于状态的变化是通过不断检测PC0口是否有高电平的到来,如果有则重置8254(1)的1计数器的计数初值,这里可能会有一点误差(就是执行置计数初值的指令执行时间),但是这种方式实现对交通灯的状态变化比较统一而且简便,而且产生的误差并不会累积,基本上是可以忽略的。(2) 在处理灯的闪烁上注意了细节问题,如绿灯最后5s的闪烁,由于当8254(2)GATE0为低电平时,8254(2)的0计数器不工作,OUT1保持原来的状态(很难确定其为高电平还是低电平),如果不加上额外的门电路,OUT1的不确定性将导致程序的错误,加上了一些门电路以后,问题就可以解决,如图(4)为控制闪烁的相关端口真值表。同理黄灯的闪烁也是采用了类似的门电路,解决了8254(2)OUT1的不确定性对程序的影响。 8254(1)的OUT18254(2)
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
提示  人人文库网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:十字路口交通信号灯系统设计
链接地址:https://www.renrendoc.com/p-517064.html

官方联系方式

2:不支持迅雷下载,请使用浏览器下载   
3:不支持QQ浏览器下载,请用其他浏览器   
4:下载后的文档和图纸-无水印   
5:文档经过压缩,下载后原文更清晰   
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

网站客服QQ:2881952447     

copyright@ 2020-2025  renrendoc.com 人人文库版权所有   联系电话:400-852-1180

备案号:蜀ICP备2022000484号-2       经营许可证: 川B2-20220663       公网安备川公网安备: 51019002004831号

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