51单片机-温度传感器DS18B20
DS18B20的三种封装:

DS18B20的内部结构:

它采用单条信号线,既可传输时钟,又可传输数据,而且数据传输是双向的。如果要控制多个DS18B20进行温度采集,只要将所有的DS18B20的I/O口全部连接到一起就可以了。在具体操作时,通过读取每个DS18B20内部芯片的序列号来识别。64位光刻ROM中的序列号是出场前被光刻好的,他可以看做该DS18B20的地址序列码。
DS18B20的复位时序:

DS18B20复位,确定其存在: #include <reg52.h>
#define uint unsigned int
uint i;
sbit DQ = P3^3;
sbit bell = P3^4;
void reset(){
DQ = 1; //开始的时候是高脉冲
DQ=0; //然后是低脉冲
i=103;
while(i>0)i--; //低脉冲需要延迟一会儿
DQ=1; //数据线拉高,系统将总线放开,并进入接受状态
i=4;
while(i>0)i--; //延时等待,若初始化成功则在15"60ms内产生一个由
if(DQ == 0){ //DS18B20在检测到总线的上升沿后,等待15"60ms,接着
while(DQ == 0); //在T2时刻发出存在脉冲(低电平)
bell = 0;
}
else
bell = 1;
}
void main(){
reset();
while(1);
}
关键词:
51单片机温度传感器DS18B2
评论