steam上有手机游戏吗:关于18b20测温的问题

来源:百度文库 编辑:高校问答 时间:2024/05/12 07:47:48
我用的是51单片机,以下是读温度的程序。读出来的二进制代码放在temp这个数组里。

现在的问题是将读出的二进制代码转换成十进制输出以后,整数部分能正常显示,小数点后第一位以0.5°的步长跳变,小数点后面三位恒为零,如果直接给temp数组赋初值(比如01010101010101),则能正常显示出温度(如85.3125),所以怀疑是以下读温度的程序有问题,但是我调了很久都调不出,还望高人指点。

void read(void)
{for(x=0;x<12;x++)
{P1_5=1;
for(i=0;i<2;i++);
P1_5=0;
for(i=0;i<2+1;i++); //拉低>17uS
P1_5=1; //拉高,释放总线,产生读时间隙
temp[11-x]=P1_5;
for(i=0;i<16+2;i++); //等待>60uS
P1_5=1;

}
}