我想用单片机写个ds18b20温度传感器的程序 但是读出来的是二进制 怎么转换成十进制呢 5
2个回答
展开全部
举例说明:八位二进制为一字节,那最大为(1111 1111)255.,先将这个数除100得到百位2,然后100取余为55,将取余后的值55再除以10得到十位5,再用10取余得到个位数字5,那十进就为255;
再比如说二进制为(0001 1101)29,先将这个数除100得到百位0,然后100取余29,将取余后的值再除以10得到十位2,再用10取余得到个位数字9。不知道听懂了没有?
当然DS18B20输出的温度值为两个字节,即16位,其中高字节的高5位为温度符号位,即温度为正还是负(零下),下来高字节的低位与低字节的高四位组成温度的整数部分,低字节的低四位为温度值的小数部分。把11位的2进制温度值转化为10进制后在乘以0.0625便为所测的温度,
好好看下DS18B20的数据手册应该都能了解,希望对你有帮助。不懂可以再问!
再比如说二进制为(0001 1101)29,先将这个数除100得到百位0,然后100取余29,将取余后的值再除以10得到十位2,再用10取余得到个位数字9。不知道听懂了没有?
当然DS18B20输出的温度值为两个字节,即16位,其中高字节的高5位为温度符号位,即温度为正还是负(零下),下来高字节的低位与低字节的高四位组成温度的整数部分,低字节的低四位为温度值的小数部分。把11位的2进制温度值转化为10进制后在乘以0.0625便为所测的温度,
好好看下DS18B20的数据手册应该都能了解,希望对你有帮助。不懂可以再问!
2017-08-29
展开全部
先解决一个18B20,不用系列号的。再解决一个18B20,使用系列号的。最后,再解决二个18B20,使用系列号的。现在,你弄的规模这么大,难说在那一个步骤,有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询