DS18B20数字温度测量报警程序1

合集下载

DS18B20数据手册-中文版

DS18B20数据手册-中文版

DS18B20数据手册-中文版DS18B20 分辨率可编程概述1-Wire数字温度传感器 DS18B20数字温度传感器提供9-Bit到12-Bit的摄氏温度测量精度和一个用户可编程? 温度转换时间在转换精度为12-Bits时达到的非易失性且具有过温和低温触发报警的报警最大值750ms。

功能。

DS18B20采用的1-Wire通信即仅采用一? 用户自定义非易失性的的温度报警设置。

个数据线(以及地)与微控制器进行通信。

该? 定义了温度报警搜索命令和当温度超过用户传感器的温度检测范围为-55?至+125?,并且自定义的设定值时。

在温度范围超过-10?至85?之外时还具有? 可选择的8-Pin SO (150 mils), 8-PinμSOP,+-0.5?的精度。

此外,DS18B20可以直接由数及3-Pin TO-92封装。

据线供电而不需要外部电源供电。

? 与DS1822程序兼容。

每片DS18B20都有一个独一无二的64位? 应用于温度控制系统,工业系统,民用产品,序列号,所以一个1-Wire总线上可连接多个温度传感器,或者任何温度检测系统中。

DS18B20设备。

因此,在一个分布式的大环境管脚定义图里用一个微控制器控制多个DS18B20是非常简单的。

这些特征使得其在HVAC环境控制,在建筑、设备及机械的温度监控系统,以及温度过程控制系统中有着很大的优势。

特性独特的1-Wire总线接口仅需要一个管脚来通信。

每个设备的内部ROM上都烧写了一个独一无二的64位序列号。

多路采集能力使得分布式温度采集应用更加简单。

无需外围元件。

能够采用数据线供电;供电范围为3.0V至5.5V。

温度可测量范围为:-55?至+125?(-67?至+257?)。

温度范围超过-10?至85?之外时具有+-0.5?的精度。

内部温度采集精度可以由用户自定义为9-Bits至12-Bits。

DS18B20订购信息零件温度范围引脚数-封装顶部标号DS18B20 3 TO-92 18B20 -55?至+125?DS18B20+ 3 TO-92 18B20 -55?至+125?DS18B20/T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20+T&R 18B20 -55?至+125? 3 TO-92(2000片)DS18B20-SL/T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20-SL+T&R 18B20 -55?至+125? 3 TO-92(2000片)* DS18B20U 8 uSOP 18B20 -55?至+125?DS18B20U+ 8 uSOP 18B20 -55?至+125?DS18B20U/T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20+T&R 18B20 -55?至+125? 8 uSOP(3000片)DS18B20Z 8 SO DS18B20 -55?至+125?DS18B20Z+ 8 SO DS18B20 -55?至+125?DS18B20Z/T&R DS18B20 -55?至+125? 8 SO(2500片)DS18B20Z+T&R DS18B20 -55?至+125? 8 SO(2500片)“+”号表示的是无铅封装。

DS18b20

DS18b20

一、DS18B20基本结构原理
2. DS18B20外形与引脚功能
一、DS18B20基本结构原理
3.DS18B20内部结构图
存储与逻辑控制
供电 感应
64位ROM 1线端口
高速 寄存器
8位CRC
温度传感器 上限报警寄存器 下限报警寄存器
四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH 和TL、配置寄存器。光刻ROM中的64位序列号是DS18B20的地址序列码。
开始
初始化DS18B20 跳过ROM匹配
开始温度转换
转换结束了否? N
Y
初始化DS18B20 跳过ROM匹配
读温度值 结束
四、DS18B20的温度测量操作
2. DS18B20温度测量程序流程
开始 C51送复位脉冲 18B20送存在脉冲 送SKIP ROM命令
C51送复位脉冲 18B20送存在脉冲 送SKIP ROM命令
三、DS18B20的读写
(一)单线接口访问DS18B20的协议
➢根据DS18B20的通讯协议,主机(总线控制器)每次 访问DS18B20都必须遵循以下顺序:
初始化18B20 ; ROM操作命令; 存贮器操作命令: 执行/数据。
➢协议包括几种单线信号类型:复位信号、存在信号、写0、 写1、读0、读1。除存在信号外,全部由主机产生。
二、DS18B20的寄存器
3. DS18B20温度数据形式
温度存储器中数据用16位符号扩展的二进制补码形式表示。 0.0625℃/LSB形式表达,其中S为符号位。
9位
12位
二、DS18B20的寄存器
以12为例:
12位数据,存储在18B20的两个8比特(位)的RAM中,Bit0是最低位, 二进制中的前面5位是符号位 如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得 到实际温度; 如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可 得到实际温度。 例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

