温度传感器DS18B20 MCU起航 QQ:2246080671.

Slides:



Advertisements
Similar presentations
第1章第1章 PC/AT 系統 1 Chapter 1 Chapter 1 PC/AT 系統 001.
Advertisements

现代电子技术实验 ——综合实验之单片机部分
第三章 温度传感器 通过本章的学习了解温度传感器的作用、地位、分类和发展趋势;掌握热电偶三定律及相关计算;掌握热敏电阻不同类型的特点及应用场合;掌握集成温度传感器使用方法;了解其他温度传感器工作原理。 第一节 概 论 第二节 热电偶温度传感器 第三节 热敏电阻温度传感器 第四节.
第五章 话语的语用意义(上) 主讲人:周明强.
如何準備校務評鑑— 校方處室觀點 土城國小輔導處主任 林德姮.
主办:泰兴市质量强市领导小组办公室 承办:泰 兴 市 市 场 监 督 管 理 局.
中低收入老人生活津貼 中低收入老人生活津貼SOP 應計人口 申請人及其配偶。 負有扶養義務之子女及其配偶。 前款之人所扶養之無工作能力子女。
實施勞退金提撥專案檢查 查核資料說明 報告人:徐維聰.
项目二 中断应用系统设计 本项目学习目标: (1)制作一个单片机控制的彩灯电路。 (2) 理解中断的基本概念;
第二章 项目一:企业厂区与车间平面设计 1.
第十九章 缓控迟释制剂习题.
国防大学学生军训工作办公室.
第十二章 DMA控制器 12.1 概述 A DMA控制器 A的应用.
权力的行使:需要监督 北京市京源学校 冯 悦.
单片机原理与应用.
友達光電廠顯影液儲槽事故案 (資料來源:蘋果日報)
第一類學校輔導訪視流程SOP 104年度區域防災及氣候變遷調適 教育服務推廣團計畫 北區防災教育服務團執行,中區與南區服務團協辦
《生活与哲学》第一轮复习 第七课唯物辩证法的联系观.
《计算机操作员》精品 课件 淮南市潘集职教中心
專題講座 『圖書館學生志工服務簡介』 主講人:朱嫺玢 國立雲林科技大學圖書館 館務發展組組長 國家考試-圖書博物管理職系
單晶片原理與應用 魏兆煌 整理 南台科技大學 電機系 Sep
報告單位:會計室 100年09月14日 資料來源:行政院主計總處
CH.2 Introduction to Microprocessor-Based Control
第七章 单片机存储器的扩展.
單晶片MCS-51 C語言入門實習 第1章 微電腦與單晶片MCS-51架構 作者:董勝源.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
第9章 串行扩展技术 (课时:6学时).
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第六章 存贮器 6.1 存储器概述 6.2 随机存取存储器(RAM) 6.3 只读存储器(ROM) 6.4 CPU与存储器的连接.
第二部分 微机原理 第8章 单片机的 定时/计数器 主讲教师:喻红.
单片机应用技术 项目三 智能温控装置 第2讲 温度控制子项目 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
第八章 80C51单片机的串行通信 主要内容:本章主要介绍80C51串行通信相关知识,包括串行通信基本概念,80C51单片机的串行口及其工作方式,以及单片机在双机或多机通信中的应用。
UART口的第一次接触 MCU起航 QQ:
港口股份有限公司东源分公司 降本增效 部门:机械队流机二班 发言人:程广州.
单片机应用技术 项目一 循环彩灯装置 第2讲 51单片机的结构与引脚 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
关于PCF8591 MCU起航 QQ:
第8章 PCH中的常规接口.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
第2章 单片机的结构原理与 简单应用 (课时:10学时).
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
第八章 数据通信.
第三部分 基于三菱电机A-PLC的CC-Link AJ61BT11/A1SJ61BT11的开关及指示灯
第十章 人机交互接口 本章学习目标 掌握键盘接口技术 掌握数码、液晶显示技术 了解数码管显示驱动和键盘扫描控制专用芯片.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
從消費者觀點談 食品安全問題何時了? 江 文 章 臺大食品科技研究所 名譽教授 臺灣保健食品學會 創會理事長
第10章 可编程外围接口芯片8255A及其应用 10.1 概述 A的工作原理 A的应用举例.
第1章 基础知识 1.1 微型计算机中数的表示 1.2 二进制编码 1.3 二进制数的运算.
单片机系统设计 教师:朱华贵 2016年03月01日
8051單晶片 蘇恆生 老師.
《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺:
微机原理与接口技术 西安邮电大学计算机学院 王忠民.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
第1章 可编程控制器的硬件 构成及工作原理 1.1 可编程控制器的硬件构成 1.2 可编程控制器的工作原理.
第3章 PLC的结构特点及技术性能 3.1 可编程控制器的结构特点 3.2 FX2N系列PLC的主要技术性能.
四川工商学院 单片机原理及应用 刘 强
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
红外遥控器 MCU起航 QQ:
注册建造师 《市政公用工程管理与实务》 环球网校 白老师 每个PPT都有对应的头和尾 PPT头包含内容:
本节内容 进制运算 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
单片机原理与应用.
第8章 应用系统配置及接口技术 ● 教学目标 ● 学习要求
多姿多彩的世界.
第三章 半导体存储器及其接口 第一节 概述 第二节 半导体存储器 第三节 半导体存储器与CPU接口 一、存储器的分类
「同根同心」- 交流計劃 廣州及珠三角經濟發展兩天考察團 2016
真信心的果效 雅各書2:
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
单片机原理及接口技术 前修课程:数模电、微机原理.
Presentation transcript:

