DS18B20温度传感器学习和总结
DS18B20使用心得
DS18B20温度传感器使用心得这个类型的传感器,可能以后别人会用上,鉴于自己在这个驱动上面花费了不少心思,我想写个文档可以对今后其他人可能用到传感器提供方便,可以尽快上手。
开发环境:STVD,cosmic硬件平台:STM8s207r8外接了一个5K的上拉电阻。
_Bool DS18B20_IO @PG_DDR:7;//1 输出;0 输入_Bool DS18B20_HL @PG_ODR:7;//1 high;0 low_Bool DS18B20_STATE @PG_CR1:7;//1 0 1 0_Bool DS18B20_DQ @PG_IDR:7;//DQ#define DS18B20_OUTPUT DS18B20_IO=1;//输出#define DS18B20_INPUT DS18B20_IO=0;//输入#define DS18B20_HIGH DS18B20_HL=1;//拉高#define DS18B20_LOW DS18B20_HL=0;//拉低#define DS18B20_PULL_UP DS18B20_STA TE=1;//上拉输入#define DS18B20_PUSH_PULL DS18B20_STATE=0;//开漏输出1.延时DS18B20对时序的要求比较高,延时就要注意尽量要精确,我采用的是_asm("nop");等于一个时钟周期如果时钟频率为16MHZ,那么延时就是1/16M。
在示波器上测试感觉还是比较准确的。
void delay_us(unsigned int us){int i;for(i=0;i<us;i++)_asm("nop");}2.复位过程1、2是初始化过程,每次读取都要初始化,否则18b20处于待机状态,无法成功读取。
过程1:拉低信号线480-700us,使它复位,然后释放总线15-60us,18b20会拉低总线60-240us,然后它释放总线。
DS18B20数字式温度传感器
DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。
同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。
部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。
DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:( 1 )采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
( 2 )测量温度范围宽,测量精度高。
DS18B20 的测量范围为-55℃~+125℃;在-10~+85℃范围内,精度为±0.5℃。
( 3 )在使用中不需要任何外围元器件即可实现测温。
( 4 )多点组网功能。
多个DS18B20可以并联在惟一的三线上,实现多点测温。
( 5 )供电方式灵活。
DS18B20可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外电源,从而使系统结构更趋简单,可靠性更高。
( 6 )测量参数可配置。
DS18B20的测量分辨率可通过程序设定9~12位。
( 7 )负压特性。
电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
( 8 )掉电保护功能。
DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
二、DS18B20测温原理DS18B20 的内部测温电路框图低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,为计数器提供一频率稳定的计数脉冲。
DS18B20学习总结
我一般使用的是前三个指令,第四个和第五个我还没有掌握。
6
我们看到的就是写0和写一的时序了。我们先分析时间,注意的是DS1820在什么时候开始采集数据,最小值是在15us以后,最大值是在60us之后,典型值都是30us之后。我们只需保证15us之前就确定大小,60us之后退出就可以了。按照之前那个延时函数的计算,1×8+4=12us,7×8+4=60us,这两个值都可以。我们就可以得到下简单。我们先看一下数据结构吧。
由两个字节组成我们的温度数据,MSB的高5位是表示的正负数,正数都是0,负数则都是1。其余的各位则表示数据了。需要说明的是,这个温度的精度是由控制寄存器控制的。默认出厂时,设置为12位精度。我们不需要做修改。可以参见下节。
如果是正数,则直接把MSB和LSB连接起来,成为了一个16位的数,乘以0.0625即可。如果是负数,则需要把数据连接起来之后,取反加一。
我们看一下,ROM操作指令。这些指令一共有5个。
分别是33H,读ROM指令,这个指令是读取内部的固化数据的指令。第一个数据是系列码,我们之前说过了,DS18B20的值是28H。然后是48位的唯一序列号。然后是8位的CRC校验码。也就是说,我们发出了33H,就可以连续读出这8字节的数据。低位时系列码,它最先被读出来。
While(DAT) ; //DS18B20拉低总线,则表示响应。
Delay(30); //延时必须大于最大值240us,保证能够使总线变高。
If(DAT)
ComSendStr(“Reset DS18B20 OK!”);
}
DS18B20温度传感器
DS18B20是一种单总线数字温度传感器,测试温度范围-55℃-125℃,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。
单总线,意味着没有时钟线,只有一根通信线。
单总线读写数据是靠控制起始时间和采样时间来完成,所以时序要求很严格,这也是DS18B20驱动编程的难点。
一.DS18B20温度传感器1.引脚图2.DS18B20内部结构图主要由2部分组成:64位ROM、9字节暂存器,如图所示。
(1) 64 位ROM。
它的内容是64 位序列号,它可以被看作是该DS18B20 的地址序列码,其作用是使每个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。
(2) 9字节暂存器包含:温度传感器、上限触发TH高温报警器、下限触发TL低温报警器、高速暂存器、8位CRC产生器。
3.64位ROM结构图8位CRC:是单总线系列器件的编码,DS18B20定义为28H。
48位序列号:是一个唯一的序列号。
8位系列码:由CRC产生器生产,作为ROM中的前56位编码的校验码。
4.9字节暂存器结构图以上是内部9 个字节的暂存单元(包括EEPROM)。
字节0~1 是温度存储器,用来存储转换好的温度。
字节2~3 是用户用来设置最高报警和最低报警值。
这个可以用软件来实现。
字节4 是配置寄存器,用来配置转换精度,让它工作在9~12 位。
字节5~7 保留位。
字节8 CRC校验位。
是64位ROM中的前56位编码的校验码。
由CRC发生器产生。
5.温度寄存器结构图温度寄存器由两个字节组成,分为低8位和高8位。
一共16位。
其中,第0位到第3位,存储的是温度值的小数部分。
第4位到第10位存储的是温度值的整数部分。
第11位到第15位为符号位。
全0表示是正温度,全1表示是负温度。
表格中的数值,如果相应的位为1,表示存在。
如果相应的位为0,表示不存在。
6.配置寄存器精度值:9-bit 0.5℃10-bit 0.25℃11-bit 0.125℃12-bit 0.0625℃7.温度/数据关系注意:如果温度是一个负温度,要将读到的数据减一再取反二.单总线协议1.单总线通信初始化初始化时序包括:主机发出的复位脉冲和从机发出的应答脉冲。
DS18B20温度传感器学习和总结
DS18B20温度传感器学和总结
DS18B20温度测量与控制实验报告
课程实训报告《单片机技术开发》专业:机电一体化技术班级: 104201学号: 10420134姓名:杨泽润浙江交通职业技术学院机电学院2012年5月29日目录一、DS18B20温度测量与控制实验目的……………………二、DS18B20温度测量与控制实验说明……………………三、DS18B20温度测量与控制实验框图与步骤……………………四、DS18B20温度测量与控制实验清单……………………五、DS18B20温度测量与控制实验原理图…………………六、DS18B20温度测量与控制实验实训小结………………一、实验目的1.了解单总线器件的编程方法。
2.了解温度测量的原理,掌握 DS18B20 的使用。
二、实验说明本实验系统采用的温度传感器DS18B20是美国DALLAS公司推出的增强型单总线数字温度传感器。
Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
DS18B20测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20 内部结构DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发的温度报警触发器 TH 和 TL、配置寄存器。
DS18B20 的管脚排列如下: DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。
光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。
DS18B20的工作原理
DS18B20的工作原理DS18B20是一种数字温度传感器,采用单总线接口通信,具有高精度、低功耗和可靠性强的特点。
它广泛应用于温度测量领域,例如室内温度监控、气象观测、工业自动化等。
DS18B20传感器的工作原理如下:1. 温度测量原理:DS18B20采用基于半导体的温度测量原理,利用温度对半导体材料电阻值的影响来测量温度。
它内部集成为了温度传感器和模数转换器,能够将温度转换为数字信号输出。
2. 单总线通信:DS18B20传感器采用单总线通信方式,即通过一个数据线进行数据传输和控制。
这种通信方式使得传感器的连接更加简单,只需一个数据线和一个电源线即可。
3. 工作原理:DS18B20传感器的工作原理基于温度对半导体材料电阻值的影响。
传感器内部有一个温度传感器和一个模数转换器。
当传感器接收到读取温度的指令时,它会测量温度并将其转换为数字信号。
具体的工作流程如下:- 主控设备发送启动信号,将总线拉低一段时间;- 主控设备释放总线,等待传感器的响应;- 传感器检测到总线被拉低后,开始工作;- 传感器将温度数据转换为数字信号,并通过总线发送给主控设备;- 主控设备接收到传感器发送的数据,并进行解析。
4. 温度测量精度:DS18B20传感器具有高精度的温度测量能力,可实现±0.5℃的测量精度。
它还具有可调节的分辨率,可以根据需要选择9位、10位、11位或者12位的分辨率。
5. 供电方式:DS18B20传感器可以通过总线路线供电,也可以通过外部电源供电。
通过总线供电时,传感器从总线路线获取所需的电能;通过外部电源供电时,传感器需要额外的电源路线提供电能。
总结:DS18B20传感器是一种基于半导体的数字温度传感器,采用单总线通信方式,具有高精度、低功耗和可靠性强的特点。
它的工作原理是利用温度对半导体材料电阻值的影响来测量温度,并通过单总线进行数据传输和控制。
DS18B20广泛应用于各种温度测量场景,为温度监测和控制提供了可靠的解决方案。
DS18B20数字温度传感器应用详解
DS18B20数字温度传感器应用详解MC430F14板上的DS18B20电路图参考图:在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。
另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。
因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。
新的"一线器件"DS18B20体积更小、适用电压更宽、更经济。
美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持"一线总线"接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
现在,新一代的DS18B20体积更小、更经济、更灵活。
使你可以充分发挥“一线总线”的优点。
目前DS18B20批量采购价格仅10元左右。
DS18B20、DS1822 "一线总线"数字化温度传感器同DS1820一样,DS18B20也支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS1822的精度较差为±2°C。
现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
DS18B20温度传感器使用简介
DS18B20温度传感器使⽤简介DS18xx系列温度传感器是数字式温度传感器,相对于传统温度传感器精度⾼、稳定性好、电路简单、控制⽅便,在这⾥以DS18B20为例做简单应⽤介绍。
详细资料请参阅芯⽚⼿册。
⼀、特性:(1)应⽤中不需要外部任何元器件即可实现测温电路。
(2)测温范围-55~+125℃,最⼤精度0.0625℃。
(3)只通过⼀条数据线即可实现通信。
(4)每个DS1820器件上都有独⼀⽆⼆的序列号,所以⼀条数据线上可以挂接很多该传感器。
(5)内部有温度上、下限告警功能。
⼆、操作简介DS18B20⼯作时需要接收特定的指令来完成相应功能(指令,可以简单的理解为可以被识别并有相应意义的⼀系列⾼低电平信号),它的指令可分为ROM指令和RAM指令;ROM指令主要对其内部的ROM进⾏操作,如查所使⽤DS18B20的序列号等,如果只使⽤⼀个DS18B20,ROM操作⼀般就可以直接跳过了;RAM指令主要是完成对其内RAM中的数据进⾏操作,如让其开始进⾏数据采集、读数据等。
DS18B20数字温度传感器是单总线器件,数据的读写只通过⼀条数据线进⾏并且这⼀条线上允许挂很多该传感器;这样对器件进⾏读写指令时就会⿇烦⼀些,必须应⽤特定时序来识别⾼低电平信号(如写⾼电平1,并不是把数据线直接拉⾼,⽽是⽤有⼀定时序关系的⾼低电平来代表写1),所以指令表中的0、1在写给DS18B20时就得变成代表0、1电平的时序段序列。
同样,从DS18B20读数据时,也是由特定的时序来完成数据读取。
对DS18B20进⾏读写的时序图如下:硬件连接⽅式有两种,⼀种是由单独电源供电(3~5V);第⼆种是由数据线为DS18B20供电(⼯作速度相对较慢)。
单独电源供电⽅式数据线为DS1820供电⽅式三、DS1820的⼯作过程:1. 复位操作2. 执⾏ROM操作的5条指令之⼀:1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。
DS18B20数字温度计设计实验报告(1)
单片机原理及应用课程设计报告书题目:DS18B20数字温度计姓名:李成学号:133010220指导老师: 周灵彬设计时间: 2015年1月目录1. 引言 (3)1.1。
设计意义31。
2.系统功能要求32。
方案设计 (4)3。
硬件设计 (4)4. 软件设计 (8)5。
系统调试106. 设计总结 (11)7. 附录 (12)8。
参考文献15DS18B20数字温度计设计1.引言1.1. 设计意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。
其缺点如下:●硬件电路复杂;●软件调试复杂;●制作成本高。
本数字温度计设计采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,测温范围为—55~125℃,最高分辨率可达0.0625℃.DS18B20可以直接读出被测温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的热点。
1.2. 系统功能要求设计出的DS18B20数字温度计测温范围在0~125℃,误差在±1℃以内,采用LED数码管直接读显示。
2. 方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路.数字温度计总体电路结构框图如4。
1图所示:图4.13. 硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051,温度传感器使用DS18B20,使用四位共阳LED 数码管以动态扫描法实现温度显示。
AT89C51 主 控制器 DS18B20 显示电路 扫描驱动主控制器单片机AT89C51具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用.系统可用两节电池供电。
AT89C51的引脚图如右图所示:VCC:供电电压。
GND:接地.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
基于DS18B20的温控系统实习报告
河南农业大学《智能仪器设计实习》设计说明书题目:基于DS18B20的温控系统学院:理学院专业:电子信息科学与技术班级:07电科4班学号:0708101099姓名:徐亚利指导教师:成绩:时间:2010 年11 月29 日至2010 年12 月13 日智能仪器设计实习设计任务书题目基于DS18B20的温控系统专业、班级07电科4班学号0708101099 姓名主要内容、基本要求、主要参考资料等:主要内容:功能要求:完成温控制系统的设计1)在设置模式下,用户可以通过按键设置允许最高温度T H 、允许最低温度T L 及转换精度。
2)在测温模式下,实时测出当前温度并显示。
(可采用LED显示或LCD显示,显示结果精度不得低于0.1°C)。
3)在测温模式下,实时比较当前温度与报警温度,当高于高温报警T H 时,系统红灯亮,声音警报响,同时启动冷却电路开始制冷(冷却电路的启动用继电器控制);当在高温报警T H与低温报警T L 之间时,系统绿灯亮。
上述内容为基本要求,可按照自己的理解增加功能使之更完善。
基本要求:●明确设计任务,复习与查阅有关资料。
设计所用硬件芯片按给定使用。
●按要求对设计进行简要说明,总体设计方案,各部分的详细设计。
●写出体会和总结。
要求全部使用A4纸打印稿,不少于5000字。
主要参考资料:●李朝青编.《单片机原理及接口技术》(简明修订版).北京航空航天大学出版社,1998●冯克.《MCS-51单片机实用子程序及其应用实例》.黑龙江科学技术出版社,1990●杨欣荣等.《智能仪器原理、设计与发展》.中南大学出版社,2003●孙传友等.《感测技术基础》.电子工业出版社,2001●王福瑞等.《单片微机测控系统设计大全》.北京航空航天大学出版社,1999●科技期刊:《单片机与嵌入式系统应用》、《实用测试技术》、《自动化仪表》、《传感器世界》、《测控技术》、《电子技术应用》等2001年以后各期。
温度传感器实验报告
温度传感器DS18B20实验报告一、实验目的1.复习掌握Protues,keil软件的使用2.了解掌握DS18B20的工作原理以及编程方法二、实验器材单片机开发板温度传感器芯片DS18B20串口线三、实验原理一应用背景概述测量温度的关键是温度传感器。
随着技术飞速发展,传感器已进入第三代数字传感器。
本测温系统采用的DS18B20就是属于这种传感器。
DS18B20是美国DALLAS半导体公司生产的单总线数字温度传感器,它可以实现数字化输出和测试,并且有控制功能强、传输距离远、抗干扰能力强、接口方便、微功耗等优点,因而被广泛应用在工业、农业、军事等领域的控制仪器、测控系统中。
二 DS18B20的原理及特性介绍1.DS18B20的几个特点:a. DS18B20因为采用了单总线技术,可通过串行口线,也可通过其他I/O口线与微机直接接传感器直接输出被测温度值(二进制数)。
b.其测量温度范围为:-55℃————+125℃,c.测量分辨率为:0.0625℃,是其他传感器无法相比的。
图1 DS18B20外部形状及管脚d.内含64位只读存储器ROM,(内存出厂序列号,是对应每一个器件的唯一号),还又RAM 存有温度当前转换值及符号。
e.用户可分别设定每个器件的温度上、下限。
f.内含寄生电源。
2. DS18b20的结构:a. 64位光刻ROM ,可以看作是DS18B20的地址序列号,如表一所示。
表1b.高速暂存器RAM共占0、1两个单元:表2两个8位的RAM中,存放二进制的数,高五位是符号位,如果温度大于0OC,这五位数为0,将测到的数值乘以0.0625,即得到实际的温度值;如果温度小于0OC,高五位为1,测到的数值需要取反加1,再乘以0.0625 ,才得到实际的温度值。
c. 九个寄存器的名称及作用:表3三 DS18B20 的控制方法DS18B20的操作是通过执行操作命令实现的,其控制程序是按照DS18B20的通讯协议编制的。
DS18B20的工作原理
DS18B20的工作原理引言概述:DS18B20是一种数字温度传感器,广泛应用于各种领域,包括气象、工业自动化、电子设备等。
本文将详细介绍DS18B20的工作原理,帮助读者更好地理解该传感器的工作机制。
一、传感器基本原理1.1 温度测量原理DS18B20通过测量温度对应的电阻值来实现温度测量。
其内部集成了一个精确的温度传感器,该传感器的电阻值与温度呈线性关系。
通过测量电阻值,可以准确地获取温度信息。
1.2 电压与温度转换DS18B20的工作电源一般为3V到5V的电压。
传感器内部的模拟电路将输入的电压转换为与温度成比例的数字信号。
这个转换过程通过一系列的电路和算法实现,确保了温度测量的准确性和稳定性。
1.3 数字信号输出DS18B20通过一条单线总线输出数字信号。
该总线采用了特殊的通信协议,使得多个传感器可以共享同一条总线。
传感器通过发送一系列特定的命令和数据,将温度信息以数字信号的形式传输给主控设备。
二、传感器内部结构2.1 温度传感器DS18B20内部集成了一个温度传感器,该传感器采用了特殊的材料和结构,使其能够对温度变化非常敏感。
传感器的输出电阻与温度成线性关系,通过测量电阻值可以准确地获取温度信息。
2.2 模拟电路DS18B20内部的模拟电路负责将输入的电压转换为与温度成比例的模拟信号。
该电路包括放大器、滤波器和比较器等组件,通过精确的电路设计和校准,确保了温度测量的准确性和稳定性。
2.3 数字电路DS18B20内部的数字电路负责将模拟信号转换为数字信号,并通过总线输出给主控设备。
该电路包括模数转换器、通信接口和控制逻辑等组件,通过特殊的通信协议实现与主控设备的数据交互和温度信息的传输。
三、传感器工作流程3.1 初始化DS18B20在开始温度测量之前需要进行初始化操作。
初始化过程包括发送复位信号、搜索传感器和读取传感器信息等步骤。
通过初始化,主控设备可以识别出连接在总线上的DS18B20传感器。
DS18B20温度传感器学习
TL=read18B20byte(); // LSB 连续读,先读去地位再读取高位数据 TH=read18B20byte(); // MSB 第三步 温度数据的处理,提取符号位和数据位 数据的格式如下图,读取的两个字节中,高字节的二进制中的前面 5 位是符号位,如果测 得的温度大于 0,这 5 位为 0,只要将测到的数值乘于 0.0625 即可得到实际温度;如果温度小 于 0,这 5 位为 1,测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。所以程序中当 高字节大于 7(0000 0111)时,符号位为负,否则为正。最后返回算出的温度值。
在 DS18B20 测温程序设计中,向 DS18B20 发出温度转换命令后,程序总要等待 DS18B20 的 返回信号,一旦某个 DS18B20 接触不好或断线,当程序读该 DS18B20 时,将没有返回信号,程 序进入死循环。这一点在进行 DS18B20 硬件连接和软件设计时也要给予一定的重视。
测温电缆线建议采用屏蔽 4 芯双绞线,其中一对线接地线与信号线,另一组接 VCC 和地线, 屏蔽层在源端单点接地
言实现。 在 DS18B20 的有关资料中均未提及单总线上所挂 DS18B20 数量问题,容易使人误认为可以
挂任意多个 DS18B20,在实际 Nhomakorabea用中并非如此。当单总线上所挂 DS18B20 超过 8 个时,就需要 解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
连接 DS18B20 的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过 50m 时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况 主要是由总线分布电容使信号波形产生畸变造成的。因此,在用 DS18B20 进行长距离测温系统 设计时要充分考虑总线分布电容和阻抗匹配问题。
18B20温度传感器实验笔记重点
DS18B20温度传感器实验笔记李进 2008-12-10DS18b20用12位存贮温度值,最高位为符号位。
下表(表1)为18b20的温度存储方式。
负温度S = 1,正温度S = 0。
温度值以补码表示。
正数与原码相同,负数是补码,需要再次求补后才能正确显示。
如:0550H 为+85℃,0191H 为+25.0625℃,FC90H 为-55℃。
DS18B20的输出位数被设置成(9,10,11或12bit ),出厂的默认值是12bit 。
对应的分辨率是0.5℃,0.25℃,0.125℃或0.0625℃。
使用Convert T[44h]命令启动一次转换,温度的16位转换值存于暂存器中,并扩展两位符号位。
使用Read Scratchpad[BEh]命令,将温度值通过1线口输出,低位(LSB )首先输出。
LSB MSB整型数表示(int 型,最高4位无用)表格数据说明:表中的数据是从18B20中读取的温度值,以补码的形式表示。
因此,其真实值应求补得到,(补码的补码为真值)。
1. 正数的补码就是该数本身,因此不必求补得真。
例如,+0.5°C 读得0000 0000 0000 1000B,前4位舍掉后,所余的最高位(D11)是符号位,0代表正数。
最后4位(D3~D0)是小数,按小数化为十进制数,因此 .1000 B= 0.5。
+85.0℃读数舍掉最高4位后,得0101 0101 0000B,所余12位二进制数,最高位(D11)是符号位,0表示正数,D10~D4共7位101 0101B = 85,后4位是小数;+25.0625℃读得0001 1001 0001B。
整数部分意义同上,前7位整数001 1001B = 25,最后4位小数: .0001B = .06252. 负数求补得真值。
求补时不必考虑小数点位置,读得的测温结果是16位二进制数,最高4位无用舍去,所余12位保留最高位(D11)符号位不变,其余11位求补,得到真值。
我写DS18B20总结
DS18B20模块:DS18B20是温度传感器,它的结构很简单,外形像一个三极管,它有VCC/GND和DQ 等三条管脚,DQ是一个双向的数据输入输出端口,其实它不需要用电源来供电的(用自己的数据线DQ就可以完成自身的供电条件),但是这样做会使信号的读取和输入的速度上慢下来所以最好还是要提供电源的供电。
DS18B20测得的温度使用12位二进制数据来储存,用二进制数的补码转换成10进制数再除以2就可得到实际检测的温度,最高位是符号位,当为正温度的时候s=0;当为负温度的时候s=1;如0550H就是+85度。
如图就是18B20的储存数据的方式。
DS18B20的工作过程及时序的分析:每个类似于数据通信的模块之间都会有一个相应的协议,也就是调试内部的数据转换成外部读出的信息,必须遵从协议的规定才可以完成对所需信息的采集,DS18B20的协议有:初始化、ROM操作指令,存储器操作指令,还有处理数据等。
初始化:单总线上的所有处理均从初始化开始,初始化就是刚开始调节器件内部的工作状态,准备投入到工作中去,以及总线主机检测到DS18B20的存在。
ROM操作指令:一般常用的是SKIM ROM(CCH)跳过ROM;[CCH]还有的就是CONVERT TEMERA TURE[44H]用于温度的转换作用这样才可以将温度采集到。
时序时序图如下:第一个脉冲的区域是在400—960us之间的一般选到480us就可以了,在第二个高电平的约480us 15-60us 60—240us保持状态的时间是15us —60us 左右这个时候是等待的时间接着就是DS18B20在后一状态发出的存在的脉冲(低电平,持续60—240us 左右),这就是DS18B20的时序,再编写程序的时候要严格按照时序的要求完成协议之间的通信工作方式才可以让其内部准确的工作,根据时序图可以编写初始化时的c 代码如下:void delay(int m)//jiben1us{unsigned int n;for(n=0;n<m;n++) {};}//********************************************************void chushihua(){dq=0;delay(600); //送480us 脉冲;根据时序;dq=1;delay(35);//大约60us 左右;}这样就完成了DS18B20的初始化工作。
DS18B20温度传感器
摘要:DS18B20是DALLAS公司生产的单线数字温度传感器,他具有独特的单线总线接口方式。
文章详细的介绍了单线数字温度传感器DS18B20的测量原理、特性以及在温度测量中的硬件和软件设计,具有接口简单、精度高、抗干扰能力强、工作稳定可靠等特点。
关键词:DS18B20;单线制;温度传感器;单片机DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。
与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。
因而使用DS18B20可使系统结构更趋简单,可靠性更高。
他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。
1.DS18B20简介(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)在使用中不需要任何外围元件。
(3)可用数据线供电,电压范围:+3.0~ +5.5 V。
(4)测温范围:-55 ~+125 ℃。
固有测温分辨率为0.5 ℃。
(5)通过编程可实现9~12位的数字读数方式。
(6)用户可自设定非易失性的报警上下限值。
(7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。
(8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
2.DS18B20的内部结构DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图1所示。
(1) 64 b闪速ROM的结构如下:开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前56位的CRC校验码,这也是多个DS18B20可以采用一线进行通信的原因。
DS18B20温度传感器资料
DS18B20 单线温度传感器一.特征:●独特的单线接口,只需 1 个接口引脚即可通信●每个设备都有一个唯一的64位串行代码存储在光盘片上●多点能力使分布式温度检测应用得以简化●不需要外部部件●可以从数据线供电,电源电压范围为3。
0V至5。
5V●测量范围从-55 ° C至+125 ° C(—67 ° F至257 ° F),从—10℃至+85 ° C的精度为0。
5 °C●温度计分辨率是用户可选择的9至12位●转换12位数字的最长时间是750ms●用户可定义的非易失性的温度告警设置●告警搜索命令识别和寻址温度在编定的极限之外的器件 (温度告警情况)●采用8引脚SO(150mil),8引脚SOP和3引脚TO — 92封装●软件与DS1822兼容●应用范围包括恒温控制工业系统消费类产品温度计或任何热敏系统二.简介该DS18B20的数字温度计提供9至12位的摄氏温度测量,并具有与非易失性用户可编程上限和下限报警功能。
信息单线接口送入 DS1820 或从 DS1820 送出,因此按照定义只需要一条数据线(和地线)与中央微处理器进行通信.它的测温范围从—55 °C到 +125 ° C,其中从—10 °C至+85 °C可以精确到0。
5°C 。
此外,DS18B20可以从数据线直接供电(“寄生电源"),从而消除了供应需要一个外部电源。
每个 DS18B20 的有一个唯一的64位序列码,它允许多个DS18B20s的功能在同一1-巴士线.因此,用一个微处理器控制大面积分布的许多DS18B20s是非常简单的。
此特性的应用范围包括 HVAC、环境控制、建筑物、设备或机械内的温度检测以及过程监视和控制系统.三.综述64位ROM存储设备的独特序号。
存贮器包含2个字节的温度寄存器,它存储来自温度传感器的数字输出。
DS18B20温度测量与控制实验报告
课程实训报告《单片机技术开发》专业:机电一体化技术班级: 104201 学号: 10420134 姓名:杨泽润浙江交通职业技术学院机电学院2012年5月29日目录一、DS18B20温度测量与控制实验目的……………………二、DS18B20温度测量与控制实验说明……………………三、DS18B20温度测量与控制实验框图与步骤……………………四、DS18B20温度测量与控制实验清单……………………五、DS18B20温度测量与控制实验原理图…………………六、DS18B20温度测量与控制实验实训小结………………1.了解单总线器件的编程方法。
2.了解温度测量的原理,掌握DS18B20 的使用。
本实验系统采用的温度传感器DS18B20是美国DALLAS公司推出的增强型单总线数字温度传感器。
Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。
现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。
适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。
与前一代产品不同,新的产品支持3V~5.5V的电压范围,使系统设计更灵活、方便。
DS18B20测量温度范围为-55°C~+125°C,在-10~+85°C范围内,精度为±0.5°C。
DS18B20可以程序设定9~12位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。
DS18B20 内部结构DS18B20 内部结构主要由四部分组成:64 位光刻ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。
DS18B20 的管脚排列如下:DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地)。
光刻ROM 中的64 位序列号是出厂前被光刻好的,它可以看作是该DS18B20 的地址序列码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
测温电缆线建议采用屏蔽 4 芯双绞线,其中一对线接地线与信号线,另一组 接 VCC 和地线,屏蔽层在源端单点接地。
DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位 符号扩展的二进制补码读数形式提供,以 0.0625℃/LSB 形式表达,其中 S 为符 号位。
这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中, 二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测 到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的 数值需要取反加 1 再乘于 0.0625 即可得到实际温度。
P2=tab1[t%10]; shi=0; ge=1; xiao=0; } void main(void) { while(1) {
ReadTemperature(); } }
//主循环
4、如果是多片 DS1820 时就注意事项:
由于单线数字温度传感器 DS1820 具有在一条总线上可同时挂接多片的显著 特点,可同时测量多点的温度,而且 DS1820 的连接线可以很长,抗干扰能力强, 便于远距离测量,因而得到了广泛应用。
}
//读取温度
ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned char c=0;
unsigned char t=0;
Init_DS18B20(); WriteOneChar(0xCC); // 跳过读序号列号的操作,单片工作使用 WriteOneChar(0x44); // 启动温度转换
例如+125℃的数字输出为 07D0H,+25.0625℃的数字输出为 0191H, -25.0625℃的数字输出为 FF6FH,-55℃的数字输出为 FC90H。
DS18B20 温度传感器的存储器 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易失性
的可电擦除的 E2RAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存器。 暂存存储器包含了 8 个连续字节,前两个字节是测得的温度信息,第一个字
DS18B20 的内部结构
DS18B20 内部结构主要由四部分组成:64 位光刻 ROM、温度传感器、非挥发 的温度报警触发器 TH 和 TL、配置寄存器。DS18B20 的管脚排列如下:
DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在 寄生电源接线方式时接地)。
光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类型标号,接 着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环冗余校验码 (CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一个 DS18B20 都各不相同,这样就 可以实现一根总线上挂接多个 DS18B20 的目的。
2、测试电路图:
3、测试程序:
#include"reg51.h" sbit xiao=P1^5; //小数位选 sbit ge =P1^6; //个位位选 sbit shi=P1^7; //十位位选 sbit DQ =P1^1; //定义通信端口 unsigned char tab0[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x} //读一个字节
ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i--)
{ DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(4);
}
return(dat);
}
//写一个字节
WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i--)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(4);
5、DS1820 使用中注意事项
DS1820 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优 点,但在实际应用中也应注意以下几方面的问题:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于 DS1820 与微处理器 间采用串行数据传送,因此,在对 DS1820 进行读写编程时,必须严格的保证读 写时序,否则将无法读取测温结果。在使用 PL/M、C 等高级语言进行系统程序设 计时,对 DS1820 操作部分最好采用汇编语言实现。
(2)在 DS1820 的有关资料中均未提及单总线上所挂 DS1820 数量问题,容易 使人误认为可以挂任意多个 DS1820,在实际应用中并非如此。当单总线上所挂 DS1820 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点 测温系统设计时要加以注意。
(3)连接 DS1820 的总线电缆是有长度限制的。试验中,当采用普通信号电缆 传输长度超过 50m 时,读取的测温数据将发生错误。当将总线电缆改为双绞线带 屏蔽电缆时,正常通讯距离可达 150m,当采用每米绞合次数更多的双绞线带屏 蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波 形产生畸变造成的。因此,在用 DS1820 进行长距离测温系统设计时要充分考虑 总线分布电容和阻抗匹配问题。
1820 温度传感器学习和总结
1、DS18B20 智能温度控制器硬件说明
DALLAS 最新单线数字温度传感器 DS18B20 简介新的“一线器件”体积更 小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器 DS1820 是 世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的 特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 DS18B20、 DS1822 “一线总线”数字化温度传感器 同 DS1820 一样,DS18B20 也 支持“一线总线”接口,测量温度范围为 -55°C~+125°C,在-10~+85°C 范围内,精度为±0.5°C。DS1822 的精度较差为± 2°C 。现场温度直接以“一 线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场 温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代 产品不同,新的产品支持 3V~5.5V 的电压范围,使系统设计更灵活、方便。而且 新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20 可以程序 设定 9~12 位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压适 用范围。分辨率设定,及用户设定的报警温度存储在 EEPROM 中,掉电后依然保 存。DS18B20 的性能是新一代产品中最好的!性能价格比也非常出色! DS1822 与 DS18B20 软件兼容,是 DS18B20 的简化版本。省略了存储用户定义报警温度、 分辨率参数的 EEPROM,精度降低为±2°C,适用于对性能要求不高,成本控制 严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820 开辟了温 度传感器技术的新概念。DS18B20 和 DS1822 使电压、特性及封装有更多的选择, 让我们可以构建适合自己的经济的测温系统。
c=a;
c=c&0x0f; a=a>>4; t=b<<4;
//低位右移 4 位,舍弃小数部分 //高位左移 4 位,舍弃符号位
t=t|a;
c=c*6.25;
//小数位扩大 100 倍
P2=tab0[c/10];
xiao=1;
shi=0;
ge=0;
delay(500);
P2=tab0[t/10]; shi=1; ge=0; xiao=0; delay(500);
Init_DS18B20(); WriteOneChar(0xCC); //跳过读序号列号的操作,单片工作使用
WriteOneChar(0xBE); //读取温度寄存器等(共可读 9 个寄存器) 前两个就是温度
a=ReadOneChar(); //读取温度值低位 b=ReadOneChar(); //读取温度值高位
应特别注意:当总线上 DS1820 挂接得比较多时,就要减小上拉电阻的阻值, 否则总线拉不成高电平,读出的数据全是 0。在测试时,上拉电阻可以换成一个 电位器,通过调整电位器可以使读出的数据正确,当总线上有 8 片 DS1820 时, 电位器调到阻值为 1.25 kΩ 时就能读出正确数据,在实际应用时可根据具体的 传感器数量来选择合适的上拉电阻。
//0, 1, 2 3 4 5 6 7 8 9 unsigned char tab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//共阳含 dp //延时函数 void delay(unsigned int i) {
while(i--); } //DS18B20 初始化函数 Init_DS18B20(void) {