当前位置: 首页 > news >正文

嵌入式学习4——硬件

ds18b20温度传感器的使用

一、传感器分类:

  • 数字温度传感器,实现简单,不需要额外转换电路,采集过来的就是数字温度值
  • 模拟温度传感器->热敏电阻->AD转换电路->数字值

二、传感器接口:

  • GPIO接口:(ds18b20是特殊的单线GPIO接口)
  • I2C接口:SCLSDAVCCGND
  • SPI接口:SCLK、CS.MOSL、MISO
  • ADC接口:板子ADC进行模数转换
  • UART接口:GPS

三、ds18b20的主从通信方式

ds18b20的封装形式:

在51上,与dq数据请求线相连接的网络接口是P37,P37通过上拉电阻与VCC相连,说明引脚在空闲状态下处于高电平。

四、ds18b20的通信流程:

复位信号:51单片机复位,问ds18b20在不在
存在信号:“ds18b20"回复一个存在脉冲

每次和ds18b20通信前:必须要复位
1复位or存在、读、写时序图

2(复位函数、读函数、写函数)

#include <reg51.h>
#include "delay.h"//51 单片机复位后 所有特殊功能寄存器都被硬件清 0#define DQ_HIGH (P3 |= (1 << 7))//将DQ引脚拉高
#define DQ_DOWN (P3 &= ~(1 << 7))//将DQ引脚拉低
#define DQ_CHECK ((P3 & (1 << 7)) != 0)//检测DQ引脚电平 P37高电平输出1 低电平输出0//ds18b20复位函数
int de18b20_Reset(void)
{int t = 0;DQ_DOWN;	   //将引脚拉低Delay10us(70);// 延时70usDQ_HIGH;	   //将引脚拉高Delay10us(5);// 延时60us//在300us内检测DQ引脚是否被拉低(跳出循环),如果被拉低代表ds18b20回复了一个存在脉冲信号while(DQ_CHECK && t < 30){Delay10us(1);t++;}if(t >= 30){return 0;}//在300us内检测DQ引脚是否被拉高(跳出循环),如果被拉低代表ds18b20回复了一个存在脉冲信号while(!DQ_CHECK && t < 30){Delay10us(1);t++;}if(t >= 30){return 0;}return 1;
}//向ds18b20发送一个字节数据
void write_ds18b20(unsigned char dat)
{int i = 0;//判断发送的数据的8bit是1还是0for(i = 0;i < 8;i++){if(dat & 1 == 1)	 //bit 1{DQ_DOWN;_nop_();_nop_();//空转延迟1us左右DQ_HIGH;Delay10us(5);}else		 //bit 0{DQ_DOWN;Delay10us(5);DQ_HIGH;}dat = dat >> 1;//dat右移 始终把要发送的bit放置在最低位 和1比较}	
}//从ds18b20读取一个字节数据
unsigned char read_ds18b20(void)
{int i = 0;unsigned char ret = 0;for (i = 0; i < 8;i++){DQ_DOWN;_nop_();_nop_();DQ_HIGH;			//拉高才能检测到ds18b20发送了0 _nop_();_nop_();_nop_();if (DQ_CHECK)	  // 检测到发送的电平为1  代表发送数字1{ret = ret|(1 << i); //把发过来的为1的数字放到指定位置}	//发送了0不用管 ret初始化全为0;Delay10us(5);}return ret;
} 

3 ds18b20获取数据流程

  •   (1)复位
  • (2)51单片机发送0xCC,代表跳过ROM
  • (3)51单片机发送0x44,代表ds18b20开启温度转换
  • (4)延时等待(1s)
  • (5)复位
  • (6)51单片机发送0xCC,代表跳过ROM
  • (7)51单片机发送0xBE,代表读取ds18b20发送过来的温度值
  • (8)读取温度数据
//获取ds18n20采集到的温度  传递的是两个字节的数据
float get_tempt(void)
{short ret = 0;		 //两个字节unsigned char tl = 0;//一个字节unsigned char th = 0;//一个字节de18b20_Reset();write_ds18b20(0xCC);write_ds18b20(0x44);Delay1ms(1000);//延时1sde18b20_Reset();write_ds18b20(0xCC);write_ds18b20(0xBE);//先读低位tl = read_ds18b20(); th = read_ds18b20();ret = th << 8; //先把高位放进来ret |= tl;	   //再把低位放到高位后面接着return ret * 0.0625;//分辨率 展示的是温度
}

4分辨率:ds18b20:

  • 9位分辨率:精度±0.5℃
  • 10位分辨率:精度±0.25°℃
  • 11位分辨率:精度±0.125℃
  • 12位分辨率:精度±0.0625℃


文章转载自:

http://ZyKUGOvS.cmfkp.cn
http://y8TySBn4.cmfkp.cn
http://QECJclvW.cmfkp.cn
http://h250N2AY.cmfkp.cn
http://6RmX4kEN.cmfkp.cn
http://Z7jX4mEX.cmfkp.cn
http://1OLQtUn6.cmfkp.cn
http://3fjwFnIT.cmfkp.cn
http://TbheUGAF.cmfkp.cn
http://9USzN1vN.cmfkp.cn
http://0N7JDJTx.cmfkp.cn
http://byQRjCMb.cmfkp.cn
http://QnVvznaz.cmfkp.cn
http://gmCMFEWy.cmfkp.cn
http://bfMaljky.cmfkp.cn
http://KP6ae01M.cmfkp.cn
http://vVS3Fth6.cmfkp.cn
http://dEie3Tek.cmfkp.cn
http://VHTWKJSb.cmfkp.cn
http://aKzGJkPc.cmfkp.cn
http://kITq8uZT.cmfkp.cn
http://lJnpbhhv.cmfkp.cn
http://2op32rAq.cmfkp.cn
http://HxdZzcSD.cmfkp.cn
http://PiAQjqj4.cmfkp.cn
http://T3UGtcZa.cmfkp.cn
http://FvxPVQCb.cmfkp.cn
http://kUxUlTzw.cmfkp.cn
http://fE0brsJC.cmfkp.cn
http://vLthFHNw.cmfkp.cn
http://www.dtcms.com/a/368115.html

相关文章:

  • 数据标注:人工智能视觉感知的基石
  • 【Linux系统】POSIX信号量
  • 【Python - 类库 - requests】(02)使用“requests“发起GET请求的详细教程
  • XSCT/Vitis 裸机 JTAG 调试与常用命令
  • 【GitHub每日速递】不止 TeamViewer 替代!RustDesk 与 PowerToys,Windows 效率神器
  • 使用海康机器人相机SDK实现基本参数配置(C语言示例)
  • Go 服务注册 Nacos 的坑与解决方案——从 404 到连接成功的排查之路
  • 智能相机还是视觉系统?一文讲透工业视觉两大选择的取舍之道
  • Go语言中atomic.Value结构体嵌套指针的直接修改带来的困惑
  • react+umi项目如何添加electron的功能
  • 告别 OpenAI SDK:如何使用 Python requests 库调用大模型 API(例如百度的ernie-4.5-turbo)
  • 《sklearn机器学习——聚类性能指数》同质性,完整性和 V-measure
  • C#海康车牌识别实战指南带源码
  • 五、Docker 核心技术:容器数据持久化之数据卷
  • (计算机网络)DNS解析流程及两种途径
  • 3-8〔OSCP ◈ 研记〕❘ WEB应用攻击▸REST API枚举
  • Tabby使用sftp上传文件服务器ssh一直断开
  • 解密大语言模型推理:输入处理背后的数学与工程实践
  • python 自动化在web领域应用
  • FDTD_3 d mie_仿真
  • Electron 安全性最佳实践:防范常见漏洞
  • SAP ERP公有云详解:各版本功能对比与选型
  • Linux:进程信号理解
  • 深度学习:Dropout 技术
  • Linux 磁盘扩容及分区相关操作实践
  • 【前端】使用Vercel部署前端项目,api转发到后端服务器
  • 【ARDUINO】ESP8266的AT指令返回内容集合
  • Netty从0到1系列之Netty整体架构、入门程序
  • 实战记录:H3C路由器IS-IS Level-1邻居建立与路由发布
  • iOS 抓包工具有哪些?常见问题与对应解决方案