|
1、MCU向DS18B20发送读取当前温度相关的ROM指令和RAM指令,可将DS18B20温度变换后的值存在暂存器中。
1)读温度程序代码如下。
- DS18B20_Rst();
- DS18B20_Presence();
- DS18B20_Write_Byte(0XCC); //ROM指令: 跳过 ROM
- DS18B20_Write_Byte(0X44); //RAM指令: 开始温度转换
-
- DS18B20_Rst();
- DS18B20_Presence();
- DS18B20_Write_Byte(0XCC); //ROM指令: 跳过 ROM
- DS18B20_Write_Byte(0XBE); //RAM指令: 读温度值
2)暂存器中的9字节数据含义是。
2、读暂存器温度原始数据处理代码如下。
- uint8_t tpmsb, tplsb;
- short s_tem;
-
- tplsb = DS18B20_Read_Byte(); //读温度值低8位
- tpmsb = DS18B20_Read_Byte(); //读温度值高8位
-
- s_tem = tpmsb<<8;
- s_tem = s_tem | tplsb;
3、正温时,DS18B20温度转换计算公式如下。
4、负温时,DS18B20温度转换计算公式如下。
5、将读取的温度原始值分正温和负温进行算法运算得出实际温度值,代码如下。
- float f_tem;
-
- if( s_tem < 0 ) //读取的温度值是负值,代表温度是负温
- f_tem = (~s_tem+1) * 0.0625;
- else //读取的温度值是正值,代表温度是正温
- f_tem = s_tem * 0.0625;
- return f_tem;
6、上述代码返回值f_tem就是实际采集的温度值。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|