51单片机课程设计,数字温度计
ds18b20_init();
//向DS18B20发写字节至暂存器2和3(TH
ds18b20_write(0xcc);
ds18b20_write(0x4e); 和TL)命令
ds18b20_write(max); ds18b20_write(min); ds18b20_write(0xff);
//向暂存器TH(上限温度暂存器)写温度 //向暂存器TL(下限温度暂存器)写温度 //向配置寄存器写命令,进行温度值分辨率设置
ds18b20_init();
ds18b20_write(0xcc); ds18b20_write(0x48); //向DS18B20发将RAM中2、3字节的内容写入EEPROM
} //DS18B20上电后会自动将EEPROM中的上下限温度拷贝到TH、TL暂存器
/******************************************************/ /* 温度超限报警函数 /
/*****************************************************/ void alarm() { //若上限值是正值
if(f_max==0) {
if(f_min==0)
{ if(f==0)
//若下限值是正值 //若测量值是正值
警
{ if(temp<=min||temp>=max) {w=1;TR1=1;} //当测量值小于最小值或大于最大值时报
if((temp<max)&&(temp>min)) {w=0;} //当测量值大于最小值且小于最大值时
不报警
}
if(f==1){w=1;TR1=1;} //若测量值是负值时报警
//若下限值是负值
}
if(f_min==1)
{