基于PID的恒温箱温度控制系统设计_第1页
基于PID的恒温箱温度控制系统设计_第2页
基于PID的恒温箱温度控制系统设计_第3页
基于PID的恒温箱温度控制系统设计_第4页
基于PID的恒温箱温度控制系统设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

基于PID的恒温箱温度控制系统设计 2008届 2008年6月 摘摘 要要 本设计是恒温箱温度控制系统设计 可供各类实验室 医疗机构 食品加 工 生产部门等使用 在周围温度不断变化条件下 使用恒温箱 可以使一定 范围的温度恒定在特定温度下 从而适应生活和工作 控制的温度范围为 50 120 恒温箱可以在线设定温度 并对温度进行实时数码显示 0C 设计内容包括硬件和软件两个部分 硬件主要由 AT89S52 单片机 DS18B20 数字温度传感器 8155 片外存储器 继电器 LED 数码管和报警器 等组成 电原理图包括数据采集 温度显示 键盘设定 温度控制和复位电路 等几个模块 软件部分主要对 PID 算法进行了数学建模和编程 本设计由键盘电路输入设定温度信号给单片机 温度信号采集电路采集现 场温度信号给单片机 单片机根据输入与反馈信号的偏差进行 PID 计算 输出 控制信号给加温控制电路 实现加温和停止 当实际温度比设定温度大 2 摄氏 度以上时 则清 P1 3 输出口 从而停止对电阻丝的加热 当实际温度比设定温 度小 2 摄氏度以上时 取 PID 的最大值 实现全功率输出 在它们之间时 实 现 PID 算法控制 控制可控硅的接触时间 调节电阻丝功率 显示电路实现现 场温度的实时监控 软件部分 采用 PID 控制和时间最优控制相结合的控制方案 实现了 控制速度快 超调小 线性控制精度高和实现成本低等的优点 硬件部分采 用单片机来实现温度控制 不仅具有控制方便 简单 灵活等优点 而且可 以大幅度的提高被控温度的技术指标 从而大大提高产品的质量 关键词 恒温控制 单片机 数字 PID 算法 ABSTRACTABSTRACT The system of this design is the temperature controller of a constant temperature box Can be provided as each kind of laboratory medical treatment organization food processing and produce the section etc usage Under the condition that the surroundings temperature continuously change the usage constant temperature box can make the temperature maintaining of the certain scope settle under the particular temperature thus adapt the life and works The temperature scope of the control is 50 120 The constant temperature box can with on line enactment temperature and carry on the solid hour to the temperature figures manifestation When be placed in to set the appearance figures tube manifestation enactment temperature circulate manifestation actual temperature Design content including hardware and software two parts The hardware mainly by at89S52 monolithic integrated circuit the DS18B20 digit temperature sensor 8155 piece of external memory the relay the LED nixietube and the alarm apparatus and so on is composed Electricity schematic diagram including data acquisition temperature demonstration keyboard hypothesis temperature control and reset circuit and so on several modules The software part mainly has carried on mathematics modelling and the programming to the PID algorithm The circuit design of the keyboard input from the set temperature signal to the microcontroller Temperature Signal Acquisition Circuit collect temperature signal to the microcontroller According to SCM input and feedback signal the error for PID the output control signals to the heating control circuit Heating and achieve stop Show circuit scene of the real time monitoring of temperature When actual temperature compares to set temperature big more than 2 degrees then the pureexportation thus stop to electric resistance silk of heating When the actual temperature compares to set smaller than 2 degrees taking the PID biggest value carrying out the whole power exportation among the two carry out the PID calculate way control control contact time that controvable silicon regulate the electric resistance silk power software part the adoption PID control and the control project that time superior control combine together carried out to control the speed quick super adjust small line control the accuracy is high and carry out the cost advantage of low etc The hardware part adopts a machine to carry out the temperature control not only have the control convenience simple vivid etc advantage and can is control with the significant exaltation the technique index sign of the temperature raise the quantity of the product thus and consumedly Keywords Temperature control microcontroller PID algorithm MATLAB 目 录 绪论 把温度作为被控参数进行研究无论在工业生产 还是在日常生活中 都 已经变得非常适用和广泛了 在工业生产中 例如冶金工业 化工生产 电力 工程 食品加工 机械制造 医疗以及科研研究室等 人们对需要对温度进行 监测和控制 而日常生活中的家用电器如电烤箱 微波炉 烘干箱 保温箱等 等 也是我们不可或缺的 因此 就恒温箱的研究就有极其重要的现实意义 本设计系统主要由 AT89S52 单片机 8155 片外存储器 继电器 27128 片外存 储器和 DS18B20 数字温度传感器等组成 电原理图包括数据采集 BCD 码转 换和温度显示 键盘设定 温度控制和复位电路等几个模块 通常 采用单片机系统来实现对温度的控制 不仅具有控制方便 简单 灵活等优点 而且可以大幅度的提高被控温度的技术指标 在本设计中 需要达到以下几点技术要求 1 控制温度范围 50 120 控制精度为 2 0C 2 温度采集数字量输入 3 键盘按键输入 具有设定功能 4 显示功能 数码管显示设定值及当前所测温度值 5 具有超温报警功能 本课题应该解决的问题 在设计过程中 对硬件选型时一定要注意控制精度 所选用的芯片必须达 到我们设计任务书中的精度要求 显然 恒温箱的微机系统的设计是一个闭环 控制系统 虽然可以到达一定的精度 但是仍然有极限 核心设计内容是硬件和软件部分 硬件是基础 在软件设计中 分析清楚 各个功功能模块 如主程序 中断服务程序 以及包含在中断程序中的数据采 集 PID 控制 温度显示子程序 第一章 方案设计分析 控制模块的选择 数字比较器与模拟控制器相比较 数字比较器具有以下 几个优点 1 模拟调节器调节能力有限 当控制规律较为复杂时 就难以甚至无法实 现 而数字控制器能实现复杂控制规律的控制 2 计算机具有分时控制能力 可实现多回路控制 3 数字控制器具有灵活性 起控制规律可灵活多样 可用一台计算机对不 同的回路实现不同的控制方式 并且修改控制参数或控制方式一般只可改变控 制程序即可 使用起来简单方便 可改善调节品质 提高产品的产量和质量 4 采用计算机除实现 PID 数字控制外 还能实现监控 数据采集 数字 显示等其他功能 综合考虑 本设计控制模块采用数字 PID 调节器 本系统是一个恒温箱的温度控制器 其控温范围是 50 120 摄氏度 控制器 可以在线设定控制温度 并对温度进行实时数码显示 当系统处于设定状态时 数码管显示设定温度值 平时显示实际温度 当实际温度与设定温度偏差达小 于负 2 时 全功率加热电阻丝 当偏差值在正负 2 的范围内时 实行 PID 控制 来达到控制温度的目的 当偏差值大于 2 时 停止加热 从而达到恒温控制的 目的 这样的一闭环控制系统 其控制速度快 超调小 线性控制精度高和实 现成本低 根据上面分析 结合控制要求 总体方案确定如下为了使设计的成本低 抗干扰强 系统动态性能与稳态性能好的前提下 设计方案的总体结构框图如 图 1 4 所示 AT89S52 单单 片片 机机 按按 键键 LED 显显 示示 温温 度度 采采 集集 EEPROM 控制继电器控制继电器 越越 限限 报报 警警 图 1 4 设计总体结构框图 此系统主要有单片机系统 用户接口 温度控制电路 传感器等组成 单片机系统主要用来运行控制软件 接受温度设定和控制指令 输入采样温度 信息 输出加热控制信号 温度显示数据 1 用户接口包括温度显示 报警和按键三部分 由于控温范围为 50 120 摄 氏度 可以采用三位 8 段 LED 数码管显示 温度超过一定的范围报警 按 钮设置四个 分别为设定键 增键 减键和移位键 2 DS18B20 采集到的就是为数字信号 3 继电器的接通时间来控制电阻丝的加热功率 而继电器的接通时间又由 P1 3 上的触 发脉冲来控制 其中我主要负责按键 其中我主要负责按键 LED 显示 温度采集显示 温度采集 第 2 章 恒温控制系统硬件设计 考虑到尽量降低成本和避免与复杂的电路 此系统所用到的元器件均为常 用的电子器件 而主控器采用低功耗 高性能 片内含 8k byte 可反复檫写的 Flash 只读程序器 CMOS8 位单片机 AT89S52 温度传感器采用 DALLAS 公司生 产的单总线数字温度传感器 DS18B20 采用控制端 TTL 电平 即可实现对继电 器的开关 使用时完全可以用 NPN 型三极管接成电压跟随器的形式驱动 单片 机所需要的 5V 工作电源是通过 220V 交流电压通过变压 整流 稳压 滤波得 到 用 DS18B20 定时采集环境温度存到 EEPROM 通过三个 LED 实时显示采集到 的温度值 并用此温度与设定的温度比较 通过单片机对偏差进行 PID 运算 控制继电器的通断 加热或断开热敏电阻 使温度上升或下降 温度达到时断 开继电器 使温度自然下降 不够时接通继电器加热 控制显示器 键盘并通 过单片机来完成键盘扫描与输出动态显示 2 1 AT89S52 单片机简介 2 1 1 AT89S52 单片机资源简介 AT89S52 的结构如图 2 1 所示 由于它的广泛使用使得市面价格较 8155 8255 8279 要低 所以说用它是很经济的 该芯片具有如下功能 有 1 个专用的键盘 显示接口 有 1 个全双工异步串行通信接口 有 2 个 16 位定时 计数器 这样 1 个 89S52 承担了 3 个专用接口芯片的工作 不仅使 成本大大下降 而且优化了硬件结构和软件设计 给用户带来许多方便 89S52 有 40 个引脚 有 32 个输入端口 I O 有 2 个读写口线 可以反 复插除 所以可以降低成本 主要功能特性 1 兼容 MCS51 指令系统 2 32 个双向 I O 口线 3 3 个 16 位可编程定时 计数器中断 4 2 个串行中断口 5 2 个外部中断源 6 2 个读写中断口线 7 低功耗空闲和掉电模式 8 8k 可反复擦写 1000 次 Flash ROM 9 256x8 bit 内部 RAM 10 时钟频率 0 24MHz 11 可编程 UART 串行通道 12 共 6 个中断源 13 3 级加密位 14 软件设置睡眠和唤醒功能 2 1 22 1 2 AT89S52AT89S52 芯片芯片 2 1 32 1 3 AT89S52AT89S52 单片机时钟和复位电路单片机时钟和复位电路 时钟电路 单片机内部有一个高增益反向放大器 输入端为芯片引脚 输出端 1 XTAL 为引脚 而在芯片外部和 之间跨接晶体振荡器和微调电容 2 XTAL 1 XTAL 2 XTAL 从而构成一个稳定的自激振荡器 晶体震荡频率高 则系统的时钟频率也高 单片机运行速度也就快 但反过来运行速度快对存储器的速度要求就高 对印 制电路板的工艺要求也高 所以 这里使用震荡频率为 6MHz 的石英晶体 震荡电路产生的震荡脉冲并不直接是使用 而 是经分频后再为系统所用 震荡脉冲经过二分频后才作为系 统的时钟信号 在设计电路板时 振荡器和电容应尽量靠近单片机 以避免干 扰 需要注意的是 电路板时 振荡器和电容应尽量安装得与单片机靠近 以 减小寄生电容的存在更好的保障振荡器稳定 可靠的工作电路图如图 2 2 所示 复位电路 单片机的复位电路分上电复位和按键复位两种方式 a 上电复位 在加电之后通过外部复位电路的电容充电来实现的 当的上升时间不超过 1ms 就可以实现自动上电复位 即 CC V 接通电源就完成了系统的初始化电路原理图 RST 上的电压必 须保证在斯密特触发器的阀值电压以上足够长时间 满足复位 操作的要求 b 按键复位 程序运行出错或操作错误使系统处于死锁状态时 为了摆 脱困境 也需按复位键以重新启动 RST 引脚是复位信号的输 入端 复位信号是高电平有效 按键复位又分按键脉冲复位 图 2 3 和按键电平复位 电平复位将复位端通过电阻与相连 按键脉冲 CC V 复位是利用 RC 分电路产生正脉冲来达到复位的 c 注意 因为按键脉冲复位是利用 RC 微分电路产生正脉冲来达到复位的 所以电平 复位要将复位端通过电阻与相连 如复位电路中 R C 的值选择不当 使复 CC V 位时间过长 单片机将处于循环复位状态 故本设计采用按键复位 2 2 DS18B20 数字温度传感器简介 2 2 12 2 1 DS18B20DS18B20 数字温度传感器资源简介数字温度传感器资源简介 新的新的 一线器件一线器件 DS18B20 DS18B20 体积更小 适用电压更宽 更经济 体积更小 适用电压更宽 更经济 美国 Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 一线总线 接口的温度传感器 在其内部使用了在板 ON B0ARD 专利技术 全部传感元件及转换电路集成在形如一只三极管的集成电路内 一线总线独特 而且经济的特点 使用户可轻松地组建传感器网络 为测量系统的构建引入全 新概念 现在 新一代的 DS18B20 体积更小 更经济 更灵活 使你可以充分 发挥 一线总线 的优点 目前 DS18B20 批量采购价格仅 10 元左右 DS18B20 DS1822 一线总线 数字化温度传感器 同 DS1820 一样 DS18B20 也支持 一线总线 接口 测量温度范围为 55 C 125 C 在 10 85 C 范围内 精度为 0 5 C DS1822 的精度较差为 2 C 现场温度直接以 一线总线 的数字方式传输 大大提高了系统的抗干 扰性 适合于恶劣环境的现场温度测量 如 环境控制 设备或过程控制 测 温类消费电子产品等 与前一代产品不同 新的产品支持 3V 5 5V 的电压范围 使系统设计更灵活 方便 而且新一代产品更便宜 体积更小 DS18B20DS18B20 DS1822DS1822 的特性的特性 DS18B20 可以程序设定 9 12 位的分辨率 精度为 0 5 C 可选更小的 封装方式 更宽的电压适用范围 分辨率设定 及用户设定的报警温度存储在 EEPROM 中 掉电后依然保存 DS18B20 的性能是新一代产品中最好的 性能价 格比也非常出色 DS1822 与 DS18B20 软件兼容 是 DS18B20 的简化版本 省略 了存储用户定义报警温度 分辨率参数的 EEPROM 精度降低为 2 C 适用于 对性能要求不高 成本控制严格的应用 是经济型产品 继 一线总线 的早期 产品后 DS1820 开辟了温度传感器技术的新概念 DS18B20 和 DS1822 使电压 特性及封装有更多的选择 让我们可以构建适合自己的经济的测温系统 2 2 22 2 2 DS18B20DS18B20 数字温度传感器引脚介绍数字温度传感器引脚介绍 DS18B20DS18B20 引脚定义 引脚定义 1 DQ 为数字信号输入 输出端 2 GND 为电源地 3 VDD 为外接供电电源输入端 在寄生电源接线方式时接地 DS18B20 电路图参考图 2 2 3 DS18B20 数字温度传感器的使用 一 一 DS18B20DS18B20 的主要特性的主要特性 1 适应电压范围更宽 电压范围 3 0 5 5V 在寄生电源方式下可由 数据线供电 2 独特的单线接口方式 DS18B20 在与微处理器连接时仅需要一条口线 即可实现微处理器与 DS18B20 的双向通讯 3 DS18B20 支持多点组网功能 多个 DS18B20 可以并联在唯一的三线上 实现组网多点测温 4 DS18B20 在使用中不需要任何外围元件 全部传感元件及转换电路集 成在形如一只三极管的集成电路内 5 温范围 55 125 在 10 85 时精度为 0 5 6 可编程的分辨率为 9 12 位 对应的可分辨温度分别为 0 5 0 25 0 125 和 0 0625 可实现高精度测温 7 在 9 位分辨率时最多在 93 75ms 内把温度转换为数字 12 位分辨率 时最多在 750ms 内把温度值转换为数字 速度更快 8 测量结果直接输出数字温度信号 以 一线总线 串行传送给 CPU 同 时可传送 CRC 校验码 具有极强的抗干扰纠错能力 9 负压特性 电源极性接反时 芯片不会因发热而烧毁 但不能正常工 作 二 二 DS18B20DS18B20 的内部结构的内部结构 DS18B20 内部结构主要由四部分组成 64 位光刻 ROM 温度传感器 非挥 发的温度报警触发器 TH 和 TL 配置寄存器 8 位 CRC 生成器 三 三 DS18B20DS18B20 工作原理工作原理 DS18B20 的读写时序和测温原理与 DS1820 相同 只是得到的温度值的位数 因分辨率不同而不同 且温度转换时的延时时间由 2s 减为 750ms DS18B20 测 温原理如图 3 所示 图中低温度系数晶振的振荡频率受温度影响很小 用于产 生固定频率的脉冲信号送给计数器 1 高温度系数晶振随温度变化其振荡率明 显改变 所产生的信号作为计数器 2 的脉冲输入 计数器 1 和温度寄存器被预 高速 缓存 存储器 温度灵敏元件 低温触发器 高温触发器 TH 配置寄存器 电源 检测 64 位 ROM 和是 单线 接口 存储器和控制器 置在 55 所对应的一个基数值 计数器 1 对低温度系数晶振产生的脉冲信号 进行减法计数 当计数器 1 的预置值减到 0 时 温度寄存器的值将加 1 计数 器 1 的预置将重新被装入 计数器 1 重新开始对低温度系数晶振产生的脉冲信 号进行计数 如此循环直到计数器 2 计数到 0 时 停止温度寄存器值的累加 此时温度寄存器中的数值即为所测温度 图 3 中的斜率累加器用于补偿和修正 测温过程中的非线性 其输出用于修正计数器 1 的预置值 DS18B20DS18B20 有有 4 4 个主要的数据部件 个主要的数据部件 1 光刻 ROM 中的 64 位序列号是出厂前被光刻好的 它可以看作是该 DS18B20 的地址序列码 64 位光刻 ROM 的排列是 开始 8 位 28H 是产品类型 标号 接着的 48 位是该 DS18B20 自身的序列号 最后 8 位是前面 56 位的循环 冗余校验码 CRC X8 X5 X4 1 光刻 ROM 的作用是使每一个 DS18B20 都各不 相同 这样就可以实现一根总线上挂接多个 DS18B20 的目的 2 DS18B20 中的温度传感器可完成对温度的测量 以 12 位转化为例 用 16 位符号扩展的二进制补码读数形式提供 以 0 0625 LSB 形式表达 其 中 S 为符号位 表表 1 1 DS18B20 温度值格式表 LS byteBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0 232221202 12 22 32 4 Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8LS byte SSSSSS262524 这是 12 位转化后得到的 12 位数据 存储在 18B20 的两个 8 比特的 RAM 中 二 进制中的前面 5 位是符号位 如果测得的温度大于 0 这 5 位为 0 只要将测到 的数值乘于 0 0625 即可得到实际温度 如果温度小于 0 这 5 位为 1 测到的 数值需要取反加 1 再乘于 0 0625 即可得到实际温度 例如 125 的数字输出为 07D0H 25 0625 的数字输出为 0191H 25 0625 的数字输出为 FF6FH 55 的数字输出为 FC90H TEMPERATUREDIGITAL OUTPUTDIGITAL OUTPUT 125 0000 0111 1101 000007D0H 85 0000 0101 0101 00000550H 25 0625 0000 0001 1001 00010191H 10 125 0000 0000 1010 001000A2H 0 50 0000 0000 0000 10000008H 0 0000 0000 0000 00000000H 0 5 1111 1111 1111 1000FFF8H 10 125 1111 1111 0101 1110FF5EH 25 0625 1111 1110 0110 1111FE6FH 55 1111 1100 1001 0000FC90H The power on reset value of the temperature register is 85 3 DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性 的可电擦除的 EEPRAM 后者存放高温度和低温度触发器 TH TL 和结构寄存器 4 配置寄存器 该字节各位的意义如下 表 3 配置寄存器结构 TMR1R011111 低五位一直都是 1 TM 是测试模式位 用于设置 DS18B20 在工作模式还 是在测试模式 在 DS18B20 出厂时该位被设置为 0 用户不要去改动 R1 和 R0 用来设置分辨率 如下表所示 DS18B20 出厂时被设置为 12 位 表 4 温度分辨率设置表 R1R0 分辨率温度最大转换时间 00 9 位 93 75ms 01 10 位 187 5 ms 10 11 位 375 ms 11 12 位 750 ms 四 高速暂存存储器四 高速暂存存储器 高速暂存存储器由 9 个字节组成 其分配如表 5 所示 当温度转换命令发 布后 经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和 第 1 个字节 单片机可通过单线接口读到该数据 读取时低位在前 高位在后 数据格式如表 1 所示 对应的温度计算 当符号位 S 0 时 直接将二进制位转 换为十进制 当 S 1 时 先将补码变为原码 再计算十进制值 表 5 是对应的 一部分温度值 第九个字节是冗余检验字节 表 5 DS18B20 暂存寄存器 寄存器内容字节地址 温度值低位 LS Byte 0 温度值高位 MS Byte 11 高温限值 TH 2 低温限值 TL 3 配置寄存器 4 保留 5 保留 6 保留 7 CRC 校验值 8 根据 DS18B20 的通讯协议 主机 单片机 控制 DS18B20 完成温度转换必 须经过三个步骤 每一次读写之前都要对 DS18B20 进行复位操作 复位成功后 发送一条 ROM 指令 最后发送 RAM 指令 这样才能对 DS18B20 进行预定的操作 复位要求主 CPU 将数据线下拉 500 微秒 然后释放 当 DS18B20 收到信号后等 待 16 60 微秒左右 后发出 60 240 微秒的存在低脉冲 主 CPU 收到此信号表 示复位成功 表 6 ROM 指令表 指令约定代码功能 读 ROM 33H 读 DS18B20 温度传感器 ROM 中的编码 即 64 位地 址 符合 ROM 55H 发出此命令之后 接着发出 64 位 ROM 编码 访问 单总线上与该编码相对的 DS18B20 使之作出响应 为下一步对该 DS18B20 的读写作准备 搜索 ROM 0F0H 用于确定挂接在同一总线上 DS18B20 的个数和识别 64 位 ROM 地址 为操作各器件作好准备 跳过 ROM 0CCH 忽略 64 位 ROM 地址 直接向 DS18B20 发温度变换 命令 适用于单片机工作 告警搜索命令 0ECH 执行后只有温度超过设定值上限或下限的片子才做 出响应 表 6 RAM 指令表 指令约定代码功能 温度变换 44H 启动 DS18B20 进行温度转换 12 位转换时最厂为 750MS 9 位 93 75MS 结果存入内部 9 字节 ROM 中 读暂存器 0BEH 读内部 RAM 中 9 字节的内容 写暂存器 4EH 发出向内部 RAM 的 3 4 字节写上 下限温度数据命 令 紧跟该命令之后 是传送两字节的数据 复制暂存器 48H 将 RAM 中第 3 4 字节的内容复制到 EEPROM 中 重调 EEPROM 0B8H 将 EEPROM 中内容恢复到 RAM 中底第 3 4 字节 读供电方式 0B4H 读 DS18B20 的供电模式 寄生供电时 DS18B20 发送 0 外接电源供电 DS18B20 发送 1 2 32 3 并行 I O 接口芯片的选择 在单片机控制系统中 经常利用 I O 接口芯片来扩张 CPU 的并行 I O 端口 这类 I O 接口芯片的种类很多 在单片机系统中 广泛应用的 I O 接口芯片是 8155 2 3 12 3 1 Intel8155Intel8155 8155 是 Intel 公司研制的通用 I O 接口芯片 AT89S52 芯片和 8155 相连不 仅可为外设提供两个八位 I O 端口 A 口和 B 口 和一个六位 I O 端口 C 口 而且也为 CPU 提供一个 256 字节的 RAM 存储器和一个 14 位定时器 计数器 内 部结构如下图所示 图 2 4 8155 芯片引脚图 2 3 22 3 2 内部结构 8155 共有七部分电路组成 她们是双线数据总线缓冲器 地址锁存器 地 址译码器和读写编码盘 RAM 存储器 I O 寄存器 命令寄存器和状态寄存器以 及定时器 计数器等 双向数据总线缓冲器 该缓冲器是 8 位的 用于传送 CPU 对 RAM 存储器的 读写数据 地址译码器 共八位 用于锁存 CPU 送来的 RAM 单元地址和端口地址 地址译码器和读写控制器 地址译码器的三位地址由地址锁存器输出端送 来 译码后可以选中命令 状态寄存器 定时器 计数器和 ABC 三个 I O 寄存器 中的某个工作 读写控制其接收 RD和 WR 线上的信息 实现对 CPU 和 8155 间所 传信息的控制 RAM 存储器 容量为 256 字节 主要用于存放实时数据 存储器存储单元 地址由地址锁存器输出端送来 I O 寄存器 分为 ABC 三个端口 A 口和 B 口的 I O 寄存器为 8 位 既可以 存放外设的输出数据又可以存放外设的输入数据 C 口的 I O 寄存器只有 6 位 用于存放 I O 数据或命令 状态信息 8155 在某一瞬间只能选中某个 I O 寄存 器工作 这有 CPU 送给 8155 的命令字决定 命令寄存器和状态寄存器 皆为 8 位寄存器 命令寄存器存放 CPU 送来的 命令字 状态寄存器存放 8155 的状态字 定时器 计数器 这是一个二进制 14 位的减 1 计数器 计数器初值由 CPU 通过程序送来 定时器 计数器由 T N 输入线上脉冲减 1 每当计满溢出时可在 T OUT 线上输出一个终止脉冲 2 3 32 3 3 引脚功能 1 AD7 AD0 8 条 AD7 AD0 为地址 数据总线 常可和 MCS 51 的 P0 口 相接 用于分时的传送地址 数据信息 I O 总线 22 条 PA7 PA0 通用 I O 线 用于传送 A 口上的外设数据 数据 外送方向由 8155 命令字决定 PB7 PB0 为通用 I O 线 用于传送 B 口上的外设 数据 数据传送的方向也是由 8155 命令字决定的 PC5 PC0 为 I O 数据 控制 线 共 6 条 通用 I O 方式下 用作传送 I O 数据 在选通 I O 方式下 用作 传送命令 状态信息 2 控制总线 8 条 RESET 8155 总清输入线 在 RESET 线上输入一个大于 600ns 宽的正脉冲 时 8155 立即处于总清状态 A B C 三口也定义为输入方式 CE 和 IO M CE 为 8155 片输入线 若 CE 0 则 CPU 选中本 8155 工作 否则 本 8155 不工作 IO M 为 I O 端口或 RAM 存储器的选通输入线 若 IO M 0 则 CPU 选中 8155 的 RAM 存储器工作 若 IO M 1 则 CPU 选中 8155 内某一寄存器 工作 RD 和 WR RD 是 8155 的读 写命令输入线 WR 为写命令线当 RD 0 和 WR 1 时 8155 处于读出数据状态 当 RD 1 和 WR 0 时 8155 处于写入数据状态 ALE 为允许地址输入线 高电平有效 若 ALE 1 则 8155 允许 AD7 AD0 上的地址锁存道 地址锁存器 否则 8155 的地址锁存器处于封锁状态 8155 的 ALE 常和 MCS 51 的同名端相连 T IN 和 T OUT T IN 实计数器输入线 其上脉冲用于对 8155 片内 14 位计 数器减 1 T OUT 为计数器输出线 当 14 位计数器从计满回零时就可以在该引 线上输出脉冲波形 输出脉冲的形状和计数器工作方式有关 3 电源线 2 条 Vcc 为 5V 电源输入线 Vss 为接地线 第第 3 3 章章恒温控制系统模块分析设计恒温控制系统模块分析设计 3 13 1 温度的采集 温度测量转换部分是整个系统的数据来源 直接影响系统的可靠性 传统 的温度测量方法是 温度传感器例如 AD590 将测量的温度转换成模拟电信号 再经过 A D 转换器把模拟信号转换成数字信号 单片机再对采集的数字信号进 行处理 3 这种模拟数字混合电路实现起来比较复杂 滤波消噪难度大系统稳 定性不高 鉴于这些考虑 本设计采用数字式温度传感器 DS18B20 DS18B20 支持 一线总线 接口 测量温度的范围为 55 C 125 C 现 场温度直接以 一线总线 的数字式传输 大大的提高了系统的抗干扰性 DS18B20 为 3 引脚 DQ 为数字信号输入 输出端 GND 为电源地 VDD 为外接供 电电源输入端 温度采集电路模块如图 2 4 所示 DSB8B20 的 3 脚接系统中单片机的 P1 4 口线 用于将采集到的温度送入单片机中处理 2 脚和 3 脚之间接一个 4 7K 上 拉电阻 即可完成温度采集部分硬件电路 DS18B20 内部结构主要由四部分组 成 64 位光刻 ROM 温度传感器 非挥发的温度报警触发器 TH 和 TL 配置寄 存器 DS18B20 中的温度传感器可完成对温度的测量 以 12 位转化为例 用 16 位 符号扩展的二进制补码读数形式提供 以0 0625 LSB 形式表达 其中 S 为符号位 数据转换如下表 2 1 表 2 1 DS18B20 温度数据转换表 这是 12 位转化后得到的 12 位数据 存储在 18B20 的两个 8 比特的 RAM 中 二进制中的前面 5 位是符号位 如果测得的温度大于 0 这 5 位为 0 只要将测 到的数值乘于 0 0625 即可得到实际温度 如果温度小于 0 这 5 位为 1 测到 的数值需要取反加 1 再乘于 0 0625 即可得到实际温度 例如 125 的数字输出为 07D0H 25 0625 的数字输出为 0191H 25 0625 的数字输出为 FF6FH 55 的数字输出为 FC90H DS18B20 采集到的温度数字量存在 31H 高位 30H 低位 3 2键盘和显示电路的设计 3 2 13 2 1 按键设置 本系统中 采用四个按键实现温度的设定 分别为设定键 增键 减键和 移位键 温度值有三个位 通过移位键可以方便的设定温度值 并接在 8155PC 口中 PC 为读入口 表表 2 2 按键功能按键功能 按键键名功能 SET 键设定键或退出键使系统产生中断 进入设置状态或退出 键增键按一次当前值加 1 键减键按一次当前值减 1 MOV 键移位键按一次移动到另一位设置 电路参考图 2 7 在下面 3 2 23 2 2LEDLED 数码管显示原理 显示电路实行 LED 显示 这里采用八段共阳 LED A 口字段口 B 为在字位 口 LED 数码管结构简单 价格便宜 八段 LED 显示管有八只发光二极管组成 编号分别为 a b c d e f gS P 分别和同名管相连 八段 LED 数码显 示管原理简单 是通过同名管脚上所加电压高低来控制发光二极管是否点亮而 显示不同的字形的 例如 若在共阳 LED 管的 SP g f e d c b a 管脚 上分别加上 80H 控制电平 即 SP 上为 TTL 高电平 不亮 其余为 0 伏 亮 则 LED 显示管显示字形 8 80H 是按照 SP g f e d c b a 顺序排列 Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0LS Byte232221202 12 22 32 4 Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8MS ByteSSSSS262524 后的十六进制编码 0 为 TTL 低电平 1 为 TTL 高电平 常称为字形码 因此 LED 上显示字形不同 相应字形码也不一样 LED 管的显示可以分为静态显示和动态显示两种 1 静态显示的特点是各个 LED 管能稳定地同时显示各自字形 动态显示 是指各 LED 轮流地一遍一遍显示各自字符 人们因视觉气管惰性而看到的是各 LED 似乎在同时显示不同字形 但是静态显示所需的硬件开锁大 CPU 也无法预 先知道什么时候需要改变 LED 的被显示字符 为了减少硬件开锁 提高系统可靠性和降低成本 单片机控制控制系统通 常采用动态扫描显示 在本电路图中 8031 通过 8155 对三只共阳 LED 的接口 电路 A 口和所有 LED 的 a b c d e f g SP 引线相连 各 LED 控制端 G 和 8155C 口相连 故 B 口为字形口和 C 口为字形口 因为 CPU 可以通过 C 口 控制各 LED 是否点亮 2 动态显示采用软件法把欲显示十六进制 或 BCD 码 转换为相应的字 形码 故它通常需要在 RAM 区建立一个显示缓冲区 显示缓冲区内包含的存储 单元个数常和系统中 LED 的个数相等 显示缓冲区的起始很重要 它决定了显 示缓冲区在 RAM 中的位置 在本系统程序中 设置了 70H 71H 72H 三个显示 缓冲区 3 2 33 2 3 LEDLED 接口电路接口电路 显示采用 3 位共阳 LED 动态显示方式 显示内容有温度值的百位 十位 个 位 按键并接在 8155PC 口中 PC 为读入口 显示电路实行 LED 显示 A 口字段 口 B 口为在位选口 LED 用动态显示 这里采用八段共阳 LED 模块电路如下 图 2 7 所示 图 2 7 显示接口电路 第 4 章 恒温控制系统各功能和软件设计 4 1 工作流程 恒温箱在复位后处于停止加热的状态 此时 系统默认显示设定温度值为 50 摄氏度 我们可以通过用设定键改变预设定温度 也可以直接启动运行 在 运行的过程中 系统不断的检测当前温度 并送往显示器显示 超过设定温度 值允许的范围后停止加热 当温度下降到上限 比设定温度大 2 度时 启动加 热 实行 PID 计算达到控制温度的目的 当下降到下限 比设定温度小 2 以上 时 实行全功率控制 快速达到加热到设定温度的目的 这样不断的重复上述 的过程 使温度保持在与设定的温度范围内 当然 运行过程中 也可以随时 地改变设定温度 温度设定好之后运行 系统按新设定的温度运行 4 2 主程序设计 主程序应该包括各个的初始化工作 T0 初始化 开中断 温度显示和键盘 的扫描以及看门狗子程序 其相应的程序框图以及程序见附录 T0 初始化时 设定 T0 的计数器方式为 2 初值为 06H 故它的溢出中断时间为 250 个过零同步触发脉冲 而 T1 中断服务程序的执行时间必须满足 T0 的这一 时间要求 因为 T1 的中断是嵌套在 T0 中断之中的 其中有 LED 显示子程序 按键温度设定子程序 主程序设计基本框图 主程序汇编 MAIN MOV A 03H 初始化 8155 A B 输出 C 输入 方式控制字 03H MOV DPTR 8000H MOVX DPTR A MOV TMOD 56H 定义 T0 为定时器计数方式 2 T1 为方式 1 MOV TL0 06H 装入定时初值 MOV TH0 06H CLR PT0 T0 为低中断优选 MOV IE 82H 开 T0 中断 SETB TR0 启动 T0 计数 MIAN1 ACALL LED DISP ACALLBUTTON AJMP MIAN1 4 2 1LED 显示子程序 LED 采用动态显示 先由 PA 口送段选码 PB 口送位选码 延时 1MS 指 向下一单元 判断是否 3 位显示完 完了返回 没完 位选码左移 继续显示 动态显示汇编子程序 LED DISP MOVR0 00H MOV R1 00H MOV A 03H A 口输出 B 输出 C 输入 MOV DPTR 8000H 命令状态字 MOVX DPTR A MOV R0 LED NUM1 显示存储首址送 R0 MOV R1 0FEH LED1 位选 字位码始址送 R1 MOV A R1 LED 1 MOV DPTR 8002H 位选码送 B 口 MOVX DPTR A MOV A R0 取显示数据 MOV DPTR LED TAB 字型码表首址 MOVCA A DPTR MOV DPTR 8001H A 口地址 MOVX DPTR A ACALL DELAY INC R0 指向下一显示单元 MOV A R1 JNB ACC 2 LED 2 显示完一遍 则跳转 RL A MOV R1 A AJMPLED 1 LED 2 RET LED TAB DB 0C0H 0F9H 0A4H 0B0H 99H DB 92H 82H 0F8H 80H 90H DB 88H 83H 0C6H 0A1H 86H DB 8EH 0FFH 0CH 89H 7FH DB 0BFH 4 2 2按键温度设定子程序 本设计中 安排四个按键 分别为设定建 增键 减键和移位键 可实现的功能为 开始必须按一设定建 表示系统现在处于设定状态了 如果没有按设定键 而直接按其他的三个键中的一个 那么将无效 返回 接着 如果所需设定的温度与当前温度相差不大时 可以直接按增减建来 达到设定温度的目的 当然也可以用移位键 当相差大时 我们可以按移位键 标志位又四种状态 标志位 1 时表示个位设定 并送显示 标志位为 2 时为十 位设定 并送显示 标志位是 3 时是百位设定 并送显示 当为 4 时则进行判 断其值是否超过 120 度 在所有设定完了之后 必须在一次按下设定键表示已 经设定好了 程序框图如下所示 汇编程序 温度设定子程序 BUTTON MOV A 03H A B 输出 C 输入 MOV DPTR 8000H MOVX DPTR A ACALLLED DISP BUTTON1 MOV DPTR 8003H 读 C 口 MOVXA DPTR CPL A 取反 ANL A 0FH 屏蔽高 4 位 JNZ KEY A 不等 0 则转 LJMPNKEY P0 无键按下 跳到判断设定标志位 KEY ACALLLED DISP 调用显示 ACALLDELAY2 调用延时 去抖 MOV A 0FFH 关 LED 显示 MOV DPTR 800

温馨提示

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

评论

0/150

提交评论