keil 51 C程序高手请进!!!

来源:百度知道 编辑:UC知道 时间:2024/06/25 02:54:32
keil 51 C程序高手帮忙啊:
}
tvalue=tvalue*(0.625);//温度值扩大10倍,精确到1位小数
return(tvalue);
}
/*******************************************************************/
void ds1820disp()//温度值显示
{ uchar flagdat;
disdata[0]=tvalue/1000+0x30;//百位数
disdata[1]=tvalue%1000/100+0x30;//十位数
disdata[2]=tvalue%100/10+0x30;//个位数
disdata[3]=tvalue%10+0x30;//小数位
这是程序中截下的一小段 其中unsigned int tvalue是一个12位的二进制数,最低四位表示小数,现在想将第一位小数分离出来,那么应该将tvalue乘以10 可为什么乘以0.625呢???还有就是后面分离百 十 个与小数 这四个位的时候,为什么后面要加一个0x30呢???

后面加上0x30,是把相应的数字校准到相应的ASCII码上.
另外一个*0.625就要看就要根据器件手册和前后程序来看.

DS18B20我也做过自动寻址的,器件手册中的流程图比较重要.