单片机交通灯实训报告完整版 单片机交通灯课程设计报告

时间:2023-08-03 23:07:39 文档下载 投诉 投稿

        课程设计课题名称智能交通信号灯姓名学号班级专业所在系指导教师完成日期智能交通信号灯摘要本设计是在熟练掌握单片机及其仿真系统使用方法基础上,综合应用单片机原理、微机原理等课程方面的知识,设计一个采用AT89C52单片机控制的交通灯控制电路。该设计结合实际情况给出了一种简单低成本城市交通灯控制系统的硬件及软件设计方案、各个路口交通灯的状态循环显示,并对程序流程图进行详细讲解分析。交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。

        交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。

        根据给出的要求设计交通灯东西、南北两干道交于一个十字路口各干道有一组红、黄、绿三色的指示灯指挥车辆和行人安全通行。红灯亮禁止通行绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换且黄灯亮的时间为东西、南北两干道的公共停车时间。

        关键词:电子线路;AT89C52;LED交通灯。目录

        一、绪论当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。

        1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

        它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。

        红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。

        红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。

        1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。

        红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。

        二、总体设计方案1.设计思路以单片机为核心器件,对系统进行控制,外加辅助电路对系统参数进行必要的设置和显示。

        交通信号灯的显示时间可以固定,也可用键盘重新设置,时间控制和LED显示均由单片机进行控制。交通信号灯控制系统主要可以分为定时、红绿灯转换、倒计时显示等三个控制模块,单片机作为系统的控制单元,在系统中的作用主要有以下几个方面:

        (1)利用单片机中的定时器循环出一秒时间,然后将它累计到处于活动状态的寄存器中。寄存器里的计数是递减的,一秒时间到则减1,直到计数为0,说明定时时间到。

        (2)定时时间到后,单片机将对寄存器地址进行判断,不同的寄存器对应不同的红绿灯显示。

        (3)每次一秒时间到,寄存器自减1后,还要将寄存器中的值,也就是剩余的秒数反映到LED显示器上,构成倒计时显示。

        (4)扫描键盘上的数值,并将它反映到特定的寄存器里,根据寄存器的存储值对定时程序进行重新置数操作2.设计目的

        (1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。

        (2)用单片机模拟实现具体应用,使个人设计能够真正使用。

        (3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻炼。

        (4)提高利用已学知识分析和解决问题的能力。

        (5)提高实践动手能力。3.设计任务和内容

        (1)设计任务单片机采用用AT89C52芯片,使用发光二极管(红,黄,绿)代表各个路口的交通灯,用8段数码管对转换时间进行倒时(东西路口25秒,南北路口20秒,黄灯时间5秒)。

        (2)设计内容a设计并绘制硬件电路图b制作PCB并焊接好元器件c编写程序并将调试好的程序固化到单片机中4.电源提供方案为使模块稳定工作,须有可靠电源,采用单片机控制模块提供电源。

        此方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。5.复位方案复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免冗长,本设计采用按键复位,在芯片的复位端口外接复位电路,通过按键对单片机输入一个高电平脉冲,达到复位的目的。

        6.输入方案方案一:采用89S52扩展I/O口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O口,但操作起来稍显复杂。

        方案二:直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用2个按键,分别是K

        1、K2。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O口就可实现,且本身的计数器及RAM已经够用,故选择方案二

        三、显示界面方案该系统要求完成倒计时、状态灯等功能。

        基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字符,无法胜任题目要求。方案二:完全采用点阵式LED显示。

        这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵LED(点阵式和8段式LED)相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。

        权衡利弊,图1

        四、交通管理的方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。

        指示灯燃亮的方案如表2。25S5S25S5S……东西道红灯亮红灯亮绿灯亮黄灯亮……南北道绿灯亮黄灯亮红灯亮红灯亮……图2说明:

        (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为25秒。

        (2)黄灯5秒,警示车辆和行人红、绿灯的状态即将切换。

        (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为25秒。

        (4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。

        五、芯片简介1.AT89S52单片机简介其引DIP封装的脚图如下:图32.主要性能与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。3.功能特性描述At89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。

        使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

        AT89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

        掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashAT89C52P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。

        对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。

        在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

        对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。

        在flash编程和校验时,P1口接收低8位地址字节。引脚号电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

        作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。

        在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。

        对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C52特殊功能(P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。

        RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG——当访问外部程存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

        一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

        如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

        PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP——外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。

        如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

        六、设计原理分析1.交通灯显示时序的理论分析与计算对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量=车流/时间来表示。

        先设定一些标号如图5所示。图5说明:此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路口灯,左边为西路口灯。图2-2所示为一种红绿灯规则的状态图,分别设定为S

        1、S

        2、S

        3、S4,交通灯以这四的状态为一个周期,循环执行(见图6)。

        图6请注意图2-1b和图2-1d,它们在一个时间段中四个方向都可以通车,这种状态能在一定的时间内达到较大的车流量,效率特别高。依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表;根据图2-3可以看出,相邻路口的灯它们的状态在相位上相差180°。因此最终只需写出一组S

        1、S

        2、S

        3、S4的逻辑状态表。

        如表7所示。表7表8表中的“×”代表是红灯亮(也代表逻辑上的0),“√”是代表绿灯亮(也代表逻辑上的1),依上表,就可以向相应的端口送逻辑值。2.交通灯显示时间的理论分析与计算东西和南北方向的放行时间的长短是依据路口的各个方向平时的车流量来设定,并且S

        1、S

        2、S

        3、S4各个状态保持的时间之有严格的对应关系,其公式如下示。

        T-S1+T-S2=T-S3T-S2=T-S4T-S1=T-S3我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则,一个十字路口可分为主干道和次干道,主干道的放行时间大于次干道的放行时间。

        七、LED数码管显示模块1.静态显示方式静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。

        在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。

        其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。2.动态显示方式动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。

        对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。

        若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。

        八、复位电路复位方式有多种,本设计采用按键复位。接线图如图程序复位电路在设定的定时时间内,89C52必须在RST引脚产生一个由高到低的电平变化,以清内部定时器.

        九、晶振电路晶振电路原理图9图9晶振模块原理图选取原则:传统做法,但能够实现所需,即最简单也最是实用。

        电容选取30pF,晶振为12MHz。

        十、总结与谢词这次十字路口交通灯的设计原理之前根本没有接触过,也就是说在短暂的一周中我们不但要学习一个新的东西,而且还要融会贯通用它来设计十字路口交通灯系统。还好前面的几次实习已经锻炼了我们快速学习的能力,对于一个完全陌生的东西也没有啥畏难情绪了,而这一次的实习就相当于一次考察,考察我们查找资料快速学习团结协作的能力。

        不得不说我和搭档的合作是相当愉快的,虽然我俩的成绩都不咋样,但对于实习我们是积极地,曹老师一讲完实习任务,我们就去图书馆借来了书,学习交通灯技术,了解交通灯的原理。当然这些的学习与我们的实习进程是同步的,我们分几个模块来设计,针对每个模块有针对性的快速学习,然后用Keil软件编程。这已经是最后一次实习了,每结束一个实习,就越发觉得自己实在是有太多知识不会的,即便是在实习过程中掌握了的知识自己也不是很有底,当时目的性太强,学的太专,也许这就是快速学习的后遗症吧。

        但实习本身重点就不是用来系统学习知识的,而是用来锻炼能力的,锻炼查找资料快速学习融会贯通以及动手的能力,只要能有这方面的收获实习的目的就已经达到了,自己还是有不少收获的!致谢感谢学校为我们提供的实习机会感谢曹老师的辛苦教诲与指导感谢同学的支持与同组者的配合十

        一、参考文献[1].《单片机原理及应用》张毅刚高等教育出版社[2].《单片机控制实习与专题制作》蔡朝洋.[3].《单片机实验教程》彭冬明、韦友春北京理工大学出版社十

        二、附录附录1:程序清单#include"reg52.h"//宏包含MCS-52系列单片机的头文件#defineucharunsignedchar#defineuintunsignedintucharcodeDM[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//数码管段码数组ucharcodeWM[]={0x7f,0xbf};//位码数组ucharcodeXW[]={0xde,25,0xdb,5,0xed,15,0xf9,5};//相位数组voiddelay(int);//延时函数声明ucharn50ms,GL;//定义变量延时为50毫秒绿灯显示时间ucharSX[2]={10,10};//显示数组/*主程序*/voidintital();main(){intital();while

        (1)//循环变量{uchari,j;for(;GL==0&&j<8;j+=2)//绿灯时间等于0相位选择小于8相位加2{GL=XW[j+1];//显示路灯时间P0=XW[j];//显示相位}if(j==8)//如果等于8{j=0;//清零}SX[0]=GL%10;//更新显示数组SX[1]=GL/10;//更新显示数组if(n50ms>=20)//小于等于1秒{n50ms=0;//清零GL-=1;//绿灯时间减1倒计时}for(i=0;i<2;i++)//送显示{P3=WM[i];//位码显示P2=DM[SX[i]];//断码显示delay

        (5);//延时5个周期}}}voidtimer0isr()interrupt1//中断服务程序入口定时器0中断1{TH0=(65536-50000)/256;//取8位的商数TL0=(65536-50000)%256;//取8位的余数n50ms++;//50毫秒自增1}/*中断方式*/voidintital(){TMOD|=0X01;//设置为内部定时器、软件启动、Moder1TH0=(65536-50000)/256;//T0(Moder0)计数高8位TL0=(65536-50000)%256;//T0(Moder0)计数低8位ET0=1;//开启定时器EA=1;//启动中断TR0=1;//启动定时器}/*延时子程*/voiddelay(uintx){uinti,j;//声明整数组变量i,jfor(i=0;i<x;i++)//计数x次,延时X*1msfor(j=0;j<120;j++);//计数120次,延时1ms}//延时程序结束附录2:电路设计图

【单片机交通灯实训报告完整版 单片机交通灯课程设计报告】相关文章:

学校食堂自查整改报告 学校食堂自查及整改措施表08-03

食堂检查整改报告范文 食堂整改情况报告08-03

单片机实训报告总结 单片机实训报告总结1500字08-03

单片机实训报告范文优选分享 单片机实训报告书08-03

单片机实习报告六篇 单片机实训报告怎么写08-03

2023年单片机实训报告心得体会范文 单片机实训总结报告08-03

单片机交通灯实训报告完整版 单片机交通灯课程设计报告08-03

单片机秒表实训报告 单片机秒表实验总结08-03

单片机实训报告 单片机实训报告总结08-03

51单片机时钟实训报告 51单片机的电子时钟课程设计08-03

单片机原理及应用实训报告 单片机原理及应用实训报告,单片机I/O端口的应用08-03

单片机实训心得体会 单片机实训心得体会800字08-03

单片机实训报告范文精选 单片机实训报告内容及方法08-03