1、凌阳, 拇指 凌阳 摘 要 凌阳, 拇指 凌阳: 凌阳, 拇指 凌阳 恒温控制在工业生产过程中举足轻重温度的控制直接影响着工业生产的产量和质量 。 食指 本设计是基于 AT89C51 单片机的恒温箱控制系统 , 拇指 系统分为硬件和软件两部分 , 拇指 其中硬件包括:温度传感器、显示、控制和报警的设计;软件包括:键盘管理程序设计、显示程序设计、控制程序设计和温度报警程序设计 。 食指 编写程序结合硬件进行调试 , 拇指 能够实现设置和调节初始温度值 , 拇指 进行数码管显示 , 拇指 当加热到设定值后立刻报警 。 食指 另外 , 拇指 本系统通过软件实现对按键误差、加热过冲的调 整 , 拇指
2、以提高系统的安全性、可靠性和稳定性 。 食指 本设计从实际应用出发选取了体积小、精度相对高的数字式温度传感元件 DS18B20 作为温度采集器 , 拇指 单片机 AT89C51 作为主控芯片 , 拇指 数码管作为显示输出 , 拇指 实现了对温度的实时测量与恒定控制 。 食指 凌阳, 拇指 凌阳 关键词: 凌阳, 拇指 凌阳 单片机;恒温;控制;报警 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
3、 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Designing 凌阳, 拇指 凌阳 of 凌阳, 拇指 凌阳 Automatic 凌阳, 拇指 凌阳 Constant 凌阳, 拇指 凌阳 Temperature 凌阳, 拇指 凌阳 Box 凌阳, 拇指 凌阳 Controlled 凌阳, 拇指 凌阳 By 凌阳, 拇指 凌阳 SCM 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 Abstract: 凌阳, 拇指 凌阳 The 凌阳, 拇指 凌阳 system 凌阳, 拇指 凌阳 makes 凌阳, 拇指 凌阳 use 凌阳
4、, 拇指 凌阳 of 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 single 凌阳, 拇指 凌阳 chip 凌阳, 拇指 凌阳 AT89C51 凌阳, 拇指 凌阳 as 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 temperature 凌阳, 拇指 凌阳controlling 凌阳, 拇指 凌阳 center, 凌阳, 拇指 凌阳 uses 凌阳, 拇指 凌阳 numeral 凌阳, 拇指 凌阳 thermometer 凌阳, 拇指 凌阳 DS18B20 凌阳, 拇指 凌阳 which 凌阳, 拇指 凌阳 transmits 凌阳, 拇指 凌阳 as 凌阳, 拇指 凌阳 1-wir
5、e 凌阳, 拇指 凌阳 way 凌阳, 拇指 凌阳 as 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 temperature 凌阳, 拇指 凌阳 sensor, 凌阳, 拇指 凌阳 through 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 pressed 凌阳, 拇指 凌阳 key, 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 numerical 凌阳, 拇指 凌阳 code 凌阳, 拇指 凌阳demonstrated 凌阳, 拇指 凌阳 composite 凌阳, 拇指 凌阳 of 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 man-machine 凌阳, 拇指 凌阳 in
6、teractive 凌阳, 拇指 凌阳 connection 凌阳, 拇指 凌阳 ,to 凌阳, 拇指 凌阳 realize 凌阳, 拇指 凌阳 set 凌阳, 拇指 凌阳 and 凌阳, 拇指 凌阳 adjust 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 initial 凌阳, 拇指 凌阳 temperature 凌阳, 拇指 凌阳 value. 凌阳, 拇指 凌阳 After 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 system 凌阳, 拇指 凌阳 works, 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 digital 凌阳, 拇指 凌阳 tube 凌阳, 拇指 凌阳
7、will 凌阳, 拇指 凌阳 demonstrate 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 temperature 凌阳, 拇指 凌阳 value, 凌阳, 拇指 凌阳 when 凌阳, 拇指 凌阳 temperature 凌阳, 拇指 凌阳 arriving 凌阳, 拇指 凌阳 to 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 setting 凌阳, 拇指 凌阳value, 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 buzzer 凌阳, 拇指 凌阳 will 凌阳, 拇指 凌阳 be 凌阳, 拇指 凌阳 work 凌阳, 拇指 凌阳 immediately. 凌阳, 拇指
8、 凌阳 In 凌阳, 拇指 凌阳 addition, 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 system 凌阳, 拇指 凌阳 through 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳software 凌阳, 拇指 凌阳 adjusting 凌阳, 拇指 凌阳 to 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 pressed 凌阳, 拇指 凌阳 key 凌阳, 拇指 凌阳 error, 凌阳, 拇指 凌阳 and 凌阳, 拇指 凌阳 the 凌阳, 拇指 凌阳 excessively 凌阳, 拇指 凌阳 hutting. 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌
9、阳 Keywords: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 SCM; 凌阳, 拇指 凌阳 Constant 凌阳, 拇指 凌阳 temperature; 凌阳, 拇指 凌阳 control; 凌阳, 拇指 凌阳 waring 凌阳, 拇指 凌阳 . 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳凌阳,
10、拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳凌阳, 拇指 凌阳 目 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 录 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1. 凌阳, 拇指 凌阳 系统方案选择和论证 2凌阳, 拇指 凌阳 1.1 凌阳, 拇指 凌阳 题目要求 2凌阳, 拇指 凌阳 1.1.1 基本要求 2 凌阳, 拇指 凌阳 1.1.2 说明 2 凌阳, 拇指 凌阳 1.2 系统基本 方案 2 凌阳, 拇指 凌阳 1.2.1 各模块电路的方案选择及论证 2 凌阳, 拇指 凌阳 1.2.2 系
11、统各模块的最终方案 5 凌阳, 拇指 凌阳 2. 凌阳, 拇指 凌阳 硬件设计与实现 6 凌阳, 拇指 凌阳 2.1 系统硬件模块关系 6 凌 阳 , 拇指 凌阳 2.2 主要单元电路的设计 6 凌阳, 拇指 凌阳 2.2.1 温度采集部分设计 6 凌阳, 拇指 凌阳 2.2.2 加热控制部分 8 凌阳, 拇指 凌阳 2.2.3 键盘、显示、控制器部分 8 凌阳, 拇指 凌阳 3. 凌阳, 拇指 凌阳 系统软件设计 14 凌阳, 拇指 凌阳 3.1 凌阳, 拇指 凌阳 读取 DS18B20温度模块子程序 14 凌阳, 拇指 凌阳 3.2 数据处理子程序 14 凌阳, 拇指 凌阳 3.3 键盘扫
12、描子程序 16 凌阳, 拇指 凌阳 3.4 主程 序流程图 17 凌阳, 拇指 凌阳 4. 凌阳, 拇指 凌阳 系统测试 18 凌阳, 拇指 凌阳 4.1 凌阳, 拇指 凌阳 静态温度测试 18 凌阳, 拇指 凌阳 4.2 动态温控测量 18 凌阳, 拇指 凌阳 4.3 结果分析 19 凌阳, 拇指 凌阳 附录 1:产品使用说明 19 凌阳, 拇指 凌阳 附录 2:元件清单 19 凌阳, 拇指 凌阳 附录 3:系统硬件原理图 20 凌阳, 拇指 凌阳 附录 4:软件程序清单 21 凌阳, 拇指 凌阳 参考文献 26 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
13、凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 1.系统方案选择和论证 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1.1 题目要求 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 本文利用 AT89C51 对温度进行控制 , 拇指 采用单总线传输方式的 DS18B20 作为温度传感器 , 拇指 与按键、数码显示、报警器等外部辅助硬件共同组成一个温度控制系统 。 食指 设计中用到了 KEIL 凌阳, 拇指 凌阳 C51 凌阳, 拇指 凌阳 V8.01、 PROTEL99SE、 PROTEUS6.7 等设计与仿真软件 , 拇指 作者本着安全性、可靠性、稳定性和易扩展性等设计原则 , 拇指 对各方案
14、进行了细心的比较 , 拇指 并对设计中使用的芯片进行了仔细的分析 , 拇指 力求设计出一个安全、稳定、可靠的温度控制系统 。 食指 凌阳, 拇指 凌阳 DS18B20 测温电路 凌阳, 拇指 凌阳 DS18B20 数字温度计是 Dallas 公司生产的 1 Wire 器件 , 拇指 即单总线器件 。 食指 与传统的热敏电阻有所不同 , 拇指 DS18B20 可直接将被测温度转化成串行数字信号 , 拇指 以供单片机处理 , 拇指 具有连线简单、微型化、低功耗、高性能、抗干扰能力强、精度高等特点 。 食指 因此用它来组成一个测温系统 , 拇指 具有电路简单 , 拇指 在一根通信线上可以挂很多这样的
15、数字温度计 , 拇指 十分方便 。 食指 目前已被众多行业进行广泛的运用(锅炉、温控表粮库、冷库、工业现场温度监控、仪器仪表温度监控、农业大棚温度监控等) 。 食指 凌阳, 拇指 凌阳 通过编程 , 拇指 DS18B20 可以实现 9 12 位的温度读 数 。 食指 信息经过单线接口送入 DS18B20 或从DS18B20 送出 , 拇指 因此从微处理器到 DS18B20 仅需连接一条信号线和地线 。 食指 读、写和执行温度变换所需的电源可以由数据线本身提供 , 拇指 而不需要外部电源 。 食指 凌阳, 拇指 凌阳 每片 DS18B20 在出厂时都设有唯一的产品序列号 , 拇指 因此多个 DS
16、18B20 可以挂接于同一条单线总线上 , 拇指 这允许在许多不同的地方放置温度传感器 , 拇指 特别适合于构成多点温度测控系统 凌阳, 拇指 凌阳 设计并制作一个智能 温 度显示报警 控制系统 , 拇指 控制对象为 蔬菜大棚 , 拇指 温 度 可以在一定范围内由人 工设定 , 拇指 并能在环境温度降低 、升高 时实现自动控制 , 拇指 以保持设定的温度基本不变 。 食指 系统硬件设计 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1.1.1 基本要求 凌阳, 拇指 凌阳 ( 1)温度设定范围为 20 30 , 拇指 最小区分度为 1 , 拇指 标定温度 1 , 拇指 超过或低于设定范围蜂鸣器报警
17、。 食指 凌阳, 拇指 凌阳 ( 2)环境温度 过 低时(例如用电 炉加热升 温)温度控制的静态误差 1 。 食指 凌阳, 拇指 凌阳 ( 3)用十进制数码管显示实际 的 温度 , 拇指 最小区分度为 1 .凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 1.1.2 说明 凌阳, 拇指 凌阳 ( 1) 加热器用一千瓦电炉 , 拇指 降温时用风扇 。 食指 凌阳, 拇指 凌阳 ( 2)如果采用单片机控制 , 拇指 允许使用已有的单片机最小系统板 。 食指 凌阳, 拇指 凌阳 ( 3)数码显示部分可以使用数码显示模块 。 食指 凌阳, 拇指 凌阳 ( 4)测量水温时只要求在容器内任意设置一个测量点 。 食
18、指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 凌阳 1.2 系统基本方案 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 根据题目要求 系统模块分 可以划分 为: 温度测量 模块 , 拇指 显示 电路 模块 , 拇指 加热 模块 , 拇指 降温模块 ,拇指 控制 模块 , 拇指 系统的框图如图 1.2.1所示 。 食指 为实现各模块 的功能 , 拇指 分别做了几种不同的设计方案并进行了论证 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳1.2.1 各模块电路的方案选择及论证 凌阳, 拇指 凌阳 ( 1)控制器模块 凌阳, 拇指 凌阳 根据题目要求 , 拇指 控制器主要用于对
19、温度测量信号的接受和处理、控制电热丝和风扇使控制对象满足设计要求、控制显示电路对温度值实时显示以及控制键盘实现对温度值的设定等 。 食指 对控制器的选择有以下三种方案: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1.2.1 凌阳, 拇指 凌阳 凌阳, 拇 指 凌阳 系统基本模块方框图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 方案一:采用 FPGA 作为系统控制器 。 食指 FPGA 功能强大 , 拇指 可以实现各种复杂的逻辑功能 , 拇指 规模大 ,拇指 密度高 , 拇指 它将所有器件集成在一块芯片上 , 拇指 减少了体积 , 拇指 提高了稳定性 , 拇指 并且可应用 EDA 软件仿真、调试
20、 , 拇指 易于进行功能扩展 。 食指 FPGA 采用并行的 I/O 口方式 , 拇指 提高了系统的处理速度 , 拇指适合作为大规模实时系统控制核心 。 食指 由温度传感器送来的温度信号 , 拇指 经 FPGA 程序对其进行处理 , 拇指 控制加热装置动作 。 食指 但由于本设计对数据处理的速度 要求不高 , 拇指 FPGA 的高速处理的优势得不到充分体现 , 拇指 并且其成本偏高 , 拇指 引脚较多 , 拇指 硬件电路布线复杂 。 食指 凌阳, 拇指 凌阳 方案二:采用模拟运算放大器组成 PID 控制系统 。 食指 对于水温控制是足够的 。 食指 但要附加显示、温度设定等功能 , 拇指 要附
21、加许多电路 , 拇指 稍显麻烦 。 食指 凌阳, 拇指 凌阳 方案三:采用 ATMEL 公司的 AT89C52 作为系统控制器 。 食指 单片机算术运算功能强 , 拇指 软件编程灵活、自由度大 , 拇指 可用软件编程实现各种算法和逻辑控制 , 拇指 并且其功耗低、体积小、技术成熟和成本低等优点 。 食指 基于以上分析拟订 方案二 , 拇指 由 AT89C52作为控制核心 , 拇指 对温度采集和实时显示以及加热装置进行控制 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 ( 2)加热装置有效功率控制模块 凌阳, 拇指 凌阳 根据题目 , 拇指 可以使用电热炉进行加热 , 拇指 控制电热炉的功率
22、即可以控制加热的速度 。 食指 当水温过高时 , 拇指 关掉电热炉进行降温处理 , 拇指 让其自然冷却 。 食指 在制作中 , 拇指 我们装设一个小电风扇 , 拇指 当水温超高时关闭电炉开启风扇散热 , 拇指 当需要加热时开启电炉关闭风扇 。 食指 由于加热的功率较大 , 拇指考虑到简化电路的设计 , 拇指 我们直接采用 220V电源 。 食指 对 加热装置控制模块有以下两种方案: 凌阳, 拇指 凌阳 方案一:采用可控硅来控制加热器有效功率 。 食指 可控硅是一种半控器件 , 拇指 应用于交流电的功率控制有两种形式:控制导通的交流周期数达到控制功率的目的;控制导通角的方式控制交流功率 。 食指
23、 由交流过零检测电路输出方波经适当延时控制双向可控硅的导通角 , 拇指 延时时间即移相偏移量由温度误差计算得到 。 食指 可以实现对交流电单个周期有效值周期性控制 , 拇指 保证系统的动态性能指标 。 食指 该方案电路稍复杂 , 拇指 需使用光耦合驱动芯片以及变压器等器件 。 食指 但该方案可以实现功率的连续调节 , 拇指 因此 响应速度快 , 拇指 控制精度也高 。 食指 凌阳, 拇指 凌阳 方案二:采用继电器控制 。 食指 使用继电器可以很容易实现地通过较高的电压和电流 , 拇指 在正常条件下 , 拇指 工作十分可靠 。 食指 继电器无需外加光耦 , 拇指 自身即可实现电气隔离 。 食指
24、这种电路无法精确实现电热丝功率控制 , 拇指 电热丝只能工作在最大功率或零功率 , 拇指 对控制精度将造成影响 。 食指 但可以由多路加热丝组成功率控制 , 拇指 由单片机对温差的处理实现分级功率控制提高系统动态性能 。 食指基于以上分析以及现有器件限制选择方案二 , 拇指 采用继电器控制省去光耦和交流过零检测电路 ,拇指 在软件上 选用适当的控制算法 , 拇指 同样可以达到较好的效果 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Output 显示电路 加热装置 测温部分 键盘输入 控制部分 Input ( 3)温度采集模块 凌阳, 拇指 凌阳 题目要求温度静态误差小于等于 0.2 ,
25、拇指 温度信号为模拟信号 , 拇指 本设计要对温度进行控制和显示 , 拇指 所以要把模拟量转换为数字量 。 食指 该温度采集模块有以下三种方案: 凌阳, 拇指 凌阳 方案一:利用热电阻传感器作为感温元件 , 拇指 热电阻随温度变化而变化 , 拇指 用仪表测量出热电阻的阻值变化 , 拇指 从而得到与电阻值相应的温度值 。 食指 最常用的的是铂电阻传感器 , 拇指 铂电阻在氧化介质中 , 拇指 甚至在高温的条件下其物理 , 拇指 化学性质不变 。 食指 由铂电阻阻值的变化经小信号变送器XTR101 将铂电阻随温度变化的转换为 4 20mA 线形变化电路 , 拇指 再将电流信号转化为电压信号 ,拇指
26、 送到 A/D转换器 ADC0809.即将模拟信号转换为数字信号 。 食指 该方案线性度优于 0.01 。 食指 凌阳, 拇指 凌阳 方案二:采用温度传感器 AD590K。 食指 AD590K 具有较高精度和重复性 , 拇指 良好的非线性保证 0.1的测量精度 。 食指 加上软件非线性补偿可以实现高精度测量 。 食指 AD590 将温度转化为电流信号 , 拇指 因此要加相应的调理电路 , 拇指 将电流信号转化 为电压信号 。 食指 送入 8为 A/D转换器 , 拇指 可以获得 255 级的精度 , 拇指 基本满足题目要求 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳
27、, 拇指 凌阳 方案三:采用 数字温度传感器 DS18B20。 食指 DS18B20 为数字式温度传感器 , 拇指 无需其他外加电路 ,拇指 直接输出数字量 。 食指 可直接与单片机通信 , 拇指 读取测温数据 , 拇指 电路简单 。 食指 如图 1.2.2 凌阳, 拇指 凌阳 所示 凌阳, 拇指 凌阳 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1.2.2 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 DS18B20 测温电路 凌阳, 拇指 凌阳 基 于以上分析和现有器件所限 , 拇指 温度采集模块选用方案三 。 食指 DS18B20 与传统的热敏电阻相比 ,拇指 他能够直接读出被测温度
28、并且可根据实际要求通过简单的编程实现 9 12 位的数字值读数方式 。 食指 并且从 DS18B20 读出的信息或写入 DS18B20 的信息仅需要一根口线(单线接口)读写 ,因而使用 DS18B20 可使系统结构更趋简单 , 拇指 可靠性更高 。 食指 他在测温精度、转换时间、传输距离、分辨率等方面带来了令人满意的效果 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 ( 4)键盘与显示模块 凌阳, 拇指 凌阳 根据题目要求 , 拇指 水温要由人工设定 , 拇指 并能实时显示温度值 。 食指 对键盘和显示模块有下面两种方案: 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 方案一:采用液晶显示屏和通用
29、矩阵键盘 。 食指 液晶显示屏( LCD)具有功耗小、轻薄短小无辐射危险 , 拇指 平面直角显示以及影象稳定不闪烁 , 拇指 可视面积大 , 拇指 画面效果好 , 拇指 抗干扰能力强等特点 。食指 但由于只需显示三位温度值 , 拇指 信息量比较少 , 拇指 且由于液晶是以点阵的模式显示各种符号 , 拇指 需要利用控制芯片创建字符库 , 拇指 编程工作量大 , 拇指 控制器资源占用较多 , 拇指 其成本也偏高 。 食指 凌阳, 拇指 凌阳 方案二:采 用三位 LED 七段数码管分别显示温度的十位、个位和小数位 。 食指 按键采用单列 3 按键进行温度设定 。 食指 数码管具有:低能耗、低损耗、低
30、压、寿命长、耐老化 , 拇指 对外界环境要求较低 。 食指 同时数码管采用 BCD 编码显示数字 , 拇指 程序编译容易 , 拇指 资源占用较少 。 食指 凌阳, 拇指 凌阳 根据以上论述 , 拇指 采用方案二 。 食指 本系统中 , 拇指 采用了数码管的动态显示 , 拇指 节省单片机的内部资源 。食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳1.2.2 系统各模块的最终方案 凌阳, 拇指 凌阳 根据以上分析 , 拇指 结合器件和设备等因素 , 拇指 确定如下方案: 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 1. 凌阳, 拇指 凌阳 采用 AT89C52单片机作为控制器 , 拇指 分别对温度采集、
31、LED 显示、温度设定、加热装置功率控制 。 食指 凌阳, 拇指 凌阳 2. 凌阳, 拇指 凌阳 温度测量模块采用 数字温度传感器 DS18B20。 食指 此器件经软件设置可以实现高分辨率测量 。 食指 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 3. 凌阳, 拇指 凌阳 电热丝有效功率控制采用继电器控制 , 拇指 实现电路简单实用 , 拇指 加上温度变化缓慢可以满足设计要求 。 食指 凌阳, 拇指 凌阳 4. 凌阳, 拇指 凌阳 显示用 LED 数码管显示实时温度值 , 拇指 用 ENTER、 UP、 DOWN 三个单键实现温度值的设定 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇
32、指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1.2.3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 系统基本框图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 系统的基本框图如图 1.2.3 凌阳, 拇指 凌阳 所示 。 食指 CPU( AT 凌阳, 拇指 凌阳 89C52)首先写入命令给 DS18B20, 拇指 然后 DS18B20开始转换数据 , 拇指 转换后通过 89S52来处理数据 。 食指 数据处理后的结果就显示到数码管 上 。 食指 另外由键盘设定温度值送到单片机 , 拇指 单片机通过数据处理发出温度控制信息到继电器 。 食指 DS18B20 可以被编程 , 拇指
33、 所以箭头是双向的 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳2. 硬件设计与实现 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳2.1 系统 硬 件 模块关系 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 本系统的执行方法是循环查询执行的 , 拇指 键盘扫描也是用循环查询的办法 , 拇指 由于本系统对实时性要求不是很高 , 拇指 所以没有用到中断方式来处理 。
34、 食指 各模块关系图如图 2.1.1 所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Output LED 数码管 继电器 DS18B20 键盘输入 AT89C52 Input 凌阳, 拇指 凌阳 图 2.1.1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 统 硬件 模块关系 图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳2.2 主要单元电路的设计 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2.1 温度采集部分 设计 凌阳, 拇指 凌阳 本系统采用 半导体温度传感器作为敏感元件 。 食指 传感器我们 采用了 DS18B20 单总线可编程温度传感器 ,来实现对温度的采集和转
35、换 , 拇指 直接输出数字量 , 拇指 可以直接和单片机进行通讯 , 拇指 大大简化了电路的复杂度 。 食指 DS18B20 应用广泛 , 拇指 性能可以满足题目的设计要求 。 食指 DS18B20 的测温电路如图 2.2.1 所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 单片机初始话模块 继电器控制模块 键盘扫描模块(扫描有无 Enter 键按下) DS18B20 得到温度值,存放到 Buffer 中 处理温度值,换算成 BCD 码 温度显示模块 图 2.2.1 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 DS18B20 测温电路 凌阳, 拇指
36、凌阳 凌阳, 拇指 凌阳 ( 1) DSI8B20 的测温功能的实现: 凌阳, 拇指 凌阳 其测温电路的实现是依靠单片机软件的编程上 。 食指 凌阳, 拇指 凌阳 当 DSI8B20 接收到温度转换命令后 , 拇指 开始启动转换 。 食指 转换完成后的温度值就以 16 位带符号扩展的二进制补码形式存储在高速暂存存储器的 0, 拇指 1字节 。 食指 单片机可通过单线接口读到该数据 , 拇指 读取时低位在前 , 拇指 高位在后 , 拇指 数据格 式以0 062 凌阳, 拇指 凌阳 5 LSB 形式表示 。 食指 温度值格式如 表 2.2.1 所示 , 拇指 其中 “S” 为标志位 , 拇指 对应
37、的温度计算:当符号位 S=0 时 , 拇指 直接将二进制位转换为十进制 ;当 S=1时 , 拇指 先将补码变换为原码 , 拇指再计算十进制值 。 食指 DSI8B20 完成温度转换后 , 拇指 就把测得的温度值与 凌阳, 拇指 凌阳 TH 做比较 , 拇指 若 TTH或 T 凌阳, 拇指 凌阳 RoM 操作命令 凌阳, 拇指 凌阳 - 凌阳, 拇指 凌阳 存储器操作命令 - 凌阳, 拇指 凌阳 处理数据 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 初始化 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 单总线上的所有处理均从初始化开始 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 ROM 操
38、作 命 令 凌阳, 拇指 凌阳 总线主机检测到 DSl820 的存在便可以发出 ROM 操作命令之一这些命令如表 2.2.2 所示 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 表 2.2.2 凌阳, 拇指 凌阳 凌阳, 拇 指 凌阳 ROM 操作命令表 指令 代码 Read 凌阳, 拇指 凌阳 ROM(读 ROM) 33H Match 凌阳, 拇指 凌阳 ROM(匹配 ROM) 55H Skip 凌阳, 拇指 凌阳 ROM(跳过 ROM CCH Search 凌阳, 拇指 凌阳 ROM(搜索 ROM) F0H Alarm 凌阳, 拇指 凌阳 search(告警
39、搜索 ) ECH 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 存储器操作命令 如表 2.2.3 所示 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 表 2.2.3 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 存储器操作命令表 指令 代码 Write 凌阳, 拇指 凌阳 Scratchpad(写暂存存储器 ) 凌阳, 拇指 凌阳 4EH Read 凌阳, 拇指 凌阳 Scratchpad(读暂存存储器 ) BEH Copy 凌阳, 拇指 凌阳 Scratchpad(复制暂存存储器 ) 凌阳, 拇指 凌阳 48H Convert 凌阳, 拇指 凌阳 Temperature(温度变换 ) 44H Recall 凌
40、阳, 拇指 凌阳 EPROM(重新调出 ) B8H Read 凌阳, 拇指 凌阳 Power 凌阳, 拇指 凌阳 supply(读电源 ) 凌阳, 拇指 凌阳 B4H 凌阳, 拇指 凌阳 ( 3)温度转换算 法及分析 凌阳, 拇指 凌阳 由于 DS18B20转换后的代码并不是实际的温度值 , 拇指 所以要进行计算转换 。 食指 温度高字节( MS 凌阳, 拇指 凌阳 Byte)高 5 位是用来保存温度的正负(标志为 S 的 bit11 bit15) , 拇指 高字节( MS 凌阳, 拇指 凌阳 Byte)低 3 位和低字节来保存温度值( bit0 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 bit
41、10) 。 食指 其中低字节( LS 凌阳, 拇指 凌阳 Byte)的低 4 位来保存温度的小数位( bit0 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 bit 凌阳, 拇指 凌阳 3) 。 食指 由于本程序采用的是 0.0625的精度 , 拇指 小数部分的值 , 拇指 可以用后四位代表的实际数值乘以 0.0625, 拇指 得到真正的数值 , 拇指 数值可能带几个小数位 , 拇指 所以采取小数舍入 , 拇指 保留一位小数即可 。 食指 也就说 , 拇指 本系统的温度精确到了 0.1 度 。 食指 凌阳, 拇指 凌阳 算法核心:首先程序判断温度是否是零下 , 拇指 如果是 , 拇指 则 DS18B
42、20保存的是温度的补码值 , 拇指 需要对其低 8 位( LS 凌阳, 拇指 凌阳 Byte)取反加一变成原码 。 食指 处理过后把 DS18B20 的温度 Copy 到单片机的RAM 中 , 拇指 里面已经是温度值的 Hex 码了 , 拇指 然后转换 Hex 码到 BCD 码 , 拇指 分别把小数位 , 拇指 个位 , 拇指十位的 BCD 码存入 RAM 中 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2.2 加热控制部分 凌阳, 拇指 凌阳 由于本系统要控制电热丝加热 , 拇指 功率较大 , 拇指 因此要借助功率电路 。 食指 在器件选择上留足余量 , 拇指增加安全性 。 食指
43、加热部分采用继电器控制 , 拇指 电路简单可靠 。 食指 电路如图 2.2.2 所示 。 食指 凌阳, 拇指 凌阳 当实测温度低于设定值时 , 拇指 由单片机输出高电平信号 。 食指 三极管 9014 导通 , 拇指 继电器开始工作对水加温 。 食指 为了防止继电器频繁动作 。 食指 在软件中对水温测量精确到 0.1 , 拇指 而在温度设定时只取整数 。 食指 可以有 1的余量 。 食指 凌阳, 拇指 凌阳 当设定温度低于实测温度时为了加快系统动态响应速度 , 拇指 设置一个小功率电扇 , 拇指 加速水温的降低 。 食指 使系统整体性能得以提高 。 食指 原理图如图 2.2.3 所示 。 食指
44、 凌阳, 拇指 凌阳 2.2.3 键盘、显示、控制器部分 凌阳, 拇指 凌阳 本设计中采用动态显示方式驱动 3 个七段数码管 , 拇指 分别显示温度的十位、个位和小数位 。 食指 数码管采用共阴极 , 拇指 由于 AT89C52单片机每个 I/O的拉电流只有 1 2mA。 食指 所以在位码和段码都加上了同相驱动器 。 食指 凌阳, 拇 指 凌阳 键盘采用按键开关经上拉电阻分别接 P1.0、 P1.1、 P1.2 口上 , 拇指 起到控制、上调和下调作用 。食指 每按上调和下调键 , 拇指 设定温度值增 1 减 1。 食指 单片机 XTAL2、 XTAL1接 12MHZj 晶振 , 拇指 提供系
45、统时钟基值 。 食指 另 RESET 接复位按键 。 食指 原理图如图 2.2.4 所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 图 2.2.3风扇控制图凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 2.2.4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 键盘、显示、控制器部分原理图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 3. 系统软件设计 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 系统的软件设计采用汇编语言 , 拇指 对单片机进行变成实现各项功能 。 食指 凌阳, 拇指 凌
46、阳 主程序对模块进行初始化 , 拇指 而后调用读温度、处理温度、显示、键盘、和继电器各模块 。 食指 用的是循环查询方式 , 拇指 来显示和控制温度 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 3.1 读取 DS18B20 温度模块 子程序 凌阳, 拇指 凌阳 每次对 DA18B20 操作时多要按造 DS18B20 工作过程中的协议 进行 。 食指 凌阳, 拇指 凌阳 初始化 - 凌阳, 拇指 凌阳 RoM 操作命令 - 凌阳, 拇指 凌阳 存储器操作命令 - 凌阳, 拇指 凌阳 处理数据 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 程序流程图如图 3.1.1所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳3.2 数据处理子程序 凌阳, 拇指 凌阳 由于 DS18B20 转换后的代码并不是实际的温度值 , 拇指 所以要进行 数据处理 。 食指 由于本程序采用的是 0.0625 的精度 , 拇指 小数部分的值 , 拇指 可以用后四位代表的实际数值乘