0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AT89S52单片机和DS18B20温度传感器实现智能温度控制系统的设计

电子设计 来源:微计算机信息 作者:余瑾 2020-10-28 10:03 次阅读

温度是工业控制中主要的被控参数之一.对典型的温度控制系统进行研究具有很广泛的意义。根据不同场所、不同温度范围、精度等要求.所采用的测温元件、测温方法以及对温度的控制方法也不同.本文以实验室电烤箱为被控对象,以AT89S52单片机为控制核心,温度传感单元采用DS18B20.采用PID算法,实现智能的温度控制系统。

1 系统组成

整个系统主控部分采用AT89S52构成单片机应用系统:温度检测部分采用DS18B20单总线数字温度传感器对温度进行检测:控制部分由固态继电器控制加热管的通断。工作时.由键盘输入设定温度值,系统采用PID控制算法进行运箅,通过单片机AT89S52的开关量控制固态继电器(SSR)的通断,以调节烤箱内温度至设定值,稳态误差在+(-)1℃。液晶实时显示烤箱内温度和设定温度值。

单片机温度控制系统原理图如图1所示。

基于AT89S52单片机和DS18B20温度传感器实现智能温度控制系统的设计

图1 单片机温度控制系统原理图

2 温度检测电路

温度检测部分采用集成温度传感器DS18B20,它采用独特的单口接线方式传输,在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯,不需要外围器件,全部传感元件及转换电路集成在形如一只i极管的集成电路内,外加电源范围是3.0~5.5V,测温范围从-55%到+125℃,在-1O℃~+85℃同有分辨率为0.5℃,测量结果以9位到12位数字量方式直接输出数字温度信号,以”一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。

DS18B20测温原理如图2所示。图中低温度系数品振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。计数器1和温度寄存器被预置在-55%所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时。温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图2中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值。

图2 DS18B20测温原理图

3 系统软件设计

3.1温度检测子程序

DS18B20使用的关键在于清楚总线的读写时序。

由于DS18B20外接电路极为简单,所以电路连接没有问题;但在软件编程上,就要求严格按照它的时序进行读写操作。具体操作如下:

对DS18B20操作时,首先要将它复位。将DQ线拉低480至960μs,再将数据线拉高15至60μs,然后,DS18B20发出60至此240μs的低电平作为应答信号,这时主机才能对它进行其它操作。

写操作:将数据线从岛电平拉至低电平,产生写起始信号。从DQ线的下降滑起计时,在15μs到60μs这段时问内对数据线进行检测,如数据线为高电平则写1;若为低电平,则写0,完成了一个写周期。在开始另一个写周期前,必须有1μs以上的高电平恢复期。每个写周期必须要有60μs以上的持续期。

读操作:主机将数据线从高电平拉至低电平1μs以上,再使数据线升为高电平,从而产生读起始信号。从主机将数据线从高电平拉至低电平起15μs至60μs,主机读取数据。每个读周期最短的持续期为60μs。周期乏问必须有1μs以上的高电平恢复期。

系统软件采用keil c51编制。

复位子程序:

sbit DQ=P3^3:定义数据线口地址

unsigned char reset()

{

unsigned char presence;

DQ=O; //拉低DQ总线开始复位

delay(30); //保持低电平480us

DQ=1; //释放总线

delay(3); //等待芯片应答信号75us

presence=DQ; //获取应答信号

delay(28); //延时以完成整个时序

return(presence); //返回应答信号,有芯片应答返同0,无芯片则返回1

}

读一位数据子程序

unsigned char read_bit()

{

unsigned char i,value_bit;

DQ=0; //拉低DQ,开始读时序

DQ=1; //释放总线

for(i=0;i《2;i++){} //8us delay

value_bit=DQ;

return(value_bit);

}

读一字节数据子程序:

unsigned char read__byte()

{

unsigned char i,value=0;

for(i=0;i《8;i++)

{

if(read_bit()) //读一字节数据,一个时序中读一次,并作移位处理

value!=0x01《 delay(4); //延时80us以完成此次都时序,之后再读下一数据

}

return(value);

}

延时子程序void delay(unsigned char time).延时时间为25usx time

3.2 控制算法子程序

目前数字PID控制器被广泛应用十温度控制系统之中,本系统即以PID控制算法为核心,通过实验测试的方法获得控制参数范围.然后应用试凑法进行参数整定,最终达到较为快速,精确的控制。通过PID算法得到SSR固态继电器“通”在总通断时间的百分比。

PID算法的增量表达式为:

其中,k表示第k次采样,s(k)为设定温度,y(k)为实际温度,u(k)为电炉功率控制,KP为比例系数,e(t)为误差,e(k)=y(k)一s(k)。T1为积分时间常数,TD为微分时问常数:T为采样周期。

PID控制器的这些参数,分别对系统性能产生不同的影响。Kp加大,响应速度加快,可以减小稳态误差.积分时间常数T1越小。积分作用越强,积分控制能消除系统的稳态误差,提高控制系统的控制精度。微分时问常数Tn越大,微分作用越强,微分控制可以改善动态特性,如超调量减小,调节时问缩短。采样周期T直接影响到系统的控制性能。采样周期太小偏差信号也会过小,计算机将会失去调节的作用,采样周期过长,又会引起过大的误差,因此采样周期必须综合考虑。

