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