基于单片机的恒温箱控制器的设计_第1页
基于单片机的恒温箱控制器的设计_第2页
基于单片机的恒温箱控制器的设计_第3页
基于单片机的恒温箱控制器的设计_第4页
基于单片机的恒温箱控制器的设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的恒温箱控制系统设计 1 基于单片机的恒温箱控制系统设计基于单片机的恒温箱控制系统设计 电子信息工程 王锋 摘摘 要要 恒温控制在工业生产过程中举足轻重 温度的控制直接影响着工业生 产的产量和质量 本设计是基于 AT89C51 单片机的恒温箱控制系统 系统分为硬件 和软件两部分 其中硬件包括 温度传感器 显示 控制和报警的设计 软件包括 键盘管理程序设计 显示程序设计 控制程序设计和温度报警程序设计 编写程序 结合硬件进行调试 能够实现设置和调节初始温度值 进行数码管显示 当加热到 设定值后立刻报警 另外 本系统通过软件实现对按键误差 加热过冲的调整 以 提高系统的安全性 可靠性和稳定性 本设计从实际应用出发选取了体积小 精度 相对高的数字式温度传感元件 DS18B20 作为温度采集器 单片机 AT89C51 作为主控 芯片 数码管作为显示输出 实现了对温度的实时测量与恒定控制 关键词关键词 单片机 温度传感器 恒温 控制 报警 The Design of Refrigerator Door Shell Shaping Control System Based on Siemens WINCC Electronic Information Engineering WANG Feng Abstract The system makes use of the single chip AT89C51 as the temperature controlling center uses numeral thermometer DS18B20 which transmits as 1 wire way as the temperature sensor through the pressed key the numerical code demonstrated composite of the man machine interactive connection to realize set and adjust the initial temperature value After the system works the digital tube will demonstrate the temperature value when temperature arriving to the setting value the buzzer will be work immediately In addition the system through the software adjusting to the pressed key error and the excessively hutting All of these are in order to enhance the system s security reliability and stability Keywords DS18B20 MCU Constant temperature control 1 wire transmission 基于单片机的恒温箱控制系统设计 2 目目 录录 1 引言 1 2 系统概述 1 2 1 简述 1 3 设计思路分析 2 4 方案论证 2 4 1 温度传感器 2 4 2 显示部分 2 4 3 输出控制 3 5 硬件设计及工作原理 3 5 1 系统功能及工作流程介绍 3 5 2 功能模块 5 5 3 系统硬件设计 5 5 3 1 DS18B20 测温电路 5 5 3 2 DS18B20 的特点介绍 6 5 3 3 单线 1 wire 技术 6 5 3 4 DS18B20 的引脚及功能介绍 7 5 3 6 输出控制电路 9 5 3 7 温度越线报警电路 10 6 系统的应用软件设计 10 6 1 软件描述 10 6 1 1 键盘管理模块 10 6 1 2 显示模块 11 6 1 3 控制模块 11 6 1 4 温度报警模块 12 6 1 5 主程序和中断服务程序流程 12 7 系统调试与仿真 14 7 1 硬件调试 14 7 1 1 脱机检查 14 7 1 2 仿真调试 14 7 1 3 检查 CPU 的时钟电路 14 7 1 4 对扩展的 RAM ROM 进行检查调试 15 7 2 软件调试 15 7 2 1 交叉汇编 15 7 2 2 用汇编语言 15 7 2 3 手工汇编 15 7 3 系统仿真 15 8 抗干扰技术 18 8 1 硬件抗干扰技术 18 8 2 软件抗干扰技术 18 9 系统制作与测试 19 基于单片机的恒温箱控制系统设计 3 结束语 21 参 考 文 献 22 致谢 23 基于单片机的恒温箱控制系统设计 1 1 1 引言引言 温度控制是工业生产过程中经常遇到的过程控制 特别是在冶金 化工 建材 食品 机械 石油等工业中 具有举足重轻的作用 其温度的控制效果直接影响着 产品的质量 因而设计一种较为理想的温度控制系统是非常有价值的 对于不同场 所 不同工艺 所需温度高低范围不同 精度不同 则采用的测温元件 测温方法 以及对温度的控制方法也将不同 产品工艺不同 控制温度的精度不同 时效不同 则对数据采集的精度和采用的控制算法也不同 因而 对温度的测控方法多种多样 随着电子技术和微型计算机的迅速发展 微机测量和控制技术也得到了迅速的发展 和广泛的应用 利用微机对温度进行测控的技术 也便随之而生 并得到日益发展 和完善 越来越显示出其优越性 然而现有的温度传感元件大多为模拟器件 热电 耦 体积大 应用复杂 而且不容易实现数字化等缺点 阻碍了应用领域的扩展 本设计从实际应用出发选取了体积小 精度相对高的数字式温度传感元件 DS18B20 作为温度采集器 单片机 AT89C51 作为主控芯片 数码管作为显示输出 实现了对 温度的实时测量与恒定控制 2 2 系统概述系统概述 2 1 简述 单片机已经在测控中获得了广泛的应用 它除了可以测量电信号以外 还可以 用于温度 湿度等非电信号的测量 能独立工作的单片机温度检测 温度控制系统 已经广泛应用到很多领域 单片机的接口信号是数字电信号 要想用单片机获取温度这类非电信号的信息 毫无疑问 必须使用温度传感器 温度传感器的作用是将温度信息转换为电流或电 压输出 如果转换后的电流或电压输出是模拟信号 那么还必须进行 A D 转换 以 满足单片机接口的需要 传统的温度检测大多以热敏电阻为温度传感器 但热敏电阻的可靠性差 测量 温度准确率低 而且必须经过专门的接口电路转换成数字信号后才能由单片机进行 处理 随着微电子技术的发展 单片微处理器功能日益增强 价格低廉 在各方面 得到广泛应用 在温度控制器中应用单片机 具有设计简单 可靠性高 控制精度 高 功能易扩展 有较强的通用性等优点 温度控制器主要实现对恒温箱温度的控 制 并满足不同用户的个性需求 因此一个较完善的控制器应具有以下功能 温度 的测量与显示 用户设定功能 如温度设定 定时设定等 对电加热管的控制功能 一些功能键 如定时自动加热 恒温控制 手动加热等 安全措施 漏电检测 安 全失效保护 限温保护等 本文将采用一种数字温度传感器来实现基于 51 单片机 的恒温箱控制系统设计 整个控制系统分为硬件电路设计和软件程序设计两部分 基于单片机的恒温箱控制系统设计 2 3 3 设计思路分析设计思路分析 设计 51 单片机的恒温箱控制系统设计时 需要考虑下面 3 个方面的内容 选择合适的温度传感器芯片 显然 本文中的核心器件是单片机和温度传感 器 单片机采用常用的 51 单片机即可 而温度传感器的选择则需慎重 单片机和温度传感器的接口电路设计 控制温度传感器实现温度信息采集以及数据传输的软件设计 4 4 方案论证方案论证 4 1 温度传感器 方案一 采用热敏电阻 可满足 40 90 的测量范围 但热敏电阻精度 重复 性 可靠性都比较差 其测量温度范围相对较小 稳定性较差 不能满足本系统温 度控制的范围要求 方案二 采用温度传感器铂电阻 Pt1000 铂热电阻的物理化学性能在高温和氧 化性介质中很稳定 它能用作工业测温元件 且此元件线性较好 在 0 100 摄氏 度时 最大非线性偏差小于 0 5 摄氏度 铂热电阻与温度关系是 Rt R0 1 At Bt t 其中 Rt 是温度为 t 摄氏度时的电阻 R0 是温度为 0 摄氏度时 的电阻 t 为任意温度值 A B 为温度系数 方案三 采用模拟温度传感器 AD590K AD590K 具有较高精度和重复性 重复性 优于 0 1 其良好的非线性可以保证优于 0 1 的测量精度 但其测量的值需 要经过运算放大 模数转换再传给单片机 硬件电路较复杂 调试也会相对困难 所以本系统不宜采用此法 方案四 采用数字温度传感器 DS18B20 DS18B20 提供九位温度读数 测量范围 55 125 采用独特 1 WIRE 总线协议 只需一根口线即实现与 MCU 的双向通讯 具有连接简单 高精度 高可靠性等特点 并且 DS18B20 支持一主多从 若想实现 多点测温 可方便扩展 综合以上四种方案 本设计采用第四种方案 利用数字温度计 DS18B20 作为温 度传感器 4 2 显示部分 方案一 采用 I O 口直接驱动 需要占用大量可贵的 I O 口资源 且系统运行 后 更换元件不易 不符合系统设计的可靠性 易扩展性原则 方案二 采用串行口驱动 静态显示 利用单片机的串行口输出数据 显示多 位数码 可节省大量的 I O 口 但每个数码管必须有一个驱动芯片 且每位段码须 接一个限流电阻 所须元件多 硬件电路比较复杂 方案三 采用串行口驱动 动态扫描显示 利用单片机的串行口输出数据 显 示多位数码 多个数码管可共用驱动芯片和限流电阻 这样既可以简化硬件电路 基于单片机的恒温箱控制系统设计 3 又可以节省大量的 I O 口线 为功能扩展留下空间 综合以上三种方案 本设计采用方案三 串行口驱动 动态显示 根据系统具 体指标要求 可以对每一个具体部分进行分析设计 4 3 输出控制 方案一 采用继电器 易于控制 且实行比较简单 但强电和弱电不能很好的 隔离 抗干扰能力极差 方案二 采用光电藕合器 控制信号与输出信号可以很好的隔离 增强了系统 的安全性和抗干扰能力 综合以上两种方案 本设计采用光电藕合器控制负载工作 5 5 硬件设计及工作原理硬件设计及工作原理 5 1 系统功能及工作流程介绍 根据恒温箱控制器的功能要求 并结合对 51 系列单片机的资源分析 即单片机 软件编程自由度大 可用编程实现各种控制算法和逻辑控制 所以采用 AT89C51 作 为电路系统的控制核心 恒温箱控制器的总体布局如图 1 所示 按键将设置好的温 度值传给单片机 通过温度显示模块显示出来 初始温度设置好后 单片机开启输 出控制模块 使电热器开始加热 同时将从数字温度传感器 DS18B20 测量到的温度 值实时的显示出来 当加热到设定温度值时 单片机控制声光报警模块 发出声光 报警 同时关闭加热器 当自然冷却到设定温度 3 摄氏度以下时 单片机再次启动 加热器 如此循环反复 以达到恒温控制的目的 系统结构框图如图 1 所示 系统 基本硬件电路图如图 2 所示 在本系统中 DP1 DP3 用于七段数码显示 P1 0 用于 接收 DS18B20 采集到的数字温度信号 FUZA1 控制光电开关 决定电加热器是否工 作 K1 K3 用于按键控制 BELL 和 P1 4 P1 5 用于控制扬声器和发光二极管 进 行声光报警 串行口用于输出显示段码 P2 0 P2 1 用于对数码管进行动态扫描 基于单片机的恒温箱控制系统设计 4 R1 4 7K VCC 3 DQ 2 GND 1 IC2 DS18B20 VCC P1 0 图 1 系统结构框图 EA VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE P 30 TXD 11 RXD 10 IC1 AT89C51 R2 10K R3 10K R4 10K VCC P1 0 Y1 C1 33PF C2 33PF VCC FUZA1 BELL a bf c g d e DPY 10 9 7 5 4 2 1 a b c d e f g 6 dp dp com 3 com 8 DP1 a bf c g d e DPY 10 9 7 5 4 2 1 a b c d e f g 6 dp dp com 3 com 8 DP2 a bf c g d e DPY 10 9 7 5 4 2 1 a b c d e f g 6 dp dp com 3 com 8 DP3 L1 L2 K1 K2 K3 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 IC3 74LS164 VCC 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 RP1 A 1 B 2 C 3 E1 4 E2 5 E3 6 Y0 15 Y1 14 Y2 13 Y3 12 Y4 11 Y5 10 Y6 9 Y7 7 IC5 74LS138 VCC R5 1K VCC C3 10U IC4 MOC3041 VCC FUZA1 1 2 JP AC220V R6 27 R7 330 R8 39 Q2 C6 0 01U RL BELL BELL Q1 VCC 基于单片机的恒温箱控制系统设计 5 图 2 基本硬件电路图 5 2 功能模块 根据上面对工作流程的分析 系统软件可以分为以下几个功能模块 1 键盘管理 监测键盘输入 接收温度预置 启动系统工作 2 显示 显示设置温度及当前温度 3 温度检测及温度值变换 完成 A D 转换及数字滤波 4 温度控制 根据检测到的温度控制电炉工作 5 报警 当预置温度或当前炉温越限时报警 5 3 系统硬件设计 5 3 15 3 1 DS18B20DS18B20 测温电路测温电路 DS18B20 数字温度计是 Dallas 公司生产的 1 Wire 器件 即单总线器件 与传 统的热敏电阻有所不同 DS18B20 可直接将被测温度转化成串行数字信号 以供单 片机处理 具有连线简单 微型化 低功耗 高性能 抗干扰能力强 精度高等特 点 因此用它来组成一个测温系统 具有电路简单 在一根通信线上可以挂很多这 样的数字温度计 十分方便 目前已被众多行业进行广泛的运用 锅炉 温控表粮 库 冷库 工业现场温度监控 仪器仪表温度监控 农业大棚温度监控等 通过编程 DS18B20 可以实现 9 12 位的温度读数 信息经过单线接口送入 DS18B20 或从 DS18B20 送出 因此从微处理器到 DS18B20 仅需连接一条信号线和地 线 读 写和执行温度变换所需的电源可以由数据线本身提供 而不需要外部电源 每片 DS18B20 在出厂时都设有唯一的产品序列号 因此多个 DS18B20 可以挂接 于同一条单线总线上 这允许在许多不同的地方放置温度传感器 特别适合于构成 多点温度测控系统 5 3 25 3 2 DS18B20DS18B20 的特点介绍的特点介绍 1 独特的单线接口方式 与单片机通信只需一个引脚 DS18B20 与微处理器连 接时仅需要一条口线即可实现微处理器与 DS18B20 的双向通讯 2 在使用中不需要任何外围元件 3 可用数据线供电 电压范围 3 0 5 5 V 4 测温范围为 55 125 在 10 85 范围内误差为 0 5 5 通过编程可实现 9 12 位的数字读数方式 6 用户可自设定非易失性的报警上下限值 7 支持多点组网功能 通过识别芯片各自唯一的产品序列号从而实现单线多挂 基于单片机的恒温箱控制系统设计 6 接 多个 DS18B20 可以并联在唯一的线上 简化了分布式温度检测的应用 实现多 点测温 8 负压特性 电源极性接反时 温度计不会因发热而烧毁 但不能正常工作 9 告警寻找命令可以识别和寻址那些温度超出预设告警界限的器件 5 3 35 3 3 单线 单线 1 wire1 wire 技术 技术 目前常用的微机和外设之间数据传输的串行总线有 I2C 总线 SPI 总线等 其中 I2C 总线采用同步串行两线 一根时钟线 一根数据线 方式 而 SPI 总线采用同步 串行三线 一根时钟线 一根输入线和一根数据出线 方式 这两种总线需要至少 两根或两根以上的信号线 美国达拉斯半导体公司推出了一项特有的单线 1 wire 技术 该技术与上述总线不同 它采用单根信号线 即可传输时钟 又能传 输数据 而且数据传输是双向的 因而这种单线技术具有线路简单 硬件开销少 成本低廉 便于扩展的优点 单线技术适用于单主机系统 单主机能够控制一个或多个从机设备 主机可以 是微控制器 从机可以是单线器件 它们之间的数据交换 控制都由这根线完成 主机或从机通过一个漏极开路或三态端口连至数据线 以允许设备在不发送数据时 能够释放该线 而让其他设备使用 单线通常要外接一个约 5K 的上拉电阻 这样 当该线闲置时 其状态为高电平 主机和从机之间的通信主要分 3 个步骤 初始化单线器件 识别单线器件和单 线数据传输 由于只有一根线通信 所以它们必须是严格的主从结构 只有主机呼 叫从机时 从机才能应答 主机访问每个单线器件必须严格遵循单线命令序列 即 遵守上述 3 个步骤的顺序 如果命令序列混乱 单线器件将不会响应主机 所有的单线器件都要遵循严格的协议 以保证数据的完整性 1 wire 协议由复 位脉冲 应答脉冲 写 0 写 1 读 0 和读 1 这几种信号类型组成 这些信号中 除 了应答脉冲 其他均由主机发起 并且所有命令和数据都是字节的地位在前 5 3 45 3 4 DS18B20DS18B20 的引脚及功能介绍的引脚及功能介绍 DS18B20 的外形及 TO 92 封装引脚排列见左图 其引脚功能描述见表 1 实测温 度和数字输出的对应关系见表 2 表 1 DS18B20 详细引脚功能描述 基于单片机的恒温箱控制系统设计 7 表 2 温度值分辨率配置表 温度数字输出 二进制 数字输出 十六进制 125 0000 0111 1101 000007D0H 85 0000 0101 0101 00000550H 25 0625 0000 0001 1001 00010191H 10 125 0000 0000 1010 001000A2h 0 5 0000 0000 0000 10000008H 0 0000 0000 0000 0000000H 0 5 1111 1111 1111 0000FFF8H 10 125 1111 1111 0101 1110FF5EH 25 0625 1111 1110 0110 1111FF6FH 55 1111 1100 1001 0000FC90H 5 3 55 3 5 DS18B20DS18B20 的使用方法的使用方法 由于 DS18B20 采用的是 1 Wire 总线协议方式 即在一根数据线实现数据的双 向传输 而对 AT89S51 单片机来说 硬件上并不支持单总线协议 因此 我们必须 采用软件的方法来模拟单总线的协议时序来完成对 DS18B20 芯片的访问 序号名称引脚功能描述 1GND 地信号 2DQ 数据输入 输出引脚 开漏单总线接口引脚 当被用着在寄生 电源下 也可以向器件提供电源 3VDD 可选择的 VDD 引脚 当工作于寄生电源时 此引脚必须接地 基于单片机的恒温箱控制系统设计 8 由于 DS18B20 是在一根 I O 线上读写数据 因此 对读写的数据位有着严格的 时序要求 DS18B20 有严格的通信协议来保证各位数据传输的正确性和完整性 该 协议定义了几种信号的时序 初始化时序 读时序 写时序 所有时序都是将主机 作为主设备 单总线器件作为从设备 而每一次命令和数据的传输都是从主机主动 启动写时序开始 如果要求单总线器件回送数据 在进行写命令后 主机需启动读 时序完成数据接收 数据和命令的传输都是低位在先 1 DS18B20 的复位时序 见图 3 图 3 DS18B20 的复位时序图 置总线为低电平并保持至少 480us 然后拉高电平 等待从端重新拉低电平作 为响应 则总线复位完成 2 DS18B20 的读时序 见图 4 图 4 DS18B20 的读时序图 对于 DS18B20 的读时序分为读 0 时序和读 1 时序两个过程 对于 DS18B20 的读 时隙是从主机把单总线拉低之后 在 15 秒之内就得释放单总线 以让 DS18B20 把数 据传输到单总线上 DS18B20 在完成一个读时序过程 至少需要 60us 才能完成 3 DS18B20 的写时序 见图 5 图 5 DS18B20 的写时序图 对于 DS18B20 的写时序仍然分为写 0 时序和写 1 时序两个过程 对于 DS18B20 写 0 时序和写 1 时序的要求不同 当要写 0 时序时 单总线要被拉低至少 60us 保 基于单片机的恒温箱控制系统设计 9 证 DS18B20 能够在 15us 到 45us 之间能够正确地采样 IO 总线上的 0 电平 当要 写 1 时序时 单总线被拉低之后 在 15us 之内就得释放单总线 4 DS18B20 在电路中的连接 见图 6 1 wire 总线支持一主多从式结构 硬件上需外接上拉电阻 当一方完成数 据通信需要释放总线时 只需将总线置高点平即可 若需要获得总线进行 通信时则要监视总线是否空闲 若空闲 则置低电平获得总线控制权 R1 4 7K VCC 3 DQ 2 GND 1 IC2 DS18B20 VCC P1 0 图 6 DS18B20 测温电路 5 3 65 3 6 输出控制电路输出控制电路 MOC3041 内部带有过零控制电路 MOC3041 输出端额定电压为 400V 加热电路中 采用 MOC3041 的目的有两个 其一是实现强电与弱电的隔离 其二是实现双向可控硅 的过零触发 从而使流过双向可控硅的电流波形为正弦波 减少谐波 电路连接如图 6 所示 其在电路中的工作原理是单片机根据传感器和设定开关输入的控制指令 控制电器的电源通断 Q2 为 MAC97A6 型小型塑封双向晶闸管 其最大通态电流为 1A 当电源控制电路的输出管脚送出的开关控制指令为高电平 MOC3041 截止 Q2 截止 电器被关闭 当电源控制电路送出的开关控制指令为低电平 MOC3041 导通 Q2 导通 电器被打开 通过 MOC3041 内部的过零触发电路 保证 Q2 在电压过零时 导通和截止 对供电系统干扰极小 R8 和 C6 是 Q2 的保护电路 IC4 MOC3041 VCC FUZA1 1 2 JP AC220V R6 27 R7 330 R8 39 Q2 C6 0 01U RL 图 7 光耦控制输出 5 3 75 3 7 温度越线报警电路温度越线报警电路 报警电路如图 8 所示 该电路采用一个小功率三极管 Q1 驱动蜂鸣器 BELL 当单 基于单片机的恒温箱控制系统设计 10 片机接收到超额温度信号或危险信号时 输出脚 BELL 输出高点平 Q1 导通 致使蜂 鸣器 BELL 得电工作 发出报警声 同时 电路中的发光二极管指示出电路的工作状 态 BELL BELL Q1 VCC 图 8 报警电路 6 6 系统的应用软件设计系统的应用软件设计 6 1 软件描述 在软件设计时 必须先弄清恒温控制系统的操作过程和工作过程 加热器开始 时处于停止状态 首先设定温度 显示器显示温度 温度设定后则可以启动加热 温度检测系统不断检测并显示系统中的实时温度 当达到设定值后停止加热 当温 度下降到下限 小于设定值 3 时再自动启动加热 这样不断的循环 使温度保持 在设定范围之内 启动加热以后就不能再设定温度 因为温度的设定可以根据实验 要求改变 若要改变设定的温度 可以先按复位 停止键再重复上述过程 根据以上对操作和工作过程的分析 程序应分为两个阶段 一是通电或复位后 到启动加热 程序主要是按键设定 显示器显示设定温度 二是检测并显示系统的 实时温度 并根据检测的结果控制电热器 这时系统不接收键盘的输入 因此 程 序可以分为以下几个功能模块 温度设定和启动 显示 温度检测 温度控制以及 报警 6 1 16 1 1 键盘管理模块键盘管理模块 键盘管理子程序流程如图 9 所示 基于单片机的恒温箱控制系统设计 11 图 9 键盘处理程序流程 当通电或复位以后 系统进入键盘管理状态 单片机只接收设定温度和启动 当检测到有键闭合时先去除抖动 这里采用软件延时的方法 延时一段时间后 再 确定是否有键闭合 然后将设定好的值送入预置温度数据区 并调用温度合法检测 报警程序 当设定温度超过最大值如 90 时就会报警 最后当启动键闭合时启动加 热 键盘设定 用于温度设定 共三个按键 KEY1 P1 1 状态切换 温度设置确认 温度重新设置 KEY2 P1 2 设置温度 KEY3 P1 3 设置温度 系统上电后 数码管全部显示为零 根据按 KEY1 次数 决定显示的状态 根据 相应的状态 利用 KEY2 KEY3 进行加减 当温度设定好之后 再按 KEY1 确定 系 统开始测温 开启加热器 6 1 26 1 2 显示模块显示模块 显示子程序的功能是将缓冲区的二进制数据先转换成 3 个 BCD 码 再将其分别 存入百位 十位 个位 3 个显示缓冲区 送往串行口 利用单片机的 P2 口进行扫描 让数据动态的显示出来 可显示设置温度和测量温度 6 1 36 1 3 控制模块控制模块 温度控制子程序流程如图 10 所示 将当前温度与设定好的温度比较 当当前温 度小于设定温度时 开启电热器 当当前温度大于设定温度时 关闭电热器 当二 者相等时 电热器保持这一状态 基于单片机的恒温箱控制系统设计 12 图 10 控制模块程序流程 6 1 46 1 4 温度报警模块温度报警模块 报警子程序流程如图 11 所示 根据设计要求 当检测到当前温度值高于设定温 度值 3 时报警 报警的同时关闭电热器 为了防止误报 设置了报警允许标志 只有在允许报警的情况下 温度值高于设定温度值时才报警 图 11 报警子程序流程 6 1 56 1 5 主程序和中断服务程序流程主程序和中断服务程序流程 主程序采用中断嵌套方式设计 各功能模块可直接调用 主程序完成系统的初 始化 温度预置及其合法性检测 预置温度的显示及定时器 0 设置 定时器 0 中断 基于单片机的恒温箱控制系统设计 13 服务子程序是温度控制体系的主体 用于温度检测 控制和报警 包括启动温度转 换 读入采样数据 数字滤波 越限温度报警和越限处理 输出控制脉冲等 中断 由定时器 0 产生 根据需要每隔 15 s 中断一次 即每 15 s 采样控制一次 但系统 采用 6 MHz 晶振 最大定时为 130 ms 为实现 15 s 定时 这里另行设了一个软件 计数器 图 12 主程序流程图 基于单片机的恒温箱控制系统设计 14 图 13 中断服务程序流程图 7 7 系统调试与仿真系统调试与仿真 7 1 硬件调试 根据设计的原理电路做好实验样机 便进入硬件调试阶段 调试工作的主要任 务是排除样机故障 其中包括设计错误和工艺性故障 7 1 17 1 1 脱机检查脱机检查 用万能表或逻辑测试笔逐步按照逻辑图检查机中各器件的电源及各引脚的连接 是否正确 检查数据总线 地址总线和控制总线是否有短路等故障 有时为保护芯 片 先对各管座的电位 或电源 进行检查 确定其无误后再插入芯片检查 7 1 27 1 2 仿真调试仿真调试 暂时排除目标板的 CPU 和 EPROM 将样机接上仿真机的 40 芯仿真插头进行调试 调试各部分接口电路是否满足设计要求 这部分工作是一种经验性很强的工作 一 般来说 设计制作的样机不可能一次性完好 总是需要调试的 通常的方法是 先 编调试软件 逐一检查调试硬件电路系统设计的准确性 7 1 37 1 3 检查检查 CPUCPU 的时钟电路的时钟电路 通过测试 ALE 信号 如没有 ALE 信号 则判断是晶体或 CPU 故障 这称之为 心脏 检查 检查 ABUS DBUS 的分时复用功能的地址锁存是否正常 基于单片机的恒温箱控制系统设计 15 检查 I O 地址分配器 一般是由部分译码或全译码电路构成 如是部分译码设 计 则排除地址重叠故障 7 1 47 1 4 对扩展的对扩展的 RAMRAM ROMROM 进行检查调试进行检查调试 一般先后写入 55H AAH 再读出比较 以此判断是否正常 因为这样 RAM ROM 的各位均写入过 0 1 代码 7 2 软件调试 软件调试 软件调试根据开发的设备情况可以有以下方法 7 2 17 2 1 交叉汇编交叉汇编 用 IBM PC XT 机对 MCS 51 系列单片机程序进行交叉汇编时 可借助 IBM PC XT 机的行编辑和屏幕编辑功能 将源程序按规定的格式输入到 PC 机 生成 MCS 51 HEX 目标代码和 LIST 文件 7 2 27 2 2 用汇编语言用汇编语言 现在有些单片 STD 工业控制机或者开发系统 可直接使用汇编语言 借助 CRT 进行汇编语言调试 7 2 37 2 3 手工汇编手工汇编 这种方法是最原始 但又是一种最简捷的调试方法 且不必增加调试设备 这 种方法的实质就是对照 MCS 51 指令编码表 将源程序指令逐条地译成机器码 然 后输入到 RAM 重新进行调试 在进行手工汇编时 要特别注意转移指令 调用指令 查表指令 必须准确无误地计算出操作码 转移地址和相对偏移量 以免出错 以上 3 种方法调试完成以后 即可通过 EPROM 写入器 将目标代码写入 EPROM 中 并将其插至机器的相应插座上 系统便可投入运行 7 3 系统仿真 因本系统是利用单片机进行系统控制 所以需采用单片机仿真工具 Proteus 进 行仿真 Proteus 软件是来自英国 Labcenter electronics 公司的 EDA 工具软件 Proteus 软件有十多年的历史 在全球广泛使用 除了其具有和其它 EDA 工具一样 的原理布图 PCB 自动或人工布线及电路仿真的功能外 其革命性的功能是 他的 电路仿真是互动的 针对微处理器的应用 还可以直接在基于原理图的虚拟原型上 编程 并实现软件源码级的实时调试 如有显示及输出 还能看到运行后输入输出 的效果 配合系统配置的虚拟仪器如示波器 逻辑分析仪等 Proteus 为使用者建 立了完备的电子设计开发环境 Proteus 产品系列也包含了革命性的 VSM 技术 8 用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真 是一款非常优 秀的单片机仿真软件 可以使用 Keil c51 和 Proteus 进行联调 使调试 仿真更 为方便 由于 Proteus 软件库内没有本系统所用到的 DS18B20 测温元件 所以在仿真时 基于单片机的恒温箱控制系统设计 16 系统电路作了一些调整 首先画好仿真图 将程序的二进制文件调入单片机对话框的 Program File 栏 内 如图 14 所示 图 14 二进制文件的调入 仿真开始时 仿真图如图 15 所示 数码管都显示为零 只有红色 未加热状态 灯 D1 亮 基于单片机的恒温箱控制系统设计 17 图 15 刚启动的仿真图 在设置好温度值如 100 摄氏度并按 SET 键确定后 数码管显示实时温度值 26 摄 氏度 系统开始进入加热状态 如图 16 所示 绿色 加热状态灯 D2 亮 黄色 输出控制状态灯 D3 亮 系统控制加热器对水进行加热 图 16 系统启动加热仿真图 系统启动加热一段时间后 达到设定的温度值 系统停止加热 状态灯 D1 重新 点亮 如图 17 所示 基于单片机的恒温箱控制系统设计 18 图 17 系统进入保温状态仿真图 8 8 抗干扰技术抗干扰技术 8 1 硬件抗干扰技术 光电隔离 在输入和输出通道上采用光电隔离器来进行信息传输是很有好处的 它将微机系统与各种传感器 开关 执行机构从电气上隔离开来 很大一部分干扰 将被阻挡 抗干扰电源 微机系统供电线路是干扰的主要来源 电源采用隔离变压器接入 电网 可以防止电

温馨提示

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

评论

0/150

提交评论