您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 基于89C51单片机的交通灯课程设计报告
课程设计说明书题目十字路口交通灯设计学院名称电气工程学院指导教师唐耀庚职称教授班级自动化091班学号20094460122学生姓名易辉2012年6月16日十字路口交通灯数字显示系统摘要本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展。交通也日渐复杂,交通的自动化也不断更新,交通的一些指挥系统光靠人来完成是远远不够的,这就需要设计各种交通指挥自动化系统来完成这些复杂的工作。从而使交通指挥系统更加有秩序,更加安全。至此本人设计了交通信号灯控制系统,来指挥十字路口车辆的停通,使红绿灯指挥系统实现自动化,无人化。该交通灯控制系统控制的是东西和南北两个方向上的车辆通行,此系统核心元件为单片机AT89C51,单片机)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。对其编写相关程序来控制交通信号灯和数码管的时间显示,并采用外部中断来控制紧急情况。此设计的硬件电路不是很复杂,关键在于软件的设计,即程序的编写。本设计采用的程序编写语言为现在流行的C语言,简单又便于阅读。编写程序的原则是:1.满足设计的要求。2.尽量采用最好,最有效的算法。3.编写时应尽量用最简洁的语言。编写好源程序后,采用keil软件对其进行编译,使其生成单片机可以识别的.hex文件,再把此文件导入单片机89C51中即可。关键词:交通指示灯;单片机;控制目录1概述………………………………………………………………………………31.1设计背景………………………………………………………………………31.2设计任务……………………………………………………………………32系统总体方案及硬件设计………………………………………………………42.1AT89S52单片机简介…………………………………………………………42.2系统硬件电路的设计………………………………………………………43软件设计…………………………………………………………………………73.1交通灯的设计程序流程图……………………………………………………73.2定时器0及中断响应…………………………………………………………84Proteus软件仿真…………………………………………………………………104.1仿真电路图……………………………………………………………………104.2仿真步骤………………………………………………………………………105课程设计体会……………………………………………………………………11参考文献……………………………………………………………………………11附1:源程序代码………………………………………………………………12附2:系统原理图………………………………………………………………181引言随着社会的发展,人们生活水平的改善,私家车越来越多。车流量的增加给交通带来了极大的压力,也使得交通安全日益严峻。而交通灯则成为疏通车辆,缓解交通压力,减少交通事故,维护交通安全,制定交通规则最常见和最有效的手段。十字路口是生活中常见的交通路线,而十字路口也是车流量较多,导致车辆堵塞教为严重的交通路口,因此,十字路口交通灯成了交通路线上最常见的交通设备。红灯停绿灯行成了每个人口熟能详的交通规则。在很久以前,交通灯仅仅只是通过简单的时序电路控制红绿灯的切换,这导致了人们对时间把握的不准确,如行人和司机不能正确的把握交通灯的变换,从而出现不必要的交通事故。由单片机控制的十字路口交通灯具有时间倒计时显示、绿灯闪烁警示、黄灯示意减速停车等功能,完善了交通灯功能,减少交通事故,做到了更好的改善交通环境,维护人们生命和财产安全,为创造美好城市交通形象发挥了不可替代的作用。2十字路口交通灯设计2.1设计目标十字路口交通灯设计要求通过89C51单片机的控制,实现十字路口交通灯的切换和倒计时显示。东西(A)、南北(B)两干道交于一个十字路口,各干道有一组红、绿、黄三个指示灯,指挥车辆和行人安全通行。红灯的设计时间为25秒,绿灯20秒后闪烁警示,然后绿灯灭,黄灯亮2S。要求两干道交通灯显示正确,时间显示不错乱。2.2设计流程图程序设计确定为交通灯后,根据设计要求,通过ISIS画出电路图,由电路图和设计要求通过keil编写汇编语句并调试,调试成功生成*.HEX文件,打开ISIS选择单片机将*.HEX文件添加进源文件,然后进行调试,调试成功,则完成设计。不成功不成功生成.HEX文件在ISIS中仿真确定设计方案使用ISIS设计电路图根据电路图编写程序流程图使用keil编写程序调试成功成功2.3硬件设计2.3.1核心元件介绍(AT89C51)AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。1.主要特性:·与MCS-51兼容·4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年·全静态工作:0Hz-24Hz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。黄、绿各四个),5伏电源一个。2.3.2系统工作流程(1)程序设置初始时间,通过89C52单片机内部相应寄存器来实现。(2)有89C52单片机的定时器每秒通过P3.0口向74LS164的数据端口发送信息,由74LS164的输出口显示南北红、绿、黄灯的燃亮时间情况。(3)程序设计将东西方向的燃亮时间十位数由P1口输出,个位数由P0口输出。(89C52只有一个串行输出端口,其余数据有简单I/O口输出。)(4)89C52通过程序设置各个信号灯的燃亮时间,通过程序设置黄绿灯时间依次为2s,20s,25s循环,由89C52的P3口向74LS163的数据口输出。(5)通过89C52单片机的P3口来控制系统的工作。2.3.3硬件选择1.调试(1)焊接时注意各个器件的引脚处,注意区分各个电阻与电容的数值要仔细看清楚,每一个器件都要尽量贴近印制板,最后,要用万用表测试一下,检查有没有短路的的地方。(2)在设计电路时为节省引线数目利用P1.3作为电源驱动led但是这样驱动的led亮度有限尤其是绿灯几乎不亮,所以测了一下高电平下的P1.3得知为2V左右所以改为5V电源。(3)在编写延时程序时尤其当延时常数太大时仿真时程序易死,所以使用定时器定时中断的方法,然后对定时计数以次延时。2.总结通过本次课程设计较系统地掌握有关单片机控制的设计思想和设计方法,主要对AT89C52的结构、功能、内部资源等了解并对其进行测试和加以应用的知识得到学习。由于是在我们只有两个星期的课程设计,我做的是24秒倒计时,所以对定时器/计数器有了一定的掌握。这个秒表倒计时设计写程序时,我都会在在每条指令后都写好注释,以便在程序出错的检查过程中可以更容易查找得到。这个设计的一些内容是在网上找的,自己做了一些的改动,在上网找资料的同时也学到了许多东西,找到了很多学习单片机的网站,里面的内容都比较适合我们初学者去学,有些网站还专门介绍这种单片机的类型、用法、功能等等。其实我们平时不懂就应该自己去学习去弄明白,通过这个课程设计,使我发现,原来小小的一片单片机有这么强大的功能,能应用于各种领域。都是觉得很神奇,人类都的聪明啊。我应该在自己以后的学习中,不仅要有刻苦努力,要有钻研精神,还要有创新,对自己感兴趣的一定要用心去学。PCB版图
本文标题:基于89C51单片机的交通灯课程设计报告
链接地址:https://www.777doc.com/doc-2567970 .html