ds18b20.c

来自「使用18B20温度传感器的程序」· C语言 代码 · 共 85 行

C
85
字号
#include<ds18b20.h>

void delay(unsigned char us)//6*us+2+2+2
{	
	unsigned char k;
	for(k=0;k<us;k++)
			;
}

bit reset18b20(void)
{
	unsigned char i;
	bit exsit;
	DQ=0;
	for(i=0;i<100;i++)
			;
	//delay(60);
	DQ=1;
	for(i=0;i<12;i++)
			;
	//delay(6);
	exsit=DQ;
	for(i=0;i<70;i++)
			;
//	delay(20);
	return(exsit);
}
bit readbit18b20(void)
{
		char i;		
		DQ=0;
		DQ=1;
		for(i=0;i<3;i++)
		;
		return(DQ);
}
unsigned char readbyte18b20(void)
{
		unsigned char i,value=0,j;
		for(i=0;i<8;i++)
		{	value>>=1;
			if(readbit18b20())
			value|=0x80;
			else
			value&=0x7f;
		//	if(i<7)
		
			for(j=0;j<5;j++)
			;
			//
	   	}
	//	delay(5);
		return(value);
}

void writebit18b20(bit databit)
{		
		unsigned char j;
		DQ=0;		
		for(j=0;j<1;j++)
		;
		if(databit==1)	
		DQ=1;	
		for(j=0;j<12;j++)
		;
		//delay(9);
		DQ=1;
}
void writebyte18b20(unsigned char databyte)
{
		unsigned char i,j,temp=0;
		for(i=0;i<8;i++)
		{	
			temp=databyte>>i;
			if(temp&0x01)	
				writebit18b20(1);
			else
				writebit18b20(0);

	   	}
		for(j=0;j<20;j++)
			;
		//delay(24);
}

⌨️ 快捷键说明

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