




已阅读5页,还剩56页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 智能交通信号灯设计毕业论文智能交通信号灯设计毕业论文 目 录 1 1 绪论绪论 1 1 1 交通灯控制器的研究背景 1 1 2 交通灯控制器的研究意义 2 1 3 交通灯控制器的发展前景 3 2 2 总体设计方案总体设计方案 5 2 1 设计思路 5 2 2 系统总框图 6 2 3 系统工作原理 6 3 3 硬件设计硬件设计 8 3 1 系统设计 8 3 2 主控模块设计 8 3 2 1 STC89C51 内部结构 9 3 2 2 STC89C51 单片机的 I O 口功能 10 4 4 软件设计软件设计 22 4 1 编程语言 22 4 2 控制程序设计 23 4 3 主程序模块 24 4 4 定时器 T0 25 4 5 按键子程序设计 28 4 6 显示程序模块 31 II 5 5 调试与检测调试与检测 34 5 1 硬件调试 34 5 2 软件调试 35 5 3 软硬联试 35 5 4 性能测试结果 35 6 6 结论结论 37 参考文献参考文献 38 谢谢 辞辞 39 附录附录 A A 系统原理图 系统原理图 40 附录附录 B B 系统实物图 系统实物图 41 附录附录 C C 系统元件清单 系统元件清单 42 附录附录 D D 系统源程序 系统源程序 43 3 1 绪论 1 1 交通灯控制器的研究背景 交通信号灯关系着人们的生命和财产安全 目前 红绿灯安装在各个路口 上 已经成为疏导交通车辆最常见和最有效的手段 但这一技术在 19 世纪就已 出现了 1858 年 在英国伦敦主要街头安装了以燃煤气为光源的红 蓝两色的扳手 式信号灯 用以指挥车马通行 这是世界上最早的交通信号灯 1868 年 英国 机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上 安装了世界上 最早的煤气红绿灯 它由红绿两块以旋转式方形玻璃提灯组成 红色表示 停止 绿色表示 注意 1869 年 1 月 2 日 煤气灯爆炸 使警察受伤 遂被取消 1914 年 电气启动的红绿灯出现在美国 这种红绿灯由红绿黄三色圆形的投光 器组成 安装在纽约市 5 号大街的一座高塔上 红灯亮表示 停止 绿色亮表 示 通行 1918 年 又出现了带控制的红绿灯和红外线红绿灯 带控制的红绿灯 一 种是把压力探测器安在地下 当车辆接近时 红灯便变为绿灯 另一种是用扩 音器来启动红绿灯 司机遇红灯时按一下喇叭 就使红灯变为绿灯 红外线红 绿灯当行人踏上对压力敏感的路面时 它就能察觉到有人要过马路 红外光束 能把信号灯的红灯延长一段时间 推迟汽车放行 以免发生交通事故 信号灯的出现 使交通得以有效管制 对于疏导交通流量 提高道路通行 能力 减少交通事故有明显效果 1968 年 联合国 道路交通和道路标志信号 协定 对各种信号灯的含义作了规定 绿灯是通行信号 面对绿灯的车辆可以 直行 左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行道的行人 优先通行 红灯是禁行信号 面对红灯的车辆必须在交叉路口的停车线后停车 黄灯是警告信号 面对黄灯的车辆不能越过停车线 但车辆已十分接近停车线 而不能安全停车时可以进入交叉路口 4 随着经济的发展 交通运输中出现了一些传统方法难以解决的问题 道路 拥挤现象日趋严重 造成的经济损失越来越大 并一直保持大比例的增长 现 在交通系统已不能满足经济发展的需求 由于生活水平的提高 人们对交通运 输的安全性及服务水平提出了更高的要求 在交通管理中引入单片机交通灯控 制代替交管人员在交叉路口服务 有助于提高交通运输的安全性 提高交通管 理的服务质量 并在一定程度上尽可能的降低由道路拥挤造成的经济损失 同 时也减小了工作人员的劳动强度 中国车辆数量不断增加 交通控制在未来的交通管理中起着越来越重要的 作用 智能交通灯的管理比重修一条马路无论在经济 交通运行速率上都有很 好的效益 更加节约资源 使交管人员有更多的精力投入到管理整个城市交通 控制 带来更大的经济和社会效益 为创造美好的城市交通形象发挥更多的作 用 1 2 交通灯控制器的研究意义 交通是城市经济活动的命脉 对城市经济发展 人民生活水平的提高起着 十分重要的作用 汽车现已成为人们日常生活中必不可少的交通工具 汽车在 给人们带来便利的同时 也带来了一系列令人困惑的问题 如环境污染 交通 拥挤 交通事故频繁发生 给人们的生命和财产带来了很大的损失 城市交通 问题困扰城市发展 制约城市经济建设的重要因素 人们对交通有效控制的意 识越来越强烈 随着我国国民经济和城市化的迅速发展 城市交通堵塞问题越来越严重 而街道各十字路口 又是车辆通行的瓶颈所在 解决城市交叉口的交通拥挤问 题越来越紧迫 对于拓宽道路 投资甚多 且征用土地在城市中难于实现 因 此改善道路交通设施 提高现有道路的利用率不失为解决道路拥塞比较好的方 案 交通信号灯的出现 使交通得以有效管制 对于疏导交通流量 提高道路 通行能力 减少交通事故有明显效果 5 世界卫生组织的报告指出 全世界每天有 3000 多人死于道路交通伤害 因 道路交通伤害引起的 85 的死亡以及 90 的伤残调整寿命年发生在中 低收入 国家 研究表明 2000 到 2020 年 道路交通事故死亡人数在高收入国家将下 降 30 左右 而在中 低收入国家则会大幅度增加 如果不采取适当措施 到 2020 年 道路交通伤害预计将成为全球疾病与伤害负担的重要原因 交通安全问题不仅仅是交通领域的问题 它的严重程度已经成为社会问题 根据联合国和世界卫生组织的有关报告 人们每天所而对的各种问题中 道路 交通伤害是最复杂也是最危险的 据估计 全世界每年约有 120 万人死于道路 交通事故 受伤者多达 5000 万人 如果不采取强有力的预防措施 今后 20 年 中道路交通事故致死和受伤人数将增加 65 左右 交通安全已经成为一个波及 社会各个部门的全球性问题 交通问题是世界各国面临的共同问题 交通拥挤造成了巨大的时间浪费 加大了环境污染 我国大多数城市的平均行车速度已降至 20km h 以下 有些 路段甚至只有 7 8km h 由于车辆速度过慢 尾气排放增加 使得城市的空气 质量进一步恶化 交通问题造成了巨大的经济损失 据研究报道 美国每年因交通阻塞造成 的经济损失约 410 亿美元 日木东京每年因交通拥挤造成的时间损失相当于 1000 多亿美元 为了缓解经济发展带来的交通运输方面的压力 尽量的利用现 有的资源 使其发挥最大的作用 各国都加大了对智能交通系统的研究和建设 的力度 交通控制和管理性能方面通常是评估一些重要的属性 例如 成本 时间 可靠性和安全性 一个有效的和高效的流量控制和管理系统有利于社会的大量 减少燃料消耗 保护环境 促进发展 减少交通拥堵 提高安全性 交通控制 灯是我们日常生活中重要的交通控制设施 安装在各个交叉路口 在疏导车辆 通行中有着很重要的意义 6 1 3 交通灯控制器的发展前景 我国对城市交通灯控制系统的分析与研究工作起步较晚 20 世纪 80 年代 我国一方面把城市交通灯技术的提高放在了交通改变的核心地位 另一方面制 定了开发与引进相结合的方针政策 逐渐建立了一些简单的城市交通灯控制系 统 在北京和上海等大城市 采用简易单点的信号灯 并与国外的几个交通灯 控制系统相结合使用 但对于西安 成都等中小城市 主要采用的仍然是简易 单点信号灯以及与集中协调式的信号灯 而以上系统的红绿灯的时间 都是事 先预设好的 在运行期间固定不变 这些交通信号灯控制系统暂时虽然获得较 好的效果 对其交通起到了一定的作用 随着我国机动车的增多 这些简单的控制系统已经远远不能够满足当前我 国交通的需求 为了解决上述问题 我国的交通灯控制系统需要进行的改进主 要包括 完善交通灯控制系统的实时性 降低成本 使其安装及维修方便 合理解 决混合交通流问题 实现区域网络协调控制 对于小型的路口 应研制并设计能够 对交通流量进行监控的交通信号灯系统 所以 现今的交通控制系统不断趋向智 能化 智能交通系统是指人们将先进的信息技术 数据通讯传输技术 电子控制 技术 传感器技术以及计算机处理技术等有效地综合运用于整个运输体系中 从而建立起的一种在大范围内 全方位发挥作用的实时 准确 高效的运输综 合管理系统 实施智能交通系统工程不仅能够提高交通的效益与效率 增强交 通安全性 降低环境污染 而且有利于合理利用土地与能源 甚至对于国民经 济的持续发展与社会经济效益的全而提高都是至关重要的 7 2 总体设计方案 2 1 设计思路 交通灯是城市交通的重要指挥系统 与人们的日常生活密切相关 随着经 济的快速发展 城市中的车辆逐渐增多 交通拥挤和堵塞现象日趋严重 引起 交通事故频发 环境污染加剧等一系列问题 交通灯控制系统为解决这些问题 起到重要的作用 本设计是采用 MSC 51 系列单片机 STC89C52 为中心器件来设计交通灯控制 器 发光二极管和数码管实现了设置红 绿灯燃亮时间和显示的功能 控制十 字路口红绿灯以及人行道红绿灯交替亮和熄灭 通过按键进行对交通控制系统 的控制 实现增减数码管倒计时时间 南北通行 东西通行和全路禁行等功能 近年来随着科技的飞速发展 单片机的应用正在不断深入 同时带动传统 控制检测技术日益更新 在实时检测和自动控制的单片机应用系统中 单片机 往往作为一个核心部件来使用 仅单片机方面知识是不够的 还应根据具体硬 件结构软硬件结合 加以完善 十字路口车辆穿梭 行人熙攘 车行车道 人行人道 有条不紊 靠的就 是交通信号灯的自动指挥系统 交通信号灯控制方式很多 本系统采用 STC89C51 单片机以及单片机最小系统和三极管驱动电路以及外围的按键和数码 管显示等部件 设计一个基于单片机的交通灯设计 设计通过两位一体共阴极 数码管显示 并能通过按键对定时进行设置 本系统实用性强 操作简单 扩 8 展功能强 设计通过 STC89C51 单片机以及单片机最小系统和 74HC245 驱动数 码管 数码管更亮 白天看的很清楚 以及外围的按键和数码管显示等部件 数码管倒计时显示时间 使其能模仿城市十字路口交通灯的能力 并满足对特 殊情况的控制要求 每条道路上各配有一组红 黄 绿交通信号灯 其中红灯亮 表示该道路 禁止通行 黄灯亮表示该道路上未过停车线的车辆禁止通行 已过停车线的车 辆继续通行 绿灯表示该道路允许通行 用数码管显示各灯燃亮倒计时时间 该电路自动控制十字路口两组红 黄 绿交通灯的状态转换 实现十字路口自 动化 并设定黄灯常亮 深夜模式 禁行 东西通行 南北通行 切换多种燃 亮模式 最后实现燃亮时间可调的功能 用以满足各时段各中路况的通行能力 2 2 系统总框图 本设计以单片机为控制核心 采用模块化设计 主要有以下几个功能模块 单片机控制系统模块 驱动显示模块 LED 倒计时模块 信号灯状态模块 按 键控制模块 复位电路 振荡电路和最小系统外围接口组成 单片机 红黄绿信号灯 8 段 LED 数码管 复位电路 最小系统 外围接口 按键控制 驱动显示 9 图 2 1 系统的总体框图 单片机设计交通灯控制系统 可用单片机直接控制信号灯的状态变化 基 本上可以指挥交通的具体通行 接入 LED 数码管可以显示倒计时以提醒行驶者 更具人性化 按键设置模块可对系统输入模式进行选择及设置具体通行时间 2 3 系统工作原理 1 按键输入设置交通灯初始模式 并设置燃亮时间 通过 89C51 的 P3 口输入到系统 2 通过 89C51 单片机的 P0 口向驱动电路的数据口传送信息 再由驱动 电路驱动 LED 数码管显示倒计时的时间 3 通过 89C51 单片机的 P2 口显示红 黄 绿三色灯的燃亮时间 10 3 硬件设计 3 1 系统设计 根据系统框图 可知本系统主要有单片机控制系统模块 驱动显示模块 LED 倒计时模块 信号灯状态模块 按键控制模块 复位电路 振荡电路等组 成 单片机 89C51 信号灯发光二极管 时间显示 LED 数码管 复位电路 按键 74HC245 图 3 1 硬件结构图 按键主要是用来设置各信号灯燃亮的模式和时间 74HC245 用来驱动 8 段 LED 数码管显示时间 用发光二极管模拟信号灯 单片机 RST 引脚上接复位电 11 路 XTAL1 和 XTAL2 接入晶振时钟电路 3 2 主控模块设计 主控模块是对整个系统进行控制 是整个系统的 大脑 在本次设计中 采用 STC89C51 作为主控芯片 与 MCS 51 单片机产品兼容 8K 字节在系统可编程 Flash 存储器 1000 次 擦写周期 全静态操作 0Hz 33Hz 三级加密程序存储器 32 个可编程 I O 口 线 三个 16 位定时器 计数器 八个中断源 全双工 UART 串行通道 低功耗 空闲和掉电模式 掉电后中断 可唤醒 双数据指针 掉电标识符 其有以下 主要优点 高速 高可靠 低功耗 超低价 加密性强 无法解密 强抗静电 强抗干扰 3 2 1 STC89C51 内部结构 STC89C51 是一种低功耗 高性能的 CMOS 8 位微控制器 具有 8K 在系统可 编程 Flash 存储器 使用高密度非易失性存储器技术制造 与工业 80C51 产品 指令和引脚完全兼容 片上 Flash 允许程序存储器在系统可编程 亦适于常规编 程器 在单芯片上 拥有 8 位 CPU 和在线系统可编程 Flash 使得 STC89C51 为 众多嵌入式控制应用系统提供高灵活 超有效的解决方案 PC 数据存储 器RAM 定时器 计 数器T0 TI CPU 并行I O口串行口中断系统 ACC B寄存器 PSW 振荡器 程序存储 器RM XTAL1 XTAL2 RESET EA ALE PSEN 程序计数 器 特殊功能 寄存器 P1P0P3P2 串行通信 中断输入 Vcc Vss 图 3 2 内部结构图 STC89C51 具有以下标准功能 8K 字节 Flash 256 字节 RAM 32 位 I O 口 12 线 看门狗定时器 2 个数据指针 三个 16 位定时器 计数器 一个 6 向量 2 级中断结构 全双工串行口 片内晶振及时钟电路 另外 STC89C51 可降至 0Hz 静态逻辑操作 支持 2 种软件可选择节电模式 空闲模式下 CPU 停止工 作 允许 RAM 定时器 计数器 串口 中断继续工作 掉电保护方式下 RAM 内容被保存 振荡器被冻结 单片机一切工作暂停 直到下一个中断或硬件复 位为止 3 2 2 STC89C51 单片机的 I O 口功能 40 35 1 5 10 30 25 15 2021 80C51 P1 0 P1 1 P1 2 P1 3 P1 4 P1 5 P1 6 P1 7 RST P3 0 P3 1 P3 2 P3 3 P3 4 P3 5 P3 6 P3 7 XTAL2 XTAL1 VSS VCC P0 0 P0 1 P0 2 P0 3 P0 4 P0 5 P0 6 P0 7 EA ALE PSEN P2 7 P2 6 P2 5 P2 4 P2 3 P2 2 P2 1 P2 0 图 3 3 89C51 单片机引脚图 在 STC89C51 中 有四个双向 I O 端口 P0 P3 口 每个端口都是由锁存器 输出驱动器 输入缓冲器组成 当 CPU 控制系统与外部设备交换信息时 都是 通过端口锁存器进行的 四个 I O 端口都可作输入输出使用 其中 P0 和 P2 口 13 通常用于对外部存储器的访问 P0 口 P0 口是一个 8 位漏极开路的双向 I O 口 作为输出口 每位能驱动 8 个 TTL 逻辑电平 对 P0 端口写 1 时 引脚用作高阻抗输入 而访问外部程序 和数据存储器时 P0 口也被作为低 8 位地址 数据复用 在这种模式下 P0 具 有内部上拉电阻 而在 Flash 编程时 P0 口也用来接收指令字节 在程序校验时 输出指令 字节 程序校验时 需要外部上拉电阻 P1 口 P1 口是一个具有内部上拉电阻的 8 位双向 I O 口 P1 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P1 端口写 1 时 内部上拉电阻把端口拉高 此 时可以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的 原因 将输出电流 此外 P1 0 和 P1 2 分别作定时器 计数器 2 的外部计数输 入 P1 0 T2 和时器 计数器 2 的触发输入 P1 1 T2EX 具体如下所示 在 Flash 编程和校验时 P1 口接收低 8 位地址字节 引脚号第二功能 P1 0 T29 定时器 计数器 T2 的外部计数输入 时钟输出 P1 1 T2EX 定时器 计数器 T2 的捕捉 重载触发信号和方向控制 P1 5 MOSI 在线系统编程用 P1 6 MISO 在线系统编程用 P1 7 SCK 在线系统编程用 P2 口 P2 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P2 端口写 1 时 内部上拉电阻把端口拉高 可 以作为输入口使用 而作为输入使用时 被外部拉低的引脚由于内部电阻的原 因 将输出电流 访问外部程序存储器或用 16 位地址读取外部数据存储器时 P2 口送出高八位地址 在这种应用中 P2 口使用很强的内部上拉发送 1 在使 用 8 位地址访问外部数据存储器时 P2 口输出 P2 锁存器的内容 在 Flash 编程 14 和校验时 P2 口也接收高 8 位地址字节和一些控制信号 P3 口 P3 口是一个具有内部上拉电阻的 8 位双向 I O 口 P2 输出缓冲器 能驱动 4 个 TTL 逻辑电平 对 P3 端口写 1 时 内部上拉电阻把端口拉高 可 以作为输入口使用 作为输入使用时 被外部拉低的引脚由于内部电阻的原因 将输出电流 P3 口亦作为 STC89C51 特殊功能 第二功能 使用 如下所示 在 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 外部数据存储器读选通 P3 口还接收一些用于 Flash 闪存编程和程序校验的控制信号 RST 复位输入 当振荡器工作时 RST 引脚出现两个机器周期以上高电平 为单片机复位 ALE PROG 当访问外部程序存储器或数据存储器时 ALE 地址锁存允许 输出脉冲用于锁存地址的低 8 位字节 一般情况下 ALE 仍以时钟振荡频率的 1 6 输出固定的脉冲信号 因此它可对外输出时钟或用于定时目的 要注意的 是 每当访问外部数据存储器时将跳过一个 ALE 脉冲 对 Flash 存储器编程期间 该引脚还用于输入编程脉冲 PROG 如有必要 可通过对特殊功能寄存器 SFR 区中的 8EH 单元的 D0 位置位 可禁止 ALE 操作 该位置位后 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活 15 此外 该引脚会被微弱拉高 单片机执行外部程序时 应设置 ALE 禁止位无效 PSEN 程序储存允许 PSEN 输出是外部程序存储器的读选通信号 当 STC89C52 由外部程序存储器取指令 或数据 时 每个机器周期两次 PSEN 有 效 即输出两个脉冲 在此期间 当访问外部数据存储器 将跳过两次 PSEN 信号 EA VPP 外部访问允许 欲使 CPU 仅访问外部程序存储器 地址为 0000H FFFFH EA 端必须保持低电平 接地 需注意的是 如果加密位 LB1 被编程 复 位时内部会锁存 EA 端状态 如 EA 端为高电平 接 VCC 端 CPU 则执行内部程序存储器的指令 Flash 存储器编程时 该引脚加上 12V 的编程允许电源 VPP 当然这必须是 该器件是使用 12V 编程电压 VPP XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入 XTAL2 来自反向振荡器的输出 3 3 复位电路的设计 单片机芯片的第 9 脚 RST 是复位信号输入端 单片机系统在开机时或在工 作中因干扰而使程序失控 或工作中程序处于某种死循环状态等情况下都需要 复位 复位的作用是使中央处理器 CPU 以及其他功能部件都恢复到一个确定的 初始状态 并从这个状态开始工作 STC89C51 单片机的复位靠外部电路实现 信号从 RST 引脚输入 高电平有效 只要保持 RST 引脚高电平 2 个机器周期 单片机就能正常复位 常见的复位电路有上电复位电路和按键复位电路二种 本设计使用按键复位 16 C3 10uf R1 10k reset 图 3 4 复位电路图 3 4 时钟电路的设计 时钟电路用于产生 MCS 51 单片机工作时所必须的时钟控制信号 其内部 电路在时钟信号控制下 严格地按时序执行指令进行工作 在执行指令时 CPU 首先要到程序存储器中取出需要执行的指令操作码 然后译码 并由时序 电路产生一系列控制信号去完成指令所规定操作 XTAL1 XTAL2 89C51 晶 振 C01 C02 图 3 5 晶振电路 单片机是一种时序电路 必须要有时钟信号才能正常工作 单片机芯片的 18 脚 19 脚分别为片内反向放大器的输出端和输入端 只要在 18 脚 XTAL2 和 19 脚 XTAL1 之间接上一个 12MHz 的晶振 再加上 2 个 30pF 的瓷片电容即可 构成单片机所需的时钟电路 他们构成一个稳定的自激振荡器 该电容的大小 影响振荡器频率的高低 振荡器的稳定性和起振的快速性 为单片机提供标准 17 时钟 其中两个瓷片电容起微调作用 此外 当采用外部时钟时 19 脚 XTAL1 接地 18 脚 XTAL2 接外部时钟信号 3 5 74HC245 总线收发器 74HC245 是一种典型的 CMOS 型三态缓冲门电路 双向三态输出 八线双 向收发器 主要应用于大屏显示 以及其它的消费类电子产品中增加驱动 电压 工作范围 3V 5V 20 15 1 5 1011 DIR A0 A1 A2 A3 A4 A5 A6 A7 GND VDD OE B0 B1 B2 B3 B4 B5 B6 B7 图 3 6 74HC245 引脚图 第1脚 DIR 为输入输出端口转换用 DIR 1 高电平时信号由 A 端输入 B 端输出 DIR 0 低电平时信号由 B 端输入 A 端输出 第2 9脚 A 信号输入输出端 A0 B0 A7 B7 A0与 B0是一组 如果 DIR 1 OE 0 则 A1输入 B1输出 其它类同 如果 DIR 0 OE 0 则 B1输入 A1 输出 其它类同 第11 18脚 B 信号输入输出端 功能与 A 端一样 不再描述 第19脚 OE 使能端 若该脚为 1 A B 端的信号将不导通 只有为 0 时 A B 端才被启用 该脚也就是起到开关的作用 第10脚 GND 逻辑地 第20脚 VCC 电源正极 18 本设计中使用74HC245用于实现数据总线的双向异步通信 为了保护脆弱 的主控芯片 通常在主控芯片的并行接口与外部受控设备的并行接口间添加缓 冲器 当主控芯片与受控设备之间需要实现双向异步通信时 自然就得选用双 向的八路缓冲器了 74HC245就是面向这种需求的 表3 1 74HC245真值表 3 6 LED 数码管 数码管按段数分为7段数码管和8段数码管 8段数码管比7段数码管多一个 发光二极管单元 由小数点显示 按能显示多少个 8 可分为1位 2位 4位等 数码管 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管 LED 数码管显示器是由发光二极管显示字段的51单片机输出设备 LED 数码管的结 构简单 因此 单片机应用系统常采用八段 LED 数码管作为显示器 这种显示 器具有耗电低 配置灵活 线路简单 安装方便 耐转动 价格低廉且寿命长 等优点 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极 COM 的 数码管 共阳数码管在应用时应将公共极 COM 接到 5V 当某一字段发光二极 管的阴极为低电平时 相应字段就点亮 当某一字段的阴极为高电平时 相应 字段就不亮 控制输入 GDIR 运行 LLB 数据到 A 总线 LHA 数据到 B 总线 HX隔开 19 abcdefgh D1D2D3D4D5D6D7 D8 图3 7 共阳极 共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极 COM 的 数码管 共阴数码管在应用时应将公共极 COM 接到地线 GND 上 当某一字段 发光二极管的阳极为高电平时 相应字段就点亮 当某一字段的阳极为低电平 时 相应字段就不亮 D1D2 D3 D4D5D6D7 abcdefgh D8 图3 8 共阴极 数码管要正常显示 就要用驱动电路来驱动数码管的各个段码 从而显示 出我们要的数字 因此根据数码管的驱动方式的不同 可以分为静态式和动态 式两类 第一类为静态显示驱动 静态驱动也称直流驱动 静态驱动是指每个数码 管的每一个段码都由一个单片机的 I O 端口进行驱动 或者使用如 BCD 码二 十 进制译码器译码进行驱动 静态驱动的优点是编程简单 显示亮度高 缺点是 占用 I O 端口多 如驱动5个数码管静态显示则需要5 8 40根 I O 端口来驱动 要知道一个89C51单片机可用的 I O 端口才32个 实际应用必须增加译码驱动器 进行驱动 增加了硬件电路的复杂性 第二类为动态显示驱动 数码管动态显示接口是单片机中应用最广泛的一 种显示方式之一 动态驱动是将所有数码管的8个显示笔划 a b c d e f g dp 的同名端连在一起 另外为每个数码管的公共极 20 COM 增加位选通控制电路 位选通由各自独立的 I O 线控制 当单片机输出字 形码时 所有数码管都接收到相同的字形码 但究竟是那个数码管会显示出字 形 取决于单片机对位选通 COM 端电路的控制 所以我们只要将需要显示的数 码管的选通控制打开 该位就显出字形 没有选通的数码管就不亮 通过分时 轮流控制各个数码管的 COM 端 就使各个数码管轮流受控显示 这就是动态驱 动 在轮流显示过程中 每位数码管的点亮时间为1 2ms 由于人的视觉暂留 现象及发光二极管的余辉效应 尽管实际上各位数码管并非同时点亮 但只要 扫描的速度够快 给人的感觉就是一组稳定的显示数据 不会有闪烁的感觉 动态显示的效果和静态显示是一样的 但能够节省大量的 I O 端口 而且功耗 更低 基于交通灯所要实现的的功能要求 所以选用第二种 动态显示驱动 本 设计采用的是0 36英寸10个管脚的2位共阳极数码管 A B C D E FGDPA B C D E FGDP 3987 6412 图 3 9 内部结构图 3 7 信号灯电路设计 本设计用红 黄 绿三色发光二极管模拟红 黄 绿三色交通信号灯 发光二极管简称 LED 采用砷化镓 镓铝砷 和磷化镓等材料制成 其内 部结构为一个 PN 结 具有单向导电性 21 当在发光二极管 PN 结上加正向电压时 PN 结势垒降低 载流子的扩散运 动大于漂移运动 致使 P 区的空穴注入到 N 区 N 区的电子注入到 P 区 这样 相互注入的空穴与电子相遇后会产生复合 此时产生的能量大部分以光的形式 出现 因此而发光 当所有二极管都发出光时 大多数都不是很有效的 在普 通二极管里 半导体材料本身吸引大量的光能而结束 发光二极管是由一个塑性灯泡覆盖集中灯光于一个特定方向 由于不同材 料的禁带宽度不同 所以由不同材料制成的发光二极管会发出不同波长的光 另外 有些材料由于组分和掺杂不同 例如 有的具有很复杂的能带结构 相 应的还有间接跃迁辐射等 因此有各种各样的发光二极管 发光二极管在制作时 使用的材料有所不同 那么就可以出现不同颜色的 光 发光二极管的发光颜色有 红色光 黄色光 绿色光 红外光等等 发光 二极管的外形有圆形 长方形 三角形 正方形 组合形 特殊形等 常用的 发光二极管应用电路有 4 种 即直流驱动电路 交流驱动电路 脉冲驱动电路 变色发光驱动电路 因此我们选的二极管颜色为红色 黄色 绿色 绿灯是通 行信号 面对绿灯的车辆可以直行 红灯是禁行信号 面对红灯的车辆必须在 交叉路口的停车线后停车 黄灯是警告信号 面对黄灯的车辆不能越过停车线 发光二极管有两个引脚 其中长引脚接电源正端 较短的引脚接电源负端 根据本设计的特点 红绿灯的显示不可少 红绿灯的显示采用普通的发光 二极管 每个方向上设置红 绿 黄灯 总共 4 组 如果东西红灯亮 那南北 方向就是绿灯亮 反之亦然 所以在硬件上连接图上也是对称分布的 如图所 示 22 图 3 10 信号灯分布图 在本设计中 实际控制的灯只有 6 个 即 东西红灯 东西绿灯 东西黄 灯 南北红灯 南北绿灯 南北黄灯 其中均是高电平有效 3 8 按键控制电路 本设计设置了 8 个按键 K0 K1 K2 K3 k4 k5 k6 K7 每个按键一 段接地 另一端 89C51 单片机 P3 口各接口 低电平有效 P 接增加倒计时时间 P 接减少倒计时时间 P 接南北通行 P 接东西通行 P 接紧急模式 P 接深夜 模式和 P 接切换状态 当按键按下端口接地 单片机捕获到低电平 从而知道 相应的中断输入信息 时间可调 当主干道方向的车辆过多发生堵塞 正常的信号灯时序将会使 交通状况更加恶化 所以设立增加倒计时时间 减少倒计时时间这 2 个功能按 键 通过按键对时间进行手动设置 增加了人为的可控性 避免车少长等和减 缓车多交通堵塞的麻烦 南北 东西通行 交通路口出现各种状况在所难免 如救护车等急行车通 过时 必须其中一个方向畅通无阻 因此需要在设计中加入按键进行中断控制 使其需要通行的方向绿灯一直燃亮 而另一端红灯一直燃亮 等到紧急情况结 束 切换正常模式恢复交通指挥 紧急模式 交通路口出现紧急状况在所难免 如发生交通事故 我们都必 须立刻停止当前车辆的行驶 毕竟这种情况应该是分秒必争的 时时刻刻关系 23 着公共财产安全和个人安危 因此需要在设计中加入按键进行中断控制 当急 行情况发生时 南北绿灯东西红灯或东西绿灯南北红灯 倒计时显示变为 00 不 动 通过倒计时显示就可以知道路面情况正处于特殊状况后 提高人们的注意 力 按键弹起 交通灯恢复中断前状态 数码管继续倒计时 深夜模式 在深夜时段 交通路口的车流量大幅度减少 这时正常的交通 模式不适合实际情况的需要 因此设置按键进行控制 当深夜时间车辆很少时 东西 南北方向四个黄灯同时燃亮 提醒人们注意交通情况 减速慢行 相互 谦让 安全的通过交通十字路口 既保证了交通的安全 同时也减短通过交通 路口的时间 提高效率 本设计采用轻触按键 其原理图如下所示 12 43 图 3 11 轻触按键结构原理图 1 脚和 2 脚是导通的 3 脚和 4 脚是导通的 所以说电路中只要接 1 3 脚 或 1 4 脚或 2 3 脚或 2 4 脚就可以导通了 3 9 电源电路 单片机芯片一般外接 5V 电压 74HC245 总线收发器外接电压 VCC 也是 5V 所以整个电路中所提供的电源为 5V 本设计采用 DC 电源提供电路电压 用 USB 电源线外接电源 DC 电源接口连接自锁开关 作为整个电路的总开关 24 图 3 12 DC 电源及自锁开关原理图 DC 电源的 2 3 脚接地 1 脚实际是 VCC 电源 但是电路中要接自锁开 关 然后开关的另一个脚再接电源 自锁开关在电路中起到电源的开关作用 常开的其中一脚接 DC 电源插口电源脚 常开的另一脚接电路的 VCC 4 软件设计 4 1 编程语言 在基于 51 单片机交通灯控制器的软件设计当中 采用 C 语言作为开发语言 与汇编语言相比 C 语言在功能上 结构上 可读性 可维护性上有明显的优 势 易学易用 因此出现了专门用于 51 系列单片机编程的 C 语言 C51 目前 最先进 功能最强大的 C51 编译器是 Keil C51 在单片机的开发应用中 逐渐引入了高级语言 C 语言就是其中的一种 对用习惯了的汇编语言的人来说 高级语言可控性不好 不如汇编语言那样能 够随心所欲 但是使用汇编语言会遇到很多问题 首先它的可读性和可维护性 不强 特别是当程序没有很好标注的时候 其次就是代码的可重用性也比较低 使用 C 语言就可以很好的解决这些问题 25 C 语言具有良好的模块化 容易阅读和维护等优点 由于模块化 用 C 语 言编写的程序有很好的可移植性 功能化的代码能够很方便地从一个工程移植 到另一个工程 从而减少了开发时间 用 C 语言编写程序比用汇编语言更符合 人们的思考习惯 开发者可以更专心地考虑算法而不是考虑一些细节问题 这 样就减少了开发和调试的时间 很多系统特别是实时时钟系统都是用 C 语言和汇编语言联合编写的 对时 钟要求严格时 使用汇编语言是唯一的方法 除此之外 包括硬件接口的操作 都应该用 C 语言来编写 语言的特点就是可以使程序员尽量少地对硬件进行操 作 它是一种功能性和结构性很强的语言 对于大多数 51 系列单片机 使用 C 语言这样的高级语言与使用汇编语言相 比具有如下优点 1 不需要了解处理器的指令集 也不必了解存储器的结构 2 寄存器分配和寻址方式由编译器进行管理 编程时不需要考虑存储器 的寻址和数据类型等细节 3 指定操作的变量选择组合提高了程序的可读性 4 可使用与人的思维更相近的关键字和操作函数 5 与使用汇编语言编程相比 程序的开发和调试时间大大缩短 6 C 语言中的库文件提供许多标准的列程 例如格式化输出 数据转换 和浮点运算等 7 通过 C 语言可实现模块化编程技术 从而可将已编制好的程序加入到 信程序中 8 C 语言可移植性好且非常普及 C 语言编译器几乎适用于所有的目标 系统 已完成的软件项目可以很容易地转换到其他的处理器或环境中 由于单片机硬件的限制 有些场合无法用 C 语言编写 而只能用汇编语言 来编写程序 大多数情况下汇编程序能和用 C 语言编写的程序很好地结合在一 26 起 4 2 控制程序设计 本设计的全部控制程序实际上分为若干子程序 T0 中断子程序 延时子程 序 按键扫描子程序 键处理子程序 时间显示子程序 黄灯闪烁 5s 子程序等 根据设计的要求和功能 系统的工作流程可以按如下方式进行 1 程序设置初始时间 通过 89C51 单片机内部相应寄存器来实现 2 由 89C51 单片机的定时器每秒钟通过 P0 口向 74HC245 的输入口输入 信息 由 74HC245 的输出口显示红 绿 黄灯的燃亮时间 由 89C51 的 P2 口 显示 4 组红 绿 黄灯的燃亮情况 3 89C51 通过程序设置每组信号灯的燃亮时间 通过程序设置红 绿 黄每组信号灯的燃亮状态 4 当系统出现异常 通过手动复位方式 引起 RESET 复位信号复位系统 4 3 主程序模块 主程序初始化和按键控制 首先将时间子程序 中断子程序 延时子程序 按键扫描子程序 键处理子程序和显示子程序分别进行初始化 然后启动定时 器对时间进行判断 将时间送数据缓冲区 调用显示程序 同时扫描按键程序 用无条件跳转指定返回 再调用显示程序 如此周而复始的循环 如下图所示 27 开始 T0初始化 中断初始化 启动T0 显示初始化 查阅状态表 保存表地址 调用显示 扫描按键 图 4 1 主程序循环流程图 LED 状态信号灯总共有 4 个状态 中间间隔着一个 5 秒的黄灯闪烁时间 程 序可根据按照流程图一步一步进行设计 然后把 P2 端口作为信号灯的输出端口 来用二进制编码 编成 8 个状态 然后一个一个状态的输出 就可以实现信号灯的 交替亮灭 再把 P0 端口作为数码管时间显示的输出端口 就可以实现数码管倒 计时时间的功能 该交通信号灯控制系统的工作状态 1 东西方向直行绿灯亮 南北方向红灯亮 表示东西方向车道允许直行 南北方向车道禁止通行 经过一定时间倒计时完成后 南北红灯不变 东西黄 灯闪烁 5 秒 转到下一工作状态 2 南北方向直行绿灯亮 东西方向红灯亮 表示南北方向车道允许直行 东西方向车道禁止通行 经过一定时间倒计时完成后 东西红灯不变 南北黄 灯闪烁 5 秒 转到下一个工作状态 东西方向绿灯亮 南北方向红灯亮 如此 循环 28 开始 89C51初始化 东西通行 南北禁行 20s 东西黄灯闪烁 5s 南北通行 东西禁行 30s 南北黄灯闪烁 5s N N N N Y Y 图 4 2 主程序流程图 4 4 定时器 T0 延时方法可以有两种 一中是利用 89C51 内部定时器生溢出中断来确定 1 秒的时间 另一种是采用软延时的方法 本设计采用 T0 定时器方法来设定 1S 时 间 其中 T0 定时又有两种方法 中断和查询 这里采用 T0 定时器中断方法 定时器工作的基本原理其实就是给初值 让它不断加 1 直至减完为模值 这个初值是送到 TH 和 TL 中的 它是以加法记数的 并能从全 1 到全 0 时自动 产生溢出中断请求 因此 我们可以把计数器记满为零所需的计数值 即所要 求的计数值设定为 C 把计数初值设定为 TC 可得到如下计算通式 CMTC 式中 M 为计数器模值 计数值并不是目的 目的是时间值 设计 1 次的 时间 即定时器计数脉冲的周期为 它是单片机系统主频周期的 12 倍 计数T 设要求的时间值为 T 则有 计算通式变为 计数TTC 计数TTCMT 模值和计数器工作方式有关 在方式 0 时 M 为 8192 在方式 1 时 M 的值 为 65536 在方式 2 和 3 为 256 就此可以算出各种方式的最大延时 如单片机 的主脉冲频率为 12MHz 经过 12 分频后 若采用方式 0 最大延时只有 8 129 毫 29 秒 采用方式 1 最大延时也只有 65 536 毫秒 这就是为什么扫描周期为 50ms 的原因 若使用软件则会耽搁程序流程 显然不可行 相反 时间计时方面却 不可能只用计数器 因为显然 1 秒钟已经超过了计数器的最大定时时间 所以 我们还必须采用定时器和软件相结合的办法才能解决这个问题 延时子程序 void delay int ms 延时子程序 uint j k for j 0 j ms j 延时 ms for k 0 k 124 k 大约 1 毫秒的延时 在主程序中设定一个初值为 20 的软件计数器使定时器 T0 工作于方式 1 定 时 50 毫秒 这样每当 T0 到 50 毫秒时 CPU 就响应它的溢出中断请求 进入它 的中断服务子程序 在中断服务子程序中 CPU 先使软件计数器减 1 然后判 断它是否为 0 为 0 表示 1 秒已到 定时器工作时必须给计数器送初值 将这个值送到 TH 和 TL 中 它是以加 法计数的 并能从全 1 到全 0 时自动产生溢出中断请求 因此工作于方式 1 定时器为 16 位计数器 其定时时间由下式计算 式中 X 为 T0 的初始值 该值和计数器工作方式有关 如单片机的主脉冲频率为 12MHz 经过 12 分频 方式 0 毫秒微秒定时时间192 8 1213 方式 1 毫秒微秒定时时间536 651216 12216 震荡周期 定时时间 X 12216 振荡周期定时时间X 30 所以 定时器 T0 工作于方式 1 定时 20 次 就可定时 1 秒 定时中断子程序 void time0 void interrupt 1 using 1 定时中断子程序 TH0 0X3C 重赋初值 TL0 0XB0 TR0 1 重新启动定时器 countt0 软件计数加 1 if countt0 10 if sec nb 5 Yellow dx 0 Buzz 0 if sec dx 5 Yellow nb 0 Buzz 0 31 if countt0 20 定时器中断次数 20 时 即 1 秒 时 countt0 0 清零计数器 sec dx 东西时间减 1 sec nb 南北时间减 1 if sec nb 5 Yellow dx 1 Buzz 1 if sec dx 5 Yellow nb 1 Buzz 1 4 5 按键子程序设计 目前 89C51 单片机应用系统上的按键常采用机械触点式按键 机械触点 在闭合及断开瞬间均有抖动过程 时间长短与开关的机械特性有关 一般为 5 10ms 由于抖动 会造成被查询的开关状态无法准确读出 例如 一次按键产 生的正确开关状态 由于键的抖动 CPU 多次采集到低电平信号 会被误认为 32 按键被多次按下 就会多次进行键输入处理 这是不允许的 为了保证 CPU 对 键的一次闭合仅在按键稳定时作一次键输入处理 必须消除产生的前沿 后沿 抖动影响 去除抖动 可以从软件方面得到实现 如下就是针对按键的去抖程序 Unsigned char key det void key detected return 1 Static buf 0 xff Buf 1 If KEY Buf 0 x01 If buf 调用显示 用于延时消抖 if k1 1 TR0 0 关定时器 shanruo 0 P2 0 x00 if set 0 set timedx 南北加 1S else set timenb 东西加 1S if set timenb 100 set timenb 1 if set timedx 100 set timedx 1 加到 100 置 1 sec nb set timenb 设置的数值赋给东西南北 sec dx set timedx do display while k1 1 34 4 6 显示程序模块 本设计采用动态显示方式 LED 动态显示方法 LED 动态显示就是利用单片 机依次输出每一位数码管的段选码和对应于该位数码管的位选控制信号 一位 一位轮流点亮各七段数码管 对每位数码管来说 每隔一段时间点亮一次 如 此循环 利用人眼的 视觉暂停 效应 只要每位显示间隔足够短就可以给人以 同时显示的感觉 在动态显示方式中 同一时刻 只有一位 LED 数码管在显示 其他各位是关闭的 在段选码和位选码每送出一次后 应保持 1ms 左右 这个 时间应根据实际情况而定 不能太小 因而发光二极管从导通到发光有一定的 延时 导通时间太短 发光太弱人眼无法看清 但也不能太长 因为毕竟要受 限于临界闪烁频率 而且此时间越长占用 CPU 时间也越多 将显示值分离 为各位和十位 调用字形表 显示十位 延时1ms 开始 调用字形表 显示各位 延时1ms 结束 图 4 4 时间显示流程图 交通信号灯控制系统在正常工作情况下 为方便提示路上行人及车辆交通 灯转换的剩余时间 专门为控制系统提供了一个倒计时的显示装置 该装置采 用 2 位八段数码管来显示 每个路口需要 1 个 共 4 个 本设计使用八段共阳 极数码管完成倒计时显示功能 以南北方向为例 数码管显示的数值从绿灯的设置时间最大值往下减 每 35 秒钟减 1 一直减到 0 然后又从红灯设置时间的最大值往下减 一直减到 0 接下来又显示绿灯的时间 如此循环 经过倒计时功能的实现 软件程序通过选段码与动态位选来实现倒计时功 能在数码管上显示出来 子程序如下 void display void 显示子程序 buf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 46023.1-2025汽车用智能变色玻璃第1部分:有机电致变色玻璃
- 2025年物业管理师面试高频问题精解
- 2025年财务会计专员中级求职面试技巧与常见问题解析
- 2025年汽车维修技术员岗位技能测评试卷及答案解析
- 机票知识培训
- 2025年模特经纪人执业资格考试试题及答案解析
- 2025年家庭服务师初级笔试备考模拟题集
- 2025年交通规划师专业能力评估试题及答案解析
- 2025年建筑材料化验员职业资格考试试题及答案解析
- 2025年机动车驾驶教练员专业资格考试试题及答案解析
- 二年级上册语文课内阅读理解每日一练(含答案)
- 苏式彩画古建181班授课郭佩锦37课件讲解
- 2025-2030年中国功率器件市场发展趋势规划研究报告
- 基层管理培训课程
- 宇宙飞船的发射与回收技术分析
- 2025农村租地合同农村租地合同范本
- 2024考研 政治 思维导图(马原)
- 物业小区安全生产管理制度
- 高血压性脑出血中国多学科诊治指南2020
- 心肺复苏术课件2024新版
- 孕产妇危重症评审实施方案解读课件
评论
0/150
提交评论