1、1基于单片机的烘箱温度控制器设计目录1. 项目概述11.1. 该设计的目的及意义11.2. 该设计的技术指标22. 系统设计32.1. 设计思想32.2. 方案可行性分析42.3. 总体方案53. 硬件设计63.1. 硬件电路的工作原理63.2. 参数计算74. 软件设计84.1. 软件设计思想84.2. 程序流程图94.3. 程序清单105. 系统仿真与调试115.1. 实际调试或仿真数据分析115.2. 分析结果136. 结论127. 参考文献138. 附录1421.项目概述:1.1该设计的目的及意义温度的测量及控制,随着社会的发展,已经变得越来越重要。而温度是生产过程和科学实验中普遍而且
2、重要的物理参数,准确测量和有效控制温度是优质,高产,低耗和安全生产的重要条件。在工业的研制和生产中,为了保证生产过程的稳定运行并提高控制精度,采用微电子技术是重要的途径。它的作用主要是改善劳动条件,节约能源,防止生产和设备事故,以获得好的技术指标和经济效益。而本设计正是为了保证生产过程的稳定运行并提高控制精度,采用以51 系列单片机为控制核心,对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标。通过本设计的实践,将以往学习的知识进行综合应用,是对知识的一次复习与升华,让以往的那些抽象的知识点在具体的实践中体现出来,更是对自己自身的挑战。1.2该设计
3、的技术指标设计并制作一个基于单片机的温度控制系统,能够对炉温进行控制。炉温可以在一定范围内由人工设定,并能在炉温变化时实现自动控制。若测量值高于温度设定范围,由单片机发出控制信号,经过驱动电路使加热器停止工作。当温度低于设定值时,单片机发出一个控制信号,启动加热器。通过继电器的反复开启和关闭,使炉温保持在设定的温度范围内。(1) 1KW 电炉加热(电阻丝),最度温度为 120(软件实现)(2) 恒温箱温度可设定,温度控制误差2(软件实现 PID)(3) 实时显示温度和设置温度,显示精度为 1(LED)。(4) 温度超过设置温度5,发出超限报警,升温和降温过程不作要求。(5) 升温过程采用 PI
4、D 算法, 控制器输出方式为 PWM 输出方式,降温采用自然冷却。(6) 功率电路 220 VAC 供电,强弱电气电隔离2.系统设计2.1. 设计思想以 87C51 单片机为整个温度控制系统的核心,为解决系统出现一时的死机的问题,需构建复位电路,来重新启动整个系统。要想控制温度,首席必须能够测量温度,就需要一温度传感器,将测量得到的温度传给单片机,经单片3机处理后,去控制继电器等器件实现电炉的断与通来达到温度期望值,当温度超过设定上下限值时,可以通过中断信号,控制指示灯的亮灭,来提醒温度过高或过低,以便采取必要的措施,来阻断或导通电炉进行加热或者冷却,以使温度保持在设定值,更可以通过 LED
5、显示设定值和温度实时值,可以设定一功能键,来切换是显示设定值还是温度实时值,另外如果想更改设定温度值,可以通过设定加减键来实现温度设定值的增减,而温度的控制过程可以通过软件编程实现最优控制,比如 PID 算法。2.2. 可行性方案分析实现温度控制的方法主要有以下几种。1.方案一:采用纯硬件的闭环控制系统。该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。且要实现题目所有的要求难度较大。2.方案二:FPGA/CPLD 或采用带有 IP 内核的 FPGA/CPLD 方式。即用 FPGA/CPLD完成采集,存储,显示及 A/D 等功能,由 IP 核实现人
6、机交互及信号测量分析等功能。这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。3. 方案三:单片机与高精度温度传感器结合的方式。即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。这种方案克服了方案一、二的缺点,所以本课题任务是基于单片机和温度传感器实现对温度的控制。2.3. 总体方案(1)系统结构框图:80C51单片机键盘模块(输入)被控对象 温度传感器DS18B20复位电路显示模块(LED )报警电路(蜂鸣器或者指示灯)温度控制电路4(2)闭环回路系统3.硬件设计3.1.硬件电路的工作原理3.1.1 单片机
7、选择单片机是整个控制系统的核心,要满足大内存、高速率、通用性、价格便宜等要求,本设计选择 87C51 作为主控芯片。87C51 是 INTEL 公司 MCS-51 系列单片机中基本型产品,它采用 INTEL 公司可靠的 CHMOS工艺技术制造的高性能 8 位单片机,属于标准的 MCS-51 的体系结构和指令系统。它结合了 HMOS 的高速和高密度技术及 CHMOS 的低功耗特征,是 80C51BH 的 EPROM 版本,电改写光擦除的片内 4kB EPROM。87C51 内置中央处理单元、128 字节内部数据存储器 RAM、32 个双向输入/输出(I/O)口、2个 16 位定时/计数器和 5
8、个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。快速脉冲编程,如编写 4kB 片内 ROM 仅需 12 秒。此外,87C51 还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结 CPU 而 RAM 定时器、串行口和中断系统维持其功能。掉电模式下,保存 RAM 数据,时钟振荡停止,同时停止芯片内其它功能。87C51有 PDIP 和 PLCC 两种封装形式。单 片 机 87C51 引 脚 图主要功能特性:给定值87C51单片机驱动电路晶闸管主电路被控对象输出温度采 样 电 路5 标准 MCS-51 内核和指令系统 4kB 内部 ROM(外部可扩展至 64kB) 32
9、个可编程双向 I/O 口 128x8bit 内部 EPRAM(可扩充 64kB外部存储器) 2 个 16 位可编程定时/计数器 时钟频率 0-16MHz 5 个中断源 5.0V 工作电压 可编程全双工串行通信口 布尔处理器 2 层优先级中断结构 电源空闲和掉电模式 快速脉冲编程 2 层程序加密位 PDIP 和 PLCC 封装形式 兼容 TTL 和 CMOS 逻辑电平(1)电源引脚 Vcc 和 VssVcc(40 脚):接+5V 电源正端;Vss(20 脚):接+5V 电源正端。(2)外接晶振引脚 XTAL1 和 XTAL2XTAL1(19 脚):接外部石英晶体的一端。在单片机内部,它是一个反相
10、放大器的输入端,这个放大器构成采用外部时钟时,对于 HMOS 单片机,该引脚接地;对于 CHOMS 单片机,该引脚作为外部振荡信号的输入端。XTAL2(18 脚):接外部晶体的另一端。在单片机内部,接至片内振荡器的反相放大器的输出端。当采用外部时钟时,对于 HMOS 单片机,该引脚作为外部振荡信号的输入端。对于 CHMOS 芯片,该引脚悬空不接。(3)控制信号或与其它电源复用引脚有 RST/VPD、ALE/P、PSEN 和 EA/VPP 等 4 种形式。RST/VPD(9 脚):RST 即为 RESET,VPD 为备用电源,所以该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚
11、上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。当 VCC 发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部 RAM 供电,以保证 RAM 中的数据不丢失。ALE/ P (30 脚):当访问外部存储器时,ALE(允许地址锁存信号)以每机器周期两次的信号输出,用于锁存出现在 P0 口的地址信号。PSEN(29 脚):片外程序存储器读选通输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期 PESN 两次有效,以通过数据总线口读回指令或常数。当访问外部数据存储器期间,PESN 信号将不出现。EA/Vpp(31 脚):EA
12、为访问外部程序储器控制信号,低电平有效。当 EA端保持高电平时,单片机访问片内程序存储器 4KB(MS52 子系列为 8KB)。若超出该范围时,自动转去执行外部程序存储器的程序。当 EA 端保持低电平时,6无论片内有无程序存储器,均只访问外部程序存储器。对于片内含有 EPROM 的单片机,在 EPROM 编程期间,该引脚用于接 21V 的编程电源 Vpp。(4)输入/输出(I/O)引脚 P0 口、P1 口、P2 口及 P3 口P0 口(39 脚22 脚):这 8 条引脚有两种不同功能,分别适用于两种不同情况。第一种情况是 89S51 不带片外存储器,P0 口可以作为通用 I/O 口使用,P0.
13、0-P0.7 用于传送 CPU 的输入/输出数据。第二种情况是 89S51 带片外存储器,P0.0-P0.7 在 CPU 访问片外存储器时用于传送片外存储器的低 8 位地址,然后传送 CPU 对片外存储器的读写数据。 P1 口(1 脚8 脚):这 8 条引脚和 P0 口的 8 条引脚类似,P1.7 为最高位,P1.0 为最低位。当 P1 口作为通用 I/O 口使用时,P1.0-P1.7 的功能和 P0 口的第一功能相同,也用于传送用户的输入和输出数据。 P2 口(21 脚28 脚):这组引脚的第一功能和上述两组引脚的第一功能相同,既它可以作为通用 I/O 口使用。它的第二功能和 P0 口引脚的
14、第二功能相配合,用于输出片外存储器的高 8 位地址。 P3 口(10 脚17 脚):P3.0P3.7 统称为 P3 口。它为双功能口,可以作为一般的准双向 I/O 接口,也可以将每 1 位用于第 2 功能,而且 P3 口的每一条引脚均可独立定义为第 1 功能的输入输出或第 2 功能。单片机 P3口管脚第 2功能引脚 第二功能P1.0 RXD(串行口输入端)P1.1 TXD(串行口输出端)P1.2 INT0(外部中断 0 请求输入端,低电平有效)P1.3 INT1(外部中断 1 请求输入端,低电平有效)P1.4 T0(定时器/计数器 0 计数脉冲端)P1.5 T1(定时器/计数器 1 计数脉冲端
15、)P1.6 WR(外部数据存储器写选通输出端,低电平有效)P1.7 RD(外部数据存储器读选通输出端,低电平有效)3.12.温度传感器的选择本系统采用 DALLAS 半导体公司生产的一线式数字温度传感器 DS18B20 采集温度数据,DS18B20 属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。1、 DS18B20 的主要特性1.1. 适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据 线供电1.2. 独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条
16、口线即可 实现微处理器与 DS18B20 的双向通讯71.3. DS18B20 在使用中不需要任何外围元件,全部传感元件及转换电路集成在 形如一只三极管的集成电路内1.4. 温范围55125,在-10+85时精度为0.51.5.可编程的分辨率为 912 位,对应的可分辨温度分别为 0.5、0.25、0.125和 0.0625,可实现高精度测温1.6. 在 9 位分辨率时最多在 93.75ms 内把温度转换为数字,12 位分辨率时最多在 750ms 内把温度值转换为数字,速度更快1.7. 用户可分别设定各路温度的上、下限2、 DS18B20 的外形和内部结构DS18B20 内部结构主要由四部分组
17、成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的外形及管脚排列如下图DS18B20 引脚定义: (1)DQ 为数字信号输入/输出端; (2)GND 为电源地; (3)VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。 DS18B20 内部结构图3、 DS18B20工作原理 DS18B20 的读写时序和测温原理与 DS1820 相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由 2s 减为 750ms。 DS18B20 测温原理如图 3 所示。图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉
18、冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度寄存器被预置在55所对应的一个基数值。计数器 1 对低温度系数晶振产生的脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图 3 中的8斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器 1 的预置值。图 3: DS18B20 测温原理框图表
19、 2 DS18B20 高速暂存器序号寄存器名称 作 用 序号 寄存器名称 作用0123温度低字节温度高字节TH/用户字节 1HL/用户字节 2以 16 位补码形式存放以 16 位补码形式存放存放温度上限存放温度下限4、5678保留字节 1、2计数器余值计数器/CRC以 12 位转化为例说明温度高低字节存放形式及计算:12 位转化后得到的12 位数据,存储在 18B20 的两个高低两个 8 位的 RAM 中,二进制中的前面 5 位是符号位。如果测得的温度大于 0,这 5 位为 0,只要将测到的数值乘于0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的数值需要取反加 1 再
20、乘于 0.0625 才能得到实际温度。表 3 温度高低字节存放形式高 8 位 S S S S S 26 25 24 低 8 位 23 22 21 20 2-1 2-2 2-3 2-4 在硬件上,DS18B20 与单片机的连接有两种方法,一种是 Vcc 接外部电源,GND 接地,I/O 与单片机的 I/O 线相连;另一种是用寄生电源供电,此时UDD、GND 接地,I/O 接单片机 I/O。无论是内部寄生电源还是外部供电,I/O 口线要接 5K 左右的上拉电阻。 9DS18B20 有六条控制命令,如表 4 所示:表 4 DS18B20 控制命令指 令 约定代码操 作 说 明温度转换读暂存器写暂存器
21、复制暂存器重新调 E2RAM读电源供电方式44HBEH4EH48HB8HB4H启动 DS18B20 进行温度转换读暂存器 9 个字节内容将数据写入暂存器的 TH、TL 字节把暂存器的 TH、TL 字节写到 E2RAM 中把 E2RAM 中的 TH、TL 字节写到暂存器TH、TL 字节启动 DS18B20 发送电源供电方式的信号给主CPUCPU 对 DS18B20 的访问流程是:先对 DS18B20 初始化,再进行 ROM 操作命令,最后才能对存储器操作,数据操作。DS18B20 每一步操作都要遵循严格的工作时序和通信协议。如主机控制 DS18B20 完成温度转换这一过程,根据DS18B20 的
22、通讯协议,须经三个步骤:每一次读写之前都要对 DS18B20 进行复位,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20进行预定的操作。4. 温度传感器 DS18B20 的引脚103.1.3 单片机控制模块控制模块是整个设计方案的核心,它控制了温度的采集、处理与显示、温度值的设定与温度越限时控制电路的启动。本控制模块由单片机 AT89S51 及其外围电路组成。(1) 复位和时钟脉冲电路该电路采用按键加上电复位,S1 为复位按键,复位按键按下后,复位端通过小电阻 R1 与电源接通,迅速放电,使 RST 引脚为高电平,复位按键弹起后,电源通过大电阻对电容 C3
23、重新充电,RST 引脚端出现复位正脉冲.87C51 内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟脉冲,外部还需附加电路,本设计采用内部时钟方式,利用芯片内部的振荡器,然后在引脚 XTAL1 和 XTAL2 两端跨接晶体振荡器,就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路,C1 和 C2 的值通常选择为 30pF 左右,晶振 Y 选择12MHz.为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器电容应尽可能安装得与单片机引脚 XTAL1 和 XTAL2 靠近。3.14. 温度数据采集模块温度由 DALLAS 公司生产的一线式数字温度传感器 DS18B20 采集。D
24、S18B20 测温范围为-55C+125C,测温分辨率可达 0.0625C,被测温度用符号扩展的 16 位补码形式串行输出。CPU 只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。本设计采用三引脚 PR-35 封装的 DS18B20,其引脚图见图 3。Vcc 接外部+5V 电源,GND 接地,I/O 与单片机的 P3.4(T0)引脚相连。113.14. 显示模块显示部分采用 LED 静态显示方式,共阴极的数码管的公共端 COM 连接在一起接地,每位的段选线与 74HC164 的 8 位并口相连,只要在该位的段选线上保持段选码电平,该位就能保持
25、相应的显示字符,考虑到节约单片机的 I/O 资源,因而采用串行接口方式,外接 8 位移位寄存器 74HC164 构成显示电路,电路如图 5 所示。74HC164 的逻辑功能介绍如下:当清除端(CLEAR)为低电平时,输出端(QAQH)均为低电平。 串行数据输入端(A,B)可控制数据。当 A、B 任意一个为低电平,则禁 止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下 Q0 为低电平。当 A、B 有一个为高电平,则另一个就允许输入数据,并在 CLOCK 上升沿作用下决定 Q0 的状态。真值表如表 5 所示。在单片机的 TXD(P3.1)运行时钟信号,将显示数据由RXD(P3.0)口串行输出至
26、 74HC164 的 A、B 端。123.1.5. 温度设置模块温度设置部分采用独立式按键,S4 为温度值加 1 按键,与单片机的 P0.0口相连;S3 为温度值减 1 按键,与单片机的 P0.1 口相连。当没有键按下时,单片机与之相连的输入口线为高电平,当任何一个按键按下时,与之相连的 输入口线被置为低电平,产生外中断条件,在 中断服务程序中读取键盘值。温度设置电路如图 7 所示。开关 作用S2 温度设置加 1 键S3 温度设置减 1 键S4 功能转换键,按下 LED 显示温度设定值,不按,LED 显示实时温度3.1.6.控制电路控制电路与单片机的 P0.6 口相连,由于单片机输出控制信号非
27、常微弱,需要用三极管来驱动外围电路,三极管选用 NPN 型的,当检测温度低于设定温度时,在单片机的 P0.6 口输出高电平控制信号,使三极管导通,使继电器两控制端产生压差,从而使继电器吸合,常开触点接通,控制外部电路对锅炉进行加热;当检测温度高于设定温度时,单片机输出低电平信号,三极管截止,继电器不吸合,外部电路停止加热。控制电路电路图如图所示。133.2参数计算4.软件设计4.1软件设计思想:纵观硬件设计,可以知道,主程序在执行过程中要调用五个子程序,分别是温度采集程序,键盘处理程序,数码管显示程序,温度处理程序和数据存储程序:(1) 温度采集程序:对温度传感器送过来的数据进行处理,进行判别和显示。(2) 键盘处理程序:实现键盘的输入案件的识别以及相关处理。(3) 数码管显示程序:向数码管的显示送数据,控制系统的显示部分。(4) 温度处理程序:对采集的温度和设置的上下限进行比较,做出判断,并由二极管和指示灯输出。(5) 数据存储程序:对键盘的设置的数据进行存储。144.2.程序流程图:系 统 框 图开始初始温度的设置当前温度与设定送显示显示温度采集当前温度当前温度与设定值相比较不变读键盘键盘值向上键向下键温度设定减一温度设定加一低于设定的最低温0 摄氏度 5 度时,继电器吸合高于设定的最低温120 摄氏度 5 度时, 继电器断开自然冷却 电炉开始加热15