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

N4 传感器

一、传感器

DS18B20传感器(半双工):

1.量程(测量范围)-55 - 125℃

2.精度(误差):±0.5℃

3.分辨率: 9位:0.5°C; 10位:0.25°C; 11位:0.125°C; 12位:0.0625°C。

4.接口 :GPIO

5.电压:5V

GPIO单总线:线与特性。 拉高:释放总线。作为数据接收方时,需要释放总线

1.初始化(复位)

2.ROM操作命令(跳过ROM:0xCC)

3.存储器操作命令

4.执行/数据(44h:转换温度;BE:读取温度)

复位→发送0xCC跳过ROM→发送0x44,开启温度转换→延时→复位

→发送0xCC跳过ROM→发送0xBE读取温度→读取2字节温度(s18b20 -> 51|读操作)

①主机将总线拉低480us-960us,代表发送了复位脉冲

②主机释放总线,ds18b20需要再15-60us内检测引脚是否为高电平

③主机再60-240us内检测引脚是否为低电平,如果是低电平,代表ds18b20回复了存在脉冲

④主机释放总线,引脚呈现高电平

#include <reg51.h> #include "ds18b20.h" #include "delay.h" #include <intrins.h> #define DQ_HIGH (P3 |= (1 << 7)) #define DQ_DOWN (P3 &= ~(1 << 7)) #define DQ_CHECK ((P3 & (1 << 7)) != 0) int ds18b20_reset(void) { int time = 0; //复位脉冲 DQ_DOWN; Delay10us(70); DQ_HIGH; Delay10us(6); //等待低电平到来 while(DQ_CHECK && time < 30) { Delay10us(1); time++; } if(time >= 30) { return -1; } //等待高电平到来 time = 0; while(!DQ_CHECK && time < 30) { Delay10us(1); time++; } if(time >= 30) { return -1; } return 1; } //向de18b20发送一个字节数据 void write_de18b20(unsigned char dat) { for(i = 0;i < 8;i++) { if(dat & 1) { DQ_DOWN; _nop_(); _nop_(); DQ_HIGH; Delay10us(5); } else { DQ_DOWN; Delay10us(6); DQ_HIGH; } dat >>= 1; } } unsigned char read_ds18b20(void) { int i = 0; unsigned char dat = 0; for(i = 0;i < 8;i++) { DQ_DOWN; _nop_(); _nop_(); DQ_HIGH; _nop_(); _nop_(); _nop_(); if(DQ_CHECK) { dat = dat | (1 << i); } Delay10us(6); } return dat; } float get_temp(void) { short temp = 0; unsigned char temp_low = 0; unsigned char temp_high = 0; ds18b20_reset(); write_ds18b20(0xCC); write_ds18b20(0x44);//开启温度转换 Delaylms(1000);//延时1秒 ds18b20_reset(); //复位 write_ds18b20(0xCC); write_ds18b20(0xBE); temp_low = read_ds18b20();//读取温度低位 temp_high = read_ds18b20(); //读取温度高位 temp = temp_high << 8; temp |= temp_low; return temp*0.0625; }

写0时序:主机将总线拉低至少60us,不超过120us,ds18b20在60us内采样引脚电平,若是

低电平,则代表主机发送了bit0主机释放总线,引脚变为高电平。

写1时序:主机将总线拉低大于1us释放总线,引脚变为高电平ds18b20在45us内对引脚的电

平进行采样,若是高电平,代表主机发送了bit1。

读时序:

主机将总线拉低大于1us,

释放总线,引脚呈现高电平,

主机再15us内对引脚电平进行采样,

若采到一个低电平,代表ds18b20发送了bit0。

http://www.jsqmd.com/news/495565/

相关文章:

  • SVGDeveloper详细评测:Neo4j图谱导出后如何高效编辑与优化?
  • 2026年 机柜空调厂家推荐排行榜:室内/户外/变频/箱变/无人值守/预制舱空调,专业温控解决方案与技术创新实力深度解析 - 品牌企业推荐师(官方)
  • STM32 学习 —— 个人学习笔记9-2(USART串口数据包 串口收发 HEX 及 文本 数据包)
  • 直流储能电池充放电仿真与应用研究:基于buck-boost变换器的充放电流模拟与优化
  • OpenClaw技术发展研究
  • C++类设计优化
  • python开发之路【第四章】:python程序流程控制
  • 零基础转行大模型,年薪 50W + 不是梦!保姆级学习路线 + 避坑指南,收藏这篇就够
  • AI分镜生成:Qwen-Image-Edit驱动的电影叙事革新
  • 2026六大城市高端腕表“闲置激活”终极档案:从无锡百达翡丽到南京积家,这些沉睡的资产正在悄悄贬值 - 时光修表匠
  • 借助 Windows CBT 挂钩实现自定义修改 MessageBox 阻塞式模态对话框中按钮的文字
  • 告别繁琐调试:用快马AI一键生成LaTeX高效排版模板与代码片段
  • 无锡芮生建设工程有限公司_一级资质防水修缮_14年专注房屋防水补漏 - 十大品牌榜单
  • AI 时代的程序员:从“建造者”到“定义者”
  • Suno音乐生成-从一个简单的提示开始,或者深入我们的专业编辑工具,您的下一首曲目就在一步之遥......
  • 2026年 铝液测氢仪厂家推荐排行榜,真空/在线/全自动/台式/移动型铝液测氢仪,铝合金氢含量检测仪专业品牌深度解析 - 品牌企业推荐师(官方)
  • 汽车洗美厂家常见问题解答(2026最新专家版) - 速递信息
  • 百心科技畅倍力复合果蔬后生元片常见问题解答(2026专家版) - 速递信息
  • 西恩士 国际认证清洁度解决方案 工业清洁度检测装置品牌典范 - 仪器权威论
  • 孝感二次消防设计机构全解析:2026年避坑指南与品牌推荐 - 2026年企业推荐榜
  • 如何打造专属音频控制中心?Seelen-UI媒体模块全攻略
  • 保姆级教程:用Qt Creator创建多工程联调开发环境(2024新版)
  • 电力能源行业:卓越性能保障电网稳定运行
  • 倍速链输送线源头厂家怎么选?搞电子和做电池的老铁们看过来
  • pid算法初学
  • 收藏!小白程序员必看:一文读懂AI大模型的核心能力与落地应用场景
  • 文档更新示例(路径:doc/README_zh.md)
  • 解决androidsutdio打开多个文件tab自动替换或者关闭问题
  • pg恢复
  • 虚幻引擎5编辑器界面全解析:从菜单栏到细节面板的保姆级指南