(10)DS18B20温度传感器

news/2024/4/15 8:20:44

DS18B20是一种常见的数字温度传感器,其控制命令和数据都是以数字信号的方式输入输出,相比较于模拟温度传感器(如热敏电阻),具有功能强大、硬件简单、易扩展、抗干扰性强等特点

测温范围:-55°C 到 +125°C通信接口:1-Wire(单总线)

其它特征:可形成总线结构、内置温度报警功能、可寄生供电

请添加图片描述

请添加图片描述

请添加图片描述

通过DQ线对该器件进行通讯

单总线:

单总线(1-Wire BUS)是由Dallas公司开发的一种通用数据总线

一根通信线:DQ异步、半双工

单总线只需要一根通信线即可实现数据的双向传输,当采用寄生供电时,还可以省去设备的VDD线路,此时,供电加通信只需要DQ和GND两根线

单总线电路规范:

  • 设备的DQ均要配置成开漏输出模式
  • DQ添加一个上拉电阻,阻值一般为4.7KΩ左右(前两条原因同I2C多机通讯)
  • 若此总线的从机采取寄生供电,则主机还应配一个强上拉输出电路

不采用寄生供电:

请添加图片描述

采用寄生供电:

请添加图片描述

单总线时序结构:

请添加图片描述

请添加图片描述

请添加图片描述

请添加图片描述

ROM指令:对64 BIT ROM进行操作

功能操作:对RAM暂存器进行操作

请添加图片描述

数据帧:

请添加图片描述

请添加图片描述

sbit OneWire_DQ = P3^7;/*** @brief 单总线初始化* @param * @retval 从机应答返回0,反之返回1*/
unsigned char OneWire_Init(){unsigned char i, AckBit;OneWire_DQ = 1; // 初始化DQOneWire_DQ = 0; // 拉低DQi = 219; while (--i);// 主机延时481usOneWire_DQ = 1; // 主机释放总线i = 29; while (--i); // 主机延时70us,等待从机操作AckBit = OneWire_DQ;i = 219; while (--i);// 主机延时481us,等待从机释放总线return AckBit;
}/*** @brief 单总线发送一位* @param Bit 待发送的位* @retval */
void OneWire_SendBit(unsigned char Bit){unsigned char i;OneWire_DQ = 0; // 拉低DQi = 3; while (--i); // 主机延时13usOneWire_DQ = Bit; // 放入总线i = 22; while (--i); // 主机延时54us,等待从机操作OneWire_DQ = 1; // 主机释放总线
}/*** @brief 单总线接收一位* @param * @retval 接收来的位*/
unsigned char OneWire_ReceiveBit(){unsigned char i, Bit;OneWire_DQ = 0; // 拉低DQi = 2; while (--i); // 延时10usOneWire_DQ = 1; // 主机释放总线i = 2; while (--i); // 延时10us,等待从机操作Bit = OneWire_DQ; // 读取总线值i = 21; while (--i); // 延时50us,等待从机释放总线return Bit;
}/*** @brief 单总线发送一个字节* @param Byte 待发送的字节* @retval */
void OneWire_SendByte(unsigned char Byte){unsigned char i;for(i = 0; i < 8; i++){OneWire_SendBit(Byte & (0x01 << i));}
}/*** @brief 单总线接收一个字节* @param * @retval 接收来的字节*/
unsigned char OneWire_ReceiveByte(){unsigned char i, Byte = 0;for(i = 0; i < 8; i++){if(OneWire_ReceiveBit()){Byte |= 0x01 << i;}}return Byte;
}
//DS18B20指令
#define DS18B20_SKIP_ROM			0xCC
#define DS18B20_CONVERT_T			0x44
#define DS18B20_READ_SCRATCHPAD 	0xBE/*** @brief 更新温度暂存器* @param * @retval */
void DS18B20_ConvertT(){OneWire_Init();OneWire_SendByte(DS18B20_SKIP_ROM); // skip romOneWire_SendByte(DS18B20_CONVERT_T); // 更新暂存器
}/*** @brief 读取温度暂存器中的温度值* @param * @retval 温度的浮点型*/
float DS18B20_ReadT(){unsigned char TLSB, TMSB;int temp;float T;OneWire_Init();OneWire_SendByte(DS18B20_SKIP_ROM); // skip romOneWire_SendByte(DS18B20_READ_SCRATCHPAD); // 读取暂存器TLSB = OneWire_ReceiveByte(); // 读取TMSB = OneWire_ReceiveByte();temp = (TMSB << 8) | TLSB; // 组合结果,高8位和低8位T = temp / 16.0; // 低4位表示小数,所以把第5位放到个位上(二进制左移一位等效于十进制乘二)return T;
}

显示float:

if(t < 0){t = -t;LCD_ShowChar(1, 1, '-');
}else{LCD_ShowChar(1, 1, '+');
}
LCD_ShowNum(1, 2, t, 3);
LCD_ShowChar(1, 5, '.');
LCD_ShowNum(1, 6, (unsigned long)(t * 10000) % 10000, 4);
}

http://www.ppmy.cn/news/536036.html

相关文章

软件项目管理 第六章 软件项目的进度管理 课后习题参考答案——主编:李冰、张桥珍、刘玉娥

第六章 软件项目的进度管理 课后习题参考答案 1.选择题 (1)快速跟进是指&#xff08;A&#xff09;。 A.采用并行执行任务,加速项目进展 B.用一个任务取代另外的任务 C.如有可能,减少任务数量 D.减轻项目风险 (2)赶工一个任务时&#xff0c;…

松下com5/com6模块配置

