第十五届蓝桥杯单片机组——DS18B20模块

发布时间:2024年01月20日

一、DS18B20介绍

DS18B20的温度测量范围从-55℃到+125℃,分辨率在9位到12位之间,可以由用户自己进行设置。在-10℃到+85℃范围内,其精确度可以达到±0.5℃。DS18B20可以通过单个数据线(以及地线)进行通信。

二、DS18B20的温度转换与读取流程

[1] DS18B20复位。
[2] 写入字节0xCC,跳过ROM指令。.
[3] 写入字节0x44,开始温度转换。
[4] 因为温度转换需要时间,所以延时700~900ms
[5] DS18B20复位。
[6] 写入字节0xCC,跳过ROM指令。
[7] 写入字节0xBE,读取高速暂存器。
[8] 读取暂存器的第0字节,即温度数据的LSB.
[9] 读取暂存器的第1字节,即温度数据的MSB.
[10] DS18B20复位。表示读取数据结束。
[11] 将LSB和MSB整合成为一个16位 数据。
[12] 判断读取结果的符号,进行正负温度的数据处理。

看到这是不是开始害怕了,不用怕,我教大家如何利用蓝桥杯官方提供的资料来完成上面的这些内容。大家需要理解的只有[11]和[12]这两个怎么实现就行。

三、利用手册完成DS18B20的读写

先看一下官方提供给我们了哪些函数?

void Write_DS18B20(unsigned char dat);	// 写ds18b20
unsigned char Read_DS18B20(void);		// 读取ds18b20
bit init_ds18b20(void);					// 初始化ds18b20,也就是复位ds18b20

根据这三个函数,再结合ROM指令流DS18B20功能指令流
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
未完待续,碎觉了明天继续…

文章来源:https://blog.csdn.net/struggle_success/article/details/135708400
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。