|
void ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned int t=0;
float tt=0;
Init_DS18B20();
WriteOneChar(0xCC); //跳過讀序號列列號的操作
WriteOneChar(0x44); //啟動溫度轉(zhuǎn)換
Init_DS18B20();
Write0neChar(0xCC); //跳過讀序號列號的操作
WriteOneChar(0xBE); //讀取溫度寄存器
a=ReadOneChar(); //讀低8位
b=ReadOneChar(); //讀高8位
t=b; //高8位轉(zhuǎn)移到t
t<<=8; //t數(shù)據(jù)左移8位
t=t|a; //將t和a按位或
t=t*0.0625; //將t乘以0.06
t= t*10+0.5; //放大10倍(將小數(shù)點后一位顯示出來)輸出并四舍五入
return(t); //返回溫度值
}
|
|