com5配置&#xff1a; 参考 https://wenku.baidu.com/view/5cd5545c7375a417876f8f50.html 注意&#xff1a;波特率一定要配置正确&#xff0c;不然无法和触摸屏通讯 屏通屏的通信设置&#xff1a; com6设置&#xff1a;

松下台灯好不好用?松下/明基/南卡护眼灯全面深度测评

随着信息技术的迅速发展&#xff0c;人们每天都需要长时间使用电子产品&#xff0c;阅读习惯也倾向于电子书与网页阅读&#xff0c;加上生活环境的下降&#xff0c;不良气候也会对人眼造成伤害&#xff0c;更别说现代人经常熬夜眼睛健康情况就更糟糕了。因此要保障眼睛的健康就…

磊了就对了

我们无所谓喂喂喂喂喂喂喂喂喂啊啊啊啊啊啊啊啊啊啊啊啊擦擦擦擦擦擦擦擦擦说的

ELK

ELK是Elasticsearch、Logstash、Kibana的简称&#xff0c;这三者是核心套件&#xff0c;但并非全部。 Elasticsearch是实时全文搜索和分析引擎&#xff0c;提供搜集、分析、存储数据三大功能&#xff1b;是一套开放REST和JAVA API等结构提供高效搜索功能&#xff0c;可扩展的分…

e和%e的应用

%e的用法 e5->*10^5 e-5->*10^-5

我记忆中的啊哈磊

我记忆中的啊哈磊 我看《啊哈c语言》是我亲戚推荐我看的。看这本书之前&#xff0c;我对编程一窍不通&#xff0c;而且对编程有不小的兴趣。其实很多人可能都这样&#xff0c;对这样一个陌生的知识领域&#xff0c;都会有好奇心。而且我玩电脑玩了很多年了&#xff…

方舟上的李德磊--记方舟科技董事长兼总裁李德磊校友

李德磊&#xff0c;1982年获加拿大阿尔伯特大学计算机硕士学位&#xff0c;1986年获博士学位。之后&#xff0c;在加拿大约克大学担任终身教授&#xff0c;同时担任加拿大国防部高级顾问。1995年加入美国Motorola公司&#xff0c;担任体系结构设计师&#xff1b;1997年加入日立…

ELT和ETL

ETL 和 ELT 有很多共同点&#xff0c;从本质上讲&#xff0c;每种集成方法都可以将数据从源端抽取到数据仓库中&#xff0c;两者的区别在于数据在哪里进行转换 文章目录 1.ETL2.ELT3.ELT的演变4.ELT的工作原理5.什么时候我们选择ELT6.数据湖是不是很好的ELT落脚点7.总结 1.ETL …

efl是什么意思_efl

Collocation competence is one of the most significant embodiments in language ability between the native speakers and EFL learners. 搭配能力是本族语者与外语学习者最显著的话语能力体现之一。 Teacher feedback is an important component of teacher talk, whose r…

edl

您好&#xff0c;我是一个由 OpenAI 训练的大型语言模型&#xff0c;我可以用中文来回答您的问题。请问您有什么需要我帮助的吗&#xff1f;

qcom edl

QCOM EDL 是 Qualcomm Emergency Download Mode 的简称。这是一种特殊的模式&#xff0c;可用于在手机出现故障时进行救援。当手机处于 EDL 模式时&#xff0c;可以对其进行线刷(刷入新的固件)或进行其他故障排除操作。 要进入 EDL 模式&#xff0c;通常需要使用一种名为 “下载…

E-MAIL

[email]machong.bj163.com[/email] 转载于:https://blog.51cto.com/524401/107794

E-Leaning简介

所谓 E&#xff0d;Learning&#xff0c;简单地说&#xff0c;就是在线学习或 网络 化学习&#xff0c;即在 教育 领域建立互联网平台&#xff0c;学生通过PC上网&#xff0c;通过网络进行学习的一种全新的学习方式。当然&#xff0c;这种学习方式离不开由多媒体网络学习资源…

eCall

eCall不是Emergency Call的缩写&#xff0c;而是一个专有名词&#xff0c;专指欧盟和俄罗斯推出的车载紧急呼叫系统。 根据欧盟的规定&#xff0c;2018年4月以后销售的所有汽车都必须安装eCall车载系统。使用该系统之后&#xff0c;发生车祸之后的救援速度可以大幅提高&#x…

还在苦于ETL? Zero ETL 的时代已全面到来!

点击上方【凌云驭势 重塑未来】 一起共赴年度科技盛宴&#xff01; 对于众多企业来说&#xff0c;企业需要获取业务洞察就需要把不同来源的数据融合后进行一体化分析。 然而&#xff0c;这个过程中通过 ETL 将数据集成就往往显得必不可少&#xff0c;但是 ETL 的工作往往耗时且…

el-link

我是因为router-link实现不了找到这个el-link <el-table :data"pageResult.rows" style"width: 80%" border stripe><el-table-column label"制备批号"><template slot-scope"scope"><el-link >{{scope.row.…

EE问题系列总结

文章目录 E&E问题系列总结MAB 建模ϵ -greedyUCB 方法UCB1UCB2LinUCBThompson samplingBernoulli BanditContextual Bandit小结参考文献E&E问题系列总结 EE(Exploitation & Exploration) 问题在计算广告/推荐系统中非常常见,甚至在更广义的范围上,任意决策问题都…

【el】表格

一、用法 1、动态表格&#xff08;展示表格&#xff09; 后端返回的值&#xff1a;第一个数组是表头&#xff0c;其余是内容 <el-tableref"tableHeight":data"tableColumns":height"tableHeight"borderstyle"width: 100%; margin-top: 1…
最新文章