数字温度传感器DS18B20C-25页说明

数字温度传感器DS18B20C-25页说明

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※DS1B820单总线数字温度计※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※一、概述1.1一般说明DS18B20数字温度计提供9至12位(可设置)温度读数,指示器件的温度。

信息经过单线接口送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需连接一条线(另加上地线)。

读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。

因为每一个DS18B20有唯一的系列号(silicon serial number),因此多个DS18B20可以连接在于同一条单线总线上。

这允许在许多不同的地方放置DS18B20温度传感器。

此特性可广泛地应用于HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。

1.2特性·独特的单线接口,只需1个接口引脚即可通信·多点并接能力使分布式温度检测的应用得以简化·不需要外部元件·可用数据线供电,若外加电源,范围3V至5.5V·不需备份电源·测量范围从-55℃至+125℃,对应的华氏温度范围是-67℉至257℉。

·在-10℃至+85℃内的准确度为±0.5℃。

·可编程设定9至12位的温度分辨率·在750毫秒(最大值)内把温度变换为12位数字值·用户可设置,非易失性的温度告警值·告警搜索命令可在众多的器件中,快速识别出超过设定的“告警温度”值的器件。

·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统25/11.3引脚排列1.4详细的引脚说明TSOC8脚SOIC TO92符说明151GND地线242DQ数据输入/输出引脚。

漏极开路结构,详见“寄生电源”一节。

DS18B20智能温度控制器(附软件程序)

DS18B20智能温度控制器(附软件程序)

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使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。

DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

用DS1820实现温度测量

用DS1820实现温度测量

任务三用DS1820实现温度测量*一、任务要求DS1820是美国DALLAS公司生产的单总线式数字温度传感器,具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点。

本任务利用DS1820来完成温度的检测,通过单片机进行数据处理并显示温度值。

知识目标:(1) 了解DS1820的工作原理。

(2) 掌握DS1820的使用和特性。

技能目标:(1) 会单片机和DS1820的接口电路设计。

(2) 能进行DS1820温度采集、单片机数值处理和温度显示的程序设计。

二、知识链接1. DS1820简介DS1820能在现场采集温度数据,并将温度数据直接转化成串行数字信号输出给单片机处理。

(1) 独特的单线接口方式:当DS1820与微处理器连接时,仅需要一条数据线即可实现微处理器与DS1820的双向通信。

(2) 测量温度范围为 -55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。

(3) 电压适用范围3V~5.5V。

(4) 可编程为9位~12位A/D转换精度。

(5) 用户设定的上、下限报警温度存储在EEPROM中,掉电后依然保存。

(6) 在没有外部电源时,DS1820依然能够继续工作,此时电源由总线为高电平时DQ脚上的上拉电阻提供(寄生供电模式),此模式下,VDD脚必须接地。

(7) 同一总线上可以挂接多个DS1820,适用于构成多点温度测控系统。

2. DS1820测温原理DS1820只有3个引脚,说明如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端。

图4-25 DS1820内部测温电路框图DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。

高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。

初始时,温度寄存器被预置成-55℃,每当计数器1从预置数开始减法计数到0时,温度寄存器中的值就增加1℃,这个过程重复进行,直到计数器2计数到0时便停止。

基于DS18B20_的温度测量报警系统

基于DS18B20_的温度测量报警系统

0 引言温度测量方法较多,根据温度传感器的使用方式,通常可以把温度测量方法分为接触式法测温法和非接触式法测温法。

热敏电阻是最常用的接触式测温法之一,其广泛应用于工农业生产中。

传统的热敏电阻传感器需要搭配测量电路和其他电路进行信号处理,导致其可靠性、准确度和精确度降低[1]。

针对上述问题,美国DALLAS公司新推出了一种新型数字温度传感器-DS18B20,它具有功耗低、抗干扰能力强等优点[2]。

该文介绍了一种以DS18B20数字传感器和AT89C51系列单片机为核心的环境温度测量报警系统,该系统不仅可以实时测量温度,而且还可以根据用户需要,当环境温度出现异常时进行报警提醒。

同时,测得的温度数据会实时显示在输出设备上,为用户提供实时温度。

其硬件部分主要包括时钟电源电路、数码管显示电路、温度测量报警电路以及独立开关按键电路,软件部分主要包括独立按键触发检测程序、温度异常判决程序。

该系统结构简单、成本较低且抗干扰能力极高,可以应用于农业种植温室室温监测等场景,帮助相关产业提高工作效率,降低建设和维护所需的成本。

