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

📄 ds18b20.c

📁 DB18B20测温度的protues仿真和源代码
💻 C
字号:
#include<reg52.h>
#include<intrins.h>
#include"DS18B20.h"
void ds18_init()
{
	DQ=1;_nop_();
	DQ=0;
	delay15us(40);
	DQ=1;
	delay15us(6);
	if(DQ)  exist=0;
	else    exist=1;
	delay15us(30);
	DQ=1;
}
void wrds18_byte(uchar byte)
{
	uchar i=8;
	DQ=1;
	do{
		DQ=0;
	//	delay15us(1);
		_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
		_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
		if(byte&0x01)
		DQ=1;
		else DQ=0;
		delay15us(3);
		byte>>=1;
		DQ=1;
	}while(--i);
}
uchar rdds18_byte(void)
{
	uchar i=8,byte;
	DQ=1; _nop_();
	do{
		DQ=0;
		byte>>=1;  	
		DQ=1;
		delay15us(1);
		if(DQ)
			byte=(byte|0x80);
		DQ=1;
		delay15us(1);
	}while(--i);
	return(byte);
}
uint read_ds18(void)
{
	uchar a1,a2;
	uint b;
	wrds18_byte(0xcc);
	wrds18_byte(0xbe);
	a2=rdds18_byte();
	a1=rdds18_byte();
	b=a1;
	b<<=8;
	b|=a2;
	return(b);	
}
void delay15us(uint t)
{
	do{
	_nop_();_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();_nop_();_nop_();
	_nop_();_nop_();_nop_();
	}while(--t);
}

⌨️ 快捷键说明

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