ds18b20模块,就是一个普通的温度读取函数,需注意读取前要进行延时操作;
否则温度显示不正确!
代码如下:
自己敲体会!
int pcf8591(char t)//---int t为扩大的倍数
{
int temp;///----不能用char,数字十位显示为0
char l;
char m;
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0x44);
wendu();
delay(1000);//---可自行修改一下数字看看有没有变化
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0xbe);
l=Read_DS18B20();
m=Read_DS18B20();
temp=((m<<8)|l);
wendu();
if((temp&0xf800)==0)//要加两个括号,否则报错
{
temp=(int)temp*0.0625*t;//----在主函数中调用t=10
}//判断为正温度,不加也行
}
1.初始化
2.跳过指令
3.温度转换
4.延时!!!
5.初始化
6.跳过指令
7.温度读取
8.进行温度的合并
9.温度显示到数码管涉及到数值大小的问题,要进行转换!
以上就是ds18b20测量温度的流程了,很简单。