1 理论及方案设计DS18B20模块是一款由美国DALLAS半导体公司设计的数字温度传感器,它具有成本低廉、传输高效以及电路简单的特点。

该模块工作电压范围宽(3.0 V~5.5 V),并且当电源反接时不会立即烧毁。

DS18B20模块具有4种工作模式,对应4种不同的分辨率和转换时间。

通过改变配置寄存器中的R1位和R0位(R0\R1是配置寄存器中的2个数位)可以对DS18B20模块的工作模式进行设置,不同模式的工作参数见表1。

表1 工作效率参考数据分辨率/位最高转换时间/ms R1R0 993.750010187.500111375.001012750.0011整个测温系统分为的4个板块(如图1所示),通过与AT89C51系列单片机进行交互,共同完成环境温度监测报警工作。

时钟和电源为整个系统提供工作环境,独立按键可以帮助用户设置温度的上、下限,DS18B20模块将测得的实时温度发送给单片机,单片机将数据输出至显示模块(反馈给用户)。

数字温度传感器DS18B20详解

数字温度传感器DS18B20详解

一、概述传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40℃至90℃测量范围,但热敏电阻可靠性差,测量温度准确率低,对于小于1℃的温度信号是不适用的,还得经过专门的接口电路转换成数字信号才能由微处理器进行处理。

目前常用的微机与外设之间进行的数据通信的串行总线主要有I2C总线,SPI总线等。

其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线)。

这些总线至少需要两条或两条以上的信号线。

而单总线( 1-wire bus ),采用单根信号线,既可传输数据,而且数据传输是双向的,CPU 只需一根端口线就能与诸多单总线器件通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

因而,这种单总线技术具有线路简单,硬件开销少,成本低廉,软件设计简单,便于总线扩展和维护。

同时,基于单总线技术能较好地解决传统识别器普遍存在的携带不便,易损坏,易受腐馈,易受电磁干扰等不足,因此,单总线具有广阔的应用前景,是值得关注的一个发展领域。

单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。

主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。

单总线通常要求外接一个约为4.7K的上拉电阻,这样,当总线闲置时其状态为高电平。

DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。

同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。

部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。

DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:( 1 )采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

DS18B20温度检测

DS18B20温度检测

目录1引言 (1)2系统描述 (2)2.1系统功能 (2)2.2系统设计指标 (2)3系统的主要元件 (3)3.1单片机 (3)3.2温度传感元件 (4)3.3LCD显示屏 (6)4硬件电路 (7)4.1系统整体原理图 (7)4.2单片机晶振电路 (7)4.3温度传感器连接电路 (8)4.4LCD电路 (9)4.5报警和外部中断电路 (10)5结论 (11)温度监测系统硬件设计摘要:利用DS18B20为代表的新型单总线数字式温度传感器实现温度的监测,可以简化硬件电路,也可以实现单线的多点分布式温度监测,而不会浪费单片机接口,提供了单片机接口的利用率。

同时提高了系统能够的抗干扰性,使系统更灵活、方便。

本系统主要实现温度的检测、显示以及高低温的报警。

也可以通过单总线挂载多个DS18B20实现多点温度的分布式监测。

关键词: DS18B20,单总线,温度,单片机1引言在科技广泛发展的今天,计算机的发展已经越来越快,它的应用已经越来越广泛。

而单片机的发展和应用是其中的重要一方面。

单片机在工业生产(机电、化工、轻纺、自控等等)和民用家电各方面有广泛的应用。

其中,单片机在工业生产中的应用尤其广泛。

单片机具有集成度高,处理能力强,可靠性高,系统结构简单,价格低廉的优点,因此被广泛应用。

在工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要测量参数。

例如:在冶金工业、化工工业、电力工程、机械制造和食品加工等许多领域中,人们都需要对各类加热炉、热处理炉、反映炉和锅炉,尤其是热学试验(如:物体的比热容、汽化热、热功当量、压强温度系数等教学实验)中的温度进行测量,并经常会对其进行控制。

传统的方式是采用热电偶或热电阻,但是由于模拟温度传感器输出为模拟信号,必须经过A/D 转换环节获得数字信号后才能够被单片机等微处理器接收处理,使得硬件电路结构复杂,制作成本较高。

近年来,美国DALLAS公司生产的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基于单总线通信的程序.DS18B20 数字温度传感器(参考:智能温度传感器DS18B20的原理与应用)是DALLAS 公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计.DS18B20 产品的特点:(1)、只要求一个I/O 口即可实现通信。

(2)、在DS18B20 中的每个器件上都有独一无二的序列号。

