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

📄 18b20.c

📁 用51单片机做数字温度计PCB资料
💻 C
字号:
#include<reg51.h>


#define uchar unsigned char
#define uint unsigned int

sbit DQ=P1^0;

uchar temperature,tl,th;

void delay(uint n)
{
	uint x,y;
	for(x=n;x>0;x--)
		for(y=112;y>0;y--)
				;
}

void init()
{
	uchar x=0;
    DQ=1;
	delay(5);
	DQ=0;
	delay(500);
	DQ=1;
	delay(15);
}

uchar read()
{
	uchar i=0;
	uchar dat=0;
	for(i=8;i>0;i--)
	{
		DQ=1;
		delay(2);
		DQ=0;
		dat>>=1;
		DQ=1;
		if(DQ!=0)
			dat|=0x80;
		delay(4);
	}
	return(dat);
}

void write(uchar dat)
{
	uchar i=0;
	for(i=8;i>0;i--)
	{
		DQ=0;
		DQ=dat&0x01;
		delay(5);
		DQ=1;
		dat>>=1;
	}
	delay(5);
}
uchar readtemperature()
{
	init();
	write(0xcc);
	write(0x44);
	delay(150);
	init();
	write(0xcc);
	write(0xbe);
	tl=read();
	th=read();
	temperature=(th*256+tl)*0.0625;
	delay(200);
	return (temperature);	
}



⌨️ 快捷键说明

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