⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18b20.h

📁 DS18B20单个数据线温度芯片驱动大全
💻 H
字号:
#include <reg52.h>
//#include <stdio.h>
 
sbit EQ=P2^0;

#define uint  unsigned int
#define uchar unsigned char

uchar temp_int,temp_piont;
uint flag;//器件检测位
uint templ;
uint temph;

void delay18b20(unsigned int i)
{
 while(--i);
}
void initial()
{
	 EQ=1;
	 delay18b20(1);
	 EQ=0;
	 delay18b20(600);
	 EQ=1;
	 delay18b20(30);
	 flag=EQ;
	 delay18b20(20);
	 while(flag);
}

void wrbyte(uchar word)
	 {
	  uchar i;
	  for(i=0;i<8;i++)
	  {
		EQ=0;
		EQ=word&0x1;
		delay18b20(15);
		EQ=1;
		word>>=1;
	  }
	 }

uint rebyte(void)
{
	  uchar i,word=0;
	  for(i=0;i<8;i++)
	  {
	   word>>=1;
	   EQ=0;
	   EQ=1;
       delay18b20(1);
	   if(EQ)  word|=0x80;
	   delay18b20(8);
	  }
	 return(word);
}

readtemp()
{
	initial();
	wrbyte(0xcc);//跳过ROM匹配
	wrbyte(0x44);//启动温度转换
	delay18b20(160);
	initial();
	wrbyte(0xcc);//跳过ROM匹配
	wrbyte(0xbe);//读取温度寄存器等
	templ=rebyte();
	temph=rebyte();
	temp_int=((temph<<4)&0x70)|((templ>>4)&0x0f);//整数部分
    temp_piont=(templ&0x0f)*5;//小数部分
}





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -