DS18B20的初始化,读字节,写字节已省略
unsigned int ReadTemperature(void) //读取温度
{
uchar a=0,b=0;
unsigned int t=0;
Init_DS18B20();
WriteOneChar(0xcc); //跳过读序号列表的操作
WriteOneChar(0x44); //启动温度转换
time_delay(); //延时10ms
Init_DS18B20();
WriteOneChar(0xcc);
WriteOneChar(0xbf); //读取温度
a=ReadOneChar(); // 低位
b=ReadOneChar(); // 高位
b<<=8;
t=a+b;
t=t*0.0625*10+0.5;
return(t);
}
问题:我想让DS18B20读到的温度当超过80时进行报警,那我该如何设置这个判断条件?
为什么我这样不对:
void Alarm(void)
{
unsigned int temp,;
temp=ReadTemperature();
if(temp>80)
{
Alarm_LED=0;
Alarm=0;
}
}为什么我自proteus上我把温度调在80以下还是执行了报警
|