已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘摘 要要 近年来随着科技的飞速发展 单片机的应用正在不断深入 同时带动传统控 制检测技术日益更新 在自动控制的单片机应用系统中 单片机往往作为一个核 心部件来使用 仅单片机方面知识是不够的 还应根据具体硬件结构软硬件结合 加以完善 十字路口车辆穿梭 行人熙攘 车行车道 人行人道 有条不紊 那么靠什 么来实现这井然秩序呢 靠的就是交通信号灯的自动指挥系统 交通信号灯控制 方式很多 本系统采用 MSC 51 系列单片机 STC89C52 为中心器件来设计交通灯控 制器 利用发光二极管和数码管实现了设置红 绿灯燃亮时间的功能 红绿灯循 环点亮 绿灯倒计时结束为 5 秒的黄灯闪烁警示 利用按键使得系统具有倒计时 时间设置 紧急情况处理 根据具体情况手动控制等功能 本系统实用性强 操 作简单 扩展功能强等特点 关键词 关键词 STC89C52STC89C52 发光二极管 发光二极管 数码管 数码管 按键 按键 ABSTRACT ABSTRACT With the rapid development of science and technology in recent years SCM applications are deepening at the same time promote more traditional control detection update SCM applications in automatic control systems SCM is often used as a core component only the MCU is not enough knowledge but also hardware and software based on specific hardware combination to be improved Crossroads shuttle vehicles pedestrians bustling car dealers Drive people walkways orderly Then rely on to achieve the discipline of the order then Rely on the automatic traffic light is the chain of command Many ways to control traffic lights In this system MSC 51 Series MCU devices designed STC89C52 center traffic light controller use light emitting diode and digital control to achieve a set of red green kindle function of time traffic light cycle light countdown 5 seconds left when the yellow light flashes warning use of keys makes the system has countdown time setting emergency treatment according to manual control and other functions specific circumstances The system practical simple powerful extensions Key words STC89C52 LED Digital tube key press 目录i 目录目录 第一章第一章 绪绪 论论 1 1 1 引言 1 1 2 概述 2 第二章第二章 芯片简介芯片简介 3 2 1 MSC 51 芯片简介 3 2 1 1 MCS 51 单片机内部结构 3 2 1 2 中央处理器 3 2 1 3 数据存储器 RAM 3 2 1 4 程序存储器 ROM 4 2 1 5 定时 计数器 ROM 4 2 1 6 并行输入输出 I O 口 4 2 1 7 全双工串行口 4 2 1 8 中断系统 4 2 1 9 时钟电路 4 2 2 MCS 51 的引脚说明 5 第三章第三章 交通交通灯灯系统方案论证与硬件设计系统方案论证与硬件设计 7 3 1 设计目的和要求 7 3 1 1 交通灯工作状态分析 7 3 2 方案比较与论证 8 3 2 1 硬件系统设计具备的原则 8 3 2 2 程序选择方案 8 3 2 3 显示界面方案 8 3 2 4 输入方案 9 3 3 硬件电路设计 9 3 3 1 交通灯控制系统的硬件要求 9 3 3 2 硬件结构框图 9 3 3 3 交通灯流程图 10 目录ii 3 3 4 交通灯控制系统的原理框图 10 3 3 5 电路原理框图的解释与说明 11 3 3 6 基于交通灯电路原理图绘制的 PCB 板 20 第四章第四章 交通信号灯软件的交通信号灯软件的系系统编程统编程 21 4 1 信号灯亮灭的定时功能 21 4 1 1 单片机的定时器 21 4 1 2 定时器数值的设置应该注意的事项 21 4 2 51 单片机的中断系统 22 4 2 1 中断系统的概念 22 4 2 2 单片机中断系统的作用 22 4 2 3 如何实现单片机的中断 23 4 2 4 中断源 23 4 2 5 交通灯源程序 见附录 23 第五章第五章 系统仿真系统仿真 24 5 1 PROTEUS软件介绍 24 5 2 KEIL软件介绍 27 5 2 1 系统概述 27 5 2 2 Keil C51 单片机软件开发系统的整体结构 27 第六章第六章 调试功能说明调试功能说明 29 6 1 硬件调试 29 6 1 1 最小系统调试 29 6 1 2 故障点分析 29 6 2 软件调试 30 第七章第七章 结束语结束语 32 致致 谢谢 33 参考文献参考文献 34 附录 交通灯源程序 35 第一章 绪 论1 第一章第一章 绪绪 论论 1 1 引言 1858 年 在英国伦敦主要街头安装了以燃煤气为光源的红 蓝两色的机械 扳手式信号灯 用以指挥马车通行 这是世界上最早的交通信号灯 1868 年 英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上 安装了世界 上最早的煤气红绿灯 它由红绿两以旋转式方形玻璃提灯组成 红色表示 停止 绿色表示 注意 1869 年 1 月 2 日 煤气灯爆炸 使警察受伤 遂被取消 电气启动的红绿灯出现在美国 这种红绿灯由红绿黄三色圆形的投光器组成 1914 年始安装于纽约市 5 号大街的一座高塔上 红灯亮表示 停止 绿灯亮表 示 通行 1918 年 又出现了带控制的红绿灯和红外线红绿灯 带控制的红绿灯 一 种是把压力探测器安在地下 车辆一接近红灯便变为绿灯 另一种是用扩音器来 启动红绿灯 司机遇红灯时按一下嗽叭 就使红灯变为绿灯 红外线红绿灯当行 人踏上对压力敏感的路面时 它就能察觉到有人要过马路 红外光束能把信号灯 的红灯延长一段时间 推迟汽车放行 以免发生交通事故 信号灯的出现 使交通得以有效管制 对于疏导交通流量 提高道路通行能 力 减少交通事故有明显效果 1968 年 联合国 道路交通和道路标志信号协定 对各种信号灯的含义作了规定 绿灯是通行信号 面对绿灯的车辆可以直行 左 转弯和右转弯 除非另一种标志禁止某一种转向 左右转弯车辆都必须让合法地 正在路口内行驶的车辆和过人行横道的行人优先通行 红灯是禁行信号 面对红 灯的车辆必须在交叉路口的停车线后停车 黄灯是警告信号 面对黄灯的车辆不 能越过停车线 但车辆已十分接近停车线而不能安全停车时可以进入交叉路口 在今天 红绿灯安装在各个道口上 已经成为疏导交通车辆最常见和最有效的手 段 但这一技术在 19 世纪就已出现了 交通信号灯的出现 使交通得以有效管 制 对于疏导交通流量 提高道路通行能力 减少交通事故有明显效果 基于单片机的交通灯的设计与实现2 1 2 概述 单片机微型计算机是微型计算机一个重要分支 也是颇具生命力的机种 单 片机微型计算机简称单片机 特别适用控制领域 故又称为微控制器 单片机由单块集成电路芯片构成 内部包含有计算机的基本功能部件 中央 处理器 存储器和 I O 接口电路等 因此 单片机只需要和适当的软件及外部设 备相结合 便可成为一个单片机控制系统 单片机经过 1 2 3 3 代的发展 目前单片机正朝着高性能和多品种方向 发展 它们的 CPU 功能在不断增强 内部资源在增多 引角的多功能化 以及低 电压底功耗 本设计是采用 MSC 51 系列单片机 STC89C52 为中心器件来设计交通灯控制 器 再设计之前 必须要先了解实际交通灯的变化规律 假设一个路口为东西南 北走向 即十字路口 初始状态零为东西南北灯都熄灭 然后转状态一东西绿灯 通车 南北为红灯 过段时间转状态二 东西绿灭转黄灯 延时 5 秒 南北仍为 红灯 再转状态三南北绿灯通车 东西红灯 过段时间转状态四南北绿灯灭转黄 灯 延时 5 秒 东西仍为红灯 最后循环至状态一 利用 MSC 51 系列单片机 STC89C52 为中心器件 发光二极管和数码管实现了设置红 绿灯燃亮时间和显示 的功能 控制十字路口红绿灯交替亮和熄灭 第二章 芯片简介3 第二章第二章 芯片简介芯片简介 2 1 MSC 51 芯片简介 2 1 1 MCS 51 单片机内部结构 8051 作为 MCS 51 系列单片机的典型产品 我们以这一代表性的机型进行系 统的讲解 8051 单片机包含中央处理器 程序存储器 ROM 数据存储器 RAM 定时 计 数器 并行接口 串行接口和中断系统等几大单元及数据总线 地址总线和控制 总线等三大总线 现在我们分别加以说明 2 1 2 中央处理器 中央处理器 CPU 是整个单片机的核心 是 8 位数据宽度的处理器 能处理 8 位二进制数据或代码 CPU 负责控制 指挥和调度整个单元系统协调的工作 完成运算和控制输入输出功能等操作 2 1 3 数据存储器 RAM 8051 内部有 128 个 8 位用户数据存储单元和 128 个专用寄存器单元 它们 是统一编址 专用寄存器只能用于存放控制指令数据 用户只能访问 而不能用 于存放用户数据 所以 用户能使用的 RAM 只有 128 个 可存放读写的数据 运 算的中间结果或用户定义的字型表 图 2 1 基于单片机的交通灯的设计与实现4 2 1 4 程序存储器 ROM 8051 有 4096 个 8 位掩膜 ROM 用于存放用户程序 原始数据或表格 2 1 5 定时 计数器 ROM 8051 有两个 16 位可编程定时 计数器 以实现定时或计数产生中断用于控制 程序转向 2 1 6 并行输入输出 I O 口 8051 有 4 组 8 位 I O 口 P0 P1 P2 或 P3 用于对外部数据的传输 2 1 7 全双工串行口 8051 内置一个全双工串行通信口 用于与其它设备间的串行数据传送 该串 行口既可用作异步通信收发器 也可当同步移位器使用 2 1 8 中断系统 8051 具备较完善的中断功能 有两个外中断 两个定时 计数器中断和一个 串行中断 可满足不同控制要求 并具有 2 级的优先级别选择 2 1 9 时钟电路 8051 内置最高频率达 12MHz 的时钟电路 用于产生整个单片机运行的脉冲 时序 但 8051 单片机需要外置振荡电容 单片机的结构有两种 一种是程序存储器和数据存储器分开的形式 即哈佛 Harvard 结构 另一种是采用通用计算机广泛使用的程序存储器与数据存储器 合二为一的结构 即普林斯顿 Princeton 结构 INTEL 的 MCS 51 系列单片机采 用的是哈佛结构的形式 而后续产品 16 位的 MCS 96 系列单片机则是采用普林斯 顿结构 下图是 MCS 51 系列单片机的内部结构示意图 图 2 2 第二章 芯片简介5 图 2 2 2 2 MCS 51 的引脚说明 MCS 51 系列单片机中 8031 8051 及 8751 均采用 40Pin 封装的双列直接 DIP 结构 右图是它们的引脚配置 40 个引脚 正电源和地线两根 外置石英振荡 器的时钟线两根 4 组 8 位共 32 个 I O 口 中断口线与 P3 口线复用 现在对这 些引脚的功能加以说明 如图 2 3 图 2 3 Pin9 RESET Vpd复位信号复用脚 当 8051 通电 时钟电路开始工作 在 RESET 引脚上出现 24 个时钟周期以上的高电平 系统即初始复位 初始化后 程序计数器 PC 指向 0000H P0 P3 输出口全部为高电平 堆栈指针写入 07H 其 基于单片机的交通灯的设计与实现6 它专用寄存器被清 0 RESET 由高电平下降为低电平后 系统即从 0000H 地址 开始执行程序 但是 初始复位不改变 RAM 包括工作寄存器 R0 R7 的状态 8051 的初始态 8051 的复位方式即可以是自动复位 也可以是手动复位 见下图 4 此外 RESET Vpd还是一复用脚 Vcc掉电其间 此脚可接上备用电源 以保证单片机内 部 RAM 的数据不丢失 图 2 4 Pin30 ALE 当访问外部程序器时 ALE 地址锁存 的输出用于锁存地址 的低位字节 而访问内部程序存储器时 ALE 端将有一个 1 6 时钟频率的正脉冲 信号 这个信号可用于识别单片机是否工作 也可以当作一个时钟向外输出 更 有一个特点 当访问外部程序存储器 ALE 跳过一个脉冲 如果单片机是 EPROM 在编程其间 将用在输入编程脉冲 Pin29 当访问外部程序存储器时 此脚输出负脉冲选通信号 PC 的 16 位地址数据将出现在 P0 和 P2 口上 外部程序存储器则把指令数据放到 P0 口上 由 CPU 读入并执行 Pin31 EA Vpp程序存储器的内外部选通线 8051 和 8751 单片机 内置有 4kB 程序存储器 EA 为高电平并且程序地址小于 4kB 时 读取内部程序存储器指 令数据 而超过 4kB 地址则读取外部指令数据 如 EA 为低电平 则不管地址大 小 一律读取外部程序存储器指令 显然 对内部无程序存储器的 8031 EA 端必 须接地 在编程时 EA Vpp 脚还需加上 21V 的编程电压 第三章 交通灯系统方案论证与硬件设计7 第三章第三章 交通灯系统方案论证与硬件设计交通灯系统方案论证与硬件设计 3 1 硬件设计目的和要求 本毕业设计的目的是设计一个符合十字路口结构的交通灯控制系统 每个方 向上都有三个交通灯分别是控制直行方向的红 绿 黄灯 假设一个十字路口为东西南北走向 初始状态 0 为东西南北灯都熄灭 然后 转状态 1 东西绿灯通车 持续 50 秒 南北红灯 过一段时间转状态 2 东西绿灯 灭转亮黄灯 闪烁 5 秒 南北仍然红灯 再转状态 3 南北绿灯通车 东西红灯 过一段时间转状态 4 南北绿灯灭转亮黄灯 闪烁 5 秒 南北仍然红灯 最后循 环至状态 1 交通信号灯控制系统设计利用单片机的定时器定时 令十字路口的 红绿灯交替点亮和熄灭 并且用 LED 数码管显示时间 如图 3 1 为交通灯十字路 口图 图 3 1 3 1 1 交通灯工作状态分析 基于单片机的交通灯的设计与实现8 图 3 2 3 2 方案比较与论证 3 2 1 系统设计具备的原则 1 能满足系统的设计要求 易于操作维护 2 系统功能要灵活 便于扩展 3 需具有自动诊断功能 3 2 2 程序选择方案 为使交通灯系统工作 须对单片机进行软件编程控制 可选择的方案有两种 C 51 与 ASM 51 我选择的编程方式是 C 51 其理由如下 1 对单片机的指令系统不要求太了解 仅要对 8051 的存储器结构有初步了解 2 寄存器分配 不同存储器的寻址及数据类型等细节可由编译器管理 3 程序有规范的结构 可分成不同的函数 这种方式可使程序结构化 4 提供的库包含许多标准子程序 具有较强的数据处理能力 5 由于具有方便的模块化编程技术 使已经编好的程序易于移植 3 2 3 显示界面方案 该系统要完成倒计时 状态灯等功能 基于上述条件和要求 我考虑了三种 方案 1 完全使用数码管显示 这种方案只显示有限的的符号和数码字符 无法胜任 要求 2 只用 LED 显示红 黄 绿三种状态 该方案效果单一 没有办法显示时间 不符合设计要求 不能很好的实现交通灯的功能 第三章 交通灯系统方案论证与硬件设计9 3 采用数码管与 LED 相结合的方法 因为设计即要求倒计时又要求状态灯输出 等 为方便观看且考虑到现实情况 用数码管与 LED 满足系统功能要求 既直观 也能很好的实现交通灯功能 故选择第三种方案 3 2 4 输入方案 题目要求能手动控制时间 紧急情况处理 我考虑两种方案 1 采用 8155 扩展 I O 口及按键显示 该方案的优点是 使用灵活 并且有 RAM 及计数器 若用该方案 可提供较多的 I O 口 但操作起来复杂 2 直接在 I O 口线上接上按键开关所以剩余口资源还较多 由于该系统对于交通灯及数码管的控制 用单片机本身的 I O 口就可实现 且本身的计数器及 RAM 已经够用 故选择方案二 3 3 硬件电路设计 3 3 1 交通灯控制系统的硬件要求 STC89C52 LED 数码管 按键开关 电阻 发光二极管 3 3 2 硬件结构框图 图 3 3 基于单片机的交通灯的设计与实现10 3 3 3 交通灯流程图 图 3 4 3 3 4 交通灯控制系统的原理框图 图 3 5 第三章 交通灯系统方案论证与硬件设计11 3 3 5 电路原理框图的解释与说明 利用 STC89C52 芯片 数码管 发光二极管 以及开关按键通过编程完成交 通灯的设计与实现 实现交通灯东西南北四个方向的指示功能 而且基于人性化 的考虑 融入了倒计时 交通灯东西强行或南北强行等功能设计 如图 9 为 STC89C52 图 3 6 1 对所需原件的简单介绍 a STC89C52 功能与引脚说明 与 MCS 51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次 擦写周期 全静态操作 0Hz 33Hz 三级加密程序存储器 32 个可编程 I O 口线 三个 16 位定时器 计数器八个中断源 全双工 UART 串行通道 低功耗空 闲和掉电模式 掉电后中断可唤醒 看门狗定时器 双数据指针 掉电标识符 STC89C52 是一种低功耗 高性能 CMOS8 位微控制器 具有 8K 在系统可编 程 Flash 存储器 使用高密度非易失性存储器技术制造 与工业 80C51 产品指 令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于常规编程 器 在单芯片上 拥有 8 位 CPU 和在线系统可编程 Flash 使得 STC89C52 为众 多嵌入式控制应用系统提供高灵活 超有效的解决方案 STC89C52 具有以下标 基于单片机的交通灯的设计与实现12 准功能 8k 字节 Flash 256 字节 RAM 32 位 I O 口线 看门狗定时器 2 个 数据指针 三个 16 位定时器 计数器 一个 6 向量 2 级中断结构 全双工串行 口 片内晶振及时钟电路 另外 STC89C52 可降至 0Hz 静态逻辑操作 支持 2 种 软件可选择节电模式 空闲模式下 CPU 停止工作 允许 RAM 定时器 计数器 串口 中断继续工作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片 机一切工作暂停 直到下一个中断或硬件复位为止 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱动 8 个 TTL 逻辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 而访问外部程序和数据存储器时 P0 口也被作为低 8 位地址 数据复用 在 这种模式下 P0 具有内部上拉电阻 而在 flash 编程时 P0 口也用来接收指令字节 在程序校验时 输出指令字 节 程序校验时 需要外部上拉电阻 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 P1 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉高 此时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的 原因 将输出电流 IIL 此外 P1 0 和 P1 2 分别作定时器 计数器 2 的外部 计数输入 P1 0 T2 和时器 计数器 2 的触发输入 P1 1 T2EX 具体如下所 示 在 flash 编程和校验时 P1 口接收低 8 位地址字节 引脚号第二功能 P1 0 T2 定时器 计数器 T2 的外部计数输入 时钟输出 P1 1 T2EX 定时器 计数器 T2 的捕捉 重载触发信号和方向控制 P1 5 MOSI 在线系统编程用 P1 6 MISO 在线系统编程用 P1 7 SCK 在线系统编程用 第三章 交通灯系统方案论证与硬件设计13 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上拉电阻把端口拉高 可以作为输入口使用 而作为输入使用时 被外部拉低的引脚由于内部电阻的原 因 将输出电流 IIL 访问外部程序存储器或用 16 位地址读取外部数据存储器 例如执行 MOVX DPTR 时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉 发送 1 在使用 8 位地址访问外部数据存储器时 P2 口输出 P2 锁存器的内容 在 flash 编程和校验时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻把端口拉高 可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 IIL P3 口亦作为 STC89C52 特殊功能 第二功能 使用 如下 所示 在 flash 编程和校验时 P3 口也接收一些控制信号 端口引脚 第二功能 P3 0 RXD 串行输入口 P3 1 TXD 串行输出口 P3 2 INTO 外中断 0 P3 3 INT1 外中断 1 P3 4 TO 定时 计数器 0 P3 5 T1 定时 计数器 1 P3 6 WR 外部数据存储器写选通 P3 7 RD 外部数据存储器读选通 基于单片机的交通灯的设计与实现14 P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高电平 为单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存允许 输出脉冲用于锁存地址的低 8 位字节 一般情况下 ALE 仍以时钟振荡频率的 1 6 输出固定的脉冲信号 因此它可对外输出时钟或用于定时目的 要注意的是 每当访问外部数据存储器时将跳过一个 ALE 脉冲 对 FLASH 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操作 该位置位后 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活 此外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 禁止位无效 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信号 当 STC89C52 由外部程序存储器取指令 或数据 时 每个机器周期两次 PSEN 有效 即输出两个脉冲 在此期间 当访问外部数据存储器 将跳过两次 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密位 LB1 被编程 复位时内部会锁存 EA 端状态 如 EA 端为高电平 接 VCC 端 CPU 则执行内部程序存储器的指令 FLASH 存储器编程时 该引脚加上 12V 的编程允许电源 Vpp 当然这必须是 该器件是使用 12V 编程电压 Vpp b 数码管 数码管按段数分为 7 段数码管和 8 段数码管 8 段数码管比 7 段数码管多一 个发光二极管单元 由小数点显示 按能显示多少个 8 可分为 1 位 2 位 4 位等数码管 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管 第三章 交通灯系统方案论证与硬件设计15 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 COM 的数码管 共阳数码管在应用时应将公共极 COM 接到 5V 当某一字段发光二极管的阴极为 低电平时 相应字段就点亮 当某一字段的阴极为高电平时 相应字段就不亮 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 COM 的数码管 共阴数码管在应用时应将公共极 COM 接到地线 GND 上 当某一字段发光二极管的 阳极为高电平时 相应字段就点亮 当某一字段的阳极为低电平时 相应字段就 不亮 本系统选用的是共阴数码管 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示出 我们要的数字 因此根据数码管的驱动方式的不同 可以分为静态式和动态式两 类 静态显示驱动 静态驱动也称直流驱动 静态驱动是指每个数码管的每 一个段码都由一个单片机的 I O 端口进行驱动 或者使用如 BCD 码二 十进制译 码器译码进行驱动 静态驱动的优点是编程简单 显示亮度高 缺点是占用 I O 端口多 如驱动 5 个数码管静态显示则需要 5 8 40 根 I O 端口来驱动 要知 道一个 89S51 单片机可用的 I O 端口才 32 个 实际应用必须增加译码驱动器 进行驱动 增加了硬件电路的复杂性 动态显示驱动 数码管动态显示接口是单片机中应用最广泛的一种显示 方式之一 动态驱动是将所有数码管的 8 个显示笔划 a b c d e f g dp 的同名 端连在一起 另外为每个数码管的公共极 COM 增加位选通控制电路 位选通由各 自独立的 I O 线控制 当单片机输出字形码时 所有数码管都接收到相同的字形 码 但究竟是那个数码管会显示出字形 取决于单片机对位选通 COM 端电路的控 制 所以我们只要将需要显示的数码管的选通控制打开 该位就显出字形 没有 选通的数码管就不亮 通过分时轮流控制各个数码管的的 COM 端 就使各个数码 管轮流受控显示 这就是动态驱动 在轮流显示过程中 每位数码管的点亮时间 为 1 2 ms 由于人的视觉暂留现象及发光二极管的余辉效应 尽管实际上各位 数码管并非同时点亮 但只要扫描的速度够快 给人的感觉就是一组稳定的显示 数据 不会有闪烁的感觉 动态显示的效果和静态显示是一样的 能够节省大量 的 I O 端口 而且功耗更低基于交通灯所要实现的的功能要求 所以选用第二种 动态显示驱动 基于单片机的交通灯的设计与实现16 C 发光二极管 图 3 7 图 3 7 发光二极管简称 LED 采用砷化镓 镓铝砷 和磷化镓等材料制成 其内部 结构为一个 PN 结 具有单向导电性 当在发光二极管 PN 结上加正向电压时 PN 结势垒降低 载流子的扩散运 动大于漂移运动 致使 P 区的空穴注入到 N 区 N 区的电子注入到 P 区 这样 相互注入的空穴与电子相遇后会产生复合 此时产生的能量大部分以光的形式出 现 因此而发光 当所有二极管都发出光时 大多数都不是很有效的 在普通二 极管里 半导体材料本身吸引大量的光能而结束 发光二极管是由一个塑性灯泡 覆盖集中灯光于一个特定方向 由于不同材料的禁带宽度不同 所以由不同材料 制成的发光二极管会发出不同波长的光 另外 有些材料由于组分和掺杂不同 例如 有的具有很复杂的能带结构 相应的还有间接跃迁辐射等 因此有各种各 样的发光二极管 发光二极管在制作时 使用的材料有所不同 那么就可以出现不同颜色的光 发光二极管的发光颜色有 红色光 黄色光 绿色光 红外光等等 发光二极管的外形有 圆形 长方形 三角形 正方形 组合形 特殊形等 常用的发光二极管应用电路有 4 种 即直流驱动电路 交流驱动电路 脉冲驱动 电路 变色发光驱动电路 在使用 LED 作指示电路时 应该串接限流电阻 该电阻的阻值大小应根据 不同的使用电压和 LED 所需工作电流来决定 发光二极管的压降 LED 的光学参 数与 PN 结结温有很大关系 工作在小电流 IF 10mA 或者 10 20 mA 长时间连 续点亮 LED 温升不太明显 因此我们选的二极管颜色为红色 黄色 绿灯是通行信号 面对绿灯的车辆 可以直行红灯是禁行信号 面对红灯的车辆必须在交叉路口的停车线后停车 黄 第三章 交通灯系统方案论证与硬件设计17 灯是警告信号 面对黄灯的车辆不能越过停车线 2 交通灯部分电路功能解释 单片机最小系统 或者称为最小应用系统 是指用最少的元件组成的单片机可 以工作的系统 图 3 8 对 51 系列单片机来说 最小系统一般应该包括 电源 晶振电路 复位电路 图 3 8 通过该部分电路 单片机可实现初始状态为东西南北灯都熄灭 然后转状态 1 东西绿灯通车 南北红灯 过一段时间转状态 2 东西绿灯灭转亮黄灯 闪烁 5 秒 南北仍然红灯 再转状态 3 南北绿灯通车 东西红灯 过一段时间转状 态 4 南北绿灯灭转亮黄灯 闪烁 5 秒 南北仍然红灯 最后循环至状态 1 交 通信号灯控制系统设计利用单片机的定时器定时 令十字路口的红绿灯交替点亮 和熄灭 控制 LED 数码管显示时间 复位电路 图 3 9 由电容串联电阻构成 由图并结合 电容电压不能突变 的性质 可知 当系统一上电 RST 脚将会出现高电平 并且 这个高电平持续的时间 由电路的 RC 值来决定 典型的 51 单片机当 RST 脚的高电平持续两个机器周期以 上就将复位 所以 适当组合 RC 的取值就可以保证可靠的复位 一般 C 取 10u R 基于单片机的交通灯的设计与实现18 取 8 2K 也有其他取法 原则就是要让 RC 组合可以在 RST 脚上产生不少于 2 个机 周期的高电平 图 3 9 晶振电路 图 3 10 典型的晶振取 11 0592MHz 因为可以准确地得到 9600 波特率和 19200 波特率 用于有串口通讯的场合 12MHz 产生精确的 uS 级时歇 方便定时操作 图 3 10 如图 3 11 该部分电路主要由数码管和发光二极管组成 负责实现交通灯状 态的显示 数码管显示红 黄 绿灯持续时间 发光二极管实现红 黄 绿三种 颜色的显示 从而实现东南西北四个方向交通灯的燃亮以及时间显示情况 第三章 交通灯系统方案论证与硬件设计19 图 3 11 如图 3 12 该部分电路通过按键可实现倒计时加一减一 东西南北各路强行 方向切换等功能 使得交通灯更加人性化 图 3 12 基于单片机的交通灯的设计与实现20 3 3 6 基于交通灯电路原理图绘制的 PCB 板 图 3 13 交通灯 PCB 板 第四章 交通信号灯软件系统编程21 第四章第四章 交通信号灯软件系统编程交通信号灯软件系统编程 4 1 信号灯亮灭的定时功能 4 1 1 单片机的定时器 在单片机应用系统中 实现定时的方法一般有以下三种方法 1 软件定时 让计算机执行一段程序来进行事件延时 这个程序段本身 份没有安排其他的执行目的 只是利用该程序段的执行花费的一个固定时间 通 过适当的选择指令和安排循环次数 可调节这段程序执行所需花费的时间的长短 其特点是定时时间精确 不需外加硬件电路 但占用 时间 因此软件定时 的时间不宜过长 2 硬件定时 利用硬件电路实现定时 其特点是不占用 时间 通 过改变电路元器件参数调来节定时 但使用不够灵活方便 对于时间较长的定时 常用硬件电路来实现 3 可编程定时器 通过专用的定时计数器芯片来实现 其特点是通过对 系统时钟脉冲进行计数实现定时 定时时间可通过程序设定的方法改变 使用灵 活简便 也可实现对外部脉冲的计数功能 单片机交通控制器的设计 当定时计数器设置为计数工作方式时 技术器对来自输入引脚 T0 和 T1 的外 部信号计数 外部信号的下降沿将触发计数 最高检测频率为振荡频率的二十四 分之一 计数器对外部输入信号的占空比没有特别限制 但是必须保证输入信号 的高电平与低电平的持续时间在一个机器周期以上 当设置了定时器的工作方式并启动定时器工作后 定时器就按照设定的工作 方式独立工作 不在占用 CPU 的操作时间 只有在计数器计满溢出才能中断 CPU 当前操作 4 1 2 定时器数值的设置应该注意的事项 延时方法可以有两种一中是利用 MCS 51 内部定时器溢出中断来确定 1 秒的 时间 另一种采用软件延时方法 基于单片机的交通灯的设计与实现22 定时器工作时必须给计数器送初值 这个值是送到 TH 和 TL 中 他以加法记 数的 并能从全 1 到全 0 时自动产生溢出中断请求 因此 我们可以把计数器记 满为零所需的计数值设定为 C 和计数初值设定为 TC 可得到如下计算公式 TC M C 式中 M 为计数器模值 该值和计数器工作方式有关系 在方式 0 时 M 为 8196 在方式 1 时 M 的值为 65536 在方式 2 和 3 为 256 T M TC T计数 或 T计数 T计数 是单片机时钟周期 的 12 倍 为定时初值 如单片机的主脉冲频 率为 12 经过 12 分频 方式 0 213 微秒 8 192 毫秒 方式 1 216 微秒 65 536 毫秒 在这里采用的是方式 1 则初始值 TC 65536 50000 THO 65536 50000 256 TL0 65536 50000 256 显然 1 秒钟已经超过了计数器的最大定时时间 所以只有采用定时器和软件 相结合的办法才能解决这个问题 我们采用在主程序中设定一个初值为 0 的软件计数器和使 定时 50 毫 秒 这样每当 到 50 毫秒时 就响应它的溢出中断请求 进入他的中断 服务子程序 在中断服务子程序中 先使软件计数器加 1 然后判断它是 否为 20 为 20 表示 1 秒已到可以返回到输出时间显示程序 4 2 51 单片机的中断系统 4 2 1 中断系统的概念 计算机在执行正常程序时 如果系统出现某些急需处理的异常情况和特殊请 求 CPU 会暂时中止正在执行的指令 转去对随机发生的更紧迫事件进行处理 处理完后 CPU 会自动返回原来的程序继续执行 4 2 2 单片机中断系统的作用 CPU 响应中断申请时 首先使先级有效位置位 以阻止同级或低级的终端申 请 然后把程序计数器 PC 的内容压入堆饯 再把与中断服务程序入口地址送到 第四章 交通信号灯软件系统编程23 程序计数器 PC 同时清除某些中断标志 以上过程均由端系统自动完成 4 2 3 如何实现单片机的中断 8052 具备较完善的中断功能 有两个外部中断 两个定时 计数器中断和一 个串行中断 可满足不同的控制要求 并具有 2 级的优先级别选择 4 2 4 中断源 MCS 51 单片机的中断源共有 5 个 分为 3 类 外部中断源 片内溢出中断 源 串行口中断源 外部中断源可以分为由片内 P3 2 引脚输入的 INT0 中断 以 及由 P3 3 引脚输入的 INT1 中断 片内溢出中断分为定时器 T0 中断和定时器 T1 中断 串行口中断只有一个 片内串行数据的接收和发送中断 这 5 个中断源在 程序存储器中各有中断服务程序的入口地址 这个地址也称为矢量地址 在 CPU 响应中断时 硬件自动形成各自的入口地址 由此进入中断服务程序 从而实现 了正确的转移 4 2 5 交通灯源程序 见附录 第五章 系统仿真24 第五章第五章 系统仿真系统仿真 5 1 proteus 软件介绍 Proteus 软件是 Labcenter Electronics 公司的一款电路设计与仿真软件 它包括 ISIS ARES 等软件模块 ARES 模块主要用来完成 PCB 的设计 而 ISIS 模块用来完成电路原理图的布图与仿真 Proteus 的软件仿真基于 VSM 技术 它 与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片 比如 MCS 51 系列 PIC 系列等 以及单片机外围电路 比如键盘 LED LCD 等等 通 过 Proteus 软件能够轻易地获得一个功能齐全的单片机实验室 Proteus 是一个标准的 Windows 窗口程序 其启动界面如图 5 1 所示 图 5 1 如图中所示 区域 为菜单及工具栏 区域 为预览区 区域 为元器件浏 览区 区域 为编辑窗口 区域 对象拾取区 区域 为元器件调整工具栏 区 域 为运行工具条 在 Keil 简介中所讲的工程项目相配套的 Proteus 工程为例来详细讲述 Proteus 的操作方法以及注意事项 基于单片机的交通灯设计与实现25 首先点击启动界面区域 中的 P 按钮 Pick Devices 拾取元器件 来 打开 Pick Devices 拾取元器件 对话框从元件库中拾取所需的元器件 对话框如图 5 2 所示 图 5 2 在对话框中的 Keywords 里面输入要检索的元器件的关键词 比如要选 择项目中使用的 AT89C51 直接输入 输入以后我们能在 Results 结果栏里面 看到我们搜索的元器件的结果 在对话框的右侧 我们还能够看到我们选择的元 器件的仿真模型 引脚以及 PCB 参数 有时候选择的元器件并没有仿真模型 对 话框将在仿真模型和引脚一栏中显示 No Simulator Model 无仿真模型 那么就不能够用该元器件进行仿真了 只能做它的 PCB 板 或者选择其他的与其 功能类似而且具有仿真模型的元器件 搜索到所需的元器件后 双击元器件名来将相应的元器件加入到文档中 接 着还可以用相同的方法来搜索并加入其他的元器件 当已经将所需的元器件全部 加入到文档中时 点击 OK 按钮来完成元器件的添加 添加好元器件以后 下面就是将元器件按照需要连接成电路 首先在元器件 浏览区中点击需要添加到文档中的元器件 这时就可以在浏览区看到所选择的元 器件的形状与方向 如果其方向不符合你的要求 通过点击元器件调整工具栏中 的工具来任意进行调整 调整完成之后在文档中单击并选定好需要放置的位置即 第五章 系统仿真26 可 接着按相同的操作即可完成所有元器件的布置 接下来是连线 事实上 Proteus 的自动布线功能是相当的完善 布线时只需要单击选择起点 然后在需 要转弯的地方单击一下 按照你所需走线的方向移动鼠标到线的终点单击即可 布线如图 5 3 所示 图 5 3 Selection Mode 选择模式 通常情况下都需要选中它 比如布局时和 布线时 Component Mode 组件模式 点击该按钮 能够显示出区域 中的元器 件 以便选择 Wire Label Mode 线路标签模式 选中它并单击文档区电路连线能够 为连线添加标签 经常与总线配合使用 Text Script Mode 文本模式 选中它能够为文档添加文本 Buses Mode 总线模式 选中它能够在电路中画总线 Terminals Mode 终端模式 选中它能够为电路添加各种终端 比如输 入 输出 电源 地等 Virtual Instruments Mode 虚拟仪器模式 选中它能够在区域 中看 到很多虚拟仪器 比如示波器 电压表 电流表 首先点击 选择终端模式 然后在元器件浏览区中点击 POWER 电源 来选中电源 通过区域 中元器件调整工具进行适当的调整 然后就可在文档区 中单击放置电源了 放置并连接好线路 基于单片机的交通灯设计与实现27 调试组件属性以后就要将程序 HEX 文件 载入单片机了 双击单片机图标 系统同样会弹出 Edit Component 对话框 在这个对话框中点击 Program files 框右侧的 来打开选择程序代码窗口 选中相应的 HEX 文件后返回 这时 按钮左侧的框中就填入了相应的 HEX 文件 点击对话框的 OK 按钮 回 到文档 程序文件添加完成 5 2 keil 软件介绍 5 2 1 系统概述 Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件 开发系统 与汇编相比 C 语言在功能上 结构性 可读性 可维护性上有明显 的优势 因而易学易用 用过汇编语言后再使用 C 来开发 体会更加深刻 Keil C51 软件提供丰富的库函数和功能强大的集成开发调试工具 全 Windows 界 面 另外重要的一点 只要看一下编译后生成的汇编代码 就能体会到 Keil C51 生成的目标代码效率非常之高 多数语句生成的汇编代码很紧凑 容易理解 在 开发大型软件时更能体现高级语言的优势 下面详细介绍 Keil C51 开发系统各 部分功能和使用 5 2 2 Keil C51 单片机软件开发系统的整体结构 C51 工具包的整体结构 如图 1 所示 其中 uVision 与 Ishell 分别是 C51 for Windows 和 for Dos 的集成开发环境 IDE 可以完成编辑 编译 连接 调 试 仿真等整个开发流程 开发人员可用 IDE 本身或其它编辑器编辑 C 或汇编源 文件 然后分别由 C51 及 A51 编译器编译生成目标文件 OBJ 目标文件可由 LIB51 创建生成库文件 也可以与库文件一起经 L51 连接定位生成绝对目标文件 ABS ABS 文件由 OH51 转换成标准的 Hex 文件 以供调试器 dScope51 或 tScope51 使用进行源代码级调试 也可由仿真器使用直接对目标板进行调试 也 可以直接写入程序存贮器如 EPROM 中 下图为利用 keil 所编写的交通灯程序 图 5 4 第五章 系统仿真28 图 5 4 第六章 调试功能说明29 第六章第六章 调试功能说明调试功能说明 6 1 硬件调试 6 1 1 最小系统调试 首先应确认电源电压是否正常 用电压表测量接地引脚跟电源引脚之间的电 压 看是否是电源电压 我们所用的电源电压是 5V 接下来就是检查复位引脚电 压是否正常 分别测量按下复位按钮和放开复位按钮的电压值 看是否正确 然 后再检查晶振是否起振了 一般用示波器来看晶振引脚的波形 应该使用示波器 探头的 X10 档 另一个办法是测量复位状态下的 IO 口电平 按住复位键不放 然后测量 IO 口 没接外部上拉的 P0 口除外 的电压 看是否是高电平 如果不 是 则多半是因为晶振没有起振 另外还要将 EA 引脚拉高 因为用的是片内 ROM 否 则会出现程序乱跑的情况 有时用仿真器可以 但烧入片子不行 是因为 EA 引 脚没拉高的缘故 当然 晶振没起振也是原因只一 经过上面几点的检查 一 般即可排除故障 如果系统不稳定 有时是因为电源滤波不好导致 在单片机的 电源引脚跟地引脚之间接上一个 0 1uF 电容会有所改善 如果电源没有滤波电容 的话 则需再接一个更大滤波电容 如 220uF 的 遇到系统不稳定时 就可并上 电容 6 1 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 产科分娩室工作制度
- 乡镇环卫工工作制度
- 传染病治疗工作制度
- 下料队安全工作制度
- 脐部护理的护理模型
- 办公室工作制度规定
- 加油站培训工作制度
- 医保科工作制度范本
- 医院保洁员工作制度
- 医院大小班工作制度
- (正式版)DB37∕T 4863-2025 《数字经济发展评价指标体系》
- QES管理体系审核检查表完整范例
- JGJT341-2014 泡沫混凝土应用技术规程
- 薄膜材料与技术(全套课件)上
- EPC总承包项目采购方案
- 51单片机读写SD卡程序实例完整版
- 人教新课标曹禺和语文教师谈《雷雨》
- 情绪压力管理与阳光心态
- SB/T 10782-2012钟表销售服务规范
- GB/T 17466.24-2017家用和类似用途固定式电气装置的电器附件安装盒和外壳第24部分:住宅保护装置和其他电源功耗电器的外壳的特殊要求
- 安全风险辨识记录
评论
0/150
提交评论