温度传感器DS18B20 MCU起航 QQ:2246080671

主要内容 1、DS18B20的初步了解 2、控制DS18B20的指令 3、DS18B20的工作时序 4、操作DS18B20的实例

DS18B20的初步了解 DS18B20是Dallas半导体公司生成的一款数字式温度传 感器,也有的地方说它的厂家是美国美信(MAXIM)半导体 公司,其实也没错,因为美信在2001年收购了Dallas,它成 为了美信的全资子公司。所以,说它是美信生产的没问题。

DS18B20的初步了解 DS18B20有两大特点:1、数字式传感器,读取便捷;2、 一线式总线(1-wire bus)通信,只占用一个IO脚。除此之外, 它也有大量的优点: 1、每个器件都有一个唯一的64位序列号,可实现多点组网 2、应用电路设计简单,只需要很少的器件; 3、供电电压3.0~5.5V,也可以从数据引脚获取电源; 4、测量温度从-55°C到+125°C,在-10°C~+85°C时精度 为±0.5°C; 5、温度计的分辨率从9位至12位可选,其中包含温度正负位; 6、用户可定义的非易失性报警设置; 7、多种封装方式:SO-8、μSOP-8以及TO-92,最后一种 较为常见。

DS18B20的初步了解 TO-92封装的18B20样式非常小巧,有三只脚,分别为: 1脚GND,2脚数据,3脚电压,外形和直插式的三极管一模 一样,接口电路如图所示。

DS18B20的初步了解 18B20通过编程可以实现最高12位的温度转换,同时可 识别温度正负。温度数据寄存器格式如表所示: 温度值被存在一个16位寄存器中,前面五位“S”为符 号位:S=0,温度为正,S=1,温度为负。如果DS18B20被 配置为12位分辨率,那么该16位寄存器中的所有bit都有效; 如果是11位分辨率,那么bit0无效;如果是10位分辨率,那 么bit0和bit1无效;如果是9位分辨率,那么bit0、bit1和 bit2无效。 LS Byte bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0 23 22 21 20 2-1 2-2 2-3 2-4 MS Byte bit 15 bit 14 bit 13 bit 12 bit 11 bit 10 bit 9 bit 8 S 26 25 24

DS18B20的初步了解 温度数据表 温度 数字输出(二进制) 数字输出(十六进制) +125°C 0000 0111 1101 0000 07D0h +85°C* 0000 0101 0101 0000 0550h +25.0625°C 0000 0001 1001 0001 0191h +10.125°C 0000 0000 1010 0010 00A2h +0.5°C 0000 0000 0000 1000 0008h 0°C 0000 0000 0000 0000 0000h -0.5°C 1111 1111 1111 1000 FFF8h -10.125°C 1111 1111 0101 1110 FF5Eh -25.0625°C 1111 1110 0110 1111 FE6Fh -55°C 1111 1100 1001 0000 FC90h

DS18B20的初步了解 以12位分辨率为例,二进制数最低位增加1,表示温度 增加0.0625°C。0.5°C的二进制数换算成10进制后为 8,0.0625×8结果刚好为0.5。 如果计算零下的温度值,需要先求得上述编码的补码。 补码的计算过程是符号位不变,其余各位取反,然后加1。 如表12.6所示,以-55°C为例,它的补码为1111 1011 0111 0000,不考虑符号位,换算成十进制数为880,然后 880×0.0625得到55,刚好符合表中的结果。

