单片机交通灯实验报告_第1页
单片机交通灯实验报告_第2页
单片机交通灯实验报告_第3页
单片机交通灯实验报告_第4页
单片机交通灯实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学校代码:11460 南京晓庄学院本科生毕业综合设计 交通灯控制系统设计 Traffic light control system design 院 系:物理与电子工程学院 专 业: 电子信息科学与技术 成 员:郁艇妹 (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.芯片 AT89C52 AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写 的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器( RAM),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中 央处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制 2 应用场合。 AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规 方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别 是可反复擦写的 Flash 存储器可有效地降低开发成本。 主要功能特性: 兼容 MCS51 指令系统 8k 可反复擦写(1000 次)Flash ROM 32 个双向 I/O 口 256x8bit 内部 RAM 3 个 16 位可编程定时/计数器中断 时钟频率 0-24MHz 2 个串行中断 可编程 UART 串行通道 2 个外部中断源 共 6 个中断源 2 个读写中断口线 3 级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 四 实验流程图 (一)实现方法 (1)在设计中利用软件程序延时的方法来控制红(绿)的亮的时间。考虑延时时间较 长所以先用 T0 产生终端然后通过计数的方法来实现延时。利用口的 P1.1、P1.2、P1.3 作为红绿灯控制端口。 (2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一块与 P1.1 相连。同样 南北向的红灯连在一块,东西向的绿灯连在一块,他们一块与 P1. 2 相连,四个黄灯连在 一块与 P1.3 相连。 (二)流程图 南京晓庄学院 2012 届本科毕业设计 3 开 始 南北红东西绿 30s 倒计时显 示 黄灯亮 5s 南北绿东西红 黄灯亮 5s 25s 倒计时显 示 五硬件设计 1单片机的结构 单片微机(Single-Chip Microcomputer)简称为单片机。它在一块芯片上集中成了中央 处理单元 CPU、随机存储器 RAM、只读存储器 ROM、定时/计数和多功能输入/输出 I/O 口, 如并行口 I/O、串行口 I/O 和转换 A/D 等。就其组成而言,一块单片机就是一台计算机。 由于它具有体积小、功能强和价格便宜等优点,因而被广泛地应用于产品智能化和工业控 制自动化上。 2主要元器件选择 (1). 开关管的选择:BUTTON 按钮 (2). LED 发光二极管 LEDRED, LEDYELLOW ,LDEGREEN (3). 二位一体数码管 7SEG-MPX2-CAT-RED:共阳数码管(红色) (4). PN4249:驱动三极管 (5). AT89S51 系列单片机 3设计显示部分 LED 数码显示部分。LED 数码显示部分由七段数码显示管组成。 发光二极管显示原理: 发光二极管是采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个 PN 结, 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 请求中 断处理。 IT0=1RCONEFXSA中断优先级IP 南京晓庄学院 2012 届本科毕业设计 5 RI、TI:串行中断,RI 是接收,TI 为发送。单片机串行口接收到一个字符后 RI 置 1,发送完一个字符 TI 置 1。值得注意的是,RI、TI 在响应中断后,必须由用指令将其复 位。 中断响应: CPU 在执行程序的过程中,在每个机器周期的 S5P2 对中断标志位按中断优先级进行 查询,一旦查询到有中断请求,CPU 只要不在执行同级或高级的中断服务程序和当前指令 (RETI 指令或访问 IE、IP 的指令除外)执行完毕两种情况,则响应中断。如果当前正在 执行的指令是 RETI 或访问 IE、IP 的指令,则当前指令执行完毕后,CPU 才可响应中断。 中断响应时间可以从中断信号被查询开始算起,中断响应时间在以下三种情况下,响应时 间还会更长: CPU 正在执行一个比要响应的中断源优先级相等或更高的中断源的中断服务程序, 此时须等到中断服务程序执行完毕才可中断响应。 正在执行的当前指令不是在最后一个机器周期,只有指令执行完后才响应中断。 如果当前执行的是 RETI 或访问 IE、IP 的指令,则当前指令执行完毕后,CPU 需 再执行一条指令才可以中断响应,因此附加等待响应时间不会超过 5 个机器周期。 中断入口: 单片机响应中断后,将转向特定的入口进行中断服务,单片机的中断入口地址如表 3.2 所示。 中 断 源 入 口 地 址 IE0(外部中断 0) 0003H TF0(定时器 0 溢出中断) 000BH IE1(外部中断 1) 0013H TF1(定时器 1 溢出中断) 001BH RI+TI(串行口中断) 0023H 表 3.2 MCS-51 单片机中断服务程序入口地址表 从表中可以看出,两相邻中断源的入口地址间隔为 8 个单元。这意味着如果要把中断 源对应的中断服务程序从入口地址开始存放,则程序的长度不能超过 8 个字节,否则会影 响到下一个中断源的入口地址的使用。而通常的情况下,中断服务程序的长度不止 8 个字 节,因此,常见的处理方法是:在入口地址处存放一条无条件转移指令,通过这条转移指 令转向对应的中断服务程序入口,中断服务程序以 RETI 为结束。 中断请求的撤销: 6 CPU 响应中断请求,在中断返回(RETI)之前,该中断请求应被撤除,否则会引发另 一次中断。 定时/计数器中断请求撤销: CPU 在响应中断后,由硬件自动清除中断请求标志 TF。 外部中断请求撤销:如果采用脉冲触发方式,CPU 在响应中断后,由硬件自动清除中 断请求标志 IE;对于电平触发方式的外部中断请求,中断标志的撤销是自动的,由于造成 中断请求的低电平继续存在,所以在响应中断后再次会产生中断请求,为此响应中断后要 撤销外部信号。 2.每秒钟的设定 延时方法可以有两种一中是利用 MCS-51 内部定时器才生溢出中断来确定 1 秒的时间, 另一种是采用软延时的方法。 3.计数器初值计算 定时器工作时必须给计数器送计数器初值,这个值是送到 TH 和 TL 中的。我们可以把 计数器记满为零所需的计数值设定为 C 和计数初值设定为 TC 可得到如下计算通式: TC=M-C 七实验程序 #include #define uchar unsigned char #define uint unsigned int sbit R1=P20; /东西红灯 sbit Y1=P21; /东西黄灯 sbit G1=P22; /东西绿灯 sbit R2=P23; /南北红灯 sbit Y2=P24; /南北黄灯 sbit G2=P25; /南北绿灯 sbit Z1=P26; /南北人行道绿灯 sbit Z2=P27; /东西人行道绿灯 sbit K0=P30; /全部禁行开关 sbit K1=P32; /主干道通行开关 sbit K2=P33; /支道通行开关 sbit JG=P36; /全部禁行警报 uchar a=0,m,k,h; uchar code dis= 0Xc0, 0Xf9, 0Xa4, 0Xb0, 0X99, 0X92, 0X82, 0Xf8, 0X80, 0X90, 0Xff; /断码 void delay(uchar x) /延时 南京晓庄学院 2012 届本科毕业设计 7 uchar j; while(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=disk/10; delay(2); P0=0x02; P1=disk%10; delay(2); P0=0x04; P1=dish/10; delay(2); P0=0x08; P1=dish%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; 8 while(1) /支道通行 25s if(K0=0) break; P0=0x01; P1=disk/10; delay(2); P0=0x02; P1=disk%10; delay(2); P0=0x04; P1=dish/10; delay(2); P0=0x08; P1=dish%10; delay(2); if(h=0) break; if(k=0) k=5; G1=1; R1=1; Y1=0; if(K0=0) break; if(K0=0) while(1) /全部禁止通行 G1=1;R1=0;Y1=1;JG=1;P0=0x00; G2=1;R2=0;Y2=1;Z2=1;Z1=1; if(K0!=0) break; void zhutong() interrupt 0 /主干道通行,支道禁止通行 EX0=0; m=P2; if(K1=0) 南京晓庄学院 2012 届本科毕业设计 9 while(1) G1=1;R1=0;Y1=1;JG=0;P0=0x00; G2=0;R2=1;Y2=1;Z2=0;Z1=1; if(K1!=0)break; P2=m; EX0=1; void zhitong() interrupt 2 /支道通行,主干道禁止通行 EX1=0; m=P2; if(K2=0) while(1) G1=0;R1=1;Y1=1;JG=0;P0=0x00; G2=1;R2=0;Y2=1;Z2=1;Z1=0; if(K2!=0)break; P2=m; EX1=1; void dss() interrupt 1 /1s 的定时 a=a+1; if(a=10) k-; h-; a=0; TH0=0x3C; TL0=0xB0; void main() TMOD=0x01; TH0=0x3C; TL0=0xB0; /6M 晶振,100ms 初值 10 ET0=1; TR0=1; EA=1; EX1=1; EX0=1; IT0=0; IT1=0; PX0=1;PX1=1; xianshi(); while(1); 八系统仿真 vc rst p2.0 p2.3p1. p1.4 p1.5 p1.6 p1.0.p1.2p1.4.5p1.6 p1.0p1. p1.2 p1.5 .1 p3.0.1p3.2.p3.5.6 p3.7 .p3.0.1p3.2.p3.4.5p3.6.7 .4 P01P0.2.3P0.4.5P0.6 .7 p2.0.1 P2.0.1P23 P01P0.2.3P0.4.5P0.6.7 P3.0.1P3.2.P3.4.5P3.6.7 P23 P1.2 P1.0 P1.4 P1.6 XTAL218XTAL119 ALE301PSN29RST 9 P0./AD039.1/18P0.2/AD

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论