DS18B20,是一款强壮的测温传感器,具有体积小,硬件开支低,抗干扰能力强,精度高的特色,所以是开发中必不可少的一个芯片,为了便利我们上手
DS18B20温度传感器是DALLAS公司出产的1-wire式单总线器材,具有线路简略,体积小的特色,用它组成的温度丈量体系线路十分简略,只要求一个端口即可完结通讯。温度丈量规模在-55℃~+125℃之间,分辨率能够从9~12位挑选,内部还有温度上、下限报警设置。每个DS18B20芯片都有仅有的序列号,所以能够使用多个DS18B20一起衔接在同一条总线上,组成多点测温体系。但最多只能衔接8个,假如数量过多,会使供电电源电压过低,然后形成信号传输的不稳定。
DS18B20 的初始化:
依据 DS18B20 的通讯协议,主机(单片机)操控 DS18B20 完结温度转化有必要经过三个过程:每一次读写之前都要对 DS18B20 进行复位操作,复位成功后发送一条 ROM 指令,最终发送 RAM 指令,这样才能对 DS18B20 进行预订的操作。复位要求主 CPU 将数据线下拉 500 微秒,然后开释,当 DS18B20 收到信号后等候 16~60 微秒左右,后宣布 60~240 微秒的存在低脉冲,主 CPU 收到此信号表明复位成功。
(1) 先将数据线 DQ 置高电平“1”。
(2) 延时(该时刻要求的不是很严厉,可是尽可能的短一点)
(3) 数据线拉到低电平“0”。
(4) 延时 750 微秒(该时刻的时刻规模能够从 480 到 960 微秒)。
(5) 数据线拉到高电平“1”。
(6) 延时等候(假如初始化成功则在 15 到 60 奇妙时刻之内发生一个由 DS18B20 所回来的低电平“0”。据该状况能够来确认它的存在,可是应留意不能无限的进行等候,否则会使程序进入死循环,所以要进行超时操控)。
(7) 若 CPU 读到了数据线上的低电平“0”后,还要做延时,其延时的时刻从宣布的高电平算起(第(5)步的时刻算起)最少要 480 微秒。
(8) 将数据线再次拉高到高电平“1”后完毕。
初始化程序如下:
uchar Init_DS18B20()
{
uchar status; //status 为 DS18B20 回来的状况
DQ = 1;
Delay(8);
DQ = 0;
Delay(90);
DQ = 1;
Delay(8);
status=DQ;
Delay(100);
DQ = 1;
return status;
}
DS18B20 使用举例(一)
如下图所示:DQ 经过 4.7K 上拉电阻外接正电源(因为单总线为开漏所以需求外接一个 4.7K 的上拉电阻),并衔接单片机 P3.3 口。
本例中,1602LCD 显现 DS18B20 所丈量的外部温度,调理 DS18B20 模仿改动外界温度时,新的温度将改写显现在 LCD 上