【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示

news2024/11/15 19:32:47

效果图如下:
在这里插入图片描述

首先,让我们先来说说DS18B20集成电路。
• DS18B20是一款采用OneWire通讯协议的集成电路,因此只需要一条线就可以与微控制器通讯。它不需要额外的电源,但是也有外部电源输入端口。
• OneWire设备具有64位的ROM代码。如我们之前所说,这64位的前8位是家族代码,中间48位是序列号,最后8位是CRC码。
• 如果使用外部电源,工作电压范围在3V到5.5V之间。最高可以在750毫秒内获得12位精度(8位整数部分+4位小数部分)的温度数据。
• 虽然标准精度是12位,但是也可以设置为9,10或11位精度。精度降低时,温度数据的8位整数部分保持不变,只是4位小数部分的位数减少。
• 测量范围在-55°C到+125°C(-67°F到+257°F)之间,在-10°C到+85°C之间可以达到0.5°C的精度。
• 它具有用户可以定义的警报寄存器,可以作为温控器使用。集成电路测量的温度与警报寄存器中的温度会自动比较,通过向集成电路发送警报查询命令可以检测是否产生警报状态。
• 它可以采用TO92、SO8和uSOP封装。下面我们可以看到该集成电路不同封装的图片。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上表所示,这些寄存器用于保存温度数据。它由两个字节组成:Low Byte和High Byte。Low Byte的前4位保存小数部分的数据。例如,前4位为“1000”,这意味着 BIT3的权重为0.5,所以温度数据为“XX.5”。BIT0,BIT1,BIT2和BIT3的权重分别为0.0625,0.125,0.25和0.5。如果我们想在软件中看到温度的小数部分,我们必须检查这些位并将其正确显示在LCD屏幕上。Low Byte的最后4位是温度数据的低四位,也就是低nibble。温度数据的高四位是High Byte的前四位。在获得温度数据时,Low Byte的最后四位与High Byte的前四位结合,得到8位数据(温度数据的整数部分)。High Byte的最后四位是符号位。如果测量温度为负值,这四位为1。温度数据以补码格式从这些寄存器中读取。因此,如果进行负温度测量,必须注意这一点。
所以,简单来说,这两个字节保存了完整的12位温度数据。低位字节的后4位是温度整数部分的低4位,与高位字节的前4位合并得到温度整数部分。低位字节的前4位表示温度的小数部分。高位字节的后4位是温度数据的符号位。

在这里插入图片描述
这些寄存器是两个8位寄存器。如果要将集成电路用作温控器,可以通过比较测量的温度值与加载到这些寄存器的值来检测是否产生警报状态。这些寄存器的最后一位也是符号位。这些寄存器的值也保存在同名的EEPROM存储器中。上电时,ScratchPAD中的对应值与EEPROM中的值相同。如果不使用集成电路的温控功能,这些寄存器可以由用户用于一般用途。
简单来说,这两个8位寄存器可以与集成电路的温控功能一起使用,用于比较实际测量温度与设定温度,检测是否产生警报。这两个寄存器的值也可以保存在EEPROM中,并在上电时从EEPROM加载。如果不使用温控功能,这两个寄存器也可以用于用户的其他用途。
所以,对这段描述的总结是:

  1. 两个8位寄存器,可以用于集成电路的温控功能,比较实测温度和设定温度,检测警报。
  2. 这两个寄存器的值可以保存在EEPROM中,上电时从EEPROM加载。
  3. 如果不使用温控功能,这两个寄存器可用于其他用途。
  4. 最后一位是符号位。

在这里插入图片描述

ScratchPad的第4个字节是配置寄存器。通过此寄存器可以设置集成电路的精度。如开头所述,尽管集成电路的默认精度为12位,但也可以设置为9、10或11位。如上图所示,精度设置是通过配置寄存器的R0和R1位完成的。如表所示,随着精度的降低,获得温度数据所需的循环时间也会降低。此外,需要说明的一点是,降低精度时,减少的位数不会从温度数据的整数部分减少,而是从小数部分的位数中减少。这对用户来说是一个很好的功能。
ScratchPad的第5、6和7字节保留未使用。第8个字节是CRC码。如我们前面所说,CRC码是通过错误检验算法获得的数据。它是测试读取数据准确性的一种很好的方法。在传输几个字节的数据时,它虽不太重要,但在传输包含许多数据包的通信协议中,错误检验算法(CRC、LRC等)非常重要。
如我们前面所述,要与OneWire设备通信,需要使用功能码。所执行的操作由这些功能码确定。DS18B20集成电路具有用于ROM代码和ScratchPad的各种功能码。我们将对此进行说明。
所以,对此段描述的总结为:

  1. ScratchPad第4字节是配置寄存器,用于设置集成电路精度,默认12位,也可以设置9-11位。精度设置通过R0和R1位完成。
  2. 精度降低时,减少的位数来自小数部分,整数部分不变。这是一个很好的功能。
  3. ScratchPad第5-7字节未使用。
  4. 第8字节是CRC码,用于检验读取数据的准确性。在通信协议中很重要。
  5. 要与OneWire设备通信,需要使用功能码。DS18B20有用于ROM代码和ScratchPad的各种功能码。
  6. 将在后续对各种功能码进行说明。

