温度temp: temp = Read_DS18B20_temp();
unsigned int Read_DS18B20_temp()
{
unsigned char LSB,MSB;
unsigned int temp;
init_ds18b20();//DS18B20复位
Write_DS18B20(0xcc);//跳过ROM操作指令
Write_DS18B20(0x44); //开始温度转换
Delay_OneWire(200);
init_ds18b20(); //DS18B20复位
Write_DS18B20(0xcc);//跳过ROM操作指令
Write_DS18B20(0xbe); //开始读取高速暂存器
LSB=Read_DS18B20();//读取温度数据的低8位
MSB=Read_DS18B20();//读取温度数据的高8位
/** 精度为0.0625摄氏度 */
temp = (MSB & 0x0f); //清前四位
temp = (temp<<8)|LSB; //将LSB和MSB整合成为一个16位的整数
temp = temp * 0.0625 * 10; //放大十倍
return temp;
}