找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1712|回复: 2
收起左侧

单片机ds18b20温度计算小数如何改动程序?

[复制链接]
ID:435640 发表于 2019-4-19 21:43 | 显示全部楼层 |阅读模式
ds18b20温度转换这段程序谁能详细说明一下怎么运行的,如果我想计算小数如何改动

void temp_convert(void)
{
        negetiveflag=0;         
        negetiveflag=temp_h&0x80;
        if(negetiveflag)
        {
                negetiveflag=1;        
                temp_h=~temp_h;
                  if(temp_l==0)
                {
                         temp_h++;
                }
                  temp_l=~temp_l+1;         
        }
        temp_h<<=4;
        temp_l>>=4;                        
        temp_over=temp_h|temp_l;  
        tempalarm=temp_over;
        if(negetiveflag==1)
        {
                 tempalarm=tempalarm*(-1);
        }
}

回复

使用道具 举报

ID:516781 发表于 2019-4-19 22:49 | 显示全部楼层
int getTmpValue()
{
    unsigned int tmpvalue;
    int value;
    float t;
    unsigned char low, high;
    sendReadCmd();
   
    low = readByte();
    high = readByte();
   
    tmpvalue = high;
    tmpvalue <<= 8;
    tmpvalue |= low;
    value = tmpvalue;
   
  \
    t = value * 0.0625;
    \
    value = t * 100 + (value > 0 ? 0.5 : -0.5); //大于0加0.5, 小于0减0.5
    return value;
}

评分

参与人数 1黑币 +10 收起 理由
zhai123 + 10

查看全部评分

回复

使用道具 举报

ID:213173 发表于 2019-4-20 08:37 | 显示全部楼层
yangdk 发表于 2019-4-19 22:49
int getTmpValue()
{
    unsigned int tmpvalue;

给你一个示例程序。

ds18b20温度数码管显示+仿真.zip (123.22 KB, 下载次数: 21)

评分

参与人数 1黑币 +10 收起 理由
zhai123 + 10

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表