(3)、实际应用中不需要外部任何元器件即可实现测温。

(4)、测量温度范围在-55 到+125℃之间;在—10 ~+85℃范围内误差为±5℃;(5)、数字温度计的分辨率用户可以从9 位到12 位选择.将12位的温度值转换为数字量所需时间不超过750ms;(6)、内部有温度上、下限告警设置.DS18B20引脚分布图DS18B20 详细引脚功能描述:1、GND 地信号;2、DQ数据输入出引脚。

开漏单总线接口引脚。

当被用在寄生电源下,此引脚可以向器件提供电源;漏极开路, 常太下高电平。

通常要求外接一个约5kΩ的上拉电阻.3、VDD可选择的VDD 引脚。

电压范围:3~5。

5V; 当工作于寄生电源时,此引脚必须接地。

DS18B20存储器结构图暂存储器的头两个字节为测得温度信息的低位和高位字节;第3, 4字节是TH和TL的易失性拷贝,在每次电复位时都会被刷新;第5字节是配置寄存器的易失性拷贝,同样在电复位时被刷新;第9字节是前面8个字节的CRC检验值.配置寄存器的命令内容如下:MSB LSBR0和R1是温度值分辨率位,按下表进行配置。

默认出厂设置是R1R0 = 11, 即12位.温度值分辨率配置表4种分辨率对应的温度分辨率为0。

5℃,0.25℃,0.125℃, 0。

0625℃(即最低一位代表的温度值)12位分辨率时的两个温度字节的具体格式如下:其中高字节前5位都是符号位S,若分辨率低于12位时,相应地使最低为0, 如:当, 高字节不变.。

DS18B20说明书

DS18B20说明书

附录1:DS18B20型单线智能温度传感器简介由美国DALLAS半导体公司生产的DSl8B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中,例如多路温度测控仪、中央空调、大型冷库、恒温装置等。

此外巧妙利用DSl8B20内部64位激光ROM中具有惟一性的48位产品序号,还可设计成专供大型宾馆客房或军事仓库使用的保密性极佳的电子密码锁。

DSl8B20的电源电压范围均扩展到+3~+5.5V,DSl8B20还能对温度分辨力进行编程,选择9位~12位模式下工作,在12位模式下的最高分辨力可达0.0625℃。

下面介绍DSl8B20的性能特点和工作原理。

1.1 DS18B20的性能特点(1)DSl8B20采用DALLAS公司独特的“单线(1-Wire)总线”专有技术,通过串行通信接口(I/O)直接输出被测温度值(9位二进制数据,含符号位)。

(2)在测温范围是-55~+125℃时,测量误差不超过±2℃,在-10~+85℃范围内,可确保测量误差不超过±0.5℃。

温度/数字量转换时间的典型值仅需93.75ms,比DS1820有很大的提高.(3)内含64位经过激光修正的只读存储器ROM,扣除8位产品系列号和8位循环冗余校验码CRC之后,产品序号占48位。

出厂前就作为DSl8B20惟一的产品序号,存入其ROM中。

在构成大型温控系统时,允许在单线总线上挂接多片DSl8B20。

(4)适配各种单片机或系统机。

(5)用户可分别设定各路温度的上、下限并写入随机存储器RAM中。

利用报警搜索命令和寻址功能,可迅速识别出发生了温度越限报警的器件。

(6)内含寄生电源。

该器件既可由单线总线供电,亦可选用外部+5V电源(允许电压范围是3.0~5.5V),进行温度/数字转换时的工作电流约为1.5mA,待机电流仅25uA,典型功耗为5mW。

DS18B20温度传感器使用方法以及代码

DS18B20温度传感器使用方法以及代码

第7章DS18B20温度传感器7.1 温度传感器概述温度传感器是各种传感器中最常用的一种,早起使用的是模拟温度传感器,如热敏电阻,随着环境温度的变化,它的阻值也发生线性变化,用处理器采集电阻两端的电压,然后根据某个公式就可以计算出当前环境温度。

随着科技的进步,现代的温度传感器已经走向数字化,外形小,接口简单,广泛应用在生产实践的各个领域,为我们的生活提供便利。

随着现代仪器的发展,微型化、集成化、数字化、正成为传感器发展的一个重要方向。

美国DALLS半导体公司推出的数字化温度传感器DS18B20采用单总线协议,即单片机接口仅需占用一个I/O端口,无需任何外部元件,直接将环境温度转化为数字信号,以数码方式串行输出,从而大大简化了传感器与微处理器的接口。

7.2 DS18B20温度传感器介绍DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。

与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。

