zoukankan      html  css  js  c++  java
  • 蓝桥决赛给的资源包的DS18B20的读取温度的写法

    获取DB18B20的温度数据

    s16 ds18b20_read(void)
    {
    u8 val[2]; 
    u8 i = 0;

    s16 x = 0;

    ow_reset();
    ow_byte_wr(OW_SKIP_ROM);     //ow_byte_wr (0xcc)
    ow_byte_wr(DS18B20_CONVERT);     //ow_byte_wr(0x44)
    Delay_Ms(75);

    ow_reset();
    ow_byte_wr( OW_SKIP_ROM );    //ow_byte_wr(0xcc)
    ow_byte_wr ( DS18B20_READ );   //ow_byte_wr(0xbe)

    for ( i=0 ;i<2; i++) {
    val[i] = ow_byte_rd();  //读取单总线上数据
    }

    x = val[1]; //高位
    x <<= 8;
    x |= val[0]; //或上低位

    return x; //返回16位数据
    }

    转换的数值对应要变成温度单位需要乘以0.0625

    浮点数结果:x = z/16.0; 除以浮点数变为浮点数

    整型(不保留小数结果)y = z/16;

    保留两位小数的整型结果(放大100倍)y = z*100/16;

  • 相关阅读:
    个人博客
    个人博客
    5.4
    4.30
    4.29
    4.28
    4.27
    4.26
    4.25
    4.24
  • 原文地址:https://www.cnblogs.com/page71/p/14850420.html
Copyright © 2011-2022 走看看