资源描述
第 1 页 共 20 页 南华大学电气工程学院 电子技术课程设计设计题目设计题目: 简易交通信号灯控制器简易交通信号灯控制器 专专 业:业: 电力系统及其自动化电力系统及其自动化 学生姓名学生姓名: 学学 号号: 起迄日期起迄日期: 2011 年 1 月 3 日 2011 年 1 月 14 日 指导教师指导教师: 教研室主任:教研室主任: 第 2 页 共 20 页 目 录引言.31 设计任设计任务务.31.1 设计任务.32 模块的方案选择与论证模块的方案选择与论证.52.1 显示模块.52.2 交通灯控制模块.53 系统硬件设计系统硬件设计.63.1 交通管理的方案论证.63.2 硬件系统框图.63.3 单片机的选取介绍 .63.4 显示模块原理图.103.5 交通灯控制模块原理图.104 系统软件设计系统软件设计.114.1 主程序设计.115 心得体会心得体会.136 参考文献参考文献.13附录附录 1 系统原理图系统原理图.16附录附录 2 程序清单程序清单.17第 3 页 共 20 页 引言 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段, 但这一技术在 19 世纪就已出现了。 信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件相结合,加以完善。交通信号灯控制方式很多。如采用 MSC-51 系列单片机 ATSC51 和可编程并行I/O 接口芯片 8255A 为中心器件来设计交通灯控制器,实现了能根据实际车流量通过 8051 芯片的 P1 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩 5 秒时黄灯闪烁警示(交通灯信号通过 PA 口输出,显示时间直接通过8255 的 PC 口输出至双位数码管)绿灯时间通过双位数码管显示。本系统实用性强、操作简单、扩展功能强。 第 4 页 共 20 页 1.1 设计任务设计任务 图 1.1 路况模拟图(1)技术要求: 定周控制:主干道(东西)绿灯 45s,支干道(南北)绿灯25s; 每次由绿灯变为红灯时,应有 5s 黄灯亮作为过渡; 分别用红、黄、绿色发光二极管表示信号灯; 设计计时显示电路。(2)工作要求:利用电子技术基础理论,分析系统工作原理,设计系统总体框图和各功能模块的电路图;掌握计算机辅助设计方法,利用 Multisim 对电路进行仿真设计;第 5 页 共 20 页熟悉常用的电子元器件操作使用和测试方法;掌握电子电路安装调试技术,选择合适的元器件搭接实际电路,掌握电路的测试和故障排除方法。2 各模块的方案选择和论证各模块的方案选择和论证2.1 计时显示模块计时显示模块根据作品的设计,显示器的选择有以下二种方案:方案一:用 12864 液晶显示。12864 液晶可以清楚的显示汉字、字符、 数字等,并且自带中文字库,能够很好的显示所需的各项内容,并且电路连接比较简单。但是价格昂贵,并且一般为蓝屏显示不是很醒目,不适合作交通灯的计时显示屏。方案二:使用传统的数码管显示模块来显示。数码管的显示比较简单,并且使用时不需要进行初始化的设置,且能够显示清楚。并且在模拟交通灯控制系统时很形象且颜色为红色,很醒目。基于以上二种方案,从作品的要求,性能,成本等多方面考虑,在本作品中选用数码管很好的实现了设计要求。2.2 交通灯控制模块交通灯控制模块 通过 51 单片机的三个 IO 口控制红黄绿三个发光二极管。第 6 页 共 20 页小结小结:经过一系列的论证,系统最终采用的模块如下:显示模块显示模块:通过 51 单片机控制 2 位数码管灯光控制模快:灯光控制模快:通过 51 单片机控制发光二极管3 .系统硬件设计3.13.1 交通管理的方案论证东西、南北两干道交于一个十字路口,东西为主干道,南北为支干道,各干道有一组红、黄、绿三色的指示灯。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设东西道比南北道的车流量大,红灯时间短,绿灯时间长。指示灯亮灭的方案:表 3.1 3.2 硬件系统框硬件系统框图图 根据设计的要求,系统的硬件原理框图如图 3.2 所示: 单单片片机机键键盘盘LED显显示示三三色色指指示示灯灯 图 3.225S5S45S5S东西道红灯亮黄灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮黄灯亮第 7 页 共 20 页3.3 单片的机选取及介绍单片的机选取及介绍 单片机可选用 AT89C51,它与 8051 系列单片机全兼容,但其内部带有 1*4KB 的 FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采用 2 个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的 IO 口不够用时,可以考虑扩展 8255 或 8155 满足系统的要求。MSC-51 芯片简介MCS-51 单片机内部结构 8051 是 MCS-51 系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。 8051 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器: 中央处理器(CPU)是整个单片机的核心部件,是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码,CPU 负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM) 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的 RAM 只有 128 个,可存放读写的数据,运算的中间结果或用户定义的字型表。图 3.2 8051 内部结构程序存储器(ROM):8051 共有 4096 个 8 位掩膜 ROM,用于存放用户程序,原始数据或表格。第 8 页 共 20 页定时/计数器(ROM):8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051 共有 4 组 8 位 I/O 口(P0、 P1、P2 或 P3),用于对外部数据的传输。全双工串行口:8051 内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:中断系统:8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有 2 级的优先级别选择。时钟电路:时钟电路:8051 内置最高频率达 12MHz 的时钟电路,用于产生整个单片机运行的脉冲时序,但 8051 单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL 的 MCS-51 系列单片机采用的是哈佛结构的形式,而后续产品 16 位的 MCS-96 系列单片机则采用普林斯顿结构。下图是 MCS-51 系列单片机的内部结构示意图第 9 页 共 20 页 图 3.3 MCS-51 的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以说明:MCS-51 的引脚说明:MCS-51 系列单片机中的 8031、8051 及 8751 均采用 40Pin 封装的双列直接 DIP结构,右图是它们的引脚配置,40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共 32 个 I/O 口,中断口线与 P3 口线复用。现在我们对这些引脚的功能加以说明: 第 10 页 共 20 页 图 3.4 Pin9:RESET/Vpd复位信号复用脚,当 8051 通电,时钟电路开始工作,在RESET 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器 PC 指向 0000H,P0-P3 输出口全部为高电平,堆栈指针写入 07H,其它专用寄存器被清“0”。RESET 由高电平下降为低电平后,系统即从 0000H地址开始执行程序。然而,初始复位不改变 RAM(包括工作寄存器 R0-R7)的状态,8051 的初始态。8051 的复位方式可以是自动复位,也可以是手动复位,见下图 4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据不丢失。 图 3.5 Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE 端将有一个 1/6 时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE 会跳过一个脉冲。如果单片机是 EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC 的 16 位地址数据将出现在 P0 和 P2 口上,外部程序存储器则把指令数据放到 P0 口上,由 CPU 读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051 和 8751 单片机,内置有 4kB的程序存储器,当 EA 为高电平并且程序地址小于 4kB 时,读取内部程序存储器第 11 页 共 20 页指令数据,而超过 4kB 地址则读取外部指令数据。如 EA 为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的 8031,EA端必须接地。在编程时,EA/Vpp脚还需加上 21V 的编程电压3.4 显示模块原理图:显示模块原理图: 图 3.63.5 交通灯控制模块原理图:交通灯控制模块原理图: 通过 P20, P20, P20 控制红绿蓝三个发光二极管:第 12 页 共 20 页 图 3.7与发光二极管相串联电阻阻值的计算:vcc:+5V,二极管管压降:1.7V,流过二极管电流:约 3mA。由欧姆定律: R=(51.7)*1000/3=1K (式 3.1) 4.系统的软件设计:系统的软件设计:4.1 主程序流程图主程序流程图第 13 页 共 20 页 5 心得体会及总结心得体会及总结 本系统要求对单片机的中断、定时器有较高级的应用。同时也需要设计者开始考虑当多个模块特别是当对定时器,中断的使用时如何来分配时序的问题,这也是今后做大系统所必须具备的软件思维能力。通过做本系统的锻炼,明白了写复杂程序所必备的逻辑思维能力,是一次很好的锻炼机会。同时,在制作过程中遇到的困难,以及解决的过程又使我们充分体会到了团队合作的重要性。增强了解决困难的能力。 通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是 C 语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。 最后要感谢指导老师的耐心答疑,身边同学的无私帮助,让我顺利完成设计,并从中学到了许多课本上没有的知识,再次感谢他们!初始化初始化 数码管显示数码管显示开始开始绿灯亮绿灯亮 45s45s黄灯闪烁黄灯闪烁 5s5s红灯亮红灯亮 25s25s黄灯闪烁黄灯闪烁 5 5 秒秒第 14 页 共 20 页参考文献参考文献1安玉景,李雪莹.电子技术基础实验M.北京:人民邮电出版社,1998, 1.2杨元挺,唐果南.电子技术技能训练M.北京:电子工业出版社,2002, 1.3卢结成,高世忻,陈力生等.电子电路实验及应用课题设计M.合肥:中国科学技术出版社,2006, 3.4黄仁欣.电子技术实践与训练M.北京:清华大学出版社,2004, 9.5何立民.单片机高级教程应用与设计:北京航空航天大学出版社,2007.1第 15 页 共 20 页附录附录 1 系统原理图第 16 页 共 20 页附录二附录二 原程序#include#define uchar unsigned char#define uint unsigned intuchar code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71; uchar code table1=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;uchar num=0,num1,shi,ge;void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);第 17 页 共 20 页void main() while(1) TMOD=0 x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;num=45;/主干道绿灯亮支道红灯亮主干道绿灯亮支道红灯亮 45 秒秒 while(num!=0) P2=0X7b;P1=0 xfb;P0=tablege; delay(5);P1=0 xf7;P0=tableshi;delay(5);第 18 页 共 20 页TR0=1;num=5;/主干道支道黄灯亮主干道支道黄灯亮 5 秒秒 while(num!=0) P2=0Xbd;P1=0 xfb;P0=tablege; delay(5);P1=0 xf7;/P0=tableshi;P0=0 x3f;delay(5);TR0=1;num=25;/主干道红灯亮支道绿灯亮主干道红灯亮支道绿灯亮 25 秒秒 while(num!=0) P2=0Xde;第 19 页 共 20 页P1=0 xfb;P0=tablege; delay(5);P1=0 xf7;P0=tableshi;delay(5);void T0_time() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;num1+;if(num1=20) num1=0; num=num-1;if(num=0) TR0=0;第 20 页 共 20 页 shi=num/10;ge=num%10;
展开阅读全文