DS18B20集成了A/D转换器。

只用一个引脚与单片机进行通信。可以串接多个数字温度传感器进行范围的温度检测。

设计精度0.1(测温范围-55C~+125C,固有测温分辨率0.5C,测量结果以9-12位数字量方式串行传送),正常温度60度,低于59度,红灯亮,高于61度,也是。

当开始运行后,先初始化DS18B20,然后设定温度恒定值,->显示当前温度->判断温度,红灯亮不亮。

DS18B20工作原理是用与温度比较敏感的振荡器实现的。一般情况下温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。

主要由2部分组成:64位ROM、9字节暂存器,如图所示。

(1) 64 位ROM。它的内容是64 位序列号,它可以被看作是该DS18B20 的地址序列码,其作用是使每个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。

8位CRC:是单总线系列器件的编码,DS18B20定义为28H。
48位序列号:是一个唯一的序列号。
8位系列码:由CRC产生器生产,作为ROM中的前56位编码的校验码。仅仅作为校验码而已

以上是内部9 个字节的暂存单元(包括EEPROM,注意是字节)。
字节0~1 是温度存储器,用来存储转换好的温度。
字节2~3 是用户用来设置最高报警和最低报警值。这个可以用软件来实现。
字节4 是配置寄存器,用来配置转换精度,让它工作在9~12 位。
字节5~7 保留位。
字节8 CRC校验位。是64位ROM中的前56位编码的校验码。由CRC发生器产生。

温度寄存器由两个字节组成,分为低8位和高8位。一共16位。
其中,第0位到第3位,存储的是温度值的小数部分。
第4位到第10位存储的是温度值的整数部分。
第11位到第15位为符号位。全0表示是正温度,全1表示是负温度。
表格中的数值,如果相应的位为1,表示存在。如果相应的位为0,表示不存在。

精度值:
9-bit 0.5℃
10-bit 0.25℃
11-bit 0.125℃
12-bit 0.0625℃

DS18B20首先初始化,ROM操作命令,存储器操作命令,处理数据。每一片DS在其ROM中都有唯一48位序列号,在出厂前已写入片内ROM中,主机在操作前必须读出来,

现在的大致印象就是:串行传输,时序严格,蜜汁初始化。

这些并不是很懂。

测量每秒一次

可以看到非常困难。

单总线协议(1-wire)

1.定义:主机和从机通过1根线进行通信,在一条总线上可挂接的从器件数量几乎不受限制。

2.特点:这是由达拉斯半导体公司推出的一项通信技术。它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的。

3.优点:单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等。

主机通过拉低单总线480 ~ 960 us产生复位脉冲(制造了一个上升沿),然后释放总线,进入接收模式。

单总线器件检测到上升沿之后,延时15 ~ 60 us,单总线器件拉低总线60 ~ 240 us来产生应答脉冲。

主机接收到从机的应答脉冲(在有限时间内)说明单总线器件就绪,初始化过程完成。说白了,就是你拉低一下,然后我拉低一下,就认为准备好了。

当数据线拉低后,在15 ~ 60 us的时间窗口内对数据线进行采样。如果数据线为低电平,就是写0,如果数据线为高电平,就是写1。(先拉低,经过15us后是继续保持低电位(0)还是拉高成高电位(1))。

主机要产生一个写1时间隙,就必须把数据线拉低,在写时间隙开始后的15 us内允许数据线拉高。主机要产生一个写0时间隙,就必须把数据线拉低并保持60 us。

读时间隙

当主机把总线拉低是,并保持至少1 us后释放总线,必须在15 us内读取数据。

比较简单的读写协议。

DS18B20 时序包括如下几种: 初始化时序、 写(0 和 1) 时序、
读(0 和 1) 时序。 DS18B20 发送所有的命令和数据都是字节的低位在前。初始化时序也是主机发送复位脉冲,从机(这里说的就是DS18B20)发送应答脉冲。

写时序:就是主机先拉低总线代表我(主机)要开始写数据了,从机再对总线采样,是低电平就是主机写0,是高电平就是主机写1(从机采样是自动的,我们不用管!),这个过程总线保持同样的状态至少60us(是0是1都要保持60us)即可被正确采样,

写时序包括写 0 时序和写 1 时序。 所有写时序至少需要 60us, 且在 2 次独立的写时序之间至少需要 1us 的恢复时间,两种写时序均起始于主机拉低总线。
写 0时序: 主机输出低电平, 延时 至少60us, 然后释放总线, 延时 至少1us恢复
写 1 时序: 主机输出低电平, 在15us内允许拉高总线, 然后释放总线, 延时 一共至少60us

读时序:读时序其实和写时序操作非常相似,不一样的地方就是不再是从机进行采样,而是主机要在总线拉低的15us内完成采样。其他地方都和写时序相同(也是主机首先拉低)。

单总线器件仅在主机发出读时序时, 才向主机传输数据, 所以, 在主机发出读数据命令后, 必须马上产生读时序, 以便从机能够传输数据。 所有读时序至少需要 60us, 且在 2 次独立的读时序之间至少需要 1us 的恢复时间。 每个读时序都由主机发起, 至少拉低总线 1us。 主机在读时序期间必须释放总线, 并且在时序起始后的 15us 之内采样总线状态。

