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

📄 ds18b20.c

📁 万年日历设计
💻 C
字号:
#include"init.h"
#include"ds18b20.h"
#include"delay.h"
/**********************************************************
		
						//控制总线

**********************************************************/
bit init_18b20()   
{
	bit dat=0;
	DQ=1;
	delay_n10us(1);
	DQ=0;
	delay_n10us(40);
	delay_n10us(30);
	DQ=1;
	delay_n10us(6);
	dat=DQ;
	delay_n10us(10);
	return(dat);
}
/**********************************************************
		
					//读一个字节

**********************************************************/
uchar readonechar()    
{
	uchar i,dat=0;
	for(i=8;i>0;i--)
	{
		DQ=0;
		dat>>=1;
		DQ=1;
		if(DQ)
			dat|=0x80;
		delay_n10us(3);
	}
	return(dat);
}
/**********************************************************
		
					//写一个字节

**********************************************************/
void writeonechar(uchar dat)   
{
	uchar i;
	for(i=8;i>0;i--)
	{
		DQ=0;
		DQ=dat&0x01;
		delay_n10us(3);
		DQ=1;
		dat>>=1;
	}
	delay_n10us(3);
}
/**********************************************************
		
					//读取温度值

**********************************************************/
int readtemperture()    
{
	uchar  a=0,c=0;
	uint   b=0,t=0;
	init_18b20();
	writeonechar(0xcc);
	writeonechar(0x44);
	delay_nms(10);
	init_18b20();
	writeonechar(0xcc);
	writeonechar(0xbe);
	a=readonechar(); //低位
	b=readonechar(); //高位
	b<<=8;
	t=a|b;
	return(t);
}

⌨️ 快捷键说明

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