ds18b20温度转换指令_使用STM32控制DS18B20温度传感器

前言

温度传感器是各种传感器中最常用的一种,在做项目时经常会需要测量当前的温度,而DS18B20采用单总线协议,即与单片机借口仅需占用一个I/O端口,无需任何外部元件,仅需要一个上拉电阻,即可将外部环境温度以数字码的方式串行输出,从而大大简化了传感器与微处理器的接口,且DS18B20提供了9—12位的可编程分辨率为9—12位对应的可分辨温度分别为0.5°C,0.25°C,0.125°C,0.0625°C,其转化速率随着温度分辨率的增加而减少。并且DS18B20的测温范围在-55°C~+125°C满足了大部分基本的项目需求。

一、DS18B20的基本读写初始化时序操作

1 初始化操作

单片机先将DQ引脚拉至低电平480—960us发送一个低电平脉冲(复位)之后释放总线由上拉电阻将引脚上拉至高电平持续等待15—60us之后将单片机引脚转为输入模式检查DS18B20是否做出应答,若DS18B20存在,则会将总线拉低60—240us将DQ引脚拉低做出应答

2 写数据操作

DS18B20的写周期最少为60us最长不能超过120us,DS18B20写0时序与写1时序类似,在写0时序中单片机需要将DQ引脚拉低之后DS18B20会在引脚被拉低的第15—60us内进行采样读取到写0的操作,而对DS18B20进行写1操作需要单片机先将引脚拉低至低电平1us的时间之后将总线释放由上拉电阻将总线拉直高电平,DS18B20则会在第15—60us内读取到写1操作

3 读数据操作

由时序图可知读操作最短时间为60us最长不超过120us,DS18B20读操作开始时单片机需要将DQ引脚拉低至少1us的时间后将总线释放,在总线释放期间,若DS18B20发送0,则把总线拉低至少到15us,之后释放总线,若发送1,则不拉低总线,单片机需要在读周期开始后的15us内读取引脚的电平大小,之后释放总线45us完成时序

二、DS18B20的ROM指令和存储器指令

在完成对DS18B20的初始化后要对DS18B20进行操作,而DS18B20的指令可根据作用对象可分为ROM指令和存储器指令,前者可通过ROM指令选择所需操作的DS18B20,后者是对所选的DS18B20

你可能感兴趣的:(ds18b20温度转换指令)