typora-copy-images-to: 图片
typora-root-url: 图片
DS18B20函数
1、延时函数
void Delay1ms(unsigned int y)//延时1ms,延时多少就传多少
{
unsigned int x;
for(y;y>0;y--)
for(x=110;x>0;x--);
}
2、温度传感器初始化
unsigned char Ds18b20Init()
{
unsigned int i;
DSPORT=0; //将总线拉低480us~960us
i=70;
while(i--);//延时642us
DSPORT=1; //然后拉高总线,如果DS18B20做出反应会将在15us~60us后总线拉低
i=0;
while(DSPORT) //等待DS18B20拉低总线
{
i++;
if(i>5000)//等待>5MS
return 0;//初始化失败
}c
return 1;//初始化成功
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wkk2IHzX-1582043230885)(/image-20200216212259152.png)]
3、温度传感器读时序
unsigned char Ds18b20ReadByte()
{
unsigned char byte,bi;
unsigned int i,j;
for(j=8;j>0;j--)
{
DSPORT=0;//先将总线拉低1us
i++;
DSPORT=1;//然后释放总线
i++;
i++;//延时6us等待数据稳定
bi=DSPORT; //读取数据,从最低位开始读取
/*将byte左移一位,然后与上右移7位后的bi,注意移动之后移掉那位补0。*/
byte=(byte>>1)|