《课程设计论文基于AT89S51单片机的交通灯控制系统.doc》由会员分享,可在线阅读,更多相关《课程设计论文基于AT89S51单片机的交通灯控制系统.doc(17页珍藏版)》请在三一办公上搜索。
1、桂林电子科技大学课程设计(论文)报告用纸 第 16 页 共 17 页摘 要对电子信息工程专业来说,如何把自己学到的知识变为现实,提高自己的动手能力变得尤为重要。本次课程设计是制作基于单片机的可控制交通灯。一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给予技术革新。本课程设计是以AT89S51芯片作为主要芯片,同时结合部分外围电路,使用DXP软件作为辅助,把设计电路焊接在铜板上。本系统实习目标:每个路口绿灯亮20秒,黄灯亮5秒,然后红灯亮25秒,如果按下紧急按键,则全部路口亮红灯,倒计时停止。按下恢复健则回到原来状态。关键词:单片机;AT89S51;交通灯AbstractFor Elect
2、ronic and Information Engineering, how to put their acquired knowledge into reality, to improve their practical ability becomes particularly important. This course is designed to create a controllable trafficlight system which base MCU(AT89S51). A good controllable trafficlight system can be a techn
3、ological innovation of road congestion, illegal control and other issues.To AT89S51 as the main part, combined with part of the peripheral circuits, the use of DXP software as a supplement to weld the copper on the circuit design. function of the system: green light for 20 seconds , the yellow light
4、 for 5 seconds, and then the red light 25 seconds in each intersection, if you press the emergency button, the whole intersection red light will turn on, the countdown stops. Press restore button is back to its original state.Key words: MCU; AT89S51; traffic light目 录引言 31 概述 31.1 课题引入 31.2 课题描述 31.3
5、 设计任务 32 基于单片机的可控交通灯系统设计方案 32.1 主要元器件介绍32.1.1 AT89S51芯片介绍32.1.2 部分电路功能82.2 方案分析 92.3 电路设计 92.4 软件设计103 结论14谢辞 15参考文献 16 引言随着社会科技、经济的高速发展,人才竞争越来越激烈,如何成为具有创新能力的高素质人才已经成为当今大学生的的当务之急。这也对高校教育教学提出了新的挑战和要求。对电子信息工程专业来说,如何把自己学到的知识变为现实,提高自己的动手能力变得尤为重要。课程设计正是为此而应运而生。由学生自己选题、查阅文献、设计实验方案,在教师指导下完成实验。目的是全方位地锻炼学生实验
6、研究的能力,充分调动学生的主动性和积极性,激发他们从事物理学研究的兴趣和热情,为以后从事科研工作打下良好的基础。1 概述 本次课程设计是基于单片机的可控交通灯系统。1.1课题引入 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯指挥系统。交通信号灯控制方式很多。本系统采用AT89S51单片机为中心器件来设计交通灯控制器,实现了能通过51芯片的P0口设置红、绿灯燃亮时间的功能;P1口控制红绿灯循环点亮,倒计时剩5秒时黄灯亮警示。1.2课题描述 基于单片机的可控交通灯系统具有许多的实现方案,但考虑到各方面的因素,特别是性价比与实验可行性这两
7、方面的因素,还有学校提供的实验环境与仪器。为此我结合自身在学校多年学到的电子电路知识,选择使用AT89S51芯片作为基础,结合部分外围电路来实现基于单片机的可控交通灯系统。1.3设计任务以AT89S51芯片作为主要部分,同时结合部分外围电路,使用DXP软件作为辅助,把设计电路焊接在铜板上。输入直流电压VCC为5V,通过51芯片的P0口设置红、绿灯燃亮时间的功能;P1口控制红绿灯循环点亮,倒计时剩5秒时黄灯亮警示。要求电路焊接良好,布局合理。2 基于单片机的可控交通灯系统设计方案2.1 主要元器件介绍2.1.1 AT89S51芯片介绍为了更好的了解基于单片机的可控交通灯系统是怎么么产生的,在此之
8、前有必要先了实验电路中唯一一片芯片的构造与参数。AT89S51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)AT89S51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不
9、能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图1 AT89S51内部结构图程序存储器(ROM)AT89S51共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):AT89S51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:AT89S51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:AT89S51内置一个全双工串行通信口,用于与其它设备间的串行数据传送,串行口既可以用作异步通信收发器,也可以当同步移位器
10、使用。中断系统:AT89S51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择时钟电路:AT89S51内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但AT89S51单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。AT89S51单片机采用的是哈佛结构的形式下图是AT89S51单片机的内部结构见图所示。图2 AT89S51单片机的内
11、部结构图AT89S51的引脚说明:AT89S51单片机中采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明,如图所示。图3 引脚功能Pin9:RESET/Vpd复位信号复用脚,当AT89S51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从000
12、0H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,AT89S51的初始态。AT89S51的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。图4 复位电路 时钟方式Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是
13、EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,AT89S51单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。在编程时,EA/Vpp脚还需加上21V的编程电压。单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统
14、。对51系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路。给出一个51单片机的最小系统电路如图所示。图5 单片机的最小系统电路图 复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性质,可以知道,当系统一上电,RST脚将会出现高电平,并且,这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RST脚的高电平持续两个机器周期以上就将复位,所以,适当组合RC的取值就可以保证可靠的复位。一般教科书推荐C取10u,R取8.2K。当然也有其他取法的,原则就是要让RC组合可以在RST脚上产生不少于2个机周期的高电平。如何具体定量计算,可以参考电路分析相关书籍。晶振电路:
15、型的晶振取11.0592MHz(为可以准确地得到9600波特率和19200波特率,用于有串口通讯的场合)/12MHz(产生精确的uS级时歇,方便定时操作)。2.1.2部分电路功能图6 晶振电路图图7 复位电路图图8 信号控制灯电路 LED及显示接口图发光二极管简称LED,采用砷化镓、镓铝砷、和磷化镓等材料制成,其内部结构为一个PN结,具有单向导电性 当在发光二极管PN结上加正向电压时,PN结势垒降低,载流子的扩散运动大于漂移运动,致使P区的空穴注入到N区,N区的电子注入到P区,这样相互注入的空穴与电子相遇后会产生复合,复合时产生的能量大部分以光的形式出现,因此而发光。在普通二极管里,半导体材料
16、本身吸引大量的光能而结束。发光二极管是由一个塑性灯泡覆盖集中灯光在一个特定方向。由于不同材料的禁带宽度不同,所以由不同材料制成的发光二极管可发出不同波长的光。发光二极管的发光颜色有:红色光、黄色光、绿色光、红外光等。 发光二极管的外形有:圆形、长方形、三角形、正方形、组合形、特殊形等。 常用的发光二极管应用电路有四种,即直流驱动电路、交流驱动电路、脉冲驱动电路、变色发光驱动电路。使用LED作指示电路时,应该串接限流电阻,该电阻的阻值大小应根据不同的使用电压和LED所需工作电流来选择。发光二极管的压降一LED的光学参数与pn结结温有很大的关系。一般工作在小电流IF10mA,或者1020 mA长时
17、间连续点亮LED温升不明显。2.2 方案分析 基于单片机的可控交通灯系统 首先是制作一个AT89S51的最小系统。用P0口和P2口控制数码管的显示,数码管使用共阳数码管。用P1口输出的信号控制红黄绿三种灯的亮与灭。外部中断INT0与INT1连接按键,设置为低电平使能。利用芯片的硬件定时器实现实时性,利用芯片的中断模块实现控制。2.3 电路设计根据以上方案分析,使用DXP软件画出的电路原理图如下图。图9 基于单片机的可控交通灯系统原理图在原理图的基础上,我绘制了PCB图。为了方便电源的输入,还有方便观察效果,我把二极管模拟十字路口摆放,AT89S51作为核心芯片放在中间,其余的原件顺着原理图安放
18、,原则是方便电路的布线。图10 基于单片机的可控交通灯系统PCB图2.4软件设计流程图: 开始初始化A红灯,B绿灯Time20sA红灯B黄灯,绿灯Time5sA绿灯,B红灯Time 20sA黄灯,绿灯B红灯Time 5s图11 程序流程图本次课设采用keil软件进行编程,编程过程中需要注意输入输入字符的格式,应该为英文、半角,否则编译会出现错误。Keil软件应用简单,操作方便。程序编译完成之后就需要用专门的烧软件讲hex文件写入单片机内部。我使用easy51来烧写hex文件。编写程序之前最好写一个程序的流程图,使自己在编程过程中有很好的思路。内部程序:#includeunsigned int
19、num=0,time=25;volatile unsigned int emergency=0;unsigned char ge,shi;unsigned int code table10=0x10,0xf3,0xc4,0xc2,0xa3,0x8a,0x88,0xd3,0x00,0x82;void delay(unsigned int);void display();main()TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; /*中断使能*/ ET0=1;/*定时器T0中断使能*/ TR0=1;/*定时器T0启动*/
20、 EX0=1; EX1=1; IT0=0; IT1=0; while(1)while(time!=5) /*不等于5秒时*/ P1=0Xde; /*A红灯,B绿灯*/ if(num=20) time-; num=0; while(emergency)P1=0x36;display(); display(); while(time!=0) /*不等于2秒时*/ if(num=20) P1=0Xce;/*A红灯,B绿灯与黄灯*/num=0; time-; while(emergency)P1=0x36;display(); display(); time=25; while(time!=5)/*不
21、等于5秒时*/ P1=0Xf3;/*A绿灯,B红灯*/ if(num=20) num=0; time-; while(emergency)P1=0x36;display(); display(); while(time!=0)/*不等于0秒时*/ P1=0Xf1;/*A绿灯与黄灯,B红灯*/ if(num=20) num=0; time-; while(emergency)P1=0x36;display(); display(); time=25; void display() shi=time/10; ge=time%10; P2=0X01; P0=tableshi; delay(5); P
22、2=0X02; P0=tablege; delay(5);void delay(unsigned int z)unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);void exter0() interrupt 0 emergency=0;void exter1() interrupt 2emergency=1;void time0() interrupt 1 num+; TH0=(65536-50000)/256; TL0=(65536-50000)%256; 图12 实物图3 结论几个星期的课程设计,虽然有些疲劳和困倦,但带给我很多的收获。各种
23、电路知识已经学了几个学期,有许多知识都存在似懂非懂的现象,这种现象通过实际的动手操作,已经减少了许多。对这些知识也有了更深的理解和很好的掌握。也有很多理论上说得过去的电路原理,但到了实际操作,却是行不通的。这种困惑,有许多已经通过实际操作解决了,并能够深刻认识,但也有很多没有明白。在这次课程设计中我学会了要把错误总结,有许多错误或者陷阱是平时自己陷进去的,因此很深刻,但也有些错误或者陷阱是自己还没有接触或者犯过的,这就应该看多些别人的总结,使自己不犯这些错误。不让自己掉进这些陷阱。这样长期总结,会对自己有很大的帮助。通过设计、焊接和制作一个电子电路系统让我了解一个电子产品的开发和制作过程,锻炼
24、我的焊接技术和调测电路的能力,培养我运用理论知识分析和解决实际问题的能力,特别是在电路的调测阶段,经常在焊接的电路时出现了故障和问题时,我常常不知该从何下手,这又证明了我平时的动手能力严重不足,根本的原因在于我缺少对实际问题进行分析和解决问题的能力的训练,缺乏将理论知识运用于实践、对所调测电路进行分解以定位问题和故障出在哪里的能力。谢 辞本文能够得以完成,非常感谢我的指导老师刘庆华副教授,他的渊博知识以及在治学过程中表现出来的严谨态度使我深受鼓舞,给予我极大的指导和帮助,在此向刘庆华副教授表示衷心的感谢!同时感谢一直在我身边帮助我的同学,在我有疑问时给予了很多帮助,同学们的热情让我在挫折面前不
25、断前行,我们经常一起讨论问题并从中一起进步,获益良多。在此向各位同学表示衷心的感谢!本次课设要感谢学院的安排,让我们在学习课本知识的同时,能够有这样的机会实践。感谢班干们的工作,为我们省去了不少的麻烦。同时在课程设计过程中我还参考了有关的书籍与论文,在这里一并向有关的作者表示谢意。参考文献1 肖洪兵著.跟我学用单片机.北京航空航天大学出版社:2006年 :36382 何立民著.单片机高级教程. 北京航空航天大学出版社:2007年 :4894943 周航慈著.单片机程序设计基础.北京航空航天大学出版社:2003年 :p951034 张毅刚著.单片机原理及应用.高教出版社,2006年 :605 何立民著.单片机应用系统设计.北京航空航天大学出版社,2000年:1206 张鹏超、刘沛著.一种多功能信号发生器的设计与实现.现代电子技术出版社,2005年第20期总第211期 :1819 7 姜志海,刘连新著. 单片微型计算机原理接口与应用M.机械工业出版社,2007年 : 6878 8 吴叶兰著. 微机原理与接口技术M.机械工业出版社,2009年 :9095 9 胡健著. 单片机原理及接口技术M.机械工业出版社,2002年 :567816