最常用的DS18B20测温程序
Readtem(void)
{ uchar a=0;
uchar b=0;
uchar t=0,t1;
init_DS();
write(0xcc);//跳过读序列号操作
write(0x44);//启动温度转换
delay(125);
init_DS();
write(0xcc);
write(0xbe);// 读温度寄存器
a=Read();//读取温度低位LSB
b=Read();//读取温度低位HSB
t1=(a&0x0f)*0.0625;//取小数部分
t=((b<<4)|(a>>4));//取整数部分
if(t>128)
{
t=~t+1;
}
t=t+t1;
return(t);
}
void main()
{
float tp;
while(1)
{
tp=Readtem();
tp=tp*100;//把二位数乘以100变成四位数 display(tp);
}
}