DS18B20温度传感器随笔
DS18B20温度传感器
复位
时序图如下所示:低电平持续时间为480-960us,高电平持续时间为15-60us,然后低电平持续60-240us。
代码如下:
void ds18b20_rst(void)
{IO_OUT; //输出模式DQ_OUT=0; //拉低DQ引脚delay_us(600); //延时480-960usDQ_OUT=1; //拉高DQ引脚while(DQ_OUT); //等待器件应答(器件拉低),约15-60us后while(!DQ_OUT); //应答脉冲出现后,等待器件拉高,约60-240us后
}
写0操作
时序图如下所示:
代码如下:
void ds18b20_write_zero(void)
{IO_OUT; //输出模式DQ_OUT=0 //拉低引脚delay_us(80); //延时60-120usDQ_OUT=1; //拉高引脚delay_us(2);
}
- 写1操作
代码如下:
void ds18b20_write_one(void)
{IO_OUT; //输出模式DQ_OUT=0delay_us(2);DQ_OUT=1;delay_us(80);
}
- 读0、1操作
代码如下:
unsigned char ds18b20_read_bit(void)
{unsigned char data;IO_OUT;DQ_OUT=0;delay_us(2);DQ_OUT=1;DQ_IN;delay_us(2);if(DQ_IN)data=1;elsedata=0;delay_us(500); return data;
}
- 写1字节
代码如下:
void ds18b20_write_byte(unsigned char data)
{unsigned char i,testb;IO_OUT;for(i=0;i<8;i++){testb=data&0x01; //从低位开始写data>>=1;if(testb)ds18b20_write_one();elseds18b20_write_zero();}
}
- 读一字节
代码如下:
unsigned char ds18b20_read_byte(void)
{unsigned char i,j,data=0;for(i=0;i<8;i++){j=ds18b20_read_bit();data=(j<<7)|(data>>1); //从低位开始读}return data;
}
- 开始读取数据
代码如下:
void ds18b20_start(void)
{ ds18b20_rst(); ds18b20_write_byte(0xcc); // 跳过ROMds18b20_write_byte(0x44); //温度转换
}
- 初始化
代码如下:
unsigned char ds18b20_init(void)
{gpio_init(); //此引脚需根据相应的单片机进行配置ds18b20_rst();
}
- .读取温度
代码如下:
short get_tempetature(void)
{unsigned char TL,TH;short tem;ds18b20_start(); //开始转换delay_ms(700); //等待转换完成ds18b20_init(); ds18b20_write_byte(0xcc); //跳过ROMds18b20_write_byte(0xbe); //读取暂存寄存器 TL=ds18b20_read_byte(); //低八位 TH=ds18b20_read_Byte(); //高八位,注意前五位为符号位只有全为0的时候温度是正的 tem=TH; //获得高八位tem<<=8; tem+=TL; //获得底八位return tem;
}
DS18B20温度传感器随笔相关推荐
- 嵌入式设计与开发项目-DS18B20温度传感器程序设计
嵌入式设计与开发项目-DS18B20温度传感器程序设计 一.实现的功能 二.根据功能实现代码 1.主文件main.c 2.DS18B20的头文件"ds18b20.h" 3.DS18 ...
- AutoLeaders控制组——51单片机学习笔记(DS18B20温度传感器、LCD1602、直流电机+PWM)
本篇内容是观看B站江科大自化协UP主的教学视频所做的笔记,对其中内容有所引用,并结合自己的单片机板块进行了更改调整. 以下笔记内容以一个视频为一个片段(内容较多,可能不适合速食,望见谅) 一些内容涉及 ...
- 【51单片机】AT24C02存储器(I²C总线)/DS18B20温度传感器(单总线)
目录 一.AT24C02存储器 1.AT24C02存储器介绍 2.存储器简化模型 3.AT24C02存储器原理图 二.I²C总线 1.I²C总线的介绍 2.I²C电路 3.I²C时序图 3.1I²C开 ...
- 基于汇编语言的DS18B20温度传感器设计
1 概述 1.1 课题内容 利用温度传感器DS18B20与MCS-51单片机结合来测量温度,通过一根单总线连接,即可直接读出被测温度,读出或写入信息只需要一根数据线.读出的数据用LED数码管显示,显示 ...
- 51单片机使用LCD1602显示DS18B20温度传感器温度
使用LCD1602显示DS18B20温度传感器温度.关于DS18B20和LCD的原理,我就不再叙述了,大家自行查找,网上可以找到好多. 使用Proteus仿真.(需要仿真和Keil工程文件的可 ...
- C51---13 DS18B20温度传感器
C51---13 DS18B20温度传感器 DS18B20介绍 引脚及电路 内部结构图 存储器的结构 单总线介绍 单总线电路规范 单总线时序结构❗ DS18B20操作流程 DS18B20数据帧 温度存 ...
- DS18B20温度传感器 ------ 自学笔记
目录 一.简介 二.DS18B20的特点 三.DS18B20实物图 四.DS18B20的内部结构 4.1.64位(激)光刻只读存储器 4.2.DS18B20温度转换规则 4.3.DS18B20温度传感 ...
- 智能温度系统(C51+DS18B20温度传感器+LM016L显示屏)
单片机课程设计,C51+DS18B20温度传感器+LM016L显示屏 重点在于两个外设的时序控制 模块化的设计结构清晰明了 一.题目 温度测量系统的设计 二.要求 1.温度测量范围:-55℃ ~ 12 ...
- 51单片机驱动DS18B20温度传感器测量温度
51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...
最新文章
- C语言水洼数算法,C++ 数据结构之水洼的数量算法
- Python命令行解析:IDE内点击Run运行代码直接得出结果、基于TF flags(或argparse、sys.argv)在Dos内命令行(一条命令)调用代码文件得出结果
- MongoDB基础命令
- 如何把自己的网站部署在网上_Terminal:如何在IPFS上部署Wordpress网站
- [FxCop.设计规则]13. 定义自定义属性参数的访问属性
- mybatis简单案例源码详细【注释全面】——实体层(User.java)
- 让代码看起来更舒服(1):选择适合的配色方案 (转)
- 《数学之美》一 文字、数字及语言的历史
- 基于pycrfsuite和sklearn_crfsuite的命名实体识别NER实战【以CoNLL2002数据集为基准】
- 经典而常用的配乐和背景音乐合集(上)
- 字符识别,口算题识别论文小梗概
- python批量转换音频采样率
- 近年来计算机的就业情况图表,计算机学院召开2009级学生考研动员大会
- 数据结构(Java)-排序算法-选择排序
- 微信小程序,将经纬度转化为城市地区(腾讯位置服务)
- 重复率30%可以通过论文查重吗?
- android之手机截屏小程序
- 懒汉延迟加载设计模式反射注解
- 不等距双杆模型_电磁感应之双杆模型.ppt
- Python3记录--个人常用函数及资源(持续更新)