for (i=0;i<8;i++) { DS18_delay(6); }
return(value); } unsigned
// 读取字节,每次读取一个字节
if(read_bit()) value|=0x01<
int ReadTemperature(void) { unsigned char get[10];
unsigned char temp_lsb,temp_msb; unsigned int t; unsigned char k; ow_reset();
ds18write_byte(0xCC); ds18write_byte(0x44); DS18_delay(5); ow_reset();
ds18write_byte(0xCC); ds18write_byte(0xBE);
// 跳过 ROM // 读暂存器
// 跳过 ROM // 启动温度转换
for (k=0;k<2;k++){get[k]=DSread_byte();} temp_msb = get[1]; // Sign byte + lsbit temp_lsb = get[0]; // Temp data plus lsb t=temp_msb*256+temp_lsb; t=t&0x0ff0; if(t<0xff&&t>0xf0) t=(-1)*t; return t>>4;
//temp_f = (((int)temp_c)* 9)/5 + 32; }
32