就是如果主机不写的话,它就是代表读的。究竟是要写操作还是读操作,都是通过主机向从机写命令后,再启动时序进行的。

例如:对于读操作而言,假如要开始读取转换后的温度,那就得先发送读取DS18B20存储器命令,这里就先利用写时序向从机写入命令,然后主机再启动读时序获得转换好的温度!

并不是仅仅压一个低电位就可以为所欲为了,难着呢。

读取到的DS18B20的温度值(16位)如何转换为实际的温度值,以及关于SBUF串行口发送/接收数据缓冲器和串行口的波特率的设置问题,

51单片机 DS18B20温传相关推荐

  1. 51单片机DS18B20测温数码管显示例程(Proteus仿真+程序)

    编号:19 51单片机DS18B20测温数码管显示例程 功能描述: 本设计由STM32单片机+DS18B20温度传感器+四段数码管显示模块组成. 1.主控制器是51单片机 2.DS18B20温度传感器 ...

  2. S0011基于51单片机DS18B20温控风扇仿真设计

    基于51单片机DS18B20温控风扇仿真设计 (仿真+原理图+源码+设计报告) 原理图:Altium Designer 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程 ...

  3. 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限 (仿真+源码+原理图+报告) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/ ...

  4. matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc

    基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...

  5. 51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真

    51单片机+DS18B20+数码管显示+串口通讯+Proteus仿真 本实验通过51单片机读取DS18B20温度传感器的温度,然后通过数码管显示,并通过串口,将读取到的温度数据发送出去. 本案例需要使 ...

  6. 51单片机DS18B20与中断冲突解决方式

    51单片机DS18B20与中断冲突解决方式 应用场所 在使用51单片机DS18B20的过程中,总会遇到中断(这里的中断主要是指定时器中断和串口中断)与其时序产生冲突,从而导致读取不稳定的情况发生. 问 ...

  7. 51单片机~DS18B20温度传感器

    51单片机~DS18B20温度传感器 (一)简介说明: (二)接线: 1. 内部结构: 正温度前五位是0. 负温度前五位是1. 由LS,MS组成的四位十六进制数,和16位二进制数.(先MS后LS) 结 ...

  8. 51单片机DS18B20温度传感器及数码管显示温度

    51单片机DS18B20温度传感器及数码管显示温度 大家好,今天给大家带来的代码及原理解释是,在51单片机在接收DS18B20温度传感器数据,并且在数码管上实时显示温度 DS18B20及数码管显示温度 ...

  9. 51单片机-DS18B20单片

    51单片机-DS18B20单片 51单片机-DS18B20单片 DS18B20时序 初始化时序 读时序 写时序 DS18B20单片操作流程 ROM指令 功能指令 51单片机-DS18B20单片 需要读 ...

最新文章

  1. 数据结构,堆和栈和队列的概念
  2. vs2015自动窗口(查看变量的值)
  3. 单例模式的java实现
  4. bootstraptable 日期控件_bootstrap table插件使用说明demo
  5. 6.17 dokcer(一)Compose 简介
  6. php文件上传详解,PHP文件上传实例详解!!!
  7. t580 thinkpad_聊聊ThinkPad T580:除了大屏,还有什么
  8. Ubuntu18.04安装JDK1.8.0_11
  9. JetBrains PyCharm选中内容后Backspace删除无法使用,Ctrl+c/Ctrl+v/Ctrl+s/Ctrl+d等等快捷键无法使用的问题的解决
  10. ITU-T G.1081 IPTV性能监测点 (Performance monitoring points for IPTV)
  11. 19年北理考研计算机复试分数多少钱,2019年北京理工大学考研复试分数线已出现...
  12. mysql查询4-6_MySQL学习(四)查询
  13. 遥感数字图像处理 初体验
  14. 第十三届蓝桥杯A组Python组心得分享
  15. java 双三次线性插值_双三次插值算法实现
  16. Maven 打包-添加第三方包、依赖包 mvn clean package
  17. 云痕大数据 家长登录_云痕大数据——苏州云痕教育科技有限公司
  18. 华为云服务登录显示服务器异常,云服务器异常登录应该怎么处理
  19. 各种控制方法在抗干扰方面的区别
  20. testlink mysql_windows下testlink环境搭建

热门文章

  1. 【进阶一】Python实现MDCVRP常见求解算法——蚁群算法(ACO)
  2. 教育系统+直播APP开发设计
  3. 【intel IPP库历史版本下载】
  4. 计算机视觉常见的十种图像标注方法
  5. 2021年全球及中国质谱仪行业现状以及我国进出口现状分析,我国高端产品主要从美国、德国、新加坡进口「图」
  6. 研报精选230214
  7. DTO与实体类的区别
  8. Windows XP系统下添加任务计划常出现问题解决办法
  9. 这篇文章告诉你pdf转图片软件有哪些,建议收藏
  10. ERP-非财务人员的财务培训教(二)------如何评价公司/部门经营业绩