C51关于18B20温度感应器,提取温度的问题

想用C51实现小于50°则P1.0口置低电平!
对18B20比较陌生,不知道retemp的返回值是一个十进制还是其它?
没有想到办法去读取这个返回值并进行判断?

图片说明

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define out P0
sbit smg1 =out^4;
sbit smg2 =out^5;
sbit DQ =P3^7;
sbit P10 =P1^0;

void delay5(uchar);
void init_ds18b20(void);
uchar readbyte(void);
void writebyte(uchar);
uchar retemp(void);

void main(void)
{
    uchar i,temp,a=10;
    P1=0xff;
    out=0xff;
    delay5(1000);
    while(1)
    {
        temp=retemp();
        if(a<=0x05) P10=0;
        for(i=0;i<10;i++)
        {
            out=(temp/10)&0x0f;
            a=out;
            smg1 =0;
            smg2 =1;
            delay5(10);
            out=(temp%10)&0x0f;
            smg1 =1;
            smg2 =0;
            delay5(10);
            /*a=(temp/10);
            out=a&0x0f;
            smg1 =0;
            smg2 =1;
            delay5(10);
            a=(temp%10);
            out=a&0x0f;
            smg1 =1;
            smg2 =0;
            delay5(10);*/
        }
    }
}

void delay5(uchar n)
{
    do
    {
        _nop_();
        _nop_();
        _nop_();
        n--;
    }while(n);
}

void init_ds18b20(void)
{
    uchar x=0;
    DQ =0;
    delay5(120);
    DQ=1;
    delay5(16);
    delay5(80);
}

uchar readbyte(void)
{
    uchar i=0;
    uchar date =0;
    for(i=8;i>0;i--)
    {
        DQ=0;
        delay5(1);
        DQ=1;
        date >>=1;
        if(DQ)
        date|= 0x80;
        delay5(11);
    }
    return(date);
}

void writebyte(uchar dat)
{
    uchar i=0;
    for(i=8;i>0;i--)
    {
        DQ=0;
        DQ=dat&0x01;
        delay5(12);
        DQ=1;
        dat>>=1;
        delay5(5);
    }
}

uchar retemp(void)
{
    uchar a,b,tt;
    uint t;
    init_ds18b20();
    writebyte(0xCC);
    writebyte(0x44);
    delay5(1000);
    init_ds18b20();
    writebyte(0xCC);
    writebyte(0xBE);
    a=readbyte();
    b=readbyte();
    t=b;
    t<<=8;
    t=t|a;
    tt=t*0.0625;
    return(tt);
}

https://blog.csdn.net/hltx666/article/details/98626113