基于单片机的空调控制器设计.doc_第1页
基于单片机的空调控制器设计.doc_第2页
基于单片机的空调控制器设计.doc_第3页
基于单片机的空调控制器设计.doc_第4页
基于单片机的空调控制器设计.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

河北工程大学河北工程大学 课课 程程 设设 计计 基于单片机的空调控制器设计基于单片机的空调控制器设计 专业 计算机科学与技术 班级 1402 班 组成员 尹振坤 陈秀贤 李晨光 1 目 录 2 设计任务 1 3 系统方案的确定 2 3 1 温度传感器产品分类与选择 2 3 1 2 温度传感器产品分类 2 3 2 总体方案的确定 5 4 系统电路总体设计 8 4 1 系统工作原理 8 4 2 系统硬件设计 8 4 2 1 温度采集电路 8 4 2 2 信号处理与控制电路 9 4 2 3 温度显示电路 11 4 2 4 温度设置电路 14 4 2 5 控制指示电路 15 4 3 系统软件设计 15 4 3 2 软件程序设计 17 5 系统的调试 20 5 1 单片机 89C51 的调试 20 5 2 程序调试过程中遇到的问题和解决办法 21 5 3 调试结果 21 附录 26 2 设计任务 设计题目 基于单片机的空调控制器设计 设计要求 设计要求 1 1 温度控制范围温度控制范围 18 26 18 26 2 2 2 低于 低于 18 18 给出一个控制信号 启动电暖设备 给出一个控制信号 启动电暖设备 3 3 高于 高于 26 26 时 给出一个控制信号 启动制冷设备 时 给出一个控制信号 启动制冷设备 4 4 能手动调整和自动调整 能手动调整和自动调整 3 系统方案的确定 3 13 1 温度传感器产品分类与选择 温度是日常生活中经常遇到的一个物理量 它也是科研和生产中最常见 最基本的 产量之一 在很多场合都需要对温度进行测控 而温度测控离不开温度传感器 因此 掌握正确的测温方法及温度传感器的使用方法极为重要 3 1 1 常用的测温方法 物体受热后温度就要升高 任何两个温度不同的物体相接触都必然产生热交换 直 到两者的温度达到平衡为止 据此 可以选择某种温度传感器与被测物体接触进行温度 测量 这种方法称为接触式测温 接触式测温常用于较低温度的测量 此外 物体受热后温度升高的同时还伴有热辐射 因此 可利用温度传感器接收被 测物体在不同温度下辐射能量的不同来测量温度 这种测温方法称为非接触式测温 非 接触式测温常用于高温测量 3 1 2 温度传感器产品分类 目前 温度传感器没有统一的分类方法 按输出量分类有模拟式温度传感器和数字 式温度传感器 按测温方式分类有接触式温度传感器和非接触式温度传感器 按类型分 类有分立式温度传感器 含敏感元件 模拟集成式温度传感器和智能温度传感器 即 数字温度传感器 模拟式温度传感器输出的是随温度变化的模拟量信号 其特点是输出响应速度较快 和 MPU 微处理器 接口较复杂 数字式温度传感器输出的是随温度变化的数字量 同 模拟输出相比 它输出响应较慢 但容易与 MPU 接口 下面对工程中常用的温度传感器 做简单介绍 1 热敏电阻式温度传感器 电阻式温度传感器分为热电阻式温度传感器和热敏电阻温度传感器 他们的特点是 自身的电阻值随温度而变化 热敏电阻式利用半导体材料制成的敏感组件 通常所用的热敏电阻温度传感器都是 具有负温度系数的热敏电阻 它的电阻率受温度的影响很大 而且随温度的升高而减少 3 简称 NTC 其优点是灵敏度高 体积小 寿命长 工作稳定 易于实现远距离 缺点是 互换性差 非线性严重 2 热电阻式温度传感器 利用热电阻温度系数随温度变化的特性而制成的温度传感器 称为热电阻温度传感 器 对于大多数金属导体 其电阻值都具有随温度升高而增大的特性 由于纯金属的温 度系数比合金的高 因此均采用纯金属作为热电阻组件 常用的金属导体材料有铂 铜 铁和镍 3 热电偶式温度传感器 热电偶是一种传统的温度传感器 其测温范围一般为 50 到 1600 最高可达 2800 并且有较高的测量精度 另外 热电偶产品已实现标准化 系列化 使用时 易于选择 可方便地用计算机做线性补偿 因此 至今在测温领域内仍被广泛使用 它 的理论基础是建立在热电效应上 将热能转化为电能 4 模拟集成温度传感器 集成传感器是采用硅半导体集成工艺而制成的 因此亦称硅传感器或单片集成传感 器 模拟集成温度传感器是在 20 世纪 80 年代问世的 它是将温度传感器集成在一个芯 片上 可完成温度测量及模拟信号输出功能的专用 IC 它属于最简单的一种集成温度传 感器 模拟集成温度传感器的主要特点是功能单一 仅测量温度 测温误差小 价格 低 响应速度快 传输距离远 体积小 微功耗 适合远距离测温 控温 不需要进行 非线性校准 外围电路简单 它是目前在国内外应用较为普遍的一种集成传感器 5 智能温度传感器 智能温度传感器 亦称数字温度传感器 是在 20 世纪 90 年代中期问世的 智能温 度传感器是微电子技术 计算机技术和自动测试技术的结晶 它也是集成温度传感器领 域中最具活力和发展前途的一种新产品 目前 行许多著名的集成电路生产已开发出上 百种智能温度传感器产品 智能温度传感器具有以下三个显著特点 第一 能输出温度数据及相关的温度控制 量 适配各种微控制器 MCU 第二 能以最简方式构成高性价比 多功能的智能化 温度测控系统 第三 它是在硬件的基础上通过软件来实现测试功能的 其智能化程度 也取决于软件的开发水平 智能温度传感器内部都包含温度传感器 A D 传感器 存储器 或寄存器 和接口 电路 有的产品还带多路控制器 中央控制器 CPU 随机存取储存器 RAM 和只读 4 存储器 ROM 3 1 3 温度传感器的选择 在介绍温度传感器的选择原则之前 首先介绍在测控系统中选择传感器的总原则 本原则适用于各种传感器的选择 1 选择传感器的总原则 现代传感器在原理和结构上千差万别 如何根据具体的测控目的 测控对象以及测 控环境合理地选择传感器 是单片机测控系统首先要解决的温度 当传感器选定之后 与之相配套的测控电路也就可以确定了 测控结果的成败 在很大程度取决于传感器的 选择是否合理 作为单片机测控系统前向通道的关键部件 在选择传感器时应考虑一下 几个方面 1 根据测控对象与测控环境确定传感器的类型 首先要考虑采用何种原理的传感器 这需要分析多方面的因素之后才能确定 因为 即使是测量同一物理量 也有多种原理的传感器可供选择 哪一种原理的传感器更为合 适 则需要根据被测量对象的特点和传感器的使用条件综合考虑一下一些具体问题 1 传感器的量程 2 被测位置对传感器体积的要求 3 测量方式为接触式还是非接 触式 4 传感器信号的引出是有线还是无线 5 是购买传感器还是自行研制传感器以 及价格因素等 在综合考虑上述因素之后就能确定选择何种类型的传感器 然后再考虑传感器的 具体性能指标 2 灵敏度的选择 通常情况下 在传感器的线性范围内 希望传感器的灵敏度越高越好 3 频率响应特性 传感器的频率响应特性决定了被测量的频率范围 传感器的频率响应好 可测的信 号频率范围就宽 传感器的输出信号必须在允许的频率范围内保持不失真 实际上传感 器的响应总有一定得延迟 希望延迟时间越来越好 4 线性范围 传感器的线形范围是指输出信号与输入量成正比的范围 从理论上讲 在此范围内 灵敏度应保持定值 传感器的线性范围越宽 其量程越大 并且能保证一定的测量精度 在选择传感器时 当传感器的种类确定之后首先要看其量程是否满足要求 5 稳定性 5 传感器使用一段时间后 其性能保持不变化的能力称为稳定性 影响传感器长期稳 定性的因素除传感器本身结构外 主要是传感器的使用环境 因此 要使传感器具有良 好的稳定性 传感器必须要有较强的环境适应能力 6 精度的选择 精度是传感器的一个重要的性能指标 它是关系到整个测控系统测量精度的一个重 要环节 传感器的精度越高 其价格越昂贵 因此 传感器的精度只要能满足整个测控 系统的精度要求就可以了 不必选得太高 这样就可以在满足同一测量目的的诸多传感 器中选择比较便宜和简单的传感器 2 温度传感器的选择 温度传感器技术被广泛应用于消费类电子产品 玩具 家用电子产品 工业测控系 统以及个人计算机应用中 传统上分立式温度传感器是最常用的温度传感器元件 而集 成温度传感器特点是测温误差小 价格低 响应速度快 传输距离远 体积小 微功耗 适合远距离测温 控温 不需要进行非线性校准 外围电路简单 它是目前在国内外应 用最为普遍的一种温度传感器 综上所述 不同的传感器具有不同的应用场合 由于在温度测控系统中 传感器是 前向通道的关键部件 因此选择合适的传感器是非常重要的 选择的原则要考虑温度范 围 温控精度 测温场合 价格等几方面的因素 3 2 总体方案的确定 考虑到该制冷控制系统功能比较少 由单片机控制即可实现 而 89C52 单片机体积 小 重量轻 抗干扰能力强 对环境要求不高 价格低廉 可靠性高 灵活性好 故本 系统选择采用 89C52 单片机 在温度采集方面 在设计开始时就准备了两种方案 一种是采用热敏电阻式传感器和 ADC0809 转换器进行数据采集 总体方案示意图如 图 1 所示 图 1 热敏电阻式温度控制器 具体方案如下 温度传感器的模拟信号转换为数字信号后由 P0 口输入 ADC0809 由 P3 0 启动转换 由 P3 1 控制输出 信号传输采用无条件输入方式 启动 A D 转换后 6 延时 100 微妙从 P0 口采集数据 时间延迟由 T0 实现 具体系统电路图如图 2 所示 图 2 热敏电阻式温度控制器电路图 另一种是采用单线数字温度传感器 DS18B20 进行数据采集 DSB18B20S 数字温度计 提供 9 到 12 位温度读数 指示器件的温度信息经过单线接口送入 DS18B20 送出 因此 从中央处理器到 DS18B20 仅需连接一条线和地 读写和完成温度变换所需的电源可以由 数据线本身提供 甚至不需要外部电源 而总体方案和系统电路图方面基本上和热敏式 传感器相同 只在数据采集方面有所差别 具体电路图如图 3 所示 7 图 3 数字传感器式温度控制器 根据上述选择传感器的原则 考虑到模拟量输出传感器会带来许多不便 具体体现 在接线多 信号处理复杂等 在硬件实现方面比较困难 而且在上面也已经提及 热敏 电阻式温度传感器互换性差 非线性严重 而数字温度传感器 DS18B20 接线简单 数字 输出量能直接作为单片机的输入数据 同时考虑到只是在普通环境下测量 无论在灵 敏度 线性范围 稳定性 还是在精度方面 DS18B20 的强大功能已足够满足设计需要 但是 DS18B20 也有缺点 就是软件实施方面比较复杂 但相对于模拟量输出的硬件实现 方面来说会简单很多 在本次设计中 温度数据采集用到的传感器是 DS18B20 8 4 系统电路总体设计 4 1 系统工作原理 该空调控制系统用到 89C52 单片机作为系统的 CPU 进行控制控制 由数字传感器 DS18B20 进行数据采集 89C52 对采集到的数据进行处理 得到各种信号 而这些信号 将分别作为 LED 数码管显示的信号输入和启动制冷设备 电暖设备的输入 同时将利用 单片机的其它使能端口实现系统的复位 手动调节和自动调节 4 2 系统硬件设计 系统的硬件部分主要可分为温度采集电路 信号处理与控制控制 温度显示电路 温度调节电路 控制指示电路五大部分 4 2 1 温度采集电路 本系统中采集温度使用的是 DS18B20 数字温度传感器 DS18B20 是 Dallas 半导体公司生产的世界上第一片支持 一线总线 接口的温度 传感器 与之前的传感器相比 DS18B20 体积更小 适用电压更宽 更经济 一线总线 独特而且经济的特点 使用户可轻松地组建传感器网络 为测量系统的构建引入全新概 念 DS18B20 一线总线 数字化温度传感器支持 一线总线 接口 测量温度范围 为 55 到 125 在 10 到 85 范围内 精度为 0 5 现场温度直接以 一线总线 的数字方式传输 大大提高了系统的抗干扰性 适合于恶劣环境的现场温度测量 如 环境控制 设备或过程控制 测温类消费电子产品等 与前一代产品不同 新的产品支 持 3V 到 5 5V 的电压范围 使系统设计更灵活 方便 而且新一代产品更便宜 体积更 小 DS18B20 可以程序设定 9 到 12 位的分辨率 精度为 0 5 当分辨率为 12 位时 转换时间为 750ms 使得用户可选择更小的封装方式 更宽的电压适用范围和分辨率设 定 同时用户设定的报警温度存储在 EEPROM 中 掉电后依然保存 DS18B20 一般为三极管型封装 其引脚图如图 4 所示 这三个引脚分别为 GND 电源地 QD 数字信号输入 输出端 VDD 外接供电电源 可选 5V 9 图 4 DS18B20 引脚图 在单片机 89C51 中 输入 输出端口分别 P0 P1 P2 P3 其中 P3 是一个带内部上 拉电阻的 8 位双向 I O 端口 P3 的输出缓冲器可驱动 吸收或输出电流方式 4 个 TTL 输入 对端口写 1 时 通过内部的上拉电阻吧端口拉到高电位 这时可用作输入口 P3 作输入口使用时 因为有内部的上拉电阻 那些被电阻拉低的引脚会输出一个电流 P3 端口还用于一些复用功能 其复用功能如表 1 所列 表 1 单片机 89C51 P3 口的功能及在本系统中的应用 端口引脚复用功能本系统接口分配 P3 0 RXD 串行口输入口 与手动降温按钮连接 P3 1 TXD 串行口输出口 与手动升温按钮连接 P3 2 INT0 外部中断 与手动调节确认按钮连接 P3 3 INT1 外部中断 1 与 DS18B20 的 I O 端口通讯 P3 4 T0 定时器 0 的外部输入 与高温报警的二极管连接 P3 5 T1 定时器 1 的外部输入 与低温报警的二极管连接 P3 6 WR 外部数据存储器写选通 备用 P3 7 RD 外部数据存储器读选通 备用 在该系统中 DS18B20 的数字信号输入 输出端连接到 89C52 的 P3 3 中 作为 89C51 的数据输入 10 4 2 2 信号处理与控制电路 信号处理与控制采用 1 单片机基本电路 此电路以 51 单片机为核心 52 的具体引 脚图如图 5 在该系统中 要使单片机实现信号处理与控制 则要使单片机的 20 脚 GND 接地 40 脚 Vcc 和 31 脚 EA 接正 5V 电源 18 19 脚 XTAL2 XTAL1 接 12MHz 的晶 振和两个电容 组成片内振荡电路 为单片机提供时钟脉冲 9 脚 RST 接按键复位电 路 提供复位信号给单片机 图 5 89C52 引脚图 89C52 芯片内部有一个高增益反相放大器 用于构成振荡器 反相放大器的输入端 为 XTAL1 输出端为 XTAL2 两端跨接石英晶体及两个电容就可以构成稳定的自激振荡 器 两个电容通常取 30pF 左右 稳定频率并对震荡频率有微调作用 如图 6 所示 11 X1 C1 30p C2 30p 图 6 晶振电路 手动复位是通过接通一按钮开关 使单片机进入复位状态 系统上电运行后 若需 要复位 则通过手动复位来实现的 如图 7 所示 K4 C3 10u R5 10k 图 7 手动复位电路 4 2 3 温度显示电路 本系统中 温度显示硬件由 74HC138 八位二进制译十进制译码器 74HC245 信号功 率放大和四位一体共阴数码管构成 1 四位一体共阴数码管 四位一体共阴数码管引脚图如图 8 所示 它的 1 4 5 7 脚为位选脚 分别对应 从左到右四个数码管 输入低电平选通 剩下的其他引脚为数据输入脚 此电路中数码 12 管的 8 个数据引脚 a b c d e f g dp 图 8 LED 数码管引脚图 2 八位二进制译 十进制译码器 由于要对四位一体 共阴数码管提供位选信 号 供其选通四个数码 管 所以在系统中使用了 74HC138 八位二进制译十进制译码器 其引脚图如图 9 所示 引脚说明 第 1 2 3 脚 A B C 二进制输入脚 第 4 5 6 脚片选信号控制 只有在 4 5 脚为 0 6 脚 为 1 时 才会被选通 输出受 A B C 信号控制 其它任何 组合方式将不被选通 且 Y0 Y7 输出全为 1 第 8 脚为 GND 电源地 第 15 脚为 VCC 电源正极 图 9 74HC138 引脚图 74HC138 的 1 2 3 脚分别与单片机的 P1 0 P1 1 P1 2 脚相连 单片机的这三个 管脚输出选通二进制信号 输入到 74HC138 译码 由 74HC138 的 Y0 至 Y7 脚 本电路只 用了 Y0 Y1 Y3 将译码十进制信号输出到四位一体共阴数码管 以达到对数码管的位 选作用 译码电路如图 10 所示 13 A 1 B 2 C 3 E1 6 E2 4 E3 5 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 U1 74HC138 R1 5k1 图 10 译码电路 3 信号功率放大电路 为了使 LED 能够获得足够的功率显示温度 在本系统中采用了 74HC245 功率放大器 把单片机处理后的温度数据经由 74HC245 进行功率放大后 再把它输入给 LED 数码管显 示 74HC245 引脚图如图 11 所示 引脚说明 第 1 脚 DIR 为输入输出端口转换用 DIR 1 高电 平时信号由 A 端输入 B 端输出 DIR 0 低电平时 信号由 B 端输入 A 端输出 第 2 到 9 脚 A 信号输入输出端 A1 B1 A8 B8 A1 与 B1 是一组 如果 DIR 1 G 0 则 A1 输入 B1 输出 其它类同 如果 DIR 0 G 0 则 B1 输入 A1 输出 其它类同 第 11 到 18 脚 B 信号输入输出端 功能与 A 端一 样 不再赘述 图 11 74HC245 引脚图 第 19 脚 G 使能端 若该脚为 1 A B 端的信号将不导通 只有为 0 时 A B 端 才被启用 该脚也就是起到开关的作用 第 10 脚 GND 电源地 第 20 脚 VCC 电源正 极 本电路选择 DIR 1 G 0 则 A1 输入 B1 输出 单片机 P2 口输出显示 8 位二进 制数据信号到 74HC245 的 A1 A8 脚 使信号功率放大 再通过 B1 到 B8 脚输出到四位一 14 体共阴数码管数据脚 驱动数码管显示 具体电路图如图 12 所示 A0 2 B0 18 A1 3 B1 17 A2 4 B2 16 A3 5 B3 15 A4 6 B4 14 A5 7 B5 13 A6 8 B6 12 A7 9 B7 11 CE 19 AB BA 1 U3 74HC245 图 12 信号功率放大电路图 4 2 4 温度设置电路 温度调节由三个不锁按键电路实现 电路图如图 13 所示 按键 K1 一端与单片机的外部中断 0 INT0 12 脚 相连 另一端接地 其功能是 当按键按下一次时 给单片机一个低电平 进入温度设定状态 再次按下时 则退出温 度设定状态 按键 K2 K3 一端接地 另一端与单片机的 10 脚 11 脚相连 其功能是 每按下一次按键 温度显示值加 1 或减 1 K3 K1 K2 R2 R3 R4 15 图 13 温度设置电路 4 2 5 控制指示电路 控制指示电路由两个彩灯构成 由单片机 P3 4 引脚 14 P3 5 引脚 15 见表 1 输出控制信号 控制彩灯的亮灭 在该系统中 当温度超过 26 摄氏度时 单片机 P3 5 输出高电平 驱动高温彩灯亮 启动制冷设备 当温度低于 18 摄氏度时 单片机 P3 4 输出高电平 驱动低温彩灯亮 启动电暖设备 当不满足条件时 彩灯熄灭 4 34 3 系统软件设计 4 3 1 DS18B20 数据通信概述 和 DS18B20 通信 其命令序列有 3 步 初始化 ROM 命令 跟随需要交换的数据 和功能命令 跟随需要交换的数据 每次访问 DS18B20 必须严格遵守这个命令时序 如果出现序列混乱 则单总线则 单总线器件不会响应主机 这个准则对于搜索 ROM 命令和报警搜索命令例外 在执行两 者中任何一条命令之后 主机不能执行其后的功能命令 而必须返回至第一步 1 初始化 单总线上的所有传输过程都是以初始化开始的 初始化过程由主机发出的复位脉冲 和从机响应的应答脉冲组成 应答脉冲使主机知道总线上有从机设备且准备就绪 2 ROM 命令 在主机检测到应答脉冲后 就可以发出 ROM 命令 ROM 命令与各个从机设备的唯一 64 位 ROM 代码相关 允许主机在单总线上连接多个从机设备时 指定操作某个从机设备 ROM 命令还允许能够检测到总线上有多少个从机设备及其设备类型 或者有没有设备处 于报警状态 1 搜索 ROM F0h 当系统初始上电时 主机必须找出总线上所有从机设备的 ROM 代码 这样主机才能 够判断出从机的数目和类型 主机通过重复执行搜索 ROM 循环 搜索 ROM 命令跟随着位 数据交换 以找出总线上所有的从机设备 如果总线只有一个从机设备 则可以采用 读 ROM 命令来替代搜索 ROM 命令 在每次执行完搜索 ROM 循环后 主机必须返回至命令 序列的第一步 初始化 2 读 ROM 33h 仅适合于单节点 该命令仅适用于总线上只有一个从机设备 它允许主机直接读出从机的 64 位 ROM 16 代码 而无须执行搜索 ROM 过程 如果该命令用于多节点 系统则必然发生数据冲突 因为每个从机设备都会响应该命令 3 匹配 ROM 55h 匹配 ROM 命令跟随 64 位 ROM 代码 从而允许主机访问多节点系统中某个指定的从 机设备 仅当从机完全匹配 64 位 ROM 代码时 才会响应主机随后发出的功能命令 其 他设备将处于等待复位脉冲状态 4 跳跃 ROM CCh 仅适合于单节点 主机能够采用该命令同时访问总线上的所有从机设备 而无须发出任何 ROM 代码信 息 例如 主机通过在发出跳越 ROM 命令后 跟随转换温度命令 44h 就可以同时命令 总线上所有的 DS18B20 开始转换速度 这样大大节省了主机的时间 注意 如果跳越 ROM 命令跟随的是读操作命令 则该命令只能应用于单节点系统 否则将由于多个节点 都响应该命令而引起数据冲突 5 报警搜索 Ech 除那些设置了报警标志的从机响应外 该命令的工作方式完全等同于搜索 ROM 命令 该命令允许主机设备判断哪些从机设备发生了报警 如最近的测量温度过高或过低等 同搜索 ROM 命令一样 在完成报警搜索循环后 主机必须返回至命令序列的第一步 3 功能命令 在主机发出 ROM 命令 以访问某个指定的 DS18B20 接着就可以发出 DS18B20 的某 个功能命令 这些命令允许主机写入或读出 DS18B20 的存储器 启动温度转换以及判断 从机的供电方式 1 读 RAM 存储器 BEh 此命令读 RAM 存储器的内容 开始读字节 0 并继续读到第九个字节 CRC 如果 不是所有位置均可读 那么主机可以再任何时候发出一复位命令以中止读操作 2 复制 RAM 存储器 48h 此命令读 RAM 存储器的内容 开始读字节 0 并继续读到第九个字节 CRC 如果 不是所有位置均可读 那么主机可以再任何时候发出一复位命令以中止读操作 3 重新调出 EERAM B8h 此命令把存储在 EERAM 中 TH TL CONF 的值重新调至 RAM 存储器 这种重新调出 的操作在对 DS18B20 上电时也自动发生 因此只要器件一接电 暂存存储器内就有有效 的数据可供使用 17 4 读电源 B4h 在此命令送至 DS18B20 之后最先发出的读数据时间片 器件都会给其电源方式的信 号 0 强上拉电阻供电 1 电源供电 5 写 RAM 存储器 44h 写数据到 RAM 存储器 地址为第 2 第 3 第 4 字节 TH TL CONF 6 温度变换 44h 此命令开始温度变换 不需要另外的数据 温度变换将被执行 接着 DS18B20 便保 持在空闲状态 4 3 2 软件程序设计 1 主程序模块 如图 14 所示 2 DS18B20 通讯模块 如图 15 所示 3 温度设置模块 如图 16 所示 4 温度显示模块 如图 17 所示 5 读取温度信号值 6 与设定值比较 决定空调状态 制冷还是制暖 主程序流程图如图 11 所示 18 图 14 主程序流程图 根据上述 DS18B20 的通信原理 DS18B20 的工作流程如图 11 所示 19 图 15 DS18B20 工作流程图 温度设定和温度显示流程图分别如图 12 和图 13 所示 20 图 16 温度设置软件流程图 图 17 温度显示软件流程图 完整的程序请详见附录 5 系统的调试 5 1 单片机 89C52 的调试 本系统中主要调试的硬件是单片机 调试单片机 89C52 的主要目的是确保单片机能正常工作 调试分三部分进行 1 单 片机没有损坏 2 测试晶振电路是否工作正常 3 录入检测程序 检测单片机及其外围 电路能否整体正常工作 步骤一 确定单片机没有损坏 调试所用的单片机编程器是 WH 280AU 系列的 USB 型编程器 一般来说 使用编程器对单片机进行程序的擦除和烧录都能成功 并且通过 校验 可以确定单片机没有损坏 步骤二 测试晶振电路是否工作正常 晶振电路连接上单片机并且上电后检测晶体 振荡器的两端电压 电压是 2V 左右时 晶振电路是供电正常 用示波器观察晶体振荡 器两端的波型 能够产生稳定的脉冲波形是 可以确定晶振电路工作正常 步骤三 录入检测程序 检测单片机及其外围电路能否整体正常工作 向单 片机 录入以下检测程序 21 ORG 0000H LJMP MAIN ORG 0100H MAIN CLR A MOV A AAH MOV P1 A MOV P2 A MOV P3 A AJMP MAIN END 该程序的目的是令单片机的 P1 P2 P3 端口都输出 10101010 的八位数字信号 这 时用电压表测量这三个端口的电平 若得出符合程序的结果 则可以确定单片机及其外 围电路都能正常工作 5 2 程序调试过程中遇到的问题和解决办法 1 较小的硬件开销需要相对复杂的软件进行补偿 由于 DS1820 与微处理器 采用串行数据传送 因此 在对 DS1820 进行读写编程时 必须严格的保证读写时序 否则将无法读取测温结果 2 在 DS1820 测温程序设计中 向 DS1820 发出温度转换命令后 程序总要 等待 DS1820 的返回信号 一旦某个 DS1820 接触不好或断线 当程序读该 DS1820 时 将没有返回信号 程序进入死循环 这一点在进行 DS1820 硬件连接和软件设计时也要 给予一定的重视 3 编程时要注意 在程序开始时 要写入各定时器中断的入口地址 4 编程过程中要注意加注释或分割线 否则 附录 1 1 系统程序代码系统程序代码 include include define uchar unsigned char define uint unsigned int 22 sbit DS P3 3 定义 DS18B20 接口 sbit p30 P3 0 sbit p31 P3 1 sbit at P3 4 定义增温控制接口 sbit dt P3 5 定义减温控制接口 static int temp uint cout 0 static int l tmp uchar flag1 uint i 0 void display void code unsigned char table 0 x3f 0 x06 0 x5b 0 x4f 0 x66 0 x6d 0 x7d 0 x07 0 x7f 0 x6f 0 x40 0 x80 0 x00 共阴数码管 0 9 空表 Unsigned char l tmpdate 8 0 0 0 0 0 0 0 0 定义数组变量 并赋值 1 2 3 4 5 6 7 8 就是本程序显示的八个数 int tmp void void tmpchange void void tmpwritebyte uchar dat uchar tmpread void bit tmpreadbit void void dsreset void void delayb uint count void zhuti l tmp void delayc unsigned int j void add void void sub void 23 void ISR EX0 interrupt 0 delayc 2000 cout void main 主函数 at 1 dt 1 EA 1 首先开启总中断 EX0 1 开启外部中断 0 IT0 1 设置成下降沿触发方式 while 1 tmpchange 温度转换 l tmp tmp zhuti l tmp display while cout 2 0 display wh

温馨提示

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

评论

0/150

提交评论