DS18B20的工作原理及调试 您所在的位置:网站首页 温度报警器怎么调试的 DS18B20的工作原理及调试

DS18B20的工作原理及调试

#DS18B20的工作原理及调试| 来源: 网络整理| 查看: 265

概述

在基于51单片机的温度报警系统的学习中,我用到了DS18B20这款温度传感器。DS18B20是一种单总线数字温度传感器,测试温度范围-55℃-125℃,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。单总线,意味着没有时钟线,只有一根通信线。单总线读写数据是靠控制起始时间和采样时间来完成,所以时序要求很严格,这也是DS18B20驱动编程的难点。

1.DS18B20的引脚分布图

在这里插入图片描述 DS18B20采用1-wire Bus所有数据都在一条线上传输,因此单总线协议对时序要求非常严格以确保数据的完整性。 单总线信号类型:复位脉冲、存在脉冲、写0、写1、读0、读1。所有这些信号除存在脉冲由DS18B20发出的以外其他信号都由总线控制器发出。 需要注意的是: 数据传输总是从最低有效位开始。

2.字节暂存器结构图

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

3.配置寄存器

在这里插入图片描述

4.DS18B20初始化程序

1.初始化时序里面包含了复位DS18B20和接收DS18B20返回的存在信号。 主机和DS18B20做任何通讯前都需要对其初始化。初始化期间,总线控制器拉低总线并保持480us以上挂在总线上的器件将被复位,然后释放总线,等到15-60us,此时18B20将返回一个60-240us之间的低电平存在信号。 在这里插入图片描述

bit ds_init() { bit i; DS = 1; _nop_(); DS = 0; Delay500us(); DS = 1; Delay40us(); i = DS; Delay140us(); DS = 1; _nop_(); return (i); }

2.写时序分为写0时序和写1时序。 总线控制器通过控制单总线高低电平持续时间从而把逻辑1或0写DS18B20中。 总线控制器要产生一个写时序,必须将总线拉低最少1us,产生写0时序时总线必须保持低电平60~120us之间,然后释放总线,产生写1时序时在总线产生写时序后的15us内允许把总线拉高。注意:2次写周期之间至少间隔1us 在这里插入图片描述

void write_byte(uchar dat) { uchar i; for(i=0;i uchar i, j, dat; for(i=0;i


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有