DS18B20温度传感器,将实时温度用数码管显示

DS18B20温度传感器(单线通讯,严格按照时序图)

特点:
1、电压范围:3.0v~5.5V
2、独特的单线接口,仅需一条串口线即可实现微处理器与DS18B20的双向通讯;
3、支持电组网功能,实现组网多点测温
4、不需要任何外围原件
5、范围-55‘C~+125’C,精度0.5
6、高精度测温,分辨率9~12位
7、速度快,抗干扰能力强
8、不易因电源接反而烧坏

有64位光刻只读存储器

温度存储格式
8位低字节+8位高字节
高字节前五位是字符位:“0”;温度大于0;
“1”;温度小于0,只需将测到的数值取反乘0.0625
测到的温度乘以0.0625即实际温度;

内部包括一个高度的暂存器RAM和一个非易失性的可电擦除的EEPROM

最大转换时间750ms
精度和时间有直接关系

RAM指令表
温度变换 44H
读暂存器 beH
写暂存器 4eH
复制暂存器 48H
……

temp.h

#ifndef _TEMP_H
#define _TEMP_H

#include"reg52.h"

#ifndef uint
#define uint unsigned int 
#endif

#ifndef uchar
#define uchar unsigned int 
#endif

sbit DSPORT = P3^7;

int Ds18b20readtemp();

#endif

temp.c

#include "temp.h"

//延时1ms
void delay1ms()     //@11.0592MHz
{
    unsigned char i, j;

    _nop_();
    i = 2;
    j = 199;
    do
    {
        while (--j);
    } while (--i);
}

/*
(1).数据线拉到低电平“0”。
(2).延时480微妙(该时间的时间范围可以从480到960微妙)。
(3).数据线拉到高电平“1”。
(4).延时等待80微妙。如果初始化成功则在15到60微妙时间内产生一个由DS18B20所返回的低电平“0”.根据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时判断。
(5).若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(3)步的时间算起)最少要480微妙。
*/
  • 10
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值