控制DS18B20的指令 虽然长得和三极管很像,但是它真的是一款数字型、总 线通信的温度传感器。想要控制它的话,需要先知道常用的 控制指令有哪些。 访问一片DS18B20的顺序如下: 1、设备上电后,通过发送一定时序的高低电平,实现 设备的初始化。 2、发送ROM命令,单片机的一个IO上可以挂载一个或 多个DS18B20,所以此处可发送相关的ROM命令进行设备 识别。 3、发送功能命令,例如启动温度转换、设置温度报警 上下限等等。

控制DS18B20的指令 首先看ROM相关的指令: 1、F0H-搜索ROM。用来确定挂在同一总线上的DS18B20 有多少个,获得相应的ROM码。 2、33F-读ROM。一条总线上只接一个DS18B20时,发送该 指令即可获取ROM码。 3、55H-匹配ROM。发出该命令后,接着发出一个64bit的 ROM码,即可选定该码对应的设备。 4、CCH-跳过ROM。不检测64bit的ROM码,直接发送功能 命令,常用于单个设备的情况。 5、ECH-搜索报警命令。该指令的功能和搜索ROM的功能 类似,区别在于只有出现了报警标志的从设备才会返回自身的 ROM码。执行该指令的前提是DS18B20设置了温度报警的功能。

控制DS18B20的指令 6、44H-转换温度。DS18B20收到该指令后,根据当 前温度,转换成相应的数据存入16bit的寄存器中。 7、4EH-写暂存器。DS18B20内部有9个字节的暂存器, 暂存器地址从0至8。执行该指令后,需向DS18B20写入三 个字节的数据:第一个字节写入温度上限寄存器TH(第三个 暂存器),设置报警温度的上限;第二个字节写入温度下限 寄存器TL(第四个暂存器),设置报警温度的下限;第三个 字节写入配置寄存器(第五个暂存器),设置转换精度。写 指令时,由于是串行传输,写入顺序为先写低位,后写高位。 8、BEH-读暂存器。从地址0开始,到地址8,可以依次 读出暂存器的所有内容。如果只需要前面几个字节的内容, 读出后对DS18B20进行复位设置,即可结束此次读过程。

控制DS18B20的指令 9、48H-复制暂存器。执行该指令,可以把TH、TL、 配置寄存器中的内容复制到EEPROM中,即使以后设备断电, 上述内容也不会丢失。 10、B8H-读取EEPROM。执行该指令,会把EEPROM 中的TH、TL、配置寄存器的值,分别存入暂存器中相应的 位置。 11、B4H-读取供电模式。DS18B20有两种供电模式: 外部电源供电与寄生电源供电。执行该指令后,寄生电源供 电的DS18B20会把总线拉低,外部电源供电的DS18B20会 把总线拉高。

控制DS18B20的指令 上面提到了一个9字节的暂存器和EEPROM,暂存器内部包 括9个寄存器,具体内容如表所示: 寄存器名称 寄存器地址 温度值低位(LSB) (50H) 温度值高位(MSB) (05H) 1 温度上限(TH)* 2 温度下限(TL)* 3 配置寄存器* 4 保留 (FFH) 5 保留 (0CH) 6 保留 (10H) 7 CRC校验值* 8

控制DS18B20的指令 先看温度值低位与温度值高位,每次上电复位后,这两 个寄存器默认值都是固定的(50H与05H),如果直接读取 的话,对应的温度值是85°C。 再看上表中带有*的寄存器,寄存器地址为2、3、4的 值,可以通过复制暂存器的指令将三个值分别写入EEPROM 中。而且,每次上电后这三位默认的值,也是自动从 EEPROM中读取出来的。

接下来看“配置寄存器”,之所以说它是配置寄存器, 是因为它能控制温度转换的精度:到底是9位、10位、11位 还是12位。它是一个8bit的寄存器,格式如表所示: R1与R0值由用户设置,其余6bit为固定值。R1与R0的 值与转换精度对应的关系如表12.9所示: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 R1 R0 1 R1 R0 分辨率 最大转换时间 9-bit 93.75ms (tCONV/8) 1 10-bit 187.5ms (tCONV/4) 11-bit 375ms (tCONV/2) 12-bit 750ms (tCONV)

DS18B20的工作时序 DS18B20使用了比较严格的1-wire通信协议来确保数 据的完整性,毕竟只有一条线,既要进行读操作,又要进行 写操作,这样一个半双工通信要有规范的说明。 在该通信协议中定义了几个信号类型:复位脉冲、存在 脉冲、写数据0、写数据1、读数据0和读数据1。除去存在脉 冲,其它的信号都是由主机进行操作的。

