问答

DS18B20温度转换问题

提问者:z78782013-06-13 00:00

rdbyte(void) //读取温度的一个字节 ....... tplsb=rdbyte();//温度值低位字节 tpmsb=rdbyte();//高位值高位字节 请问如何将读到的温度转换为十进制数?最好还包括一位小数。用数码管显示。先谢谢了!

最佳答案

把tplsb和tpmsb都是8位的合成一个16位的有符号数tt;temp为浮点数 t=tpmsb<<8; t=t|tplsb; if(t<0) //负温度 { temp=(~t+1)*0.0625*10+0.5; //负温度时,取反加1再乘以0.0625得实际温度,乘10+0.5显示小数点一位,且四舍五入 } else temp=t*0.0625*10+0.5; //正温度 if(t<0) bai='-'; //负温度时百位显示负号 else bai=(const) temp/1000+0x30; //百位 shi=((const) temp%1000)/100; //十位 ge=((const) temp%1000)%100/10; //个位 shifen=((const) temp%1000)%100%10; //十分位

回答者:pnhahd2016-06-13 00:00

DS 5相关问题

相关阅读

DS 5频道

报价:21.99-34.59
级别:中型车
排量:1.6T 1.8T 
变速箱:-

车友关注

最新标签

按字母分类:
ABCDEFGHIJKLMNOPQRSTWXYZ0-9