因而使用DS18B20可使系统结构更趋简单,可靠性更高。

他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。

1.DS18B20温度传感器的特性①独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

②在使用中不需要任何外围元件。

③可用数据线供电,电压范围:+3.0~ +5.5 V。

④测温范围:-55 ~+125 ℃。

固有测温分辨率为0.5 ℃。

⑤通过编程可实现9~12位的数字读数方式。

亿学通电子 DS18B20 温度传感器使用手册

亿学通电子 DS18B20 温度传感器使用手册

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

一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。

TO-92封装的DS18B20DS18B20 的管脚排列及不同封装形式如图 2所示,DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接线方式时接地,见),NC 表示无连接。

管脚图DS18B20内部结构如图3所示,主要由4 部分组成:64 位ROM 、温度传感器、非易失性存储的温度报警触发器TH 和TL 、配置寄存器。

DS18B20管脚DS18B20概述DS18B20内部结构图非常适用于远距离多点温度检测系统。

DQ-数据输入输出。

漏极开路1 线接口。

也在寄生电源模式时给设备提供电源。

访问DS18B20 的顺序如理初始化;DS18B20读写 连接图应用领域ROM 命令(接着是任何需要的数据交换);DS18B20 函数命令(接着是任何需要的数据交换)。

每一次访问DS18B20 时必须遵循这一顺序,如果其中的任何一步缺少或打乱它们的顺序,DS18B20 将不会响应。

(1)初始化时序所有与DS18B20 的通信首先必须初始化:控制器发出复位脉冲,DS18B20 以存在脉冲响应。

dallas DS18B20中文资料

dallas DS18B20中文资料
报警搜索操作 DS1820 完成一次温度转换后,就拿温度值和存储在 TH 和 TL 中的值进行比较。因为这些寄存 器是 8 位的,所以 0.5℃位被忽略不计。TH 或 TL 的最高有效位直接对应 16 位温度寄存器的 符号位。如果测得的温度高于 TH 或低于 TL,器件内部就会置位一个报警标识。每进行一次 测温就对这个标识进行一次更新。当报警标识置位时,DS1820 会对报警搜索命令有反应。这 样就允许许多 DS1820 并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件 就会被立即识别出来并读取,而不用读未报警的器件。 64 位(激)光刻 ROM 每只 DS1820 都有一个唯一的长达 64 位的编码。最前面 8 位是单线系列编码(DS1820 的编码 是 19h)。下面 48 位是一个唯一的序列号。最后 8 位是以上 56 位的 CRC 码。(见图 5)64 位 ROM 和 ROM 操作控制区允许 DS1820 做为单线制器件并按照详述于“单线总线系统”一节的 单线协议工作。只有建立了 ROM 操作协议,才能对 DS1820 进行控制操作。这个协议用 ROM 操 作协议流程图来描述(图 6)。单线总线控制器必须得天独厚提供 5 个 ROM 操作命令其中之 一:1)Read ROM,2)Match ROM,3)Search Rom,4)Skip ROM,5)Alarm Search。成功 进行一次 ROM 操作后,就可以对 DS1820 进行特定的操作,总线控制器可以发出六个存储器和 控制操作命令中的任一个。
16 脚 SSOP PR35 符号
说明
9
1 GND 接地
8
2 DQ 数据输入/输出脚。对于单线操作:漏极开路(见“寄生电源”节)

7
3 VDD 可选的 VDD 引脚。具体接法见“寄生电源”节

DS18B20数据手册

DS18B20数据手册

