立创商城买的DS18B20,测温度的传感器怎么用?

 我来答
数据知言Q
2018-10-26 · 超过16用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:7.8万
展开全部
DS18B20 是美国DALLAS 半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现9~12 位的数字值读数方式。可以分别在93.75 ms 和750 ms 内完成9 位和12 位的数字量,并且从DS18B20 读出的信息或写入DS18B20 的信息仅需要一根口线(单线接口) 读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20 可使系统结构更趋简单,可靠性更高。他在测温精度、转换给用户时间、传输距离、分辨率等方面较DS1820 有了很大的改进,带来了更方便的使用和更令人满意的效果。
DS18B20工作过程
DS18B20控制方法(DS18B20有六条控制命令):
温度转换 44H 启动DS18B20进行温度转换
读暂存器 BEH 读暂存器9位二进制数字
写暂存器 4EH 将数据写入暂存器的TH、TL字节
复制暂存器 48H 把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式 B4H 启动DS18B20发送电源供电方式的信号给主CPU
Void delay_18B20(us)
{
While(us--);
}
1. 初始化
(1) 先将数据线置高电平“1”。
(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)
(3) 数据线拉到低电平“0”。
(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。
(5) 数据线拉到高电平“1”。
(6) 延时等待(如果初始化成功则在15到60微妙时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。
(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。
(8) 将数据线再次拉高到高电平“1”后结束。
void ds1820rset() //ds1820复位
{
DQ = 1; //DQ复位
delay_18B20(4); //延时
DQ = 0; //DQ拉低
delay_18B20(100); //精确延时大于480us
DQ = 1; //拉高
delay_18B20(40);
}
2. 写数据操作
(1) 数据线先置低电平“0”。
(2) 延时确定的时间为15微秒。
(3) 按从高位到低位的顺序发送字节(一次只发送一位)。D7到D0的次序
(4) 延时时间为45微秒。
(5) 将数据线拉到高电平。
(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。
(7) 最后将数据线拉高。
void ds1820wrdata(uchar wdata) /*写数据*/
{
unsigned char I,temp=0x00;
for (i=8;i》0;i--)
{ DQ=0;
delay_18B20(15)
temp=1《《i-1;
DQ=wdata&temp;
delay_18B20(45);
DQ=1;
}
}
3. 读数据操作
(1)将数据线拉高“1”。
(2)延时2微秒。
(3)将数据线拉低“0”。
(4)延时3微秒。
(5)将数据线拉高“1”。
(6)延时5微秒。
(7)读数据线的状态得到1个状态位,并进行数据处理。
(8)延时60微秒。
读一位二进制数
bit ds_read_bit(void)
{
bit dat;
DQ=0;
delay_18B20(2);
DQ=1;
delay_18B20(3);
dat=DQ;
delay_18B20(100);
return(dat);
}
读一个字节,8位二进制数
uchar ds1820readdata() //读数据
{
unsiged char i,j,value=0;
for(i=0;i《8;i++)
{
j=ds_read_bit();
value |=j《《7-i;
}
return(value);
}
东莞市晶品电子科技有限公司
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式