您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 单片机交通灯实验报告
学校代码:11460南京晓庄学院本科生毕业综合设计交通灯控制系统设计Trafficlightcontrolsystemdesign院系:物理与电子工程学院专业:电子信息科学与技术成员:郁艇妹(08409244)周纬璐(08409247)南京晓庄学院2012届本科毕业设计1交通灯控制系统设计实验一.设计目的1.通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加深“单片机原理与应用”课程的基本知识,掌握电子设计知识在实际中的简单应用。2.综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决电子设计问题,进行电子设计的训练。3.学习电子设计的一般方法,掌握AT89C52芯片以及简单电子设计过程和运行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体设计能力。4.通过计算和绘制原理图、布线图和流程图,学会运用标准、规范、手册、图册和查阅有关技术资料等,培养电子设计的基本技能。5.通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统全过程,为今后从事的工作打基础。二.设计要求1.利用单片机的定时器定时,实现道路的红绿灯交替点亮和熄灭。2.以AT89C52单片机为核心,设计一个十字路口交通灯控制系统。用单片机控制LED灯模拟交通信号灯显示。假定东西、南北方向方向通行(绿灯)时间为25秒,缓冲(黄灯)时间5秒,停止(红灯)时间35秒。3.南北方向、东西方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。三.实验原理1.基本原理主体电路:交通灯自动控制模块。这部分电路主要由80C51单片机的I/O端口、定时计数器、外部中断扩展等组成。本设计先是从普通三色灯的指示开始进行设计,用P1口作为输出。程序的初始化是东西南北方向的红灯全亮。然后南北方向红灯亮,东西方向绿灯亮,60秒后东西方向黄灯闪亮5秒后南北方向绿灯亮,东西方向红灯亮。重复执行。倒计时用到定时器T0,用P2口作为LED的显示。二位一体的LED重复执行60秒的倒计时。作为突发事件的处理,本设计主要用到外部中断EX0。用一模拟开关作为中断信号。实际中可以接其它可以产生中断信号的信号源。2.芯片AT89C52AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。南京晓庄学院2012届本科毕业设计2AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。主要功能特性:•兼容MCS51指令系统•8k可反复擦写(1000次)FlashROM•32个双向I/O口•256x8bit内部RAM•3个16位可编程定时/计数器中断•时钟频率0-24MHz•2个串行中断•可编程UART串行通道•2个外部中断源•共6个中断源•2个读写中断口线•3级加密位•低功耗空闲和掉电模式•软件设置睡眠和唤醒功能四.实验流程图(一)实现方法(1)在设计中利用软件程序延时的方法来控制红(绿)的亮的时间。考虑延时时间较长所以先用T0产生终端然后通过计数的方法来实现延时。利用P1口的P1.1、P1.2、P1.3作为红绿灯控制端口。(2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一块与P1.1相连。同样南北向的红灯连在一块,东西向的绿灯连在一块,他们一块与P1.2相连,四个黄灯连在一块与P1.3相连。(二)流程图南京晓庄学院2012届本科毕业设计3五.硬件设计1.单片机的结构单片微机(Single-ChipMicrocomputer)简称为单片机。它在一块芯片上集中成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。就其组成而言,一块单片机就是一台计算机。由于它具有体积小、功能强和价格便宜等优点,因而被广泛地应用于产品智能化和工业控制自动化上。2.主要元器件选择(1).开关管的选择:BUTTON按钮(2).LED发光二极管LED-RED,LED-YELLOW,LDE-GREEN(3).二位一体数码管7SEG-MPX2-CAT-RED:共阳数码管(红色)(4).PN4249:驱动三极管(5).AT89S51系列单片机3.设计显示部分LED数码显示部分。LED数码显示部分由七段数码显示管组成。发光二极管显示原理:发光二极管是采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个PN结,具开始南北红东西绿30s倒计时显示黄灯亮5s南北绿东西红黄灯亮5s25s倒计时显示南京晓庄学院2012届本科毕业设计4有单向导电性。发光二极管在制作时,使用的材料不同,那么就可以发出不同颜色的光。当定时器定时为1秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。六.软件设计1.单片机中断系统基本结构中断是一项重要的计算机技术,是处理正常工作与紧急状态的好办法,是实现人机实时交互的重要途径,在单片机应用系统中,中断技术得到了广泛应用。下面详细介绍单片机中断系统基本结构、与中断相关的特殊寄存器的设置及中断应用系统编程方法。当CPU查询到系统有中断请求时,如果系统处于中断允许状态,CPU将停止当前的工作,响应中断请求,转向中断服务,中断服务完成后,返回原程序继续执行当前任务,这叫单片机中断。8051系列单片机中断系统结构如图3.7所示。能让CPU产生中断的信号源叫中断源。8051单片机有NT0、INT1、T0、T1、TI、RI六个中断源,但只有EX0、ET0、EX1、ET1、ES五个向量,下面简要介绍六个中断源。图:单片机中断系统基本结构INT0、INT1:外部中断源,由P3.2和P3.2引脚输入。具有低电平和脉冲两种触发方式,在每个机器周期的S5P2采样引脚信号,如有效则由硬件将它的中断请求标志IE置1,请求中断。当CPU响应中断时,由硬件复位。T0、T1:定时/计数器中断,当定时/计数器产生溢出时,置位中断请求标志TF请求中断处理。RI、TI:串行中断,RI是接收,TI为发送。单片机串行口接收到一个字符后RI置1,1IT0=0IT0=1TIRIIT0=1IT0=0TCONIE0TF0IE1TF1TIRIIT0=0ET0EX0EX1ET1ESEA中断优先级1IP南京晓庄学院2012届本科毕业设计5发送完一个字符TI置1。值得注意的是,RI、TI在响应中断后,必须由用指令将其复位。中断响应:CPU在执行程序的过程中,在每个机器周期的S5P2对中断标志位按中断优先级进行查询,一旦查询到有中断请求,CPU只要不在执行同级或高级的中断服务程序和当前指令(RETI指令或访问IE、IP的指令除外)执行完毕两种情况,则响应中断。如果当前正在执行的指令是RETI或访问IE、IP的指令,则当前指令执行完毕后,CPU才可响应中断。中断响应时间可以从中断信号被查询开始算起,中断响应时间在以下三种情况下,响应时间还会更长:①CPU正在执行一个比要响应的中断源优先级相等或更高的中断源的中断服务程序,此时须等到中断服务程序执行完毕才可中断响应。②正在执行的当前指令不是在最后一个机器周期,只有指令执行完后才响应中断。③如果当前执行的是RETI或访问IE、IP的指令,则当前指令执行完毕后,CPU需再执行一条指令才可以中断响应,因此附加等待响应时间不会超过5个机器周期。中断入口:单片机响应中断后,将转向特定的入口进行中断服务,单片机的中断入口地址如表3.2所示。中断源入口地址IE0(外部中断0)0003HTF0(定时器0溢出中断)000BHIE1(外部中断1)0013HTF1(定时器1溢出中断)001BHRI+TI(串行口中断)0023H表3.2MCS-51单片机中断服务程序入口地址表从表中可以看出,两相邻中断源的入口地址间隔为8个单元。这意味着如果要把中断源对应的中断服务程序从入口地址开始存放,则程序的长度不能超过8个字节,否则会影响到下一个中断源的入口地址的使用。而通常的情况下,中断服务程序的长度不止8个字节,因此,常见的处理方法是:在入口地址处存放一条无条件转移指令,通过这条转移指令转向对应的中断服务程序入口,中断服务程序以RETI为结束。中断请求的撤销:CPU响应中断请求,在中断返回(RETI)之前,该中断请求应被撤除,否则会引发另一次中断。南京晓庄学院2012届本科毕业设计6定时/计数器中断请求撤销:CPU在响应中断后,由硬件自动清除中断请求标志TF。外部中断请求撤销:如果采用脉冲触发方式,CPU在响应中断后,由硬件自动清除中断请求标志IE;对于电平触发方式的外部中断请求,中断标志的撤销是自动的,由于造成中断请求的低电平继续存在,所以在响应中断后再次会产生中断请求,为此响应中断后要撤销外部信号。2.每秒钟的设定延时方法可以有两种一中是利用MCS-51内部定时器才生溢出中断来确定1秒的时间,另一种是采用软延时的方法。3.计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到TH和TL中的。我们可以把计数器记满为零所需的计数值设定为C和计数初值设定为TC可得到如下计算通式:TC=M-C七.实验程序#includereg51.h#defineucharunsignedchar#defineuintunsignedintsbitR1=P2^0;//东西红灯sbitY1=P2^1;//东西黄灯sbitG1=P2^2;//东西绿灯sbitR2=P2^3;//南北红灯sbitY2=P2^4;//南北黄灯sbitG2=P2^5;//南北绿灯sbitZ1=P2^6;//南北人行道绿灯sbitZ2=P2^7;//东西人行道绿灯sbitK0=P3^0;//全部禁行开关sbitK1=P3^2;//主干道通行开关sbitK2=P3^3;//支道通行开关sbitJG=P3^6;//全部禁行警报uchara=0,m,k,h;ucharcodedis[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90,0Xff};//断码voiddelay(ucharx)//延时{ucharj;南京晓庄学院2012届本科毕业设计7while(x--)for(j=0;j120;j++);}xianshi()//显示部分{while(1){while(1){G1=1;R1=0;Y1=1;JG=0;G2=0;R2=1;Y2=1;Z2=0;Z1=1;k=35;h=30;while(1)//主干道通行35s{if(K0==0)break;//判断K0是否被按下,如果按下跳出本循环P0=0x01;P1=dis[k/10];delay(2);P0=0x02;P1=dis[k%10];delay(2);P0=0x04;P1=dis[h/10];delay(2);P0=0x08;P1=dis[h%10];delay(2);if(k==0)break;if(h==0){h=5;G2=1;R2=1;Y2=0;}}if(K0==0)break;//再判断一次K0,跳出本循环G1=0;R1=1;Y1=1;JG=0;G2=1;R2=0;Y2=1;Z2=1;Z1=0;k=20;h=25;while(1)//支道通行25s{南京晓庄学院2012届本科毕业设计8
本文标题:单片机交通灯实验报告
链接地址:https://www.777doc.com/doc-5840158 .html