基于51单片机的DS18B20温度采集和LabVIEW上位机显示 preview

资料下载地址:基于51单片机的DS18B20温度采集和LabVIEW上位机显示

前言

之前通过 STC 单片机和 DS18B20 实现了环境温度采集并串口显示,后面进一步想要实现温度的实时监测和数据记录保存,因此编写了 LabVIEW 程序,修改了部分单片机程序代码。经过实验验证,该项目可以实现 LabVIEW 上位机对 MCU 发送指令,MCU 通过 DS18B20 温度传感器获取环境温度,并通过串口将数据反馈给上位机,上位机实时记录数据,并将日期和各个时刻的温度数据保存至文件。

LabVIEW上位机前面板设置如图所示

程序面板如下图所示

 

实物连接如下图所示

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果您想在51单片机采集DS18B20的温度数据,可以按照以下步骤进行: 1. 硬件连接:将DS18B20的VCC引脚连接到单片的5V电源,将GND引脚连接到单片的地,将DQ引脚连接到单片的任意一个IO口,并加上一个4.7K上拉电阻。 2. 初始化:在程序开始时,需要先初始化DS18B20。具体来说,可以通过向DS18B20发送一个复位脉冲,然后再发送一个跳过ROM指令,即可让DS18B20准备好进行温度转换。以下是示例代码: ``` void init_ds18b20() { ds18b20_reset(); // 复位脉冲 ds18b20_write_byte(0xCC); // 跳过ROM指令 ds18b20_write_byte(0x44); // 启动温度转换 } ``` 3. 读取温度值:DS18B20将温度值以16位的形式存储在内部寄存器中,我们需要读取这个寄存器中的值并进行计算,才能得到真正的温度值。以下是示例代码: ``` int read_ds18b20() { unsigned char temp_l, temp_h; int temp; ds18b20_reset(); // 复位脉冲 ds18b20_write_byte(0xCC); // 跳过ROM指令 ds18b20_write_byte(0xBE); // 读取温度寄存器 temp_l = ds18b20_read_byte(); // 读取温度值低8位 temp_h = ds18b20_read_byte(); // 读取温度值高8位 temp = temp_h; temp <<= 8; temp |= temp_l; // 合并温度值 return temp; } ``` 4. 计算温度值:得到温度值后,我们需要进行一些计算才能得到真正的温度值。以下是示例代码: ``` float get_temperature() { int temp; float temperature; temp = read_ds18b20(); temperature = (float)temp * 0.0625; // 温度值计算公式 return temperature; } ``` 以上是基于51单片机DS18B20数据采集程序的基本流程,您可以根据自己的需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

森旺电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值