基于DS18B20的温度控制系统设计.docx

上传人:b****7 文档编号:11468139 上传时间:2023-03-01 格式:DOCX 页数:39 大小:794.52KB
下载 相关 举报
基于DS18B20的温度控制系统设计.docx_第1页
第1页 / 共39页
基于DS18B20的温度控制系统设计.docx_第2页
第2页 / 共39页
基于DS18B20的温度控制系统设计.docx_第3页
第3页 / 共39页
基于DS18B20的温度控制系统设计.docx_第4页
第4页 / 共39页
基于DS18B20的温度控制系统设计.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

基于DS18B20的温度控制系统设计.docx

《基于DS18B20的温度控制系统设计.docx》由会员分享,可在线阅读,更多相关《基于DS18B20的温度控制系统设计.docx(39页珍藏版)》请在冰豆网上搜索。

基于DS18B20的温度控制系统设计.docx

基于DS18B20的温度控制系统设计

1、前言

温度控制系统广泛应用于社会生活的各个领域,如家电、汽车、材料、电力电子等,常用的控制电路根据应用场合和所要求的性能指标有所不同,在工业企业中,如何提高温度控制对象的运行性能一直以来都是控制人员和现场技术人员努力解决的问题。

这类控制对象惯性大,滞后现象严重,存在很多不确定的因素,难以建立精确的数学模型,从而导致控制系统性能不佳,甚至出现控制不稳定、失控现象。

传统的继电器调温电路简单实用,但由于继电器动作频繁,可能会因触点不良而影响正常工作。

控制领域还大量采用传统的PID控制方式,但PID控制对象的模型难以建立,并且当扰动因素不明确时,参数调整不便仍是普遍存在的问题。

而采用数字温度传感器DS18B20,因其内部集成了A/D转换器,使得电路结构更加简单,而且减少了温度测量转换时的精度损失,使得测量温度更加精确。

数字温度传感器DS18B20只用一个引脚即可与单片机进行通信,大大减少了接线的麻烦,使得单片机更加具有扩展性。

由于DS18B20芯片的小型化,更加可以通过单跳数据线就可以和主电路连接,故可以把数字温度传感器DS18B20做成探头,探入到狭小的地方,增加了实用性。

更能串接多个数字温度传感器DS18B20进行范围的温度检测。

 

2、温度控制系统设计

2.1方案选择

实现温度控制的方法主要有以下几种。

方案一:

采用纯硬件的闭环控制系统。

该系统的优点在于速度较快,但可靠性比较差控制精度比较低、灵活性小、线路复杂、调试、安装都不方便。

且要实现题目所有的要求难度较大。

方案二:

FPGA/CPLD或采用带有IP内核的FPGA/CPLD方式。

即用FPGA/CPLD完成采集,存储,显示及A/D等功能,由IP核实现人机交互及信号测量分析等功能。

这种方案的优点在于系统结构紧凑,可以实现复杂的测量与与控制,操作方便;缺点是调试过程复杂,成本较高。

方案三:

单片机与高精度温度传感器结合的方式。

即用单片机完成人机界面,系统控制,信号分析处理,由前端温度传感器完成信号的采集与转换。

这种方案克服了方案一、二的缺点,所以本设计任务是基于STC89C52单片机和温度传感器实现对温度的控制。

系统框图如下:

 

图2-1系统框图

2.2整体电路设计

温度传感器DS18B20从设备环境的不同位置采集温度,单片机STC89C52获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度值,通过加热和冷却对当前温度进行调整。

采集到的温度数据传输到单片机,由单片机处理后的数据送显示部分显示,当采集的温度经处理后低于设定温度的下限或高于设定温度的上限时,单片机控制报警电路发出报警声,同时相应的发光二极管发光显示。

本次设计的整体电路图见附录。

 

3、电路模块设计

3.1电源电路模块

控制系统主控制部分电源需要用5V直流电源供电,其电路如图6-1所示,把频率为50Hz、有效值为220V的单相交流电压转换为幅值稳定的5V直流电压。

其主要原理是把单相交流电经过电源变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。

由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较大,因而电源变压器的作用显现出来起到降压作用。

降压后还是交流电压,所以需要整流电路把交流电压转换成直流电压。

由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作。

需通过低通滤波电路滤波,使输出电压平滑。

稳压电路的功能是使输出直流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。

本电路使用集成稳压芯片7805解决了电源稳压问题。

电源电路如图所示。