DS18B20的工作时序 首先是复位脉冲和存在脉冲,它们两个结合在一起,组 成了DS18B20的初始化信号。首先,主机发送一个复位脉冲, 然后DS18B20返回一个存在脉冲。当存在脉冲返回之后,说 明DS18B20已经准备好了,随时开始工作。

DS18B20的工作时序 DS18B20闲置状态下,保持数据脚为高电平: 1、把数据脚拉低,持续时间480us~960us,进行复位 操作。 2、把数据脚拉高,将其释放。相当于把这条线的控制 主动权交给DS18B20,勾引它做出应答。持续时间 15~60us。 3、DS18B20变得主动以后,只要器件本身没有质量问 题,会向主机发出一个存在脉冲,也有的地方叫“应答脉 冲”,毕竟有来有往的才叫通信,有来无往的只能叫做广播。 存在脉冲为低电平脉冲,持续时间60~240us。 所以主机只要在存在脉冲的时间内检测数据脚的电压,持续 为低的话,说明DS18B20初始化正常。

DS18B20的工作时序 初始化完成后,进入写指令和读数据的阶段。在写操作 中,有两种信号类型:0和1,时序图如图所示

DS18B20的工作时序 先看写0时隙(TIME SLOT),按照此时隙操作总线, 可以向DS18B20写入1bit数据0。过程如下:先把总线拉低, 维持低电平至少60us即可。 再看写1时隙(TIME SLOT),按照次时隙操作总线, 可以向DS18B20写入1bit数据1。过程如下:先把总线拉低, 至少维持1us低电平,然后在14us内释放总线,让上拉电阻 将总线拉高。 向DS18B20写入数据的原理:无论写入0还是1,都要 先把总线拉低,拉低的目的在于提醒DS18B20:我要给你写 数据了,准备接收。DS18B20收到提醒后的15us开始,就 要采样总线上的数据,此时总线上的数据是0,那就采集到0, 如果是1,那就采集到1。

DS18B20的工作时序 再来看读操作,依然要读取0和1两种信号。先看时隙图

DS18B20的工作时序 首先,DS18B20无法主动向主机发送数据,只有当主 机告诉它我要读数据的时候才可以。因此,主机需要先向 DS18B20发出一个读数据之类的指令(例如读暂存器),然 后紧跟读时隙的操作。所有读时隙的操作不能超过60us,每 两个读时隙的操作之间,至少间隔1us的恢复时间。 主机拉低总线至少1us后,然后释放总线,将总线的控 制权交给DS18B20。此时DS18B20会通过拉高或拉低总线 的方式,传输数据1或0。从总线拉低开始算起,数据1或0的 有效时间为15us,因此主机必须在有效时间内对总线进行采 样。15us之后,无论数据是1是0,总线都维持高电平。

操作DS18B20的实例 这里使用外部电源供电,总线上挂载一个DS18B20,控制流程如 下: 1、初始化DS18B20; 2、发送命令0xCC,跳过读ROM; 3、发送命令0x44,DS18B20将当前温度转换为数据,存入暂存 器; 4、等待一段时间,复位DS18B20,重新初始化; 5、发送命令0xBE,告诉DS18B20,我要读取暂存器里面的数据; 6、进行读操作,将温度值读出、保存。 7、因为只需要读暂存器的前两位,温度读出后,发出 480us~960us的低电平,复位DS18B20。

操作DS18B20的实例 为什么第3步执行完,要重新初始化,直接跳到第5步行么? 答案是:不行。首先,前面提到了DS18B20的控制顺序:1、 初始化;2、ROM指令;3、功能指令。所以每个ROM指令 后面只能跟一个功能指令,如果再想发送ROM指令的话,那 就重新初始化DS18B20。 其次,为什么第4步里面先进行了一个延时,然后才是重新 初始化?就像PCF8591进行AD转换一样,DS18B20转换温 度也是需要一定时间的,不可能指令刚发过来,数据马上就 能传送回去。所以,需要给出一定的时间,让DS18B20完成 转换。

操作DS18B20的实例 如何确保转换完成?两种方法: 1、如果是外部电源供电模式,当转换指令发送完毕后, 可以检测总线的电平,如果为低电平,说明转换过程正在进 行;如果为高电平,说明转换过程已经完成。 2、也是下面这段程序使用的方法,不去判断,给出一 个足够长的延时让它处理,然后去读数据就完了。 任务如下:DS18B20外部供电,温度精度默认12位, 数据脚接到单片机P3.7脚,每隔一秒单片机读取当前温度值, 然后通过UART口传到串口助手上。