毕业设计(论文)-基于单片机的智能交通灯.doc_第1页
毕业设计(论文)-基于单片机的智能交通灯.doc_第2页
毕业设计(论文)-基于单片机的智能交通灯.doc_第3页
毕业设计(论文)-基于单片机的智能交通灯.doc_第4页
毕业设计(论文)-基于单片机的智能交通灯.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

本科生毕业论文( (设计) ) 基于基于单单片机的智能交通灯片机的智能交通灯 院院 系系 电气信息工程学院电气信息工程学院 专专 业业 电子信息工程电子信息工程 班班 级级 0505 级本科级本科 2 2 班班 学学 号号 学学 生生 姓姓 名名 联联 系系 方方 式式 指指 导导 教教 师师 职称职称 教授教授 20092009 年年 5 5 月月 独 创 性 声 明 本人郑重声明:所呈交的毕业论文(设计)是本人在指导老师指导下取得的研究成 果。除了文中特别加以注释和致谢的地方外,论文(设计)中不包含其他人已经发表或 撰写的研究成果。与本研究成果相关的所有人所做出的任何贡献均已在论文(设计)中 作了明确的说明并表示了谢意。 签名: 年 月 日 授权声明 本人完全了解许昌学院有关保留、使用本科生毕业论文(设计)的规定,即:有权 保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文 (设计)被查阅和借阅。本人授权许昌学院可以将毕业论文(设计)的全部或部分内容 编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编论文(设 计) 。 本人论文(设计)中有原创性数据需要保密的部分为(如没有,请填写“无” ): 签名: 年 月 日 指导教师签名: 年 月 日 摘摘 要要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测 技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心 部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完 善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实 现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本 系统采用 mcs-51 系列单片机和可编程并行 i/o 接口芯片 8255a 为中心器件来设计交通 灯控制器,实现了能根据节假日和上下班高峰期来设置红、绿灯燃亮时间的功能,以缓 解交通压力;红绿灯循环点亮,倒计时剩 5 秒时黄灯闪烁警示(交通灯信号通过 pa,p1 口输出,显示时间直接通过 8255 的 pc,pb 口输出至双位数码管) ;本系统实用性强、 操作简单、扩展功能强。 关键词:单片机 ; 交通灯 ; 发光二极管 abstract in recent years, along with the rapid development of science and technology, single chip microcomputer application is at the same time, traditional detection technology to control the growing update. in the real-time detection and automatic control of the scm applications, often scm, as a core component to the use of only scm knowledge is not enough, should also be based on the specific hardware structure of the combination of hardware and software, to be improved. the crossroads of the shuttle vehicle, bustling pedestrians, motor car lanes, one on the pavement, and orderly. so what orderly order to achieve this it? rely on the automatic traffic signal chain of command. there are many ways to control traffic lights. the present system mcs-51 series scm and parallel i / o interface chip 8255a-centric device designed to control traffic lights, can be achieved on the basis of holiday and during the rush hour to set up the mouth of the p1 red, green fuel liang function of time,in order to ease the traffic pressure;traffic lights to light up the cycle, the countdown 5 seconds left when the yellow light flashing a warning (traffic light signals through the mouth pa ,p1output, indicating the time directly through the pb and pcs 8255 output port to double-digital control); the system practical, simple, strong and expanded. key words :single chip microcomputer;traffic light;light emiting diode 目 录 1 绪论 1 1.1 课题背景.1 1.2 单片机控制交通灯的特点 1 1.3 论文构成及研究内容 2 2 单片机概述.3 2.1 单片机介绍.3 2.2 单片机应用领域 3 2.3 本章小结.4 3 芯片简介 5 3.1 msc-51 芯片简介5 3.2 8255 芯片简介.8 3.3 本章小结 9 4 系统硬件设计 .10 4.1 交通管理的方案设计10 4.2 系统硬件设计11 4.2.1 系统总框图如下11 4.2.2 交通灯硬件电路图 .11 423 系统的运行机理 .13 4. 3 本章小结 13 控制器的软件设计 14 5.1 定时 1 秒钟的方法14 5.1.1 定时器硬件定时 1 秒钟14 5.1.2 软件定时 1 秒钟 .15 5.2 交通灯及时间的显示 .16 5.2.1 8051 并行口的扩展.16 5.2.2 交通灯显示原理 .16 5.2.3 8255pa 口输出信号接信号灯17 5.2.4 8255 输出信号与数 led 显示器的连接17 5.2.5 8255 与 8051 的连接.18 5.3 程序设计 .18 5.3.1 流程图的绘制18 5.3.2 程序源代码 .20 5.4 本章小结24 6 总结与收获 .25 6.1 总结 .25 6.2 收获 .25 参考文献 .26 致 谢 .27 1 单片机控制红绿灯 1 绪论 1.11.1 课题背景课题背景 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效 的手段。但这一技术在 19 世纪就已出现了。 1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械 扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年, 英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世 界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示 “停止” ,绿色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂 被取消。 电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组 成,1914 年始安装于纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿 灯亮表示“通行” 。 1918 年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一 种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器 来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯 当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把 信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。 随着时代的发展,社会的进步,更加智能的交通灯出现了,如基于单片机, plc 和 fpga 的红绿灯如雨后春竹般涌现了出来,为人们的出行安全保驾护航。 1.21.2 单片机控制交通灯的特点单片机控制交通灯的特点 此交通灯设计是基于 mcs-51 单片机而研制的,而 mcs-51 系列单片机有基 于复杂指令集(cisc)的单片机内核,虽然其速度不快,12 个振荡周期才执行 一个单周期指令,但其端口结构为准双向并行口,可兼有外部并行总线,故使 其扩展性能非常强大。51 的内部硬件预设,可用特殊功能寄存器对其进行编辑。 2 故单片机控制的交通灯具有价格低廉,且稳定性好,扩展能力强等优点, 适合大规模使用。此交通灯之所以称为智能的是因为它能根据节假日和上下班 高峰期来自动调节红绿灯点亮时间(节假日绿灯点燃时间长一点) ,以此来缓解 车流量大的压力,实用性很强。 1.31.3 论文构成及研究内容论文构成及研究内容 本论文以 mcs-51 系列单片机为设计原型,重点介绍了此单片机的内部构造, 使用方法及其原理,其中可编程并行接口芯片 8255 的应用也十分重要,是单片 机重要的 i/o 扩展端口,当然充当输出设备的 led 数码管也不可缺少,他们共 同构成了一个完善的交通灯系统。论文先探讨了下交通灯的重要性,紧接着介 绍了单片机及其发展,后又详细介绍了 mcs-51 单片机系列,8255 芯片的内部 构造,最后给出了交通灯的系统硬件设计和控制器的软件设计。 此论文主要研究 mcs-51 单片机与 8255 及 led 的连接方法,如何根据要求 设计系统硬件和对控制器的软件设计等问题,其中编写源程序也是主要的研究 内容(本文以汇编语言为源程序) ,通过本论文对单片机有了更深一步的认识和 了解。 3 2 2 单片机概述单片机概述 2.12.1 单片机介绍单片机介绍 单片机又称单片微控制器 ,它不是完成某一个逻辑功能的芯片 ,而是把 一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机 。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。 同时,学习使用单片机是了解计算机原理与结构的最佳选择。 单片机内部也用和电脑功能类似的模块,比如cpu,内存,并行总线, 还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的 家用电脑弱很多,不过价钱也是低的,一般不超过10 元即可用它来 做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗 衣机、排烟罩、 vcd 等等的家电里面都可以看到它的身影! 它主要 是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较 强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用pc) 的主要区别。 单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能, 尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的, 有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50 年代开发的 74 系列,或者 60 年代的 cd4000 系列这些纯硬件来搞定的话, 电路一定是一块大 pcb 板!但是如果要是用美国 70 年代成功投放市场的系 列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实 现高智能,高效率,以及高可靠性! 2.22.2 单片机应用领域单片机应用领域 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单 片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯 4 与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 ic 卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的控 制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控 制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应 用将造就一批计算机应用与智能化控制的科学家、工程师。 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设 备的智能化管理及过程控制等领域 。 2.32.3 本章小结本章小结 本章对单片机做了简单的介绍,本文以 mcs-51 单片机为研究对象。 5 3 3 芯片简介芯片简介 3.13.1 msc-51msc-51 芯片简介芯片简介 mcs-51 单片机内部结构 8051 是 mcs-51 系列单片机的典型产品,我们以这一代表性的机型进行系 统的讲解。 8051 单片机包含中央处理器、程序存储器(rom)、数据存储器(ram)、定 时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线 和控制总线等三大总线,现在我们分别加以说明: 中央处理器: 中央处理器(cpu)是整个单片机的核心部件,是 8 位数据宽度的处理器, 能处理 8 位二进制数据或代码,cpu 负责控制、指挥和调度整个单元系统协调 的工作,完成运算和控制输入输出功能等操作。 数据存储器(ram) 8051 内部结构如图 1 有 128 个 8 位用户数据存储单元和 128 个专用寄存 器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只 能访问,而不能用于存放用户数据,所以,用户能使用的 ram 只有 128 个,可 存放读写的数据,运算的中间结果或用户定义的字型表。 图 3-1 8051 内部结构 程序存储器(rom): 6 8051 共有 4096 个 8 位掩膜 rom,用于存放用户程序,原始数据或表格。 定时/计数器(rom): 8051 有两个 16 位的可编程定时/计数器,以实现定时或计数产生中断用 于控制程序转向。 并行输入输出(i/o)口: 8051 共有 4 组 8 位 i/o 口(p0、 p1、p2 或 p3),用于对外部数据的传输。 中断系统: 8051 具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一 个串行中断,可满足不同的控制要求,并具有 2 级的优先级别选择。 时钟电路: 8051 内置最高频率达 12mhz 的时钟电路,用于产生整个单片机运行的脉冲 时序,但 8051 单片机需外置振荡电容。 单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式, 即哈佛(harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据 存储器合二为一的结构,即普林斯顿(princeton)结构。 下图是 mcs-51 系列单片机的内部结构示意图 3-2。 7 图 3-2 mcs51 结构框图 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 口线复用。 现在我们对这些引脚的功能加以说明:如图 3-3 图 3-3 mcs51 引脚图 pin9:reset/vpd复位信号复用脚,当 8051 通电,时钟电路开始工作,在 reset 引脚上出现 24 个时钟周期以上的高电平,系统即初始复位。初始化后, 程序计数器 pc 指向 0000h,p0-p3 输出口全部为高电平,堆栈指针写入 07h, 其它专用寄存器被清“0” 。reset 由高电平下降为低电平后,系统即从 0000h 地址开始执行程序。然而,初始复位不改变 ram(包括工作寄存器 r0-r7)的状 态,8051 的初始态。 8051 的复位方式可以是自动复位,也可以是手动复位,见下图。此外, 8 reset/vpd还是一复用脚,vcc掉电其间,此脚可接上备用电源,以保证单片机 内部 ram 的数据不丢失。 pin30:ale/当访问外部程序器时,ale(地址锁存)的输出用于锁存地 址的低位字节。而访问内部程序存储器时,ale 端将有一个 1/6 时钟频率的正 脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外 输出。更有一个特点,当访问外部程序存储器,ale 会跳过一个脉冲。 pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,pc 的 16 位地址数据将出现在 p0 和 p2 口上,外部程序存储器则把指令数据放到 p0 口上,由 cpu 读入并执行。 pin31:ea/vpp程序存储器的内外部选通线,8051 和 8751 单片机,内置有 4kb 的程序存储器,当 ea 为高电平并且程序地址小于 4kb 时,读取内部程序存 储器指令数据,而超过 4kb 地址则读取外部指令数据。如 ea 为低电平,则不管 地址大小,一律读取外部程序存储器指令。在编程时,ea/vpp脚还需加上 21v 的编程电压。 3.2 8255 芯片简介芯片简介 8255 可编程并行接口芯片有三个输入输出端口,即 a 口、b 口和 c 口,对 应于引脚 pa7pa0、pb7pb0 和 pc7pc0。其内部还有一个控制寄存器,即 控制口。通常 a 口、b 口作为输入输出的数据端口。c 口作为控制或状态信息的 端口,它在方式字的控制下,可以分成 4 位的端口,每个端口包含一个 4 位锁 存器。它们分别与端口 a配合使用,可以用作控制信号输出或作为状态信 号输入。 8255 可编程并行接口芯片方式控制字格式说明: 8255 有两种控制命令字;一个是方式选择控制字;另一个是 c 口按位置位 9 复位控制字。其中 c 口按位置位复位控制字方式使用较为繁难,说明也较 冗长,故在此不作叙述,需要时用户可自行查找有关资料。 方式控制字格式说明如表 3-1: 表 3-1 d7:设定工作方式标志,1 有效。 d6、d5:a 口方式选择 0 0 方式 0 0 1 方式 1 1 方式 2 d4:a 口功能 (1=输入,0=输出) d3:c 口高 4 位功能 (1=输入,0=输出) d2:b 口方式选择 (0=方式 0,1=方式 1) d1:b 口功能 (1=输入,0=输出) d0:c 口低 4 位功能 (1=输入,0=输出) 8255 可编程并行接口芯片工作方式说明: 方式 0:基本输入输出方式。适用于三个端口中的任何一个。每一个端 口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式 1:选通输入输出方式。这时 a 口或 b 口的 8 位外设线用作输入或 输出,c 口的 4 条线中三条用作数据传输的联络信号和中断请求信号。 方式 2 :双向总线方式。只有 a 口具备双向总线方式,8 位外设线用作输 入或输出,此时 c 口的 5 条线用作通讯联络信号和中断请求信号。 3.33.3 本章小结本章小结 本章主要对 mcs-51 芯片,8255 芯片,等芯片做了简要的介绍和说明。 d7d6d5d4d3d2d1d0 10 4 4 系统硬件设计系统硬件设计 4.14.1 交通管理的方案设计交通管理的方案设计 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指 示灯及转弯指示灯(绿色亮表示可以转弯,绿色灭表示禁止转弯) ,设东西道比 南北道的车流量大。以下为非节假日方案设计,节假日只需改下红绿灯亮灭时 间即可。 (一)南北方向通行,东西方向禁止(40s) (1)由南到北先通行 10s 可以转弯(绿灯) ,由北到南禁行 10s(红灯) 。 (2)由北向南通行 10s 可以转弯(绿灯) ,由南向北禁行 10s(红灯) 。 (3)南北双行均绿灯 20s 不可以转弯。 此期间东西双方向一直红灯,禁行(40s)。 (二)东西南北方向均为黄灯时间(5s) (三)东西方向通行,南北方向禁止(60s) (1)由东向西先通行 10s 可以转弯(绿灯) ,由西向东禁行 10s(红灯) 。 (2)由西向东通行 10s 可以转弯(绿灯) ,由东向西禁行 10s(红灯) 。 (3)东西双向均亮绿灯 40s 不可以转弯。 此期间南北双方向一直红灯,禁行(60s) 。 (四)东西南北方向由切换为黄灯。 西 东 图 4-1 十字路口图 南 北 11 4.24.2 系统硬件设计系统硬件设计 选用设备 :8051 单片机一片,8255 并行通用接口芯片一片,共阴 极的七段数码管两个,双向晶闸管若干,红、黄、绿交通灯若干,连线若 干。 4.2.1 系统总框图如下系统总框图如下 图 4-2 系统框架图 片 选 8051 系 统处理 p1 口 判断是否为节假日 来设置时间参数 8255a 扩 行 展 接 cpu 口 的 并 锁 存 时间 显示 交通 灯 12 4.2.24.2.2 交通灯硬件电路图交通灯硬件电路图 13 d0 34 d1 33 d2 32 d3 31 d4 30 d5 29 d6 28 d7 27 rd 5 wr 36 a0 9 a1 8 reset 35 cs 6 pa0 4 pa1 3 pa2 2 pa3 1 pa4 40 pa5 39 pa6 38 pa7 37 pb0 18 pb1 19 pb2 20 pb3 21 pb4 22 pb5 23 pb6 24 pb7 25 pc0 14 pc1 15 pc2 16 pc3 17 pc4 13 pc5 12 pc6 11 pc7 10 u1 8255a xtal2 18 xtal1 19 ale 30 ea 31 psen 29 rst 9 p0.0/ad0 39 p0.1/ad1 38 p0.2/ad2 37 p0.3/ad3 36 p0.4/ad4 35 p0.5/ad5 34 p0.6/ad6 33 p0.7/ad7 32 p2.7/a15 28 p2.0/a8 21 p2.1/a9 22 p2.2/a10 23 p2.3/a11 24 p2.4/a12 25 p2.5/a13 26 p2.6/a14 27 p1.0 1 p1.1 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 p3.0/rxd 10 p3.1/txd 11 p3.2/int0 12 p3.3/int1 13 p3.4/t0 14 p3.7/rd 17 p3.6/wr 16 p3.5/t1 15 u2 80c51 d0 3 q0 2 d1 4 q1 5 d2 7 q2 6 d3 8 q3 9 d4 13 q4 12 d5 14 q5 15 d6 17 q6 16 d7 18 q7 19 oe 1 le 11 u3 74ls373 d11 红灯 d14 红灯 d12 绿灯 d15 绿灯 d13 黄灯 d16 黄灯 c2 30p c3 30p r1 0.3k 东东西西方方向向红红绿绿灯灯 南南北北方方向向红红绿绿灯灯 d1 红灯 d2 红灯 d3 绿灯 d4 绿灯 d5 黄灯 d6 黄灯 d7 转弯指示灯 d8 转弯指示灯 d9 转弯灯 d10 转弯灯 南南- - - - -北北方方向向 北北- - - - - -南南方方向向 东东- - - - - -西西方方向向西西- - - - - -东东方方向向 图 4-3 硬件电路图 14 4 42 23 3 系统的运行机理系统的运行机理 (1) 由 8051 单片机通过 p0 口向 8255 的数据口送信息,由 8255 的 pa 口 和 p1 口显示红、绿、黄灯的燃亮情况;由 8255 的 pc,pb 口显示每个灯的燃亮 时间。 (2)8051 通过内部时钟,软件编程判断是否为节假日,以此来设置各个信 号灯的燃亮时间、通过 8051 设置,绿、红时间分别为 60 秒、40 秒(非节假日) ;80 秒、60 秒(节假日)循环由 8051 的 p0 口向 8255 的数据口输出。 4.4. 3 3 本章小结本章小结 本章先根据实际的交通路况提出了交通管理的方案论证,然后设计了系统 的硬件,并讲解了系统工作的原理。 15 控制器的软件设计控制器的软件设计 5.15.1 定时定时 1 1 秒钟的方法秒钟的方法 延时方法可以有两种一中是利用 mcs-51 内部定时器才生溢出中断来确定 1 秒的时间,另一种是采用软延时的方法。 5.1.15.1.1 定时器硬件定时 1 秒钟 定时器工作时必须给计数器送计数器初值,这个值是送到 th 和 tl 中的。 他是以加法记数的,并能从全 1 到全 0 时自动产生溢出中断请求。因此,我们 可以把计数器记满为零所需的计数值设定为 c 和计数初值设定为 tc 可得到如 下计算通式: tc=m-c 式中,m 为计数器摸值,该值和计数器工作方式有关。在方式 0 时 m 为 213;在 方式 1 时 m 的值为 216;在方式 2 和 3 为 28 。 5.2.2 计算公式 t=(mtc)t计数 或t计数 t计数是单片机时钟周期的倍;为定时初值 如单片机的主脉冲频率为 ,经过分频 方式 213 微秒毫秒 方式 216 微秒毫秒 显然秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和 软件相结合的办法才能解决这个问题 我们采用在主程序中设定一个初值为的软件计数器和使定时 毫秒这样每当到毫秒时就响应它的溢出中断请求,进入他的 中断服务子程序。在中断服务子程序中,先使软件计数器减,然后判 断它是否为零。为零表示秒已到可以返回到输出时间显示程序。 ()主程序 定时器需定时毫秒,故工作于方式。 初值: 16 tcmt t计数 ms/1us=15536=3cboh org 1000h start: mov tmod, #01h ;令为定时器方式 mov th0, #3ch ;装入定时器初值 mov tl0, #boh mov ie, #82h ;开中断 sebt tr0 ;启动计数器 mov ro, #14h ;软件计数器赋初值 loop: sjmp $ ;等待中断 ()中断服务子程序 org 000bh ajmp brto org 003bh brto:djnz r0,next ajmp time ; 跳转到时间及信号灯显示子程序 next: mov th0, #3ch ;重装入定时器初值 mov tl0, #boh mov ie, #82h reti end 5.1.25.1.2 软件定时软件定时 1 1 秒钟秒钟 mcs-51 的工作频率为 2-12mhz,我们选用的 8031 单片机的工作频率为 6mhz。机器周期与主频有关,机器周期是主频的 12 倍,所以一个机器周期的时 间为 12*(1/6m)=2us。我们可以知道具体每条指令的周期数,这样我们就可 以通过指令的执行条数来确定 1 秒的时间。 具体的延时程序分析: delay:mov r4,#04h 延时 1 秒子程序 de2:lcall delay1 djnz r4,de2 17 ret delay1:mov r6,#0 延时 125ms 子程序 mov r5,#0 de1: djnz r5,$ djnz r6,de1 ret djnz rn,rel 字节数为 2 机器周期数为 2 mov rn,#data 字节数为 2 机器周期数为 1 所以此周期的执行时间为 2us ,delay1 为一个双重循坏 ,循环次数为 256*256=65536, 所以延时时间=65536*2*2=262144us ,约为 250us ,delay r4 设置的初值为 4 主延时程序循环 4 次,所以 250us*4= 1 秒。 由于单片机的运行速度很快其他的指令执行时间可以忽略不计。 5.25.2 交通灯及时间的显示交通灯及时间的显示 5.2.15.2.1 80518051 并行口的扩展并行口的扩展 8051 虽然有 4 个 8 位 i/o 端口,但真正能提供借用的只有 p1 口,因为 p2 和 p0 口通常用于传送外部传送地址和数据,p3 口也有它的第二功能。因此,8031 通常需要扩展。由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显 示、红绿黄信号灯的显示都要用到一个 i/o 端口,显然 8031 的端口是不够,需 要扩展。 扩展的方法有两种:(1)借用外部 ram 地址来扩展 i/o 端口;(2)采用 i/o 接口新片来扩充。我们用 8255 并行接口信片来扩展 i/o 端口。 5.2.25.2.2 交通灯显示原理:交通灯显示原理: 当定时器定时为 1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依 次显示信号灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时 一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新 18 123456 a b c d 654321 d c b a t itle n umberr evisionsize b d ate:9-m ay-200 9 sh eet of file:c :d ocu ments and setting sa dministrator共共m yd es ign .dd bd raw n by: a bf c g d e d py 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 给时间计数器赋初值 ,重新进入循环。 5.2.35.2.3 8255pa8255pa 口输出信号接信号灯:口输出信号接信号灯: 由于发光二极管为共阴极接法,输入为高电平,则对应的二极管发光, 所以可以用置位方法点亮红,绿,黄发光二极管。 5.2.45.2.4 82558255 输出信号与数输出信号与数 ledled 显示器的连接:显示器的连接: led 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否 点亮而显示不同的字形 如 dp ,g,f,e,d,c,b,a 管角上加上 7fh 所以 dp 上为 0 伏,不亮其余为 ttl 高电平,全亮则显示为 8 采用共阴级连接: 其中 pc0-a, pc1-b, pc2-c, pc3-d, pc4-e, pc5-f, pc6-g pc7-dp 接地 图 5-1 led 引脚图 代码位d7d6d5d4d3d2d1d0 显示段dpgfedcba 表 5-1 led 个代码对应关系 123456 a b c d 654321 d c b a t itle n um be rr evi sions i z e b d ate :9-m a y-200 9 s h ee t of f i le:c :d ocu m ent s a nd s et ting sa dm ini stra tor共共m yd es ign .dd bd raw n b y: r*8 a b c d e f g dp 共共共 19 图 5-2 共阴极 led 显示器 显示数值dop g f e d c b a 驱动代码(16 进制) 00 0 1 1 1 1 1 1 3fh 1 0 0 0 0 0 1 1 006h 2 0 1 0 1 1 0 1 15bh 3 0 1 0 0 1 1 1 14fh 4 0 1 1 0 0 1 1 066h 5 0 1 1 0 1 1 0 06dh 6 0 1 1 1 1 1 0 07dh 7 0 0 0 0 0 1 1 107h 8 0 1 1 1 1 1 1 17fh 9 0 1 1 0 1 1 1 16fh 表 5-2 led 驱动代码表 5.2.55.2.5 82558255 与与 80518051 的连接:的连接: 用 8051 的 p0 口的 p0.7 连接 8255 的片选信号 cs ,我们用 8051 的地址 采用全译码方式,当 p0.7 =0 时片选有效,其他无效,p0.1 p0.0 用于选择 8255 端口 p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0 0 x x x x x 0 0 00h 为 8255 的 pa 口 0 x x x x x 0 1 01h 为 8255 的 pb 口 0 x x x x x 1 0 02h 为 8255 的 pc 口 0 x x x x x 1 1 03h 为 8255 的控制口 由于 8051 是分时对 8255 和储存器进行访问所以 8051 的 p0 口不会发生冲突。 5.35.3 程序设计程序设计 5.3.1 流程图的绘制 20 n y y y 黄灯亮 5s 结束 黄灯亮 5s 绿灯倒计时 倒计时完毕? n 倒计时完毕? 初始化 判断是否为节假日 设定红绿灯时 间 a 定 a 初值 设定红绿灯时 间 b 红灯倒计时 开始 n 图 5-3 流程图 21 5.3.2 程序源代码程序源代码 org 0000h ;主程序的入口地址 ljmp main ;跳转到主程序的开始处 org 0089h main : mov sp, #50h mov ie, #00h ;禁止中断 mov dptr ,#0003h;8255 控制端口地址 mov a, #80h ;给 8255 赋初值,a,b,c 口均为输出工作于 0 方式 movx dptr, a n00: jb p3.0, n0 ;判断是否为节假日或上下班高峰期,p3.0 为 1 则跳转到 no,为 0 则往下执行 mov a,#28h ;正常时段东西方向绿灯亮 60s,南北方向红灯亮 60s mov r0,a ;东西方向绿灯亮 60s 存在 r0 中 mov a,#14h ;正常时段东西方向红灯亮 40s,南北方向绿灯亮 40s mov r7,a ;南北方向绿灯亮 40s 存在 r7 中 n000: mov dptr,#0000h ; 置 8255a 口,东西红灯亮,南北绿灯亮 mov a,#0f6h ;东西双向均为红灯共计 40 秒 movx dptr,a mov r3,#0ah mov r4,#0ah mov p1,#0b5h ;由南到北方向绿灯十秒且可以转弯,北到南红灯 十秒禁止转弯 lcall disp1 main1: lcall delay1 djnz r4, main1 mov r3,#0ah 22 mov r4,#0ah mov p1,#6eh ;北到南绿灯十秒可以转弯,南到北红灯十秒禁止 转弯 lcall disp1 main2: lcall delay1 djnz r4, main2 mov a,r7 mov r3,a mov p1,#0edh ;南北双向均为绿灯 20 秒,禁止转弯 lcall disp1 main3: lcall delay1 djnz r7, main3 sjmp l n0: ljmp n1 ;-东西南北方向黄灯亮 5 秒程序- l: mov r3 ,#05h mov r4, #05h mov dptr, #0000h mov a , #0dbh movx dptr,a ; 东西方向均为黄灯亮 mov p1,#0dbh ; 南北方向均为黄灯亮 lcall disp1 main4: lcall delay1 djnz r4, main4 ; -东西方向通行- mov p1,#0f6h ; 南北方向红灯亮共计 60 秒 mov r3 ,#0ah mov r4, #0ah 23 mov dptr, #0000h mov a, #0b5h ;东到西方向绿灯 10 秒可以转弯,西到东方向红 灯禁止转弯 movx dptr,a lcall disp1 main5:lcall delay1 djnz r4, main5 ; - mov r3 ,#0ah mov r4, #0ah mov dptr, #0000h mov a, #6eh ;西到东方向绿灯 10 秒可以转弯,东到西方向红灯 禁止转弯 movx dptr,a lcall disp1 main6: lcall delay1 djnz r4, main6 ;- mov a,r0 mov r3, a mov dptr, #0000h mov a, #0edh movx dptr, a ;东西双向均亮绿灯 40 秒,禁止转弯 lcall disp1 main7: lcall delay1 djnz r0, main7 ; -东西南北方向均为黄灯- mov r3 ,#05h mov r4, #05h 24 mov dptr, #0000h mov a , #0dbh movx dptr,a ; 东西方向均为黄灯亮 mov p1,#0dbh ; 南北方向均为黄灯亮 lcall disp1 main8: lcall delay1 djnz r4, main8 ljmp n00 n1: mov a,#3ch ;节假日东西绿灯亮 80s,南北向红灯亮 80s mov r0,a mov a,#28h

温馨提示

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

评论

0/150

提交评论