图3-1电源电路

3.2STC89C52控制芯片

STC89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,STC89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

STC89C52单片机在电子行业中有着广泛的应用。

STC89C52芯片具有以下主要功能特性:

1、兼容MCS51指令系统;

2、8k可反复擦写(大于1000次)FlashROM;

3、32个双向I/O口;

4、256x8bit内部RAM;

5、3个16位可编程定时/计数器中断;

6、时钟频率0-24MHz;

7、2个串行中断,可编程UART串行通道;

8、2个外部中断源,共8个中断源;

9、2个读写中断口线,3级加密位;

10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;

11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。

STC89C52单片机的40个引脚中有2个专用于主电源引脚,2个外接晶振的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。

引脚图如图3-2所示:

图3-2STC89C52引脚图

具体介绍如下:

1.电源引脚Vcc和Vss

Vcc(40脚):

接+5V电源正端;

Vss(20脚):

接+5V电源负端。

2.外接晶振引脚XTAL1和XTAL2

XTAL1(19脚):

接外部石英晶体的一端。

在单片机内部,它是一个反相放大器的输入端,这个放大器构成采用外部时钟时,对于HMOS单片机,该引脚接地;对于CHOMS单片机,该引脚作为外部振荡信号的输入端。

XTAL2(18脚):

接外部晶体的另一端。

在单片机内部,接至片内振荡器的反相放大器的输出端。

当采用外部时钟时,对于HMOS单片机,该引脚作为外部振荡信号的输入端。

对于CHMOS芯片,该引脚悬空不接。

3.控制信号或与其它电源复用引脚有RST/VPD、ALE/P、PSEN和EA/VPP等4种形式。

RST/VPD(9脚):

RST即为RESET,VPD为备用电源,所以该引脚为单片机的上电复位或掉电保护端。

当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机复位到初始状态。

当VCC发生故障,降低到低电平规定值或掉电时,该引脚可接上备用电源VPD(+5V)为内部RAM供电,以保证RAM中的数据不丢失。