位 ROM 和 ROM 操作控制部分允许 DS1820 作为一个单线器件工作并遵循 单线总线系统 一节中所
详述的单线协议 直到 ROM 操作协议被满足 DS1820 控制部分的功能是不可访问的 此协议在 ROM
操作协议流程图 图 6 中叙述 单线总线主机必须首先操作五种 ROM 操作命令之一 1 Read ROM(读
+0
00000000 00000000
-1/2
11111111 11111111
-25
11111111 11001110
-55
11111111 10010010
安息字输出 十六进制 00FAh 0032h 0001h 0000h FFFFh FFCEh FF92h
2 4 运用 告警信号
在 DS1820 完成温度变换之后 温度值与贮存在 TH 和 TL 内的触发值相比较 因为这些寄存
DS1820
DS1820 单总线数字温度计
一 概述
济南清风电子
1 1 一般说明
----------------更多资料和源程序,请访问以下网站
===========================
DS1820 数字温度计提供ht9tp位://w温ww度.q读fm数cu.,co指m示器件的温度

以下的过程可以获得较高的分辩率 首先 读温度 并从读得的值截去 0.5 位(最低有效位) 这个值便是 TEMP_READ 然后可以读留在计数器内的值 此值是门开通期停止之后计数剩余
TEMPRATURE(温度 = TEMP _ READ − 0.25 + (COUNT _ PER _ C − COUNT _ REMAIN) COUNT _ PER _ C

DS18B20水温控制系统+电路图程序

DS18B20水温控制系统+电路图程序

水温控制系统摘要:该水温控制系统采用单片机进行温度实时采集与控制。

温度信号由“一线总线”数字化温度传感器DS18B20提供,DS18B20在-10~+85°C范围内, 固有测温分辨率为0.5 ℃。

水温实时控制采用继电器控制电热丝和风扇进行升温、降温控制。

系统具备较高的测量精度和控制精度,能完成升温和降温控制。

关键字: AT89C51 DS18B20 水温控制Abstract: This water temperature control system uses the Single Chip Microcomputer to carry on temperature real-time gathering and controling. DS18B20, digitized temperature sensor, provides the temperature signal by "a main line". In -10~+85℃the scope, DS18B20’s inherent measuring accuracy is 0.5 ℃. The water temperature real-time control system uses the electricity nichrome wire carring on temperature increiseament and operates the electric fan to realize the temperature decrease control. The system has the higher measuring accuracy and the control precision, it also can complete the elevation of temperature and the temperature decrease control.Key Words:AT89C51 DS18B20 Water temperature control目录1. 系统方案选择和论证 (2)1.1 题目要求 (2)1.1.1 基本要求 (2)1.1.2 发挥部分 (2)1.1.3 说明 (2)1.2 系统基本方案 (2)1.2.1 各模块电路的方案选择及论证 (2)1.2.2 系统各模块的最终方案 (5)2. 硬件设计与实现 (6)2.1系统硬件模块关系 (6)2.2 主要单元电路的设计 (6)2.2.1 温度采集部分设计 (6)2.2.2 加热控制部分 (8)2.2.3 键盘、显示、控制器部分 (8)3. 系统软件设计 (10)3.1 读取DS18B20温度模块子程序 (10)3.2 数据处理子程序 (10)3.3 键盘扫描子程序 (12)3.4 主程序流程图 (13)4. 系统测试 (14)4.1 静态温度测试 (14)4.2动态温控测量 (14)4.3结果分析 (14)附录1:产品使用说明 (15)附录2:元件清单 (15)附录3:系统硬件原理图 (16)附录4:软件程序清单 (17)参考文献 (26)1.系统方案选择和论证1.1题目要求设计并制作一个水温自动控制系统,控制对象为1L净水,容器为搪瓷器皿。

DS18B20温度传感器

DS18B20温度传感器

4.25 DS18B20温度传感器输出显示本例的DS18B20数字温度计是DALLAS公司生产的l-Wire式单总线器件,具有线路简单,体积小的特点,用它组成的温度测量系统线路非常简单,只要求一个端口即可实现通信。

DS18B20的每个器件上都有唯一的序列号,其温度测量范围在一55℃—+125℃之间,数字温度计的分辨率可以从9一12位选择,内部还有温度上、下限报警设置。

运行本例时,1602LCD将显示DS18B20所测量的外部温度,调节DS18B20模拟改变外界温度时,新的温度值将刷新显示在LCD上。

本例电路及运行效果如图4-39所示。

程序设计调试与实训:DS18B20内部结构主要由64位ROM,温度传感器,非易失性温度报警触发器TH 和TL,配置寄存器组成。

读者在阅读本例时需要参考图4-40所示的DS18B20内存结构(含上电时的初始状态),表4-11所示的DS18B20RAM操作命令集及表4-12所示的温度寄存器字节格式。

本例要点在于读取温度函数Read_Temperature和温度显示函数Display_Temperature的编写,对于前者,代码中OxCC命令字节用于跳过读取ROM摩列号(参考DS18820F手册中的DS18820ROM命令),Ox44启动温度转换,OxBE读取温度寄存器。

温度显示函数Display_Temperature根据读取的2字节温度值(保存在Temp_Value数组中)进行显示,阅读该函数代码时,可参考表4-12所示的2字节温度格式,特别是高字节中的符号位S和低字节中的小数bit3~bit0,因为本例仅保存一位小数,温度小数位对照表df_Table将0000~1111对应的16个不同小数序列进行四舍五入,例如,当读取的温度低字节低4位为OIOI 时,对应的温度应为2-2+ 2_4=0.3125≈0.3,因此数组第5个元素(对应于OIOI)的值为3,又如,如果低4位为OIIO,对应的温度应为2-2+ 2-3= 0.375岛0.4,因此,数组第6个元素(对应于0110)取值为4。

51单片机设计数字温度计(流程图+源码+实物图片)

51单片机设计数字温度计(流程图+源码+实物图片)

DS18B20获取温度程序流程图DS18B20的读字节,写字节,获取温度的程序流程图如图所示。

DS18B20初始化程序流程图DS18B20读字节程序流程图DS18B20写字节程序流程图DS18B20获取温度程序流程图图3-4 DS18B20程序流程图显示程序设计显示电路是由四位一体的数码管来实现的。

由于单片机的I/O 口有限,所以数码管采用动态扫描的方式来进行显示。

程序流程图如图所示。

图显示程序流程图按键程序设计按键是用来设定上下限报警温度的。

具体的程序流程图如图所示。

N图按键程序流程图附1 源程序代码/********************************************************************* 程序名; 基于DS18B20的测温系统* 功能:实时测量温度,超过上下限报警,报警温度可手动调整。

K1是用来* 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限* 调节模式。

在正常模式下,按一下K2进入查看上限温度模式,显示1s左右自动* 退出;按一下K3进入查看下限温度模式,显示1s左右自动退出;按一下K4消除* 按键音,再按一下启动按键音。

在调节上下限温度模式下,K2是实现加1功能,* K1是实现减1功能,K3是用来设定上下限温度正负的。

* 编程者:ZPZ* 编程时间:2009/10/2*********************************************************************/#include<AT89X52.h> //将AT89X52.h头文件包含到主程序#include<intrins.h> //将intrins.h头文件包含到主程序(调用其中的_nop_()空操作函数延时)#define uint unsigned int //变量类型宏定义,用uint表示无符号整形(16位)#define uchar unsigned char //变量类型宏定义,用uchar表示无符号字符型(8位)uchar max=0x00,min=0x00; //max是上限报警温度,min是下限报警温度bit s=0; //s是调整上下限温度时温度闪烁的标志位,s=0不显示200ms,s=1显示1s左右bit s1=0; //s1标志位用于上下限查看时的显示void display1(uint z); //声明display1()函数#include"ds18b20.h" //将ds18b20.h头文件包含到主程序#include"keyscan.h" //将keyscan.h头文件包含到主程序#include"display.h" //将display.h头文件包含到主程序/***********************主函数************************/void main(){beer=1; //关闭蜂鸣器led=1; //关闭LED灯timer1_init(0); //初始化定时器1(未启动定时器1)get_temperature(1); //首次启动DS18B20获取温度(DS18B20上点后自动将EEPROM中的上下限温度复制到TH和TL寄存器)while(1) //主循环{keyscan(); //按键扫描函数get_temperature(0); //获取温度函数keyscan(); //按键扫描函数display(temp,temp_d*0.625);//显示函数alarm(); //报警函数keyscan(); //按键扫描函数}}/********************************************************************* 程序名; __ds18b20_h__* 功能:DS18B20的c51编程头文件* 编程者:ZPZ* 编程时间:2009/10/2* 说明:用到的全局变量是:无符号字符型变量temp(测得的温度整数部分),temp_d* (测得的温度小数部分),标志位f(测量温度的标志位‘0’表示“正温度”‘1’表* 示“负温度”),标志位f_max(上限温度的标志位‘0’表示“正温度”、‘1’表* 示“负温度”),标志位f_min(下限温度的标志位‘0’表示“正温度”、‘1’表* 示“负温度”),标志位w(报警标志位‘1’启动报警‘0’关闭报警)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

硬件电路:软件设计:/****************************************************************** 程序名称:DS18B20温度测量、报警系统简要说明:DS18B20温度计,温度测量范围0~99.9摄氏度可设置上限报警温度、下限报警温度即高于上限值或者低于下限值时蜂鸣器报警默认上限报警温度为38℃、默认下限报警温度为5℃报警值可设置范围:最低上限报警值等于当前下限报警值最高下限报警值等于当前上限报警值将下限报警值调为0时为关闭下限报警功能编写:吴彦刚******************************************************************/ #include <A T89X51.h>#include "DS18B20.h"#define uint unsigned int#define uchar unsigned char //宏定义#define SET P3_1 //定义调整键#define DEC P3_2 //定义减少键#define ADD P3_3 //定义增加键#define BEEP P3_7 //定义蜂鸣器bit shanshuo_st; //闪烁间隔标志bit beep_st; //蜂鸣器间隔标志sbit DIAN = P2^7; //小数点uchar x=0; //计数器signed char m; //温度值全局变量uchar n; //温度值全局变量uchar set_st=0; //状态标志signed char shangxian=38; //上限报警温度,默认值为38signed char xiaxian=5; //下限报警温度,默认值为38uchar code LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};/*****延时子程序*****/void Delay(uint num){while( --num );}/*****初始化定时器0*****/void InitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0; //50ms(晶振12M)}/*****定时器0中断服务程序*****/void timer0(void) interrupt 1{TH0=0x3c;TL0=0xb0;x++;}/*****外部中断0服务程序*****/void int0(void) interrupt 0{EX0=0; //关外部中断0if(DEC==0&&set_st==1){shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}else if(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中断1服务程序*****/void int1(void) interrupt 2{EX1=0; //关外部中断1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}else if(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****读取温度*****/void check_wendu(void){uint a,b,c;c=ReadTemperature()-5; //获取温度值并减去DS18B20的温漂误差a=c/100; //计算得到十位数字b=c/10-a*10; //计算得到个位数字m=c/10; //计算得到整数位n=c-a*100-b*10; //计算得到小数位if(m<0){m=0;n=0;} //设置温度显示上限if(m>99){m=99;n=9;} //设置温度显示上限}/*****显示开机初始化等待画面*****/Disp_init(){P2 = 0xbf; //显示-P1 = 0xf7;Delay(200);P1 = 0xfb;Delay(200);Delay(200);P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****显示温度子程序*****/Disp_Temperature() //显示温度{P2 =0xc6; //显示CP1 = 0xf7;Delay(300);P2 =LEDData[n]; //显示个位P1 = 0xfb;Delay(300);P2 =LEDData[m%10]; //显示十位DIAN = 0; //显示小数点P1 = 0xfd;Delay(300);P2 =LEDData[m/10]; //显示百位P1 = 0xfe;Delay(300);P1 = 0xff; //关闭显示}/*****显示报警温度子程序*****/ Disp_alarm(uchar baojing){P2 =0xc6; //显示CP1 = 0xf7;Delay(200);P2 =LEDData[baojing%10]; //显示十位P1 = 0xfb;Delay(200);P2 =LEDData[baojing/10]; //显示百位P1 = 0xfd;if(set_st==1)P2 =0x89;else if(set_st==2)P2 =0xc7; //上限H、下限L标示P1 = 0xfe;Delay(200);P1 = 0xff; //关闭显示}/*****报警子程序*****/void Alarm(){if(x>=10){beep_st=~beep_st;x=0;}if((m>=shangxian&&beep_st==1)||(m<xiaxian&&beep_st==1))BEEP=0; else BEEP=1;}/*****主函数*****/void main(void){uint z;InitTimer(); //初始化定时器EA=1; //全局中断开关TR0=1;ET0=1; //开启定时器0IT0=1;IT1=1;check_wendu();check_wendu();for(z=0;z<300;z++){Disp_init();}while(1){if(SET==0){Delay(2000);do{}while(SET==0);set_st++;x=0;shanshuo_st=1;if(set_st>2)set_st=0;}if(set_st==0){EX0=0; //关闭外部中断0EX1=0; //关闭外部中断1check_wendu();Disp_Temperature();Alarm(); //报警检测}else if(set_st==1){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st) {Disp_alarm(shangxian);}}else if(set_st==2){BEEP=1; //关闭蜂鸣器EX0=1; //开启外部中断0EX1=1; //开启外部中断1if(x>=10){shanshuo_st=~shanshuo_st;x=0;}if(shanshuo_st) {Disp_alarm(xiaxian);}}}}/*****END*****/DS18B20.h:#include <A T89X52.h>#define DQ P3_6 //定义DS18B20总线I/O/*****延时子程序*****/void Delay_DS18B20(int num){while(num--) ;}/*****初始化DS18B20*****/void Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位Delay_DS18B20(8); //稍做延时DQ = 0; //单片机将DQ拉低Delay_DS18B20(80); //精确延时,大于480usDQ = 1; //拉高总线Delay_DS18B20(14);x = DQ; //稍做延时后,如果x=0则初始化成功,x=1则初始化失败Delay_DS18B20(20);}/*****读一个字节*****/unsigned char 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_DS18B20(4);}return(dat);}/*****写一个字节*****/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;Delay_DS18B20(5);DQ = 1;dat>>=1;}}/*****读取温度*****/unsigned int ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0x44); //启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器a=ReadOneChar(); //读低8位b=ReadOneChar(); //读高8位t=b;t<<=8;t=t|a;tt=t*0.0625;t= tt*10+0.5; //放大10倍输出并四舍五入return(t);}/*****END*****/。

相关文档
最新文档