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

这篇具有很好参考价值的文章主要介绍了【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

效果图如下:
【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示

首先,让我们先来说说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封装。下面我们可以看到该集成电路不同封装的图片。
【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示
【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示
【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示
如上表所示,这些寄存器用于保存温度数据。它由两个字节组成: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位是温度数据的符号位。

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

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

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

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命令文章来源地址https://www.toymoban.com/news/detail-483074.html

  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)命令读取温度数据。

到了这里,关于【TB作品】MSP430单片机 Proteus仿真 DS18B20温度 LCD1602显示器 温度读取与显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机系列】proteus仿真单片机的串口通信

    本文参考:https://zhuanlan.zhihu.com/p/425809292。 在proteus之外使用串口软件和单片机通信。通过在proteus设计一个单片机接收PC发送的数据,并将接收的数据发送出去,利用软件【Configure Virtual Serial Port Driver】创建一对虚拟串口,利用软件【串口助手】向单片机发送数据。 proteus仿真

    2024年01月17日
    浏览(52)
  • 【PROTEUS-51单片机串口通信仿真】

    本次实验对51单片机的串口进行了双机通信的仿真,实现了51单片机的简单双机通信;现对本次仿真的结构及实现的功能做简要的介绍, 本次仿真主要构成:主机U1-MASTER、从机U2-SLAVE、以及LED显示部分(第一部分显示主机接收到的信息、第二部分显示从机接收到的信号); 实

    2024年01月15日
    浏览(74)
  • 单片机——仿真软件Proteus基本使用教程

    点击File文件下面的图标创建文件 点击File,选择save Design,并选择一个文件夹,输入一个文件名称 点击P 选择元器件 输入NE555,选择该元器件,点击OK  输入resis  选择一个1k的电阻   输入cap 选一个一个电容 放置电源(power),和接地(ground)   完成连线,先点击左上角的箭

    2024年02月11日
    浏览(47)
  • 【Proteus仿真】【51单片机】贪吃蛇游戏

    本项目使用Proteus8仿真51单片机控制器,使用8*8LED点阵、按键模块等。 主要功能: 系统运行后,可操作4个按键控制小蛇方向。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联

    2024年02月06日
    浏览(48)
  • 【Proteus仿真】【51单片机】智能婴儿车

    本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波,声音传感器、L298N直流电机、语音蓝牙控制等。 主要功能: 系统运行后,LCD1604显示DHT11检测环境湿度值、DS18B20检测体温、HC-SR04超声波检测距离、

    2024年02月08日
    浏览(46)
  • 【Proteus仿真】【Arduino单片机】蜂鸣器

    本项目使用Proteus8仿真Arduino单片机控制器,使用蜂鸣器等。 主要功能: 系统运行后,蜂鸣器播放音乐。 B站演示视频:https://space.bilibili.com/444388619 视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,

    2024年02月08日
    浏览(49)
  • 【Proteus仿真】【Arduino单片机】智能窗户设计

    本项目使用Proteus8仿真Arduino单片机控制器,使用蜂鸣器模块、LCD1602显示模块、雨滴传感器、风速传感器、人体红外模块、ADC模块、按键模块、28BYJ48步进电机 模块、DS18B20温度传感器等。 主要功能: 系统运行后,LCD1602显示温度、湿度、风速检测值; 可通过按键K3进入阈值设置

    2024年02月01日
    浏览(53)
  • 毕设教学:proteus单片机仿真详细教学

    --------元器件图标、名称分类目录---------- proteus元器件符号及名称 2. 单片机基础元器件(基本上每个电路图都会用到的) 3. 单只数码管循环显示0~9 4. 8只数码管滚动显示单个数字 5. 继电器控制照明设备 6. INT0中断计数 7. 8X8LED点阵显示数字 8. 用定时器设计的门铃 9. 串行数据转

    2024年02月05日
    浏览(47)
  • 【Proteus仿真】【51单片机】智能温控风扇设计

    本项目使用Proteus8仿真51单片机控制器,使用LCD1602液晶、按键、蜂鸣器、L298N电机驱动模块、直流电机、DS18B20温度传感器等。 系统运行后,LCD1602显示传感器检测的温度值; 默认以自动模式运行,若按下K4键切换为手动模式,此时可以 通过K1和K2控制风扇加减速,风扇档位共

    2024年02月16日
    浏览(59)
  • 208、仿真-51单片机脉搏心率与心电报警Proteus仿真设计(程序+Proteus仿真+配套资料等)

    目录 一、硬件设计 二、设计功能 三、Proteus仿真图 四、程序源码 资料包括: 需要完整的资料可以点击下面的名片加下我,找我要资源压缩包的百度网盘下载地址及提取码。 方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于

    2024年02月12日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包