ROM命令

  1. Search ROM (0xF0)
  2. Read ROM (0x33)
  3. Match ROM (0x55)
  4. Skip ROM (0xCC)
  5. Alarm Search (0xEC)
    DS18B20功能命令
  6. Convert T (0x44)
  7. Write ScratchPad (0x4E)
  8. Read ScratchPad (0xBE)
  9. Copy ScratchPad (0x48)
  10. Recall E2 (0xB8)
  11. Read Power Supply (0xB4)
    要与DS18B20通信,需要遵循数据顺序。首先复位总线并等待presence pulse。然后确定总线上有设备且设备准备好通信。然后发送ROM命令。在此阶段,可以使用match rom(0x55)命令读取设备序列号,以便在总线上有多个设备时进行识别。如果不发送ROM命令,可以发送skip rom(0xCC)命令跳过此第二步。第三步,发送功能码之一以执行所需操作。例如,要启动读取温度数据的转换循环,可以发送convert t(0x44)命令读取温度数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452656.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HDCTF

Welcome To HDCTF 2023 看源码找到game.js 找到这一串 放到控制台运行即可 SearchMaster 题目让post提交一个data 随便传一个在页面执行了 当传入{时他会报错,看报错信息发现 Smarty,猜测Smarty的ssti,数据发送到前端 用{if}标签即可 {…

CHAPTER 5: 《DESIGN CONSISTENT HASHING》 第5章 《设计一致的哈希》

CHAPTER 5: DESIGN CONSISTENT HASHING 为了实现水平扩展,有效且均匀地分发请求/数据是很重要的在服务器上。一致散列是实现这一目标的常用技术。但首先,让我们深入了解一下这个问题。 重组问题 如果您有n个缓存服务器,那么平衡负载的常用…

PCB射频电路四大基础特性及设计技巧

由于射频(RF)电路为分布参数电路,在电路的实际工作中容易产生趋肤效应和耦合效应,所以在实际的PCB设计中,会发现电路中的干扰辐射难以控制。 如:数字电路和模拟电路之间相互干扰、供电电源的噪声干扰、地线不合理带来的干扰等问题…

catkin_make_workspace

ERROR1 : CMake Error at /opt/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake:113 (message): Project ‘cv_bridge’ specifies ‘/usr/include/opencv’ as an include dir, which is not found. It does neither exist as an absolute directory nor in ‘${{pr…

Vue-列表过滤

列表过滤 对已知的列表进行数据过滤(根据输入框里面的内容进行数据过滤) 编写案例 通过案例来演示说明 效果就是这样的 输入框是模糊查询 想要实现功能,其实就两大步,1获取输入框内容 2根据输入内容进行数据过滤 绑定收集数据 我们可以使用v-model去…

6.3 收敛性与稳定性

6.3.1 收敛性 数值计算方法的收敛性是指,当取步长趋近于零时,数值解趋近于精确解的速度。一般来说,数值计算方法的收敛性是判断其优劣的重要指标之一。 数值计算方法的收敛性可以通过数学分析来研究,一般需要对数值解和精确解之…

08-Node.js—nvm

目录 1、介绍2、使用2.1 下载安装2.2 常用命令2.2.1 nvm list available2.2.2 nvm list2.2.3 nvm install 18.12.12.2.4 nvm install latest2.2.5 nvm uninstall 18.12.12.2.6 nvm use 18.12.1 参考 1、介绍 nvm 全称 Node Version Manager 顾名思义它是用来管理 node 版本的工…

系统集成项目管理工程师——考试重点(三)项目管理一般知识

1.项目定义: 为达到特定的目的,使用一定资源,在确定的期间内,为特定发起人提供独特的产品、服务或成果而进行的一系列相互关联的活动的集合。 2.项目目标: 成果性目标:项目产品本身 约束性目标&…

频繁GC引起卡顿问题排查与解决

一 问题描述 今天测试组更新测试环境后发现系统卡顿,无法办理任何业务,重启系统后问题仍然存在。已经到项目后期,迭代测试时间十分紧张。此问题直接影响到项目进度 二 排查过程 1.执行命令top Linux 下常用top命令显示系统中各个进程的资…

PID原理

PID控制器(比例-积分-微分控制器),由比例单元(P)、积分单元(I)和微分单元(D)组成。 可以通过调整这三个单元的增益Kp,Ki和Kd来调定其特性,PID控制…

PowerDesigner 15 安装、汉化、逆向生成ER图、物理模型转逻辑模型、生成sql及简单使用

文章目录 前言PowerDesigner 15 安装、汉化、逆向生成ER图、物理模型转逻辑模型、生成sql及简单使用1. 安装2. 汉化3. 使用4. 逆向生成ER图4.1. 创建新模型4.2. 根据sql逆向生成er图 5. 物理模型新建表6. 物理模型转逻辑模型7. 生成sql语句 前言 如果您觉得有用的话&#xff0c…

Modelsim10.7仿真报错

把之前老版本的modelsim换掉了,新的装好仿真发现有点小毛病,记录以下 使用modelsim10.7仿真时出现错误,编译通过但报以下错误 ** Note: (vsim-3812) Design is being optimized…** INTERNAL ERROR: vopt returned success but vsim could …

arthas的简单使用

目录 arthas是什么为什么要使用arthasarthas能做什么安装arthas前提准备arthas主要命令trace命令watch命令monitor命令jad命令dashboard命令Thread命令sc命令mc命令redefine命令 实战演练1.定位到需要修改的类2.将定位到的.class文件反编译成.java文件3.修改.java文件4.将修改后…

不同局域网下使用Python自带HTTP服务进行文件共享「端口映射」

文章目录 1. 前言2. 视频教程3. 本地文件服务器搭建3.1 python的安装和设置3.2 cpolar的安装和注册 4. 本地文件服务器的发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6. 结语 转载自内网穿透工具的文章:Python一行代码实现文件共享【内网穿透公网访问…

Spring Bean生命周期源码详解

文章目录 Bean生命周期源码生成BeanDefinitionSpring容器启动时创建单例Bean合并BeanDefinitiongetBean()方法加载类实例化前实例化BeanDefinition的后置处理实例化后依赖注入执行Aware回调初始化前初始化初始化后销毁逻辑 Bean生命周期源码 我们创建一个ApplicationContext对…

深度学习:神经网络的前向传播过程

Author:龙箬 Computer Application Technology Change the World with Data and Artificial Intelligence ! CSDNweixin_43975035 哲学与爱情是我永远都搞不懂的两件事情 注: 以三层神经网络为例说明神经网络的前向传播过程激活函数采用 R e L U ReLU ReLU 函数 w…

搞懂位图和布隆过滤器

文章目录 位图腾讯面试题位图概念位图实现位图的应用位图的应用题 布隆过滤器布隆过滤器提出布隆过滤器概念布隆过滤器实现原理布隆过滤器的应用场景如何选择哈希函数个数和布隆过滤器长度 - - 目的减少误判率布隆过滤器的实现布隆过滤器优点布隆过滤器缺陷 海量数据面试题哈希…

科普帖:如何提升Watch Buds的音质体验,看这里!

对于追求小巧便携的友友们来说,华为Watch Buds耳机可谓是非常惊喜的存在。华为Watch Buds耳机形态独树一帜,同时在耳机控制上做了一个广域耳廓触控功能,是华为首次采用的功能。即耳机、耳廓或靠近耳屏的脸颊区域都可操控,双击可接…

【MYSQL】Java的JDBC编程(idea连接数据库)

1. 配置 (1)新建一个项目 (2)Build System 那里选择Maven,下一步Create (3)配置pom.xml文件 首先查看自己的MYSQL版本:进入MySQL命令窗口 我的MYSQL版本是8.0版本的. 下一步,…

【Java基础】Java总览

一、what-什么是Java? Java是一种面向对象的编程语言,其他面向对象的编程语言还有C#,C,Python,Python,golang,VB等。 1、和其他语音对比 对比项\语言CCJava上线时间1972年1979年1995年特点面向…