2 沈阳航空航天大学课程设计论文
开 始 初始化DS18B20 设定温度恒定值 显示当前温度 判断当前温度值 超过设定 温度上限 低于设定 调速 调速
图1温度控制整体流程
在本系统的总体电路设计方框图如图2所示,它由五部分组成:单片机AT89C51控制部分; DS18B20温度传感器采集部分;3位LED数码管显示部分;按键调节部分;二极管报警部分。
第 2 页
沈阳航空航天大学课程设计论文
DS18B20温度采集电路 AT89C51 单片机控制电路 LED显示电路 按键调节电路 二极管显示报警电路
图2 温度计电路总体设计方案
整个设计总体分为以下几个部分:控制部分、显示部分、温度采集部分、按键控制部分。
1、控制部分
由单片机AT89C51芯片在程序控制和外围简单组合电路作用下运行,和控制温度的上、下限,和 LED的温度显示。控制发光二级管的亮灭,起到提醒报警功能。
2、显示部分
显示电路采用3位7断共阳LED数码管,从P3口送数,P0口扫描。有两部分显示电路,第一是显示DS18B20温度传感器所检测的当前温度,第二是设定恒定的温度值。
3、温度采集部分
由DS18B20智能温度传感器直接采集被测温度。 4、按键控制部分
由三个按键控制调节,用来调节温度的恒定限值,起到预设调节作用。
2.温度传感器
2.1 DS18B20简介 2.1.1 DS18B20封装与引脚
DS18B20封装与引脚如图3
第 1 页
沈阳航空航天大学课程设计论文
图3 DS18B20的封装与引脚
2.1.2 DS18B20的简单性能
1、 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
2、 测温范围 -55℃~+125℃,固有测温分辨率0.5℃。
3、 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温。 4、 工作电源: 3~5V/DC。
5、 在使用中不需要任何外围元件。
6、 测量结果以9~12位数字量方式串行传送。 7、 不锈钢保护管直径 Φ6 。
8、 适用于DN15~25, DN40~DN250各种介质工业管道和狭小空间设备测温。 9、 标准安装螺纹 M10X1, M12X1.5, G1/2”任选。
10、 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 2.2 DS18B20的工作原理
DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。
高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。
初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。
初始时,计数器1预置的是与-55℃相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1℃计数器所需要的计数个数。
第 2 页
沈阳航空航天大学课程设计论文
DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25℃进行比较,若低于0.25℃,温度寄存器的最低位就置0;若高于0.25℃,最低位就置1;若高于0.75℃时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5℃,四舍五入最大量化误差为±1/2LSB,即0.25℃。
温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。
DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿,测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。
DS18B20工作过程一般遵循以下协议:初始化——ROM操作命令——存储器操作命令——处理数据。 2.3 DS18B20的测温原理 2.3.1 测温原理
每一片DSl8B20在其ROM中都存有其唯一的48位序列号,在出厂前已写入片内ROM 中。主机在进入操作程序前必须用读ROM(33H)命令将该DSl8B20的序列号读出。ROM命令代码见表1。
程序可以先跳过ROM,启动所有DSl8B20进行温度变换,之后通过匹配ROM,再逐一地读回每个DSl8B20的温度数据。
DS18B20的测温原理,低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 ℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55 ℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。
第 3 页
沈阳航空航天大学课程设计论文
表1 ROM操作命令
指令 读ROM 符合ROM 约定代码 33H 55H 功 能 读DS18B20 ROM中的编码 发出此命令之后,接着发出64位ROM编码,访问单线总线上与该编码相对应的DS18B20 使之作出响应,为下一步对该DS18B20的读写作准备 搜索ROM 0F0H 用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备 跳过ROM 0CCH 忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片工作。 告警搜索 命 令 温度变换 0ECH 执行后,只有温度超过设定值上限或者下限的片子才做出响应 44H 启动DS18B20进行温度转换,转换时间最长为500MS,结果存入内部9字节RAM中 读暂存器 写暂存器 0BEH 4EH 读内部RAM中9字节的内容 发出向内部RAM的第3,4字节写上、下限温度数据命令,紧跟读命令之后,是传送两字节的数据 复制暂存器 重调E2PRAM 读供电方式 48H 0BBH 0B4H 将E2PRAM中第3,4字节内容复制到E2PRAM中 将E2PRAM中内容恢复到RAM中的第3,4字节 读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1” 测温原理内部装置如图4。
第 4 页