我是新学生,想问问DS18B20温度读出来,怎么转换成带小数的十进制数,显示出来

2019-07-15 12:57发布

我最近在学习DS18B20 , 温度读出来后不知如何转换成带小数的十进制数显示在1602上。希望大神工程师点拨一番。谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
小小接触
2019-07-17 03:32
谢谢各位,我昨天看资料写的程序
uint16_get_temp()
{
        uint8 a,b;
        uint16 d;
        float c;
        temp_change();
        INIT_DS18B20();
        delay(1);
        DS18B20_write(0xcc);
        DS18B20_write(0xbe);
        a=DS18B20_read();
        b=DS18B20_read();
        d=b;
        d<<=8;
        d=d|a;
        c=d*0.0625;
        temp1=c*10+0.5;
       

        return temp1;

}
奇怪的是,读出来的显示在1602的数,大了好多。不知是何故???
void main()
{
        LCD_init();
        while(1)
        {
                temp2=uint16_get_temp();
                delay_us(20);
                shi=temp2/10;
                ge=temp2%10;
                LCD_write_com(0x80);
                LCD_write_date(0x30+shi);
                LCD_write_date(0x30+ge);
                LCD_write_date('.');

               
                                
        }
}

一周热门 更多>