锅炉控制的单片机软硬件设计.doc_第1页
锅炉控制的单片机软硬件设计.doc_第2页
锅炉控制的单片机软硬件设计.doc_第3页
锅炉控制的单片机软硬件设计.doc_第4页
锅炉控制的单片机软硬件设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

锅炉控制的单片机软硬件设计 I 摘 要 近年来 中小型工业锅炉用的新型测控装置具有自动化程度高 节能环保的特点 是研发的热点 本文用单片机 80C31 进行软硬件设计 能独立完成对工业现场的中小型锅炉的温度 压力 液位等物理量直接控制 控制功能包括报警 接收来自工业现场的传感器信号 输出控制工业常规物理量 能根据用户工业现场的实际需要 设定上下限 具有定位设 定准确 控制精度高的特点 硬件设计中 包括主控板电路设计 时钟电路设计 复位电路设计及外接储存器电 路设计 输出设计可以对鼓风机 引风机 炉排 水泵进行控制 显示电路设计 使用 了共阴极二极管控制 8 段数码管 软件设计使用了 MCS 51 汇编语言 软件设计中包含了初始化模块 检测模块 中 断模块和延时模块 最后 对软硬件实施联调 结果表明 本设计的调试效果良好 关键字 关键字 单片机 锅炉 测控 烟台南山学院学士学位毕业论文 II Abstract In recent years small and medium size industrial boilers with novel measurement and control device with a high degree of automation energy saving and environmental protection features is the focus of research and development Using single chip 80C31software and hardware design can independently accomplish the industrial scene of small boiler temperature pressure liquid level and other physical quantities of direct control Control functions including the alarm receiving the sensor signal the output control industrial conventional physical quantity according to user industrial scene of the actual needs set limits with positioning accurate setting high control accuracy In the hardware design including the main control board circuit clock circuit reset circuit design and design of external memory circuit design output design of blower fan water pump fire control display circuit design using a common cathode diode control8 digital tube Software design using MCS 51assembly language the software design contains initialization module detection module interrupt module and a time delay module Finally the implementation of hardware and software debugging the results show that the design debugging good effect Keyword Single chip microcomputer Boiler Measurement and control 锅炉控制的单片机软硬件设计 III 目录 摘 要 I ABSTRACT 目录 第 1 章 绪论 1 1 1 课题背景 1 1 2 国内外研究现状 2 1 3 单片机 嵌入式系统的发展 2 1 4 本文的工作任务 2 1 5 本文的主要内容 3 第二章 系统硬件设计 4 2 1 系统总体设计 4 2 2 主控板电路设计 5 2 3 时钟电路设计 5 2 4 复位电路设计 6 2 5 外接存储器电路设计 7 2 6 开关量的输出接口 8 2 6 1 光电隔离 8 2 6 2 继电器输出接口 9 2 7 信号输入电路设计 9 2 8 信号输出电路设计 10 2 9 显示电路设计 11 第三章 软件设计 13 3 1 MCS 51 汇编语言简介 13 3 2 系统软件设计 14 第四章 软硬件联调 18 4 1 系统硬件调试 18 4 1 1 静态调试 18 4 1 2 联机仿真 在线动态调试 18 4 2 系统软件调试 19 4 3 系统综合调试 19 结论 20 致谢 21 参考文献 22 锅炉控制的单片机软硬件设计 1 第一章 绪论 1 1 课题背景 目前我国的燃煤锅炉数量众多 我国现有中 小型锅炉 30 多万台 每年耗煤量占我 国原煤产量的 l 4 目前大多数工业锅炉仍处于能耗高 浪费大 环境污染严重的生产状 态 国家在第 10 到第 11 个五年计划的科技创新指南中 对光机电一体化 资源与环境 新能源与高效节能的指导性课题中明确指出 需要开发研制自动化程度高 节能潜力大 提高安全系数 减轻环境污染 减轻劳动强度 价格低的新型测控装置 要求节煤率达 到 5 以上 装置投资的回收期在 1 年以内 采暖锅炉为 3 年以内 如中小型链条式工业 锅炉用的新型测控装置 因此这个课题有现实意义且市场前景良好 锅炉微机控制 是近年来开发的一项新技术 它是微型计算机软件 硬件 自动控 制 锅炉节能等几项技术紧密结合的产物 工业锅炉采用微机控制和原有的仪表控制方 式相比具有以下明显优势 1 直观而集中的显示锅炉各运行参数 能显示液位 压力 温度的状态 2 在运行中可以随时方便的修改各种运行参数的控制值 并修改系统的控制参数 可以方便的改变液位 压力 温度等的上限 下限 3 提高锅炉的热效率 采用计算机控制后热效率可比以前提高 5 10 据用户统 计 一台 20T 的锅炉 全年平均负荷 70 以平均热效率提高 5 计 全年节煤 800 吨 4 锅炉系统中包含鼓风机 引风机 给水泵等大功率电动机 由于锅炉本身特性和 选型的因素 这些风机大部分时间里是不会满负荷输出的 原有方式采用阀门和挡板控 制流量 浪费非常严重 通过对风机 水泵进行微机控制可以平均节电达到 30 40 5 作为锅炉控制装置 其主要任务是保证锅炉的安全 稳定 经济运行 减轻操作 人员的劳动强度 在采用计算机控制的锅炉控制系统中 有十分周到的安全机制 可以 设置多点声光报警和自动连锁停炉 杜绝由于人为疏忽造成的重大事故 综合以上种种优点可以预见采用计算机控制锅炉系统是行业的大势所趋 1 2 国内外研究现状 目前我国在单片机测控装置研究 生产 应用中 取得了很大的成绩 总结了很多 经验 但在这个行业 仍处于发展期 经调查 北京 天津的高校 科研院所在这方面 开展的工作更看重的是理论 算法 研究出来的成果是论文的较多 看重在生产实际应 用的较少 在上海 新型单片机测控装置与系统的研究 生产基础较雄厚 在生产中需 要新型测控装置与系统 也就努力研究 开发 因此 上海的工程技术和科研人员需要 的是应用技术 更看重的是生产实际应用 对研究理论 算法 成果是论文的较少 深 圳在研制新型测控装置与系统领域也比较有成绩 尽管与其他国家开发者比尚有距离 但是 深圳的高校 科研院所的最大特点就是实际 与生产实际应用项目无关的问题基 烟台南山学院学士学位毕业论文 2 本上不去考虑 这里的工程技术和科研人员关心的不是理论 不是算法 不是论文 而 考虑 是用什么材料 测控什么物理量 优点是什么 与机器设备的通讯接口等等 一 些发达国家在单片机新型测控装置与系统研究 制造 应用上 已积累了经验 奠定了 基础 进入了国际市场 我国在新型测控装置与系统研究 制造 应用和经验上 有一 定的基础 与其他发达国家相比还存在距离 但是 我国的科研人员能够克服很多困难 有望在相关领域赶上甚至超过发达国家的技术水平 这是发展趋势 1 3 单片机 嵌入式系统的发展 单片微型计算机简称单片机 是早期 Single Chip Microcomputer 的直译 它忠实地反 映了早期单片机的形态和本质 随后 按照面向对象 突出控制功能 在片内集成了许 多外围电路和外设接口 突破了传统意义的计算机结构 发展成 microcontroller 的体系结 构 目前国外已普遍称之为微控制器 MCU Micro Controller Unit 鉴于它完全作嵌入式 应用 故又称之为嵌入式微控制器 Embedded Micro controller 国内由于单片机一词已约 定俗成 仍沿用至今 但应将单片机的 机 理解成为微控制器而不是微计算机 二十 世纪七十年代单片机的出现是近代计算机技术发展史上的一个重要里程碑 因为单片机 的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支 计算机 两大分支的产生大大促进了现代计算机技术的飞速发展 通用计算机系统以发展海量高 速数值计算为己任 不必兼颐控制功能 其数据总线宽度不断更新 迅速从 8 位 16 位 过渡到 32 位 64 位 不断完善其通用操作系统 突出发展海量高速数值计算能力 并在 数据处理 模拟仿真 人工智能 图像处理 多媒体 网络通信中得到了广泛的应用 单片机则以面向对象的实时控制为己任 目前仍以 8 位机为主流 不断增强控制能力 降低成本 减小体积 改善开发环境 以空前的速度迅速而广泛地取代经典电子系统 单片机具有体积小 重量轻 功能强 功耗低 运行速度快 抗干扰能力强 性价 比高 可靠性高等特点 结构灵活 数据基本上都在单片机内部传送 组成各种微机应 用系统 它既可用于工业自动控制等场合 又可用于机电一体化产品 智能仪器 测量 仪器 医疗仪器 家用电器等领域 在过程控制 计算机网络及通讯等方面得到广泛应 用 目前国际市场上 8 位 16 位的单片机系列已经很多 但是 在我国使用较多的是 INTEL 的产品 其中又以 MCS 5l 系列单片机应用尤为广泛 在我们做的系统中 我们选择的是 80C31 其特点是 制造工艺比较先进 价格低 使用广泛 技术成熟 80C31 在我国使用广泛 技术也比较成熟 可以节约开发经费 缩 短开发时间 1 4 本文的工作任务 1 可设置温度的上 下限 2 可设置压力的上 下限 3 可设置液位的上 下限 4 可设置压力的上极限 5 可设置液位的下极限 6 220V 50HZ 交流电源供电 7 可接收 8 个传感器信号 锅炉控制的单片机软硬件设计 3 8 可设置鼓风机的开 关 9 可设置引风机的开 关 10 可设置炉排的开 关 11 可设置水泵的开 关 12 单片机用 INTEL 的 80C3l 13 存储器用 64k 的 EPROM 27C512 14 语音芯片用 UMC 的 UM5100 15 可显示液位是否高于上限 低于下极限 低于下限 16 可显示压力是否高于上限 高于上极限 低于下限 17 可显示温度是否高于上限 低于下限 18 可语音报警 液位是否高于上限 低于下极限 低于下限 19 可语音报警 压力是否高于上限 高于上极限 低于下限 20 可语音报警 温度是否高于上限 低于下限 1 5 本文的主要内容 第一章首先介绍了锅炉控制的必要性 并阐述了国内外对单片机的发展状况 并介 绍了本文的主要任务 第二章在硬件设计中 给出了系统的总体设计 进一步地 进行了主控板电路设计 时钟电路设计 复位电路设计及外接储存器电路设计 在开关量输出接口中 考虑了光 电隔离 在信号输入设计中 系统共接收 8 个信号输入 并使用了 74LS244 三态缓冲器 在输出设计中 设计了 4 个输出信号 分别控制鼓风机 引风机 炉排 水泵 这些信 号通过继电器控制电机的运转 在显示电路设计中 使用的发光二极管显示器件 并选 用共阴极二极管 让二极管显示器的八个输入端接 5V 的电源 用 80C31 的一个引脚来 接二极管显示器的公共端 控制其显示 第三章在软件设计在使用了 MCS 51 汇编语言 软件设计中包含了初始化模块 检 测模块 中断模块和延时模块 第四章是软硬件的联调 对系统进行调试 首先要进行静态调试 静态调试的目的 是排除明显的硬件故障 静态调试分 电源检查 各元器件电源检查 检查相应芯片的 逻辑关系 在静态调试之后 就是软件的调试 共有 4 个步骤 最后 对全文进行了总结 烟台南山学院学士学位毕业论文 4 第二章 系统的硬件设计 2 1 系统总体设计 图 2 1 锅炉控制系统图 如图 2 1 所示 锅炉上装有温度 压力 液位传感器 这些反映锅炉运行状态的信号 送到仪表层 仪表层包括温度仪表 压力仪表 液位仪表 我们可以在这些仪表上设置 上限和下限 如果传感器送来的信号高于我们设定的上限或低于我们设定的下限 仪表 内部的继电器开关就会合上 代表上限或下限的输出信号就会输出高电平 这些信号作 为系统主控板的开关量信号输入 系统主控板的输出控制信号经过继电器后和系统执行 机构相连 继电器是一种可以以小电流驱动大电流的物理元件 我们系统输出的信号电 压比较低 不能直接驱动大功率用电器 因此中间要接继电器 主控板的另一输出接系 统显示板 这样锅炉运行的状况就可以直观的显示给用户 锅炉控制的单片机软硬件设计 5 2 2 主控板电路设计 如图 2 2 所示 报警信号进入控制板后接到光电隔离器上 这样可以防干扰而使系统 误动作 而后接到 74LS244 上 74LS244 是一个八同向的三态缓冲器 通过 74LS244 接 到 80C31 上 存储器通过 74LS373 和 80C31 相连 80C31 经过 74LS373 后输出显示信号 80C31 经过 74LS273 后接到光电隔离器上 又经过三极管后输出控制执行信号 由图可 知 80C31 芯片是系统的中心 任何芯片都和 80C31 相连 任何信号都输入到 80C31 中 任何输出都是由 80C31 完成的 因此下面我们就介绍系统各部分是如何与 80C31 相连的 以及相关电路的设计 图 2 2 系统主控制版图 2 3 时钟电路设计 80C31 的时钟可以由外部或内部方式产生 内部振荡方式 如图 2 3 和外部振荡方式 如图 2 4 MCS 51 单片机片内有一个用于构成振荡器的高增益反相放大器 引脚 XTALl 和 XTAL2 分别是此放大器的输入端和输出端 把放大器与作为反馈元件的晶体振 烟台南山学院学士学位毕业论文 6 荡器或陶瓷谐振器连接 就构成了内部自激振荡器并产生振荡时钟脉冲 这种方式称为 内部振荡方式 外部振荡方式就是把外部已有的时钟信号引入单片机内 这种方式是用 来使单片机的时钟与外部信号保持同步 本系统采用了内部振荡方式 晶振可以在 1 2MHz 12MHZ 之间选择 我们选择 12MHZ 电容值在 5 30PF 之间选择 我们选用 20PF 图 2 3 内部振荡方式图 图 2 4 外部振荡方式 2 4 复位电路设计 MCS 51 中 RESET 引脚为复位引脚 在震荡器运行的情况下 要实现复位操作 必 须使 RESET 引脚至少保持两个机器周期的高电平 复位分为加电自复位和开关复位两种 方式 加电自复位 见图 2 5 在通电的瞬间 在 RC 电路的充电过程中 RST 端口出现正 脉冲 从而使单片机复位 键电平复位 见图 2 6 是将复位端口通过电阻与 Vcc 相连 来 达到复位的目的 按键脉冲复位 见图 2 7 是利用 RC 微分电路产生正脉冲来达到复位的 目的 本系统采用的是按键开关复位 图 2 5 上电复位电路图 2 6 按键电平自复电路 图 2 7 按键脉冲复位电路图 锅炉控制的单片机软硬件设计 7 2 5 外接存储器电路设计 由于系统要实现语音报警 语音信息又占用大量的空间 所以我们用存储容量达 64K 的 EPROM 27C512 作为我们的外接存储器来存储程序和语音信息 下面是 27C512 的引 脚图 见图 2 8 及功能说明 A0 A15 地址总线端 D0 D7 数据总线端 GND 电源接地端 VCC 电源正输入端 CE 片选端 OE VPP 低电平时为输出数据 高电平为编程电源 图 2 8 27C512 的引脚图 图 2 9 80C31 与 27C512 的链接 80C31 与 27C512 的连接 如图 2 9 系统中 80C31 的 P0 口分别与 74LS373 的输入 引脚 I0 I7 相连 80C31 的 P0 口分别与 27C512 的输出引脚 D0 D7 相连 80C31 的 ALE 烟台南山学院学士学位毕业论文 8 与 74LS373 的 G1 相连 80C31 的 P2 口分别与 27C512 的输入引脚 A8 A15 相连 80C31 的 PSEN 与 27C512 的 OE 引脚相连 74LS373 的 00 07 分别与 27C512 的输入引脚 A0 A7 相连 74LS373 的 G2 27C512 的 CE 接地 另外在图中未标出 80C31 27C512 74LS373 的 VCC 端接 5v 电源 GND 接地 工作过程是这样的 80C31 要用外接存储器中的数据 首先 80C31 把数据的低 8 位 地址送到 PO 口 ALE 引脚发出信号使 PO 口的信号锁存到 74LS373 中 然后 80C31 把 数据的高 8 位地址送到 P2 口 低 8 位地址经过 74LS373 延时后和 P2 口的高 8 位地址同 时到达 27C512 的输入引脚 A0 A15 最后由 80C31 的 PSEN 引脚发出信号使 27C512 的 OE 引脚低电平 数据被送到 D0 D7 口 因为 80C31 的 P0 口分别与 27C512 的输出引脚 D0 D7 相连 所以 80C31 取得了存储器中的数据 工作完成 2 6 开关量的输出接口 在工业过程控制中 被测参数经采样处理后 还需要计算并输出控制模型 达到控 制的目的 控制方式主要有模拟量控制和开关量控制 本系统采用的是开关量信号控制 所谓开关量控制就是通过控制设备的 开 或 关 状态的时间来达到控制的目的 由 于输出设备往往需要大电压来控制 而单片机系统输出的为 TTL 电平 这种电平不能直 接驱动外部设备的开启或关闭 另一方面 许多外部设备在开关过程中会产生很强的电 磁干扰信号 如不隔离会使控制系统进行错误的处理 因此在开关量输出控制中必须认 真考虑两个问题 一要隔离 二要放大 2 6 1 光电隔离 隔离技术是破坏 地 干扰途径的抗干扰方法 硬件上常用光电耦合器件实现电一 光一电的隔离 他能有效地破坏干扰源的进入 可靠地实现信号的隔离 并易构成各种 功能状态 光电祸合器件是把发光器件 如发光二极管 和光敏器件 如光敏三极管 组装在 一起 通过光线实现祸合构成电一光和光一电的转换器件 图 2 10 所示为常用的三极管 型光电耦合器原理图 图 2 10 光电耦合器原理图 当电信号送入光电耦合器的输入端时 发光二极管通过电流而发光 光敏元件受到 光照后产生电流 CE 导通 当输入端无信号 发光二极管不亮 光敏三极管截止 CE 不通 对于数字量 当输入为低电平 0 时 光敏三极管截止 输出为高电平 1 当 输入为高电平 1 时 光敏三极管饱和导通 输出为低电平 0 这种光耦合器性能较 好 价格便宜 因而应用广泛 光电耦合器之所以在传输信号的同时能有效地抑制尖脉 锅炉控制的单片机软硬件设计 9 冲和各种噪声干扰 使通道上的信号噪声比大为提高 主要有以下几方面的原因 1 光电耦合器的输入阻抗很小 只有几百欧姆 而干扰源的阻抗较大 据分压原理 可知 即使干扰电压的幅度较大 但馈送到光电耦合器输入端的噪声电 压会很小 只 能形成很微弱的电流 由于没有足够的能量而不能使二极管发光 从而被抑制掉了 2 光电耦合器的输入回路与输出回路之间没有电气联系 也没有共地 之间的分布 电容极小 而绝缘电阻又很大 因此回路一边的各种干扰噪声都很难通过光电耦合器馈 送到另一边去 避免了共阻抗耦合的干扰信号的产生 3 光电耦合器可起到很好的安全保障作用 即使当外部设备出现故障 甚至输入信 号线短接时 也不会损坏仪表 因为光耦合器件的输入回路和输出回路之间可以承受几 千伏的高压 4 光电耦合器的响应速度极快 其响应延迟时问只有 10us 左右 适于对响应速度要 求很高的场合 使用光电耦合器的注意事项 1 在光电耦合器的输入部分和输出部分必须分别采用独立的电源 若两端共用一个 电源 则光电耦合器的隔离作用将失去意义 2 当用光电耦合器来隔离输入输出通道时 必须对所有的信号 包括数字量信号 控 制量信号 状态信号 全部隔离 使得被隔离的两边没有任何电气上的联系 否则这种隔 离是没有意义的 2 6 2 继电器输出接口 继电器 图 2 11 是一种电子控制器件 它具有控制系统 又称输入回路 和被控制系统 又称输出回路 通常应用于自动控制电路中 它实际上是用较小的电流去控制较大电流 的一种 自动开关 故在电路中起着自动调节 安全保护 转换电路等作用 一般由通 电线圈和触点构成 当线圈通电时 由于磁场的作用 使开关触点闭合 当线圈不通电 时 则开关触点断开 一般线圈可以用直流低电压控制 9V 12V 等 而触点输出部 分可以直接与市电 220V 连接 虽然继电器有一定的隔离作用 但在与微型计算机接口连 接时通常还是采用光电隔离器 图 2 11 继电器 2 7 信号输入电路设计 本系统要接收八个信号 即温度高 温度低 液位高 液位低 液位极限低 压力 烟台南山学院学士学位毕业论文 10 低 压力高 压力极限高 他们的连接都是一样的 因此我们只用一路输入信号来作说 明 输入信号经过电阻 R 后作为光电隔离器的一个输入信号 见图 2 12 光电隔离器的输 出信号端经过电阻 R 后接地 5v 电压在电阻 R 上的电压成为 74LS244 的一个输入信号 74LS244 见图 2 13 是一个八同向的三态缓冲器 G1 G2 控制其输入 74LS244 的一个 输出端接到 80C31 的 P1 0 脚 80C31 的 READ 脚接 74LS244 的 G1 G2 脚 这样 80C31 就可以通过 READ 脚来控制 74LS244 的开关 进而决定是否接收输入信号 图 2 12 信号输入电路连接 图 2 13 74LS244 引脚图 2 8 信号输出电路设计 本系统要输出四个信号 分别控制鼓风机 引风机 炉排 水泵 这些信号通过继 电器控制电机的运转 从而来实现锅炉的自动化控制 四路控制信号的连接是一样的 因此我们只用一路来说明他们间的连接 图 2 14 信号输出电路连接 锅炉控制的单片机软硬件设计 11 输出信号送到带公共时钟复位八 D 触发器 74LS273 的一个输入端 由于 TTL 电平不 能驱动光电隔离器 因此需要引入一个 5V 的电源和一个保护电阻 R 信号再经过一个保 护电阻 R 后到达光电隔离器 光电隔离器的另一端接一个 12V 的电源和一个保护电阻 R 用 12V 的电源是因为继电器要接 12V 的电源 电压高的话就可能把下面的三极管击 穿 太低的话就起不到应有的作用 即使没有输入信号 继电器也打开 图中 D 的作用 是保护继电器 防止继电器存在的电感 2 9 显示电路设计 显示器是最常用的输出设备 特别是二极管显示器 LED 和液晶显示器 LCD 由于 价格便宜 结构简单 接口容易得到了广泛的应用 本系统选用二极管显示器来显示锅 炉的运行是否正常 LED 显示块是由发光二极管显示字段的显示器件 在微机应用系统中通常使用的是 七段 LED 这种显示器有共阴极与共阳极两种 如图 2 15 b 共阳极所示 当某个发光 二极管的阳极为高电平时 发光二极管点亮 共阳极 LED 显示块的发光二极管阳极并联 通常的七段 LED 显示块中有八个发光二极管 也可叫做八段显示器 其中七个发光二极 管构成七笔字型 8 一个发光二极管构成小数点 七段显示块与单片机接口非常容易 只要将一个 8 位并行输出 1 3 与显示块的发光二极管引脚相连即可 本系统因为不需要显示变化的数字 因此我们选用共阴极的二极管显示器 让二极 管显示器的八个输入端接 5V 的电源 用 80C31 的一个引脚来接二极管显示器的公共端 控制其显示 具体的连接如图 2 16 所示 图 2 15 七段 LED 显示块结构图 图 2 16 80C31 与 LED 的连接 烟台南山学院学士学位毕业论文 12 由上几节的介绍我们知道 锅炉的运行状态信号是送到 80C31 的 Pl 口的 P1 口的 信号作为 74LS373 的一个输入信号输入到 74LS373 中 74LS373 的输出信号又经过反向 的驱动器 74LS06 74LS06 可以驱动高达 30V 的电流 一般显示器上都要用到 到达显示器 的公共端 这样显示器就可以显示锅炉的运行状态是否良好 锅炉控制的单片机软硬件设计 13 第三三章 软软件件设设计计 3 1 MCS 51 汇编语言简介 MCS 51 汇编语言共有各类指令 111 条 分五类 1 数据传送类指令 29 条 2 算数运算类指令 24 条 3 逻辑运算及移位指令 24 条 4 控制转移类指令 17 条 5 布尔变量操作类指令 17 条 绝大部分指令执行时都需要用到操作数 那么到哪里去取得操作数呢 最易想到的就 是告诉 CPU 操作数所在的地址单元 从那里可取得相应的操作数 这便是 寻址 之意 MCS 51 的寻址方式很多 使用起来也相当方便 功能也很强大 灵活性强 这便是 MCS 51 指令系统 好用 的原因之一 下面我们分别介绍几种寻址方式 一 直接寻址 指令中操作数直接以单元地址形式出现 例如 MOV A 68H 这条指令的意义是 把内部 RAM68H 单元中的数据内容传送到累加器 A 中 二 寄存器寻址 寄存器寻址对选定的 8 个工作寄存器 R0 R7 进行操作 也就是操作数在寄存器中 因此指定了寄存器就得到了操作数 寄存器寻址的指令中以寄存器的符号来表示寄存器 例如 MOV A R1 这条指令的意义是把所用的工作寄存器组中的 Rl 的内容送到累加 器 A 中 三 寄存器间接寻址 寄存器中存放的为操作数的地址 也即操作数是通过寄存器指向的地址单元得到的 这便是寄存器间接寻址名称的由来 例如指令 MOV A R0 这条指令的意义是将 R0 寄存器指向地址单元中的内容送到累加器 A 中 四 立即寻址 把操作数直接在指令中给出 即操作数包含在指令中 指令操作码的后面紧跟着操 作数 一般把指令中的操作数称为立即数 因此而得名 为了与直接寻址方式相区别 在立即数前加上 符号 例如 MOVX A 0EH 这条指令的意义是将 0EH 这个操 作数送到累加器 A 中 五 变址寻址 以 DPTR 或 PC 作为基址寄存器 以累加器 A 作为变址寄存器 将两寄存器的内容 相加形成 16 位地址作成操作数的实际地址 例如 MOV A A DPTR A 作为偏移 量寄存器 DPTR 作为变址寄存器 A 作为无符号数与 DPTR 或 PC 的内容相加 得到访 问的实际地址 六 位寻址 在 MCS 51 单片机中 RAM 中的 20H 2FH 字节单元对应的位地址为 00H 7FH 特殊功能寄存器中的某些位也可进行位寻址 这些单元既可以采用字节方式访问它们 烟台南山学院学士学位毕业论文 14 也可采用位寻址的方式访问它们 七 相对寻址 相对寻址方式是为了程序的相对转移而设计的 以 PC 的内容为基址 加上给出的偏 移量作为转移地址 从而实现程序的转移 转移的目的地址可参见如下表达式 目的地 址 转移指令地址 转移指令字节数 偏移量 8031 中一共有 5 个中断源 两个外部中断 两个计数 定时器中断 一个串行口中断 中断的允许或禁止是由片内的中断寄存器 IE 控制的 IE 中各位的功能如下 EA CPU 中断允许标志位 EA 0 CPU 禁止所有中断 EA 1 CPU 开放中断 ES 串行口中断允许位 ES 1 允许串行口中断 ES 0 禁止串行口中断 ET1 定时器 计数器 1 的溢出中断允许位 ET1 1 允许 Tl 中断 ET1 O 禁止 T1 中断 EX1 外部中断 l 的中断允许位 EXl l 允许外部中断 l 中断 EX1 0 禁止外部中 断 1 中断 ET0 定时器 计数器 0 中断允许位 EX0 1 允许 T0 中断 EX0 0 禁止 T0 中断 EX0 外部中断 0 的中断允许位 EX0 1 允许外部中断 0 中断 EX0 0 禁止外部中 断 0 中断 中断的优先级控制是由 IP 寄存器控制的 IP 中各位的功能如下 PS 串行口中断优先级控制位 PS 1 串行口为高优先级中断源 PS 0 为低优先 级中断源 PTl T1 中断优先级控制位 PT1 1 T1 为高优先级中断源 PT1 0 为低优先级中 断源 PT0 T0 中断优先级控制位 PT0 1 T0 为高优先级中断源 PT0 0 为低优先级中 断源 PXl 外部中断 1 中断优先级控制位 PX1 1 外部中断 l 定义为高优先级中断源 PX1 0 外部中断 1 定义为低优先级中断源 PX0 外部中断 0 中断优先级控制位 PX0 1 外部中断 0 定义为高优先级中断源 PX0 0 外部中断 0 定义为低优先级中断源 3 2 系统软件设计 整个系统软件主要由主程序 中断服务程序 各种故障处理及报警子程序和延时子 程序等组成 主程序主要是完成系统初始化 中断设置 手动与自动切换等功能 中断 程序主要是完成判断极限信号 然后转到相应的处理程序 检测模块主要是完成信号的 输入并判断转到中断程序或检测模块 语音模块主要是完成语音提示及报警的工作 系统开始后进行初始化 初始化主要是开中断 输入开锅炉的标志等工作 然后系 统会语音提示锅炉已经打开 系统开始接受检测信号 如果信号没有越过我们设定的界 限 那么系统会继续检测 如果信号越界 系统会进入中断处理程序 在中断处理程序 中 将会先判断是否有液位极限低信号输入和压力极限高信号输入 如果有则语音报警 并停止锅炉的自动运行改为手动操作 如果没有就向下检测液位 温度 压力是否高于 上限或低于下限 如果有温度 压力高信号输入就停止鼓风机并延时 20s 后中断返回继续 检测 没有就向下检测 如果有温度 压力低信号输入就开鼓风机和炉排并延时 40s 后中 锅炉控制的单片机软硬件设计 15 断返回继续检测 没有就向下检测 如果有液位高信号输入就停止水泵并延时 l0s 后中断 返回继续检测 没有向下检测 如果有液位低信号输入就开水泵并延时 20s 后中断返回继 续检测 由上节可知要想执行中断必须先设置中断允许寄存器 首先打开 CPU 中断 即 SET EA 本系统没有用到串行口中断因此关串行口中断 即 CLR ES 要用到 INT0 INT1 中 断 因此需要先设置这两个中断允许位 即 SET INT0 SET INT1 不用定时器 计数器中 断 因此关定时器 计数器中断 即 CLR FT0 CLR ET1 通过以上设置 系统就能按我 们的要求在必要时中断并进入中断处理程序处理锅炉运行中遇到的问题 图 3 1 系统程序流程图 图 3 1 系统程序流程图 下面我们介绍一下程序初始化模块 检测模块 中断处理模块 延时模块 一 初始化模块 系统开始后进行初始化 初始化主要是开中断 输入开锅炉的标志等工作 主要代 码如下 ORG 0000H 程序从 0000 丌始执行 start AJMP remain 跳过中断向量入口 ORG 0003H 量入口 放不下中断处理 LJMP PINT0 用长跳转指令 ORG 0100 程序开始 mmain MOV A 31H 判断锅炉是否打开 没有则转到 CJNE A 55H openl 开启程序并设立打开标志 烟台南山学院学士学位毕业论文 16 MOV A 32H CJNE A 0AAH openl AJMP rese openl MOV 31H 55H 打开锅炉并将打开标志送入 3lH 32H MOV 32H 0AAH SETB 00H 初始化 RO R2 RAM 的 70H 71H CLR 02h 72H 73H CLR 73H CLR 72H CLR 71H CLR 70H MOV DPTR 9100H 报警音提示锅炉打开 CLR A MOVC A A DPTR 语音首地址送入累加 MOV R7 A 器 即语音的长度 ACALL SPK rese CLR A MOV IE A 初始化 IE MOV PSW A 初始化 PSW MOV IP 01H 初始化口 INT0 为高优先级中断 MOV IE 83H 打开 INT0 INTl 中断 二 检测模块 检测模块主要把系统的检测信息送到 80C31 中 判断是否越界 如果越界就进入中 断处理程序 否则返回继续检测 主要代码如下 Check CLR RD 打开 74LS244 允许数据输入 MOV R0 A 把接收到数据送 R0 中 JZ Check 如果输入为 0 就继续检测 SET INT0 不为 0 则中断处理 三 中断模块 中断模块处理锅炉运行中有越界信号输入 判断是那种越界并转到相应的处理模块 主要代码如下 PINTO PUSH PSW 保护现场 PUSH ACC PUSH DPL PUSH DPH Data0 MOV A R0 输入信号送到累加器中 ANL A 01H 检测第一位 为 1 转到 JZ Datal 液位极限低处理程序 否则 ACALL Data1 向后检测 ACALL PROC1 Data1 MOV A R0 检测第二位 为 1 转到 锅炉控制的单片机软硬件设计 17 ANL A 02H 压力极限高处理程序 否则 JZ Data2 向后检测 ACALL PROC2 Data2 MOV A R0 检测第三位 为 1 转到 ANL A 03H 压力高处理程序 否则 JZ Data3 向后检测 ACALL PROC3 Data3 MOV A R0 测第四位 为 l 转到 ANL A 04H 液位低处理程序 否则 JZ Data4 向后检测 ACALL PROC4 Data4 MOV A R0 测第五位 为 l 转到 ANL A 05H 温度高处理程序 否则 JZ Data5 向后检测 ACALL PROC5 Data5 MOV A R0 测第六位 为 l 转到 ANL A 06H 温度低处理程序 否则 JZ Data6 向后检测 ACALL PROC6 Data6 MOV A R0 测第七位 为 l 转到 ANL A 07H 压力低处理程序 否则 JZ Data7 向后检测 ACALL PROC7 Data7 MOV A R0 测第八位 为 l 转到 ANL A 08H 液位高处理程序 否则 JZ Check 转到检测模块 ACALL PROC8 四 延时模块 因为系统的时钟频率是 12MHZ 因此一个时钟周期是 12X 1 f lus 下面是一个延时 10ms 的程序 要得到更多的延时可以在外面多一层循环 MOV R7 0AH DL MOV R6 0FFH DL6 DJNZ R6 DL6 DJNZ R7 DL RET 烟台南山学院学士学位毕业论文 18 第四四章 软软硬硬件件联联调调 单片机应用系统的调试 包括硬件调试和软件调试 是一个很重要的步骤 硬件调 试和软件调试并不能完全分开 许多硬件错误是在软件调试过程中被发现和纠正的 一 般方法是先排除明显的硬件故障 再进行软硬件综合调试 根据方案设计的要求 调试过程分为三大部分 硬件调试 软件调试和系统硬软综 合联调 电路按模块调试 各模块逐个调试通过后再联调 单片机软件先在最小系统上 调试 确保所有部分工作正常之后 再与硬件系统联调 4 1 系统硬件调试 对系统进行调试 首先要进行静态调试 静态调试的目的是排除明显的硬件故障 4 1 1 静态调试 静态调试工作分为两步 第一步是在系统加电之前 先用万用表等工具 根据硬件逻辑设计图 仔细检查系 统线路是否连接正确 并核对元器件的型号 规格和安装是否符合要求 特别注意电源 系统的检查 以防止电源的短路和极性错误 并重点检查系统总线 地址总线 数据总 线 控制总线 是否存在相互之间短路或与其他信号线的短路 第二步是加电后检查各芯片插座上有关引脚的电位 仔细测量各点电平是否正常 尤其应注意 CPU 插座的各点电位 若有高压 与在线仿真器联机调试时 将会损坏在线 仿真器 具体步骤如下 1 电源检查 当系统板连接或焊接完成之后 先不插主要元器件 通上电源 通常用 5V 直流电 源 用万用表电压档测试各元器件插座上相应电源引脚电压数值是否正确 极性是否符 合 如有错误 及时检查 排除 以使每个电源引脚的数值都符合要求 2 各元器件电源检查 断开电源 按正确的元器件方向插上元器件 分别插入 分别通电 并逐一检查每 个元器件上的电源是否正确 直至最后插上全部元器件 通上电源后 每个元器件上电 源应正确无误 3 检查相应芯片的逻辑关系 检查相应芯片逻辑关系通常采用静态电平检查法 即在一个芯片信号输入端加入一 个相应电平 检查输出电平是否正确 单片机系统大都是数字逻辑电路 使用电平检查 法可首先检查出逻辑设计是否正确 选用的元器件是否符合要求 逻辑关系是否匹配 元器件连接关系是否符合要求等 4 1 2 联机仿真 在线动态调试 在静态调试中 对系统硬件进行了初步调试 只是排除了一些明显的静态故障 系统在的硬件故障主要是靠联机在线仿真来排除的 锅炉控制的单片机软硬件设计 19 在断电情况下 插上所有元器件 并把在线仿真器与系统相连 打开系统电源 启 动在线仿真器后开始在线仿真调试 调试过程中遇到的问题 1 上电后 电源指示灯不亮 各点电位为 0 用万用表检测后发现电源插座出现 虚焊现象 重新焊接后 接入电源指示灯亮 各点电位正常 2 当用示波器检测 30 脚 发现没有时钟频率输出 仔细分析发现 30 脚没接高电 平 重新焊接后 输出漂亮的时钟脉冲 3 蜂鸣器不响 经检测后 确定为蜂鸣器自身损坏 更换蜂鸣器后正常 4 2 系统软件调试 在软件设计 调试的过程中 分为以下几步进行 第一步 建立用户源程序 按照单片机语言源程序所要求的格式 语法规定 把源 程序输入到 Keil 8 01 编程软件中 并保存 第二步 在 Keil 8 01 编程软件中 对输入的源程序进行编译 直至语法错误全部纠 正为止 如无语法错误 则进行下一个步骤 第三步 动态在线调试 这一步是对源程序进行调试 必须要有在线仿真器配合 才能对源程序进行调试 第四步 将调试完毕的用户程序通过 EPROM 编程器 固化在 EPROM 中 从实质上讲 系统软件的调试是对软硬件的综合调试 一方面要排除软件错误 同 时进一步解决硬件部分的遗留故障 调试的方案是将整个系统按其功能分成若干模块 如系统的显示模块 时钟模块 温度检测模块 语音模块 键盘功能模块等 针对不同的功能模块 编写一小段测试程 序 再将它们连在一起统调 并借助于万用表 示波器等仪器来检查硬件电路的正确性 4 3 系统软件调试 对系统硬软件的综合调试是完成系统功能的最后一步调试 也就是系统功能实现的调 试 通过上两大块的调试 系统的一些明显故障已经被排除 但这还不能保证系统在使 用中就能够正常工作 实现理想功能 所以这一步的调试是至关重要的 需要十分丰富 的调试经验 要根据系统实现的结果 能够仔细分辩故障部位 这样才能保证我们调试 的准确性 烟台南山学院学士学位毕业论文 20 结 论 本设计是具有现实意义 与实践密切结合的项目 它是在国家关于建设资源节约型 环境友好型社会的要求下产生的 设计好的系统的节煤率达 5 以上 锅炉的控制实现自 动化 人的劳动强度大大降低 锅炉能够安全的运行 减少事故的发生 保障人身安全 可以实现语音报警 直观的反映锅炉的运行状态 能将锅炉的传感器信号通过仪表变为 上下限信号输入 高于我们设定的上限或低于我们设定的下限 仪表将会输入一个电信 号到控制扳 控制板接到信号后将按我们写在 EPROM 中的程序执行 是极限信号马上停 止自动控制改为手动控制 不是则判断是哪个越界信号 输出控制信号 输出语音报警 及显示后返回程序继续检测 这样锅炉就能按我们的要求实现自动检测和控制了 通过这次毕业设计 本人对于单片机的开发过程有了比较全面深入的了解 可以说 很长时间的理论学习终于在这次毕业设计中运用到了实践上来 现将单片机开发流程归纳如下

温馨提示

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

评论

0/150

提交评论