ALE/PROG(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功能见表3-1。

表3-1单片机P3口管脚第2功能

引脚

第2功能

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD(串行口输入端)

TXD(串行口输出端)

INT0(外部中断0请求输入端,低电平有效)

INT1(外部中断1请求输入端,低电平有效)

T0(时器/计数器0计数脉冲端)

T1(时器/计数器1计数脉冲端)

WR(外部数据存储器写选通信号输出端,低电平有效)

RD(外部数据存储器读选通信号输出端,低电平有效)

 

3.3DS18B20温度控制芯片

3.3.1DS18B20简介

DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

以上特点使DS18B20非常适用于远距离多点温度检测系统。

其封装图如图3-3所示。

图3-3DS18B20引脚图

3.3.2DS18B20的性能特点

a、独特的单线接口仅需要一个端口引脚进行通信;

b、多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

c、无须外部器件;

d、可用数据线供电,电压范围:

3.0~5.5V;

e、测温范围:

-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃;可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃;

f、12位分辨率时最多在750ms内把温度值转换为数字;

g、用户可定义的非易失性温度报警设置;

h、报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

i、负压特性:

电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。

j、温度转换时间由DS1820的2s降为750ms,且灵敏度大为提高,在逐渐升温的水中与精度为±0.5℃的温度计几乎同步,且回复性很好;

k、每个芯片唯一编码,支持联网寻址,零功耗等待。

3.3.3DS18B20供电方式

在硬件上,DS18B20与单片机的连接有两种方法,一种是用寄生电源供电,此时VCC、GND接地,I/O接单片机I/O如图3-4所示;另一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连如图3-5所示。

无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电阻。

图3-4寄生电源方式图3-5外接电源方式

本设计中,采用第二种方法,这样简化硬件电路设计,降低了整个系统的复杂度。

3.3.4DS18B20测温原理

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃形式表示。

温度值格式如图4-6所示。

图3-6温度值格式

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制。

表3-2是一部分温度值对应的二进制温度数据。

 

表3-2部分温度值对应的二进制数据

温度

二进制表示

十六进制表示

+125℃

0000011111010000

07D0H

+85℃

0000010101010000

0550H

+25.0625℃

0000000110010001

0191H

+10.125℃

0000000010100010

00A2H

+0.5℃

0000000000001000

0008H

0℃

0000000000000000

0000H

-0.5℃

1111111111111000

FFF8H

-10.125℃

1111111101011110

FF5EH

-25.0625℃

1111111001101111

FE6FH

-55℃

1111110010010000

FC90H

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。

若T>TH或TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。

因此,可以用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。

主机根据ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

DS18B20有六条控制命令,如表3-3所示:

表3-3DS18B20控制命令

指   令

约定代码

操     作   说    明

温度转换

读暂存器

写暂存器

复制暂存器

重新调E2RAM

读电源供电方式

44H

BEH

4EH

48H

B8H

B4H

启动DS18B20进行温度转换

读暂存器9个字节内容

将数据写入暂存器的TH、TL字节

把暂存器的TH、TL字节写到E2RAM中

把E2RAM中的TH、TL字节写到暂存器TH、TL字节

启动DS18B20发送电源供电方式的信号给主CPU

CPU对DS18B20的访问流程是:

先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。

DS18B20每一步操作都要遵循严格的工作时序和通信协议。

如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:

每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。

3.4复位电路模块

复位电路有上电自动复位和按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的,只要电源VCC的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。

按键手动复位有电平方式和脉冲方式两种。

其中,按键电平复位是通过使复位端经电阻与VCC电源接通而实现的,而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的。

本系统的复位电路采用上电复位方式。

电路图如图所示:

图4-7复位电路

3.5显示电路模块

本电路主要使用八段数码管和移位寄存器芯片74HC164。

单片机通过数据总线将要显示的数据信号传送到移位寄存器芯片74HC164,再由移位寄存器控制数码管的显示,从而实现移位寄存点亮数码管显示。

由于单片机的时钟频率达到12M,移位寄存器的移位速度相当快,所以我们根本看不到数据是一位一位传输的。

从人类视觉的角度上看,就仿佛是全部数码管同时显示的一样。

3.5.1移位寄存器74HC164

74HC164、74HCT164是高速硅门CMOS器件,与低功耗肖特基型TTL(LSTTL)器件的引脚兼容。

74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。

数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。

两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。

图3-874HC164引脚图

3.5.2数码管显示电路

显示部分采用LED静态显示方式,共阳极的数码管的公共端COM连接在一起接地,每位的段选线与74HC164的8位并口相连,只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符,考虑到节约单片机的I/O资源,因而采用串行接口方式,外接8位移位寄存器74HC164构成显示电路,显示电路如图所示。

图3-9显示电路

 

3.6报警电路模块

报警电路用于在温度超出设定值范围时提供声音报警,它由单片机的P1.7引脚控制。

并且通过发光二极管实现对系统运行状态的显示。

报警电路如图所示。

图3-10报警电路

3.7按键电路模块

利用单片机的IO口实现按键的中断输入。

另外需要一个与门实现与中断端口的连接。

按键电路如图所示。

图3-11按键电路

4、软件设计

系统软件设计主要包括系统程序和控制流程图,根据整个系统要求的温度测量与控制写出系统的控制流程图,然后进行编程。

具体程序见附录。

4.1控制流程图

图4-1系统流程图

4.2DS18B20工作过程及时序

DS18B20工作过程中的协议如下:

(1)初始化——

(2)ROM操作命令——(3)存储器操作命令——(4)处理数据

4.2.1初始化时序

时序如图4-2所示。

主机总线发送483μS复位脉冲,接着再释放总线(置总线为高电平)并进入接收状态。

DS18B20在检测到总线的上升沿后等待60μS发出器件存在脉冲(低电平持续60—240μS)。

初始化程序如下所示:

INIT_1820:

MOVR1,#2H;两次查询复位18b20存在

TSR0:

CLRP2.0

MOVR0,#161;主机发出延时483微秒的复位低脉冲

TSR1:

NOP

DJNZR0,TSR1

SETBP2.0;然后拉高数据线

MOVR0,#20;延时60us

TSR2:

NOP

DJNZR0,TSR2

MOVR0,#20H

TSR3:

JNBP2.0,TSR4;等待DS18B20回应

DJNZR0,TSR3

LJMPTSR5;延时

TSR4:

SETBFLAG1;置标志位,表示DS1820存在

SETBP1.5;清除DS1820不存在显示信号

SETBP1.6

SETBP1.7

LJMPTSR6

TSR5:

DJNZR1,TSR0

CLRFLAG1;清标志位,表示DS1820不存在

CLRP1.6;DS1820不存在警告信号

CLRP1.7

CLRP1.5;如果18b20不存在处理跳转

LJMPTSR8

TSR6:

MOVR0,#117

TSR7:

DJNZR0,TSR7;时序要求延时一段时间

TSR8:

SETBP2.0

RET

图4-2初始化时序图

此初始化程序功能为:

检测DS18B20是否存在,如存在,将位地址38H置1;如不存在,将位地址38H清零。

4.2.2写时序

单片机写DS18B20的时序如图4-3所示,当主机总线从高拉至低电平时就产生写时间隙,DS18B20在检测到下降沿后15μS时开始采样总线上的电平,所以15μS之内应将所需写的位送到总线上,DS18B20在60μS以内对总线采样,每写一位总时间必须在60—120μS之间完成。

若低电平写入的位是0,高电平写入的位是1,连续写时位间的间隙应大于1μS。

程序如下所示:

WRITER_1820:

MOVR2,#8;一共8位数据

CLRC

WR1:

CLRP2.0

MOVR3,#5;要求15us内写数

DJNZR3,$

RRCA

MOVP2.0,C

MOVR3,#21;时序要求,所有写时序至少维持60us

DJNZR3,$;执行该条指令用时间2us

SETBP2.0

NOP

DJNZR2,WR1

SETBP2.0

RET

图4-3单片机写DS18B20时序图

4.2.3读时序

单片机读DS18B20的时序如图5-4所示,单片机主动产生一个下降沿的启动信号,并维持低电平大于1μS后释放总线,15μS后DS18B20占主动权,DS18B20会将数据按位放在总线上(低位在先,当读取两个字节的温度值时,低字节在先),这时单片机可读取信号,读取一位的时间应在60μS内完成。

当需要读取下一位时再产生下降沿启动信号。

 

图4-4单片机读DS18B20的时序图

READ_1820:

MOVR4,#2;将温度高位和低位从DS18B20中读出

MOVR1,#TEMPER_L;低位存入29H(TEMPER_L),高位存入28H(TEMPER_H)

RE00:

MOVR2,#8;数据一共有8位

RE01:

CLRC

SETBP2.0

NOP

NOP

CLRP2.0

NOP

NOP

NOP

SETBP2.0

MOVR3,#4

RE10:

DJNZR3,RE10

MOVC,P2.0

RRCA

MOVR3,#20

RE20:

DJNZR3,RE20

DJNZR2,RE01

MOV@R1,A

DECR1

DJNZR4,RE00

RET

此程序功能为:

读取DS18B20A/D转换后的温度值,转换后的二进制存入29H、28H单元。

 

5、闭环控制

PID调节器在工业控制领域得到了很大的发展和广泛的应用。

它的结构简单,参数易于调整,而且人们在长期的应用中积累了丰富的经验,再加上计算机控制技术的结合,使得PID具有很大的灵活性和适用性。

考虑各种因素,本设计中采用了PID调节器进行控制。

此温度闭环控制系统设定四个温度值,分别为50、60、70、80。

用户可以根据需要进行温度的设定,在与18b20实际测得温度进行比较,得到的偏差(此时的偏差是实际温度,即输出值,与给定温度的差值)作为数字控制器的输入,数字控制器的输出经过数模转换后作用于被控对象(加热杯)进行偏差调整。

其闭环控制系统框图如下所示:

图5-1闭环控制系统的结构框图

5.1被控对象的传递函数测定

采用阶跃响应曲线法对其进行传递函数GP(s)的测定。

5.2控制算法

适用PID控制器。

计算机控制系统是一种采样控制系统,其只能根据采样时刻的偏差值计算控制量。

因此,利用外接矩形法进行数值积分,一阶后向差分进行数值微分,当选定的采样周期为T时,有

如果采样周期足够小,这种离散逼近相当准确。

但周期小对于硬件的要求也将提高很多,故需要对以上算式进行改进。

由上式可导出下面的式子:

此式称为增量型PID控制式。

增量型控制算式具有如下优点:

1.计算机只输出控制增量,即执行机构位置的变化部分,因而误动作影响较小

2.在i时刻的输出

,只需要用到此刻的偏差以及前一时刻、前两时刻的偏差

和前一次的输出值,这大大节约了内存和计算时间。

3.在进行手动-自动切换时,控制量冲击小,能平滑地过渡。

增量型PID算式经过移项可以写成如下式所示:

按照上式表示的递推PID算式,计算出每输出一次

,要做四次加法、两次减法、四次乘法和两次除法。

若将该式稍加合并整理写成如下形式:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1