毕业设计吕璐5-12_第1页
毕业设计吕璐5-12_第2页
毕业设计吕璐5-12_第3页
毕业设计吕璐5-12_第4页
毕业设计吕璐5-12_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

第 1 页 共 25 页 摘摘 要要 近年来 随着我国国民经济的快速发展 我国机动车辆发展迅速 而城镇 道路建设由于历史等各种原因相对滞后 交通拥挤和堵塞现象时常出现 在这 种背景下 开发出真正适合我们自身特点的智能信号灯控制系统已经成为当前 的主要任务 本设计是利用 AT89C51 单片机作为智能交通灯的控制核心 主要 实现控制东 西 南 北四个路口的红 黄 绿灯信号灯正常工作 当遇到特 殊情况的时候 可以通过特殊按钮对交通灯进行控制 四个道口用数码管显示 准行 或禁行 的剩余时间 为了方便电路的控制 采用汇编语言进行编程 通过这样的一个智能交通灯控制系统 就可以实现提高城镇交通路口的通行能 力的功能 关键词 关键词 AT89C51 芯片 单片机 交通灯 数码管 汇编语言 ABSTRACT In recent years with the rapid development of our national economy China motor vehicle development is rapid and town road construction due to various reasons such as history lagging traffic congestion and jam phenomenon often appear In this context develop truly suitable for our own characteristics of intelligent lights control system has become the main task This design is using AT89C51 control core of as intelligent traffic lights mainly to control the east west north and south the fourth turning red yellow and green lights work normally When meet special condition through special button can be controlled to traffic lights Four crossings using digital pipe display must row or the remaining time to exclude In order to facilitate the control circuit the assembly programming language Through such an intelligent traffic control system can improve its urban traffic intersection traffic capacity of function Keywords AT89C51chip Singlechip Traffic lights Digital tube Assembly language 第 2 页 共 25 页 目目 录录 第一章第一章 绪论绪论 3 第二章第二章 AT89C51AT89C51 单片机的概述单片机的概述 4 2 1 AT89C51 单片机的组成及结构 4 2 2 AT89C51 单片机的引脚及功能 5 2 3 AT89C51 单片机的复位电路 7 2 4 AT89C51 单片机的时钟电路 8 第三章第三章 系统硬件设计系统硬件设计 9 3 1 设计要求 9 3 2 硬件设备 10 3 3 系统硬件电路设计 10 3 3 1 交通灯电路 10 3 3 2 倒计时显示电路 11 3 3 3 紧急通行电路 11 第四章第四章 系统程序设计系统程序设计 14 4 1 主程序流程图 14 4 2 定时中断子程序 14 4 3 显示子程序流程图 16 4 3 1 按键子程序流程图 17 4 4 程序清单 18 第五章第五章 结结 论论 22 参考文献参考文献 23 致致 谢谢 24 第 3 页 共 25 页 第一章第一章 绪论绪论 如今红绿灯作为最常见的交通标志安放在各个路口 大家早已习以为常 但很少有人知道红绿灯早在 19 世纪就已出现了 1858 年 英国伦敦主要街头安装了以燃煤气为光源的红 蓝两色的机械扳 手式信号灯 用以指挥马车通行 这是世界上最早的交通信号灯 1868 年 英 国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上 安装了世界 上最早的煤气红绿灯 它是以旋转式方形红绿两色玻璃提灯组成 红色表示 停止 绿色表示 注意 不幸的是只面世 23 天的煤气灯突然爆炸自灭 使警察受伤 遂被取缔 直到 1914 年 在美国的克利夫兰市才率先恢复了红绿 灯 不过 这时已是 电气信号灯 稍后在纽约和芝加哥等城市 相继重新 出现了交通信号灯 随着各种交通工具的发展和交通指挥的需要 第一盏名副 其实的三色灯 红 黄 绿三种标志 于 1918 年诞生 它是三色圆形四面投影器 被安装在纽约市五号街的一座高塔上 由于它的诞生 使城市交通大为改善 后来又出现了带控制的红绿灯和红外线红绿灯 带控制的红绿灯 一种是把压 力探测器安在地下 车辆一接近红灯便变为绿灯 另一种是用扩音器来启动红 绿灯 司机遇红灯时按一下嗽叭 就使红灯变为绿灯 红外线红绿灯当行人踏 上对压力敏感的路面时 它就能察觉到有人要过马路 红外光束能把信号灯的 红灯延长一段时间 推迟汽车放行 以免发生交通事故 信号灯的出现 使交通得以有效管制 对于疏导交通流量 提高道路通行 能力 减少交通事故有明显效果 1968 年 联合国 道路交通和道路标志信号 协定 对各种信号灯的含义作了规定 绿灯是通行信号 面对绿灯的车辆可以 直行 左转弯和右转弯 除非另一种标志禁止某一种转向 左右转弯车辆都必 须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行 红灯是禁行 信号 面对红灯的车辆必须在交叉路口的停车线后停车 黄灯是警告信号 面 对黄灯的车辆不能越过停车线 但车辆已十分接近停车线而不能安全停车时可 以进入交叉路口 第 4 页 共 25 页 第二章第二章 AT89C51AT89C51 单片机的概述单片机的概述 2 12 1 AT89C51AT89C51 单片机的组成及结构单片机的组成及结构 AT89C51 单片机包含中央处理器 程序存储器 ROM 数据存储器 RAM 定时 计数器 并行接口 串行接口和中断系统等几大单元及数据总线 地址总 线和控制总线等三大总线 单片机的结构有两种类型 一种是程序存储器和数 据存储器分开的形式 即哈佛 Harvard 结构 另一种是采用通用计算机广泛使 用的程序存储器与数据存储器合二为一的结构 即普林斯顿 Princeton 结构 本设计所用的 Intel 的 MCS 51 系列单片机采用的是哈佛结构的形式 1 1 中央处理器中央处理器 中央处理器 CPU 是整个单片机的核心部件 由运算器和控制器等部件组成 运算器是 8 位数据宽度的处理器 能处理 8 位二进制数据或代码 控制器包括 程序计数器 指令寄存器 指令译码器 振荡器及定时电路等 CPU 负责控制 指挥和调度整个单元系统协调的工作 完成运算和控制输入输出功能等操作 2 2 数据存储器 数据存储器 RAMRAM 数据存储器用于存放变化的数据 AT89C51 内部有 128 个 8 位用户数据存 储单元和 128 个专用寄存器单元 专用寄存器只能用于存放控制指令数据 用 户只能访问 而不能用于存放用户数据 所以 用户能使用的 RAM 只有 128 个 可存放读写的数据 运算的中间结果或用户定义的字型表 3 3 程序存储器 程序存储器 ROMROM 程序存储器用于存放程序和固定的常数等 通常采用只读存储器 在 89 系列单片机中全部采用闪存 AT89C51 内部配置了 4KB 闪存 4 4 定时定时 计数器计数器 定时 计数器用于实现定时和计数功能 AT89C51 有 2 个 16 位定时 计数器 5 5 并行并行 I OI O 口口 并行 I O 口主要是用于实现与外部设备中数据的并行输入 输出 AT89C51 第 5 页 共 25 页 有 4 个外部交换信息的 8 位并行接口 即 P0 P3 它们都是准双向端口 每个 端口有 8 条 I O 线 均可输入 输出 6 6 串行口串行口 AT89C51 内置一个可编程的全双工串行通信口 UART 用于与其它设备间 的串行数据传送 该串行口既可以用作异步通信收发器 也可以当同步移位器 使用 7 7 时钟电路时钟电路 AT89C51 内置最高频率达 12MHz 的时钟电路 用于产生整个单片机运行的 脉冲时序 但 AT89C51 单片机需外置振荡电容 8 8 中断系统中断系统 AT89C51 具备较完善的中断功能 有两个外中断 两个定时 计数器中断和 一个串行中断 可满足不同的控制要求 并具有 2 级的优先级别选择 2 22 2 AT89C51AT89C51 单片机的引脚及功能单片机的引脚及功能 AT89C51 单片机实际有效的引脚为 40 个 采用的是 DIP 封装形式 这是普 通 40 脚双列直插形式 其引脚图如下图 2 1 所示 各引脚简单说明如下 1 1 主电源引脚主电源引脚 VssVss 和和 VccVcc 图 2 1 AT89C51 引脚结构 第 6 页 共 25 页 Vss 接地 Vcc 电源端 接 5V 2 2 时钟电路引脚时钟电路引脚 XTAL1XTAL1 和和 XTAL2XTAL2 XTAL1 接外部晶体的一端 它是片内振荡器反相放大器的输入端 在采用 外时钟时 外部时钟振荡信号直接送入词引脚作为驱动端 XTAL2 接外部晶体的另一端 它是片内振荡器反相放大器的输出端 振荡 电路的频率是晶体振荡频率 若需采用外部时钟电路时 此引脚应悬空不用 3 3 控制信号引脚控制信号引脚 RSTRST ALE PROGALE PROG PSENPSEN EA VPPEA VPP RST 复位输入端 当振荡器复位器件时 要保持 RST 脚两个机器周期的 高电平时间 ALE PROG 地址锁存允许输出 编程脉冲输入端 当访问外部存储器时 地址锁存允许的输出电平用于锁存地址的低位字节 平时不访问外部存储器时 ALE 端以不变的频率周期输出正脉冲信号 此频率位振荡器频率的 1 6 因此它 可用作对外部输出的脉冲或用于定时目的 ALE 端的负载驱动能力为 8 个 LSTTL 低功耗高速 TTL 在对片内存储器编程时 此引脚用于输入编程脉冲 此时为低电平有效 PSEN 片外程序存储器选通控制信号端 在由外部程序存储器取指期间 每个机器周期两次 PSEN 有效 但在访问外部数据存储器时 这两次有效的 PSEN 信号将不出现 EA VPP 为内 外程序存储器选择 编译电源输入端 当 EA 为高电平时 CPU 执行片内程序存储器指令 但当 PC 中的值超过 0FFFFH 时 CPU 将自动转向 执行片外程序存储器指令 当 EA 为低电平时 CPU 只执行片外程序存储器指令 而对于 80C31BH 单片机 EA 必须接低电平 第二功能 VPP 用于 87C51BH 编程 时输入编程电压 4 4 输入输入 输出引脚 输出引脚 P0P0 P1P1 P2P2 和和 P3P3 端口引脚 端口引脚 P0 0 P0 7 P0 口是开漏双向 I O 口 可以写为 1 使其状态为悬浮用作高 阻输入 P0 也可以在访问外部程序存储器时作地址的低字节 在访问外部数据 存储器时作数据总线 此时通过内部强上拉输出 1 P0 口每位可以能驱动 4 个 LS 型 TTL 负载 P1 0 P1 7 P1 口是带内部上拉的双向 I O 口 向 P1 口写入 1 时 P1 口被 内部上拉为高电平 可用作输入口 当作为输入脚时被外部拉低的 P1 口会因为 内部上拉而输出电流 在 FLASH 编程和校验时 P1 口作为第八位地址接收 第 7 页 共 25 页 图 2 2 复位电路 P2 0 P2 7 P2 口是带内部上拉的双向 I O 口 向 P2 口写入 1 时 P2 口被 内部上拉为高电平 可用作输入口 当作为输入脚时 被外部拉低的 P2 口会因 为内部上拉而输出电流 在访问外部程序存储器和外部数据时分别作为地址高 位字节和 16 位地址 此时通过内部强上拉传送 1 当使用 8 位寻址方式访问外 部数据存储器时 P2 口每位可以能驱动 4 个 LS 型 TTL 负载 P3 0 P3 7 P3 口是带内部上拉的双向 I O 口 向 P3 口写入 1 时 P3 口被 内部上拉为高电平 可用作输入口 当作为输入脚时被外部拉低的 P3 口 会因 为内部上拉而输出电流 P3 口每位可以能驱动 4 个 LS 型 TTL 负载 P3 口还具 有以下特殊功能 RXD p3 0 串行输入口 TXD P3 1 串行输出口 INT0 P3 2 外部中断 0 INT1 P3 3 外部中断 1 T0 P3 4 定时器 0 外部输入 T1 P3 5 定时器 1 外部输入 WR P3 6 外部数据存储器写选通 RD P3 7 外部数据存储器读选通 2 32 3 AT89C51AT89C51 单片机的复位电路单片机的复位电路 为确保控制系统能够稳定可靠的工作 复位电路时必不可少的一部分 他 可以保证程序从指定处开始执行 即从程序存储器的 0000H 地址单元开始执行 程序 另外 当程序运行出错或操作错误使系统处于 死机 状态时 需复位 以重新启动 AT89C51 的复位方式可以是上电自动复位也可以是按钮手动复位 这两种复位方式的电路图如图标 2 2 所示 此外 RESET Vpd还是一复用脚 Vcc掉电其间 此脚可接上备用电源 以保证单片机内部 RAM 的数据不丢失 第 8 页 共 25 页 2 42 4 AT89C51AT89C51 单片机的时钟电路单片机的时钟电路 单片机必须在时钟的驱动下才能进行工作 AT89C51 单片机的时钟信号通 常用两种电路形式得到 内部震荡方式和外部震荡方式 其具体电路图如图 2 3 所示 使用内部时钟电路时 只要在引脚 XTAL1 和 XTAL2 上外接定时反馈回路 振荡器 OSC 就能自激真当你 产生矩形时钟脉冲序列 外部时钟电路是利用外 部振荡器信号源直接接入 XTAL1 和 XTAL2 通常 XTAL1 接地 XTAL2 接外部时钟 由于 XTAL2 的逻辑电平不是 TTL 的 所以建议接一个 4 7 10K 的上拉电阻 图 2 3 时钟电路 第 9 页 共 25 页 第三章第三章 系统硬件设计系统硬件设计 3 13 1 设计要求设计要求 用单片机设计一个智能交通灯控制系统 使其满足以下的具体的功能 1 该控制系统能控制东 西 南 北四个路口的红 黄 绿信号灯 正常工作 2 当东西方向准行 南北方向禁行时 东西方向亮绿灯 南北方向 亮红灯 3 当南北方向准行 东西方向禁行时 南北方向亮绿灯 东西方向 亮红灯 4 两垂直方向的准行时间均为 60s 5 准行方向亮绿灯与禁行方向亮绿灯 55s 后 四个道口同时加亮一 盏黄灯进行闪烁 以警告车辆及行人 准行方向与禁行方向即将改变 6 四个道口均用数码管显示准行 或禁行 的剩余时间 7 在交通情况比较特殊的情况下 可以通过 K1 K2 K3 三个按键对 交通灯进行控制 具体要实现的功能如下 当有紧急情况发生 如消防车 救护车等紧急车辆通过时 按下 K1 键 四个路口同时加亮黄灯闪烁 时间为 5S 并且倒计时显示装置关闭 黄灯 5S 闪烁完成后 四个路口的信号灯全部变红灯 这样四个路口的普通车辆禁 行 只允许紧急车辆通过 待紧急车辆通过后 松开 K1 键 表示紧急状态 消除 交通灯恢复正常 当东西方向车辆过多时 按下 K2 键 四个路口同时加亮黄灯闪烁 时 间为 5S 并且倒计时显示装置关闭 黄灯 5S 闪烁完成后 只允许东西方 向车辆通行 南北方向禁行 从而有效的调节东西方向车辆过多的情况 松 开 K2 键 交通灯恢复正常 当南北方向车辆过多时 按下 K2 键 四个路口同时加亮黄灯闪烁 时 间为 5S 并且倒计时显示装置关闭 黄灯 5S 闪烁完成后 只允许南北方 向车辆通行 东西方向禁行 从而有效的调节南北方向车辆过多的情况 松 开 K2 键 交通灯恢复正常 第 10 页 共 25 页 3 23 2 硬件设备硬件设备 主要硬件设备 AT89C51 单片机 发光二极管 共阳型 LED 数码管 看门狗 监控芯片 MAX6304 开关按键 连线若干 采用 AT89C51 单片机作为智能交通灯系统的控制核心 单一路口显示倒计时 时间的数码管必须用两位 倒计时显示装置中的数码管采用的是静态显示 设 置了 3 个按键用来处理交通灯在实际应用中可能出现的特殊情况 共使用 3 个 I O 端口 其中 P3 0 接 K1 键 P3 1 接 K2 键 P3 6 接 K3 键 十字路口共需 4 组红黄绿灯 一共是 12 只灯 须用 6 个端口进行控制 具体 I O 接口分配为 P1 0 P1 2 分别接东西方向的红 绿 黄共 6 盏信号灯 P1 3 P1 5 分别接南北 方向的红 绿 黄共 6 盏信号灯 选用共阳极数码管 这样单片机的 I O 口就 可以直接驱动 简化硬件电路的设计 此外专门设计了监控电路对控制系统进 行实时监控 保证系统工作的稳定性和持续性 系统的整体方案设计图如图 3 1 所示 时钟电路 复位电路 监控电路 单片机 AT89C51 红绿灯装置 驱动装置倒计时显示装置 图 3 1 系统的整体方案设计 3 33 3 系统硬件电路设计系统硬件电路设计 3 3 13 3 1 交通灯电路交通灯电路 在该设计中 用发光二极管作为交通灯来使用 单片机的 I O 口直接和交 通等连接 在十字路口的四组红 黄 绿三色交通灯中 东西方向道路上的两 组同色灯连接在一起 南北方向道路上的两组同色灯也彼此连接 受单片机 P1 0 P1 5 控制 单片机的 I O 口与交通灯电路的具体连线方式为 P1 0 P1 2 分别接东西方向的红 绿 黄共六个发光二极管 P1 3 P1 5 分别接南北方向的 红 绿 黄共六个发光二极管 12 个发光二极管采用了共阳型的连接方式 因 此 I O 口输出低电平时 与之相连的发光二极管会亮 I O 口输出高电平时 相 第 11 页 共 25 页 应的二极管会灭交通灯电路如图 3 2 所示 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 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 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 U1 AT89C51 VD1 VD2 VD3 VD4 VD5 VD6 VD7 VD8 VD9 VD10 VD11 VD12 R1 4 7K R2 4 7K R3 4 7K R4 4 7K R5 4 7K R6 4 7K R7 4 7K R8 4 7K R9 4 7K R10 4 7K R11 4 7K R12 4 7K 东西红东西黄东西绿南北红南北黄南北绿 Vcc 3 3 23 3 2 倒计时显示电路倒计时显示电路 根据控制的要求 每个路口用二个七段数码管来显示交通灯转换的剩余时 间 这样四个路口就要 8 个数码管 四个路口倒计时显示装置在同一时刻显示 相同的数字 其中 P0 口用来显示时间的十位 P2 口用来显示时间的个位 东 西南北四个方向共四个路口 令 DS1 和 DS2 是一组 DS3 和 DS4 是一组 DS5 和 DS6 是一组 DS7 和 DS8 是一组 本系统采用静态显示 所谓静态显 示 就是当显示器显示某一字符时 相应的数码管恒定地导通或截止 采用静 态显示时 占用 CPU 的资源较少 单片机只要把要显示的字形代码发送到接口 电路即可 直到要显示新的数据时 再发送新的字型码 倒计时显示电路如图 3 3 所示 图 3 2 交通灯电路图 第 12 页 共 25 页 3 3 33 3 3 紧急通行电路紧急通行电路 该系统的 K1 K2 K3 三个按键分别与单片机的 P3 0 P3 1 P3 6 相接 它们 可以在特殊的交通情况下使用 当有紧急情况时 按下 K1 键来保证紧急车辆及 时通过 松开 K1 键时 紧急情况消除 系统恢复正常 按下 K2 键 表示只允 许东西方向车辆准行 南北方向禁行 松开 K2 键 系统恢复正常 按下 K3 键 表示只允许南北方向车辆准行 东西方向禁行 松开 K3 键 系统恢复正常 按 键电路图如图 3 4 所示 系统总的电路图如图 3 5 所示 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 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 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 U1 AT89C51 8 0 2k 8 0 2k DS1DS3DS5 DS7 DS2 DS4DS6 DS8 Vcc 图 3 3 倒计时显示电路图 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 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 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 U1 AT89C51 8 0 2k 8 0 2k DS2 DS4DS6 K1 K2 K3 图 3 4 紧急通行电路图 第 13 页 共 25 页 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 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 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 U1 AT89C51 VD1 VD2 VD3 VD4 VD5 VD6 VD7 VD8 VD9 VD10 VD11 VD12 R1 4 7K R2 4 7K R3 4 7K R4 4 7K R5 4 7K R6 4 7K R7 4 7K R8 4 7K R9 4 7K R10 4 7K R11 4 7K R12 4 7K 东西红东西黄东西绿南北红南北黄南北绿 8 0 2k 8 0 2k DS1DS3DS5 DS7 DS2 DS4DS6 DS8 K1 K2 K3 Vcc Vcc X1 C1 C2 图 3 5 系统总电路图 第 14 页 共 25 页 第四章第四章 系统程序设计系统程序设计 4 14 1 主程序流程图主程序流程图 该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法 智能交通灯控制系统在正常工作的情况下 每 60s 循环变化一次 每个循环周 期在还剩 5s 时 四个路口的黄灯同时点亮并开始闪烁 以提醒路上的行人及车 辆 交通灯即将发生变换 在程序中定时扫描 P3 口 若有键按下 则调用键盘 子程序进行相应的处理 若无 则程序继续执行 主程序流程图如图 4 1 所示 开始 系统初始化 东西准行 南北禁行 5s 东西亮绿灯 南北亮红灯 调显示子程序 扫描键盘 调用键盘子程序 东西 南北方向换向 有键按下 扫描键盘 调显示子程序 东西亮绿灯 南北亮红灯 同时黄灯进行闪烁 东西准行 南北禁行 5s 调用键盘子程序 有键按下 YN Y N 图 4 1 主程序流程图 第 15 页 共 25 页 4 24 2 定时中断子程序定时中断子程序 该系统的倒计时显示装置采用的是静态显示方式 单片机的 P0 口和 P2 口 分别连接倒计时装置的十位和个位 系统每 1s 都会向倒计时显示装置传送新的 数字型码用来显示新的倒计时时间 设定该系统的定时器工作在方式一 由于 方式一的最大定时时间为 65 536ms 所以要产生 1s 的定时时间必须采用累加 定时的方法 即将定时器的定时时间设为 50Ms 中断的循环设定次数设 20 当 20 次循环中断完成以后 说明 1s 时间已经累计到 这时候通过电泳显示子程 序为倒计时装置传送新的数字型码 从而完成倒计时时间的 减 1 操作并进 行显示 另外 每完成一次定时中断操作后都要重新对定时器赋初值 定时中 断子程序的流程图如图 4 2 所示 第 16 页 共 25 页 开始 定时器初始化 设定中断的循环次 数 定时开始 定时时间到 产生中断 循环次数减 1 循环次数 1 重新给循环次数赋初值 调显示子程序 给定时器赋初值 返回 N Y Y N 图 4 2 定时中断子程序流程 图 4 34 3 显示子程序流程图显示子程序流程图 该交通灯控制系统采用的是静态显示 对于得到的倒计时显示数据 首先 应提取倒计时数据的十位和个位 然后将十位和个位的字型码分别送到单片机 的 P0 口 P2 口 其中 P0 口用来向倒计时显示装置传送十位数字型码 P2 口用 来传送个位数字型码 显示子程序流程图如图 4 3 所示 第 17 页 共 25 页 开始 取倒计时数值 提取倒计时数据的十位 获取十位数字型码并送到 P0 口 提取倒计时数据的个位数 获取个位数字型码并送到 P2 口 调 1s 延时子程序 返回 图 4 3 显示子程序流程图 4 3 14 3 1 按键子程序流程图按键子程序流程图 在该控制系统控制中 共使用了三个按键 K1 K2 K3 来处理交通灯实际应 用中的某些特殊情况 按键子程序流程图如图 4 4 所示 第 18 页 共 25 页 开始 键盘扫描 有键按 下 K1 键 按下 K2 键 按下 有键按 下 K3 键 按下 关闭倒计时 显示 黄灯进行 5s 闪烁 东西南北均 变成红灯 K1 键 按下 K2 键 按下 有键按 下 K3 键 按下 返回 关闭倒计时 显示 关闭倒计时 显示 黄灯进行 5s 闪烁 黄灯进行 5s 闪烁 东西南北均 变成红灯 东西南北均 变成红灯 N Y Y N Y N Y Y Y N N N 图 4 4 按键子程序流程图 4 44 4 程序清单程序清单 ORG 0000H LJMP MAIN ORG 001BH 定时器 T1 中断入口 LJMP INT1 ORG 0100H 主程序入口 主程序 第 19 页 共 25 页 MAIN MOV SP 60H MOV TMOD 10H 定时器 T1 工作在方式 1 MOV TH1 9EH 给定时器 T1 赋初值 MOV TL1 58H SETB EA 开中断系统总开关 SETB ET1 开定时器 T1 中断开关 SETB TR1 启动定时器 T1 HERE MOV 88H 15H 设置中断循环次数 MOV 33H 3DH 设置倒计时显示数值 MOV P1 0F3H 使交通灯东西绿 南北红 MOV R7 37H MM LCALL DISP MOV A P3 键盘扫描 CJNE A 0FFH READKEY CJNZ R7 MM MOV P1 0E1H 交通灯东西绿 南北红同时加亮黄灯 MOV 20H 02H NN MOV A P3 CJNE A 0FFH READKEY SETB P1 1 黄灯进行 5S 闪烁 SETB P1 4 LCALL DISP CLR P1 1 CLR P1 4 LCALL DISP 调显示子程序 DJNZ 20H NN SETB P1 1 SETB P1 4 LCALL DISP MOV P1 0DEH 交通灯南北绿 东西红 MOV R7 37H PP LCALL DISP MOV A P3 CJNE A 0FFH READKEY DJNZ R7 PP MOV P1 0CCH 交通灯南北绿 东西红同时加亮黄灯 MOV 20H 02H QQ MOV A P3 扫描 P3 口 第 20 页 共 25 页 CJNE A 0FFH READKEY SETB P1 1 SETB P1 4 LCALL DISP CLR P1 1 CLR P1 4 LCALL DISP DJNZ 20H QQ SETB P1 1 SETB P1 4 LCALL DISP LCALL QW QW SJMP HERE RET 1s 延时子程序 DELAY MOV R1 0AH DELAY0 MOV R2 0C8H DELAY1 MOV R3 0F8H NOP DELAY2 DJNZ R3 DELAY2 DJNZ R2 DELAY1 DJNZ R1 DELAY0 RET 键盘扫描子程序 READKEY MOV A 0FFH MOV P3 A MOV A P3 JNB ACC 0 K1 判断 K1 键是否按下 JNB ACC 1 K2 判断 K2 键是否按下 JNB ACC 2 K3 判断 K3 键是否按下 RET K1 MOV P0 0FFH 关段倒计时显示装置 MOV P2 0FFH LCALL XX LCALL YY1 SJMP READKEY K2 MOV P0 0FFH 关段倒计时显示装置 MOV P2 0FFH LCALL XX LCALL YY1 第 21 页 共 25 页 SJMP READKEY K3 MOV P0 0FFH 关段倒计时显示装置 MOV P2 0FFH LCALL XX LCALL YY1 SJMP READKEY XX MOV 20H 03H LCALL BB RET 黄灯进行 5s 闪烁 BB SETB P1 1 SETB P1 4 LCALL DELAY CLR P1 1 CLR P1 4 LCALL DELAY DJNZ 20H BB RET YY MOV P1 0F6H 四个路后均变成红灯 MOV A 0FFH MOV P3 A MOV A P3 JNB ACC 0 YY 判断 K1 键是否仍然按下 LCALL QW YY1 MOV P1 0F3H 东西方向亮绿灯 南北方向亮红灯 MOV A 0FFH MOV P3 A MOV A P3 JNB ACC 1 YY1 判断 K2 键是否仍然按下 LCALL QW YY2 MOV P1 0DEH 南北方向亮绿灯 东西方向亮红灯 MOV A 0FFH MOV P3 A MOV A P3 JNB ACC 3 YY2 判断 K3 键是否仍然按下 LCALL QW RET 中断处理程序 第 22 页 共 25 页 ORG 0200H 中断程序入口地址 INT1 DEC 88H MOV A 88H CJNE A 01H BN 判断循环次数是否为 1 MOV 88H 15H 重新给循环次数赋值 LCALL DISP BN MOV TH1 9EH 重新给定时器 T1 赋初值 MOV TL1 58H RETI 显示子程序 DISP DEC 33H MOV A 33H CJNE A 01H DIR1 MOV 33H 3DH 重新给倒计时数赋初值 DIR1 MOV B 0AH DIV AB MOV DPTR TAB 提取出倒计时数值的十位数和个位数 MOVC A A DPTR 查表获取十位数的字型码 MOV 30H A MOV A B MOVC A A DPTR 查表获取个位数的字型码 MOV 31H A MOV A 30H MOV P

温馨提示

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

评论

0/150

提交评论