51单片机-18B20温度传感器

51单片机-18B20温度传感器目录 一 18B20 组成 1 64 位 ROM 2 内部存储器 3 配置寄存器 二 18B20 温度转换规则及指令 三 18B20 指令时序图及代码实现 1 18B20 初始化 2 18B20 读时序 3 18B20 写时序 四 51 单片机具体实现代码 1 18B20D 读取数据函数 2 18B20D 读取数据函数的头文件 3 主函数

大家好,我是讯享网,很高兴认识大家。

目录

一.18B20组成

1.64位ROM

2.内部存储器

3.配置寄存器

二.18B20温度转换规则及指令 

三.18B20指令时序图及代码实现

1.18B20初始化

2.18B20读时序

3.18B20写时序

 四.51单片机具体实现代码


讯享网

1.18B20D读取数据函数

2.18B20D读取数据函数的头文件 

3.主函数



一.18B20组成

  • 管脚顺序:1-GND 2-DQ 3-VDD
  • 组成:64位ROM +存储器和控制器 +高速缓存存储器 + 8位CRC生成器 + 温度灵敏元件 + 高/低温触发器TH/TL + 配置寄存器

1.64位ROM

出厂前已经刻录好数据,用于存储18B20的地址序列号,由 8位产品类型标号 + 48位序列号 + 8位CRC循环冗余校验码。

用处:用于实现一根总线挂载多个18B20

2.内部存储器

内部存储器包括高度暂存器RAM + EEPROM;

EEPROM用于存放TH/TL高低温触发器+结构寄存器

3.配置寄存器

存储的第四字节为配置寄存器,用于配置传感器的精度;组成 1111 1+ R0 + R1 + 0 ,低4位和第7位不可改变。

R1 R0 精度
0 0 9bit
0 1 10bit
1 0 11bit
1 1 12bit

二.18B20温度转换规则及指令 

  • 核心功能:可直接读出数字的温度数值
  • 精度:用户可编程 9位 --0.5℃;10位 --0.25℃;11位 --0.125℃;12位 --0.0625℃。默认精度:12位
  • 工作过程:总线发出44H命令,进行测量温度和AD转换;转换后,产生数据以两字节的形式存储在高速缓存存储器中后,器件保持等待状态。
  • 温度数据组成:16位,
    • (MS 5bit)高5位为符号位,T>0时,全为0,实际温度 = 后7位数据 *1 ℃ + 后4位数据* 0.625℃;T<0时,全为1,实际温度 =( 后7位数据取反+1的数据前7位)* 1℃ +( 后4位数据取反+1的数据前7位)* 0.0625℃;
    • (MS 3bit+ LS 4bit)高字节的后三位+低字节的前4位为整数部分
    • (LS 4bit)低字节的后4位为小数部分
    • eg:
      • 1111 1111  1111 1000 (FFF8h)>>> 1111 1 温度为负 ,111 1111  1000取反+1 =000 0000 1000(8) ;实际的温度 = -8*0.0625 = 0.5℃
      • 0000 0111 1101 1000 (07D8h)>>> 0000 0 温度为正 ,0000 0111 1101 1000  ;实际的温度 =  (111 1101)125  * 1 +(1000)8 * 0.0625= 125 .5℃

三.18B20指令时序图及代码实现

ROM指令表
指令 代码 功能
读ROM 33H 读取ROM的序列号
跳过ROM CCH 忽略64bitROM地址,直接可进行温度转换
温度转换 44H 启动温度转换,转换时长最大750ms,存入内部RAM
读暂存器 0BEH 读取内部RAM的内容

1.18B20初始化

初始化时序
小讯
上一篇 2025-03-19 23:26
下一篇 2025-01-04 21:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/36608.html