);Р?}Р return temp;Р} Р/************DS18B20转换温度函数******************/Рvoid DS18B20_Start_Conversion()Р{Р?DS18B20_Init(); //复位Р?Write_DS18B20(); //跳过ROMР?Write_DS18B20(0x44); //开始转换温度对芯片写入0x44Р //芯片接收转换指令后,把一些温度有关的模拟量转变成数字信号,再把此数值放入相应的RAM上Р?delay_100ms(); //延时100ms,转换时间这里如果太长,读出的会慢Р?DS18B20_Init(); //复位Р?Write_DS18B20(); //Р?Write_DS18B20(0xbe);?//0xbe读取暂存器指令Р}Р/**************获得转换温度函数*****************/Рunsigned char Get_temperature()Р{Р?unsigned char temp1,temp2;Р?DS18B20_Start_Conversion(); //温度开始转换并发出读取命令Р?temp1=Read_DS18B20();Р?temp2=Read_DS18B20(); //读取暂存器前两个字节Р?DS18B20_Init(); //读取完前两个字节后,终止读取Р?if((temp2&0xf8)==0xf8) //判断,如果读取的温度是负数Р?{Р LCD_Dis_sign=1; //液晶显示标志温度为负数Р return ((~((temp2<<8)|temp1)+1)*0.0625); //单片机二进制转十进制Р //把Temp2的值左移8位,然后或Temp1,非运算,再加1Р?} //得到的数再乘以0.0625,将值赋给Temperature