扩充响应曲线法是当系统在给定值处于平衡后,加一阶跃输入(如图3a所示)。用仪表记录下被调参数在阶跃作用下的变化过程曲线,如图3b所示。在曲线最大斜率k处做切线,求得滞后时间t,对象时问常数Tm,以及它们的比值Tm/t。根据所求得的Tm、t和Tm/t的值,查表1即可求得控制器的T、Kp、Ti和Td。由于温度控制过程千差万别,经验数据不一定就合适,最后可用试凑法逐步调试进行确定。

图3 扩充响应曲线法

表1 扩充响应曲线法整定参数表

为了得到最佳的控制效果,我们采用了扩允响应曲线法和现场经验试凑法来整定各项参数。

所谓试凑法是人们在长期工作程实践中,从各种控制规律对系统控制质量的影响的定性分析总结出来的一种行之有效、并得到广泛应用的工程整定方法。在实际现场整定过程中,我们首先通过扩充响应曲线法整定参数,设定初始的PID参数进行控制,为了达到理想的控制目标,对PID参数进行了不断的调整,原则是要保持PID参数按先比例,后积分,最后微分的顺序进行反复试凑至获得满意的控制效果和PID控制参数。

4 结束语

该系统利用DS18B20进行测温,基于单片机AT89S52进行温度控制,具有硬件电路简单,控温精度高(误差在±1℃范围内)、功能强、体积小、价格低.简单灵活等优点,可以应用于控制温度在-55℃到+125℃之间的各种场合,可以实现温度的实时采集、显示与控制功能,是一种较理想的智能化控制系统。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6002

    文章

    43990

    浏览量

    621062
  • 温度传感器
    +关注

    关注

    48

    文章

    2651

    浏览量

    154336
  • 控制系统
    +关注

    关注

    41

    文章

    5966

    浏览量

    108782
收藏 人收藏

    评论

    相关推荐

    基于AT89S52的测温报警系统

    系统AT89S52单片机控制核心,利用新型一线制温度传感器
    发表于 03-08 15:05

    DS18B20数字温度

    DS18B20温度传感器通信,控制温度的采集过程和进行数据通信;(2)利用数码管显示测量的温度
    发表于 07-26 15:39

    基于AT89S52DS18B20温度报警

    我需要汽车水温高报警装置设计,功能要求:用AT89S52DS18B20等软件实现温度>=105℃时,LED灯亮、蜂鸣器响,需要你们提供原理图、程序和仿真图,不要太复杂,有报酬的。QQ
    发表于 12-11 21:57

    智能温度报警系统设计资料下载

    \AT89S52 specification5000.doc \AT89S52 主要性能.doc \at89s52.pdf \AT89S52单片机
    发表于 07-19 07:18

    基于单总线数字温度传感器DS18B20的测温系统方案

    广泛应用。传统的温度检测方式一般采用热电偶或热敏电阻,输出模拟信号,经A/D转换后才能送入单片机处理,检测电路复杂。  因此,本文采用单总线智能型数字
    发表于 11-06 15:18

    基于DS18B20数字温度传感器的设计方案

    主机就可以开始对从进行ROM命令和功能命令操作。  3 基于DS18B20高精度数字温度传感器  基于DS18B20高精度数字
    发表于 11-12 16:30

    基于DS18B20的MOA温度远程监控系统设计

    温度, 就可以判断MOA 的当前工作状态。  论文设计的MOA温度在线监测系统, 以DS18B20温度
    发表于 12-04 15:57

    单片机AT89S52温度检测与保护电路设计如何实现

    广泛应用于温度检测和温度控制中;同时单片机控制可控硅触发信号也成为今后发展趋势。因此,设计了基于Atmel公司的
    发表于 04-21 07:20

    基于AT89S51单片机和数字温度传感器DS18B20组成的多路温度检测系统

    提出了基于AT89S51单片机和数字温度传感器DS18B20组成的多路温度检测
    发表于 04-28 07:36

    怎么采用DS18B20和NiosⅡ设计的远程温度控制系统

    采用AT89S51系列单片机传感器DS18B20和NiosⅡ设计的远程温度控制系统具有结构新颖
    发表于 04-30 06:09

    如何利用DS18B20单片机实现智能风扇调速系统的设计

    总体设计框图系统电路设计总体设计方框图所示,控制器采用单片机AT89S52温度传感器采用
    发表于 11-10 06:48

    利用DS18B20温度传感器设计智能恒温宠物箱装置

    本课题在设计中力求人性化的智能控制,以中央芯片STC89C52为核心,它是一款高性能、低功耗、高性能CMOS8位微控制器单片机启动程序
    发表于 12-02 06:37

    怎样通过STC89C52单片机温度芯片DS18B20通信

    主要是通过STC89C52单片机温度芯片DS18B20通信,让LCD1602来显示温度,其电路原理图如下:注意:
    发表于 12-07 07:22

    DS18B20温度显示报警控制设计

    本文设计了一种基于AT89C51 单片机DS18B20温度控制系统。该设计通过AT89S52
    发表于 12-17 00:24 696次下载
    <b class='flag-5'>DS18B20</b><b class='flag-5'>温度</b>显示报警<b class='flag-5'>控制</b>设计

    DS18B20温度传感器的数字温度计设计案例

    本设计采用的主控芯片是ATMEL公司的AT89S52单片机,数字温度传感器是DALLAS公司的DS18B20。本设计用数字
    发表于 05-09 16:02 48次下载