DS18B20芯片在ETC微电脑温度控制器设计中的应用
- 格式:pdf
- 大小:183.19 KB
- 文档页数:2
数字温度传感器DS18B20及其应用数字化技术推动了信息化的革命在传感器的器件结构上采用数字化技术,使信息的采集变得更加方便。
例如,对于温度信号采集系统,传统的模拟温度传感器多为铂电阻、铜电阻等。
每一个传感器的传输线至少有两根导线,带补偿接法需要三根导线。
如果对50路温度信号进行检测,就需要100根或150根导线接到采集端口,然后还要经过电桥电路、信号放大、通道选择、A/D转换等,才能将温度信号变成数字信号供计算机处理。
DS18B20是美国DALLAS公司生产的新型单总线数字温度传感器,如图1所示。
DS18B20采用3脚(或8脚)封装,从图1中看到,从DS18B20读出或写人数据仅需要一根I/O口线。
并且以串行通信的方式与微控制器进行数据通信。
该器件将半导体温敏器件、A/D 转换器、存储器等做在一个很小的集成电路芯片上,传感器直接输出的就是温度信号数字值。
信号传输采用两芯(或三芯)电缆构成的单总线结构。
一条单总线电缆上可以挂接若干个数字温度传感器,每个传感器有一个唯一的地址编码。
微控制器通过对器件的寻址,就可以读取某一个传感器的温度值,从而简化了信号采集系统的电路结构。
采集端口的连接线减少了50倍,既节省了造价,又给现场施工带来极大的方便。
DS18B20是实现单总线测控网络的关键器件,主要包括:寄生电源、温度传感器、64位激光ROM 和单总线接口、存放中间数据的高速暂存器RAM、用于存储用户设定温度上下限值的TH和TL触发器、存储与控制逻辑、8位循环冗余校验码(CRC)发生器等七部分。
DS18B20内部存储器由ROM、RAM和E2ROM组成,其中,ROM 由64位二进制数字组成,共分为8个字节,字节0的内容是该产品的厂家代号28H,字节1~字节6的内容是48位器件序列号,字节7是ROM前56位的CRC校验码。
由于64位ROM 码具有唯一性,在使用时作为该器件的地址,通过读ROM命令可以将它读出来。
基于DS18B20测温的单片机温度控制系统基于DS18B20测温的单片机温度控制系统温度是工业控制中主要的被控参数之一.对典型的温度控制系统进行研究具有很广泛的意义。
根据不同场所、不同温度范围、精度等要求.所采用的测温元件、测温方法以及对温度的控制方法也不同.本文以实验室电烤箱为被控对象,以AT89S52单片机为控制核心,温度传感单元采用DS18B20.采用PID算法,实现智能的温度控制系统。
整个系统主控部分采用AT89S52构成单片机应用系统:温度检测部分采用DS18B20单总线数字温度传感器对温度进行检测:控制部分由固态继电器控制加热管的通断。
工作时.由键盘输入设定温度值,系统采用PID控制算法进行运箅,通过单片机AT89S52的开关量控制固态继电器(SSR)的通断,以调节烤箱内温度至设定值,稳态误差在+(-)1?。
液晶实时显示烤箱内温度和设定温度值。
单片机温度控制系统原理图如图1所示。
图1 单片机温度控制系统原理图温度检测部分采用集成温度传感器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时。
智能温度传感器DS18B20的原理与应用、摘要:DS18B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。
文章详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。
关键词:DS18B20;单线制;温度传感器;单片机DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
1DS18B20简介(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:+3.0~+5.5 V。
(4)测温范围:-55 ~+125 ℃。
固有测温分辨率为0.5 ℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
2DS18B20的内部结构DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图1所示。
(1) 64 b闪速ROM的结构如下:开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
数字温度传感器DS18B20的原理与应用1. 概述数字温度传感器DS18B20是一种广泛应用于工业控制、计算机温控等领域的传感器。
本文将介绍DS18B20的原理和应用,并对其工作原理、特点以及应用场景进行详细阐述。
2. DS18B20的工作原理DS18B20采用了数字式温度传感器技术,其工作原理基于温度对半导体材料电阻值的变化进行测量。
具体工作原理如下:1. DS18B20内部包含一个温度传感器、位移寄存器(DS)和一个多功能I/O口。
2. 温度传感器由多个晶体管组成,当温度发生变化时,晶体管的导电能力发生变化。
3. DS18B20通过I/O口与外部控制器进行通信,并将温度数据以数字形式传输。
3. DS18B20的特点DS18B20作为一种数字温度传感器,具有许多独特的特点,包括: - 高精度:DS18B20具有高精度的温度测量能力,精确到0.5°C。
- 数字输出:DS18B20通过数字信号输出温度数据,方便与其他数字设备进行连接与通信。
- 单总线接口:DS18B20采用了单总线接口通信,可以通过一根数据线与外部控制器进行连接,简化了接线工作。
- 可编程分辨率:DS18B20的分辨率可以通过配置进行调整,可以根据具体应用需求选择不同的分辨率。
4. DS18B20的应用场景DS18B20由于其特点和功能的优势,在许多领域得到了广泛应用,包括但不限于以下场景:4.1 工业控制DS18B20可以用于工业控制系统中,用于监测和控制温度。
例如,在生产线上使用DS18B20传感器实时监测设备温度,当温度超出设定范围时,及时采取控制措施,以保证生产过程的稳定性和安全性。
4.2 计算机温控DS18B20可以作为计算机温度监测的传感器,用于检测计算机主板、CPU和其他关键部件的温度。
通过DS18B20传感器的数据,可以实时监测计算机的温度状况,并进行相应的温度调控,以提高计算机的稳定性和使用寿命。
器件应用数字式温度传感器DS18B20及其应用空军工程大学导弹学院(陕西三原713800) 韩小斌 朱永文摘 要 文章介绍了新一代数字式温度传感器DS18B20,它集温度感知、数字量转化、高低温限设定和报警于一体。
文章详细地阐述了DS18B20的测量原理、特性以及在多路温度测量应用中的测量电器设计和软件设计。
关键词 DS18B20传感器 温度检测 单片机 DS18B20是美国Dallas 半导体公司的新一代数字式温度传感器,它具有独特的单总线接口方式,即允许在一条信号线上挂接数十甚至上百个数字式传感器,从而使测温装置与各传感器的接口变得十分简单,克服了模拟式传感器与微机接口时需要的A/D 转换器及其它复杂外围电路的缺点,由它组成的温度测控系统非常方便,而且成本低、体积小、可靠性高。
图1 DS18B20外部形状及管脚图1 基本特性DS18B20数字式温度传感器的外部形状、内部芯片如图1所示。
它使用一总线接口实现和外部微处理器的通信。
温度的测量范围为-55~+125b C,测量精度为0.5b C 。
传感器的供电寄生在通信的总线上,可以从一总线通信中的高电平中取得,这样可以不需要外部的供电电源。
作为替代也可直接用供电端(VDD)供电。
一般在检测的温度超过100b C 时,建议使用供电端供电,供电的范围为3~5.5V 。
当使用总线寄生供电时,供电端必须接地,同时总线口在空闲的时候必须保持高电平,以便对传感器充电。
每一个DS18B20温度传感器都有一个自己特有的芯片序列号,我们可以将多个这样的温度传感器挂接在一根总线上,实现多点温度的检测。
2 测温原理DS18B20的测温原理如图2所示。
低温系数振荡器输出的时钟脉冲信号通过由高温系数振荡器产生的门开通周期而被计数,通过该计数值来测量温度。
计数器被预置为与-55b C 对应的一个基数值,如果计数器在高温系数振荡器输出的门周期结束前计数到零,表示测量的温度高于-55b C,被预置在-55b C 的温度寄存器的值就增加一个增量,同时为了补偿温度振荡器的抛物线特性,计数器被斜率累加器所决定的值进行预置,时钟再次使计数器计数直至零,如果开门通时间仍未结束,那么重复此过程,直到高温度系数振荡器的门周期结束为止。
数字温度传感器DS18B20的结构及应用简介现如今,温度测量是一项必不可少的技术,在国家支持下已经蓬勃发展起来。
在无线温度测控技术及应用中,传感器技术是温度测控的关键技术,文章首先对温度测控系统进行了概要介绍,而后对温度传感器的分类重点对数字温度传感器(DS18B20)进行了阐述,并将数字温度传感器(DS18B20)结合了单片无线收发芯片nRF401和单片机AT89C51在花卉、蔬菜、渔业等的应用做了简要表述。
标签:温度控制;数字温度传感器;应用1 温度控制系统情况概述智能控制使自动控制、人工智能和运筹学的结合产物,在智能控制中,温度控制运用非常多。
温度是一个物理量,表征物体冷热程度,在物体的表征参数中,温度是其中重要一项。
随着科技的迅猛发展,自动控制技术得到了广泛应用。
在我们的日常生活中,温度控制的应用很常见,如:冰箱、微波炉、空调等,特别是将仪表检测技术引入其中,使得温度控制技术的智能化更上一个台阶。
在工业生产中温度控制与测量也必不可少,对于提高生产率、生产质量,保障安全生产、节约能源都起到至关重要的作用,为生产智能化、自动化奠定了基础。
温度传感器在温度测量、控制中是运用最广泛的,在智能温度报警系统中的作用不可忽视,但从国内的生产来看,温度控制器的生产水平仍然不高,与国外相比还是有很大的差距,如企业规模较小且分散、温度传感器的研发能力不足、温度控制仪表的供应不足靠进口的多、仪表控制技术及算法、软件等滞后等。
但随着我国对温度等仪表工业技术的重视,相继成立了一些研发中心,并且与外资企业合资、融资、技术合作等,使我国在此方面也有了长足的发展。
2 温度传感器简介2.1 温度测量的分类温度传感器可以根据三种方式进行不同的分类。
第一按照被测物体的温度数值分类,可分为超高温、高温、中温、低温、超低温,其中超高温为2800K以上,超低温为0K-10K;第二按照温度传感器的测温法来分类,可分为接触式和非接触式测温,当测量1000℃以上的温度时,使用非接触式的温度测量较为准确;第三依照温度传感器温度高低分类,可分为低温、中卫、中高温测量,电阻温度传感器通常用于低、中温范围的温度测量,集成温度传感器适用于室温环境,而高温测量则一般使用热电式传感器。
使用DS18B20温度传感器设计温度控制系统设计设计说明:1.1 使用DS18B20温度传感器设计温度控制系统1.在数码管上可显示采集到的温度(0~99.9℃)2.当温度低于27℃时,蜂鸣器开始以慢地“滴”声报警,P1.0口发光二极管闪烁,当温度继续降低并低于25℃时,蜂鸣器开始以快地“滴”声报警,P1.0和P1.1口发光二极管闪烁。
3.当温度高于30℃时,蜂鸣器开始以慢地“滴”声报警,P1.2口发光二极管闪烁,当温度继续升高并高于32℃时,蜂鸣器开始以快地“滴”声报警,P1.2和P1.3口发光二极管闪烁。
1.2 元件说明:(1)使用的元器件DS18B20:电压范围3.0~5.5V ;温度可测范围-55~+125℃;可编程分辨率为9~12位,对应的可分辨温度为:0.5℃、0.25℃、0.125℃和0.0625℃;测量结果直接输出数字温度信号,以“一线总线”串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。
其引脚定义图如下图:(3) 硬件连接图硬件连接图如上图:1.3 工作原理首先看控制DS18B20的指令,只列举此设计用到的,如下表:CCH 跳过ROM44H 温度转换BEH 读暂存器原理:DS18B20测量外部温度,经过温度转换,将温度物理量转换成数字信号,再传送数据到AT89C52,AT89C52控制数码管显示及二极管、扬声器的工作,从而实现了温度在数码管上显示,还有温度范围的亮灯与报警。
1.4 C语言编程见附录1.5 实验结果可将环境温度经过DS18B20温度传感器,在数码管上显示,显示准确。
附录#include<reg51.h>#include<stdio.h>#define uchar unsigned char#define uint unsigned intsbit ds=P2^2;For personal use only in study and research; not for commercial usesbit dula=P2^6;sbit wela=P2^7;sbit beep=P2^3;uint temp;float f_temp;uint warn_l1=270;uint warn_l2=250;uint warn_h1=300;uint warn_h2=320;sbit led0=P1^0;sbit led1=P1^1;sbit led2=P1^2;sbit led3=P1^3;unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87,0xff,0xef}; void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void dsreset(){uint i;ds=0;i=103;while(i>0) i--;ds=1;i=4;while(i>0) i--;}bit tempreadbit(){bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8; while(i>0) i--;return(dat);}uchar tempread(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=tempreadbit();dat=(j<<7)|(dat>>1);}return(dat);}tempwritebyte(uchar dat) {uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0) i--;}else{ds=0;i=8;while(i>0) i--;ds=1;i++;i++;}}tempchange(){dsreset();delay(1);tempwritebyte(0xcc); tempwritebyte(0x44);}uint get_temp(){uchar a,b;dsreset();delay(1);tempwritebyte(0xcc); tempwritebyte(0xbe);a=tempread();b=tempread();temp=b;temp<<=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05; return temp;}display(uchar num,uchar dat) {uchar i;dula=0;P0=table[dat];dula=1;dula=0;wela=0;i=0xff;i=i&(~((0x01)<<(num)));P0=i;wela=1;wela=0;delay(50);}dis_temp(uint t){uchar i;i=t/100;display(0,i);i=t%100/10;display(1,i+10);i=t%100%10;display(2,i);}warn(uint s,uchar led){uchar i;i=s;beep=0;P1=~(led);while(i--){dis_temp(get_temp());}beep=1;P1=0xff;i=s;while(i--){dis_temp(get_temp());}}deal(uint t){uchar i;if((t>warn_l2)&&(t<=warn_l1)){warn(40,0x01);}else if(t<=warn_l2){warn(10,0x03);}else if((t<warn_h2)&&(t>=warn_h1)){warn(40,0x04);}else if(t>=warn_h2){warn(10,0x0c);}else{i=40;while(i--){dis_temp(get_temp());}}}init_com(){TMOD=0x20;PCON=0x00;SCON=0x50;TH1=0xfd;TL1=0xfd;TR1=1;}comm(char *parr){do{SBUF=*parr++;while(!TI);TI=0;} while(*parr);}main(){uchar buff[4],i;dula=0;wela=0;init_com();while(1){tempchange();for(i=10;i>0;i--){dis_temp(get_temp());}deal(temp);sprintf(buff,"%f",f_temp); for(i=10;i>0;i--){dis_temp(get_temp());}comm(buff);for(i=10;i>0;i--){dis_temp(get_temp());}}}使用DS18B20温度传感器设计温度控制系统设计班级:电082班姓名:于川洋学号:33号时间:2011-11.-11仅供个人参考仅供个人用于学习、研究;不得用于商业用途。