温度传感器是各种传感器中最常用的一种,前期运用的是模仿温度传感器,如热敏电阻,跟着环境温度的改变,它的阻值也发生线性改变,用处理器收集电阻两头的电压,然后依据某个公式就能够计算出当时环境温度。美国DALLAS半导体公司推出的数字化温度传感器DS18B20选用单总线协议,即与单片机接口仅需占用一个I/O端口,无需任何外部元件,直接将环境温度转化成数字信号,以数字码方法串行输出,然后大大简化了传感器与处理器的接口。
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);
}
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/254641.html