找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 770|回复: 8
收起左侧

请教STC8单片机读取18B20数值错误

[复制链接]
ID:731755 发表于 2024-4-25 10:05 | 显示全部楼层 |阅读模式
各位师傅好,最近想用STC8H8K64U单片机读18b20温度,在数码管上显示,显示温度20,实际温度25左右,不过,用手捏着18B20,几秒之后,就会显示0,之前用89C51,STM32写过,都能显示,以为时序错误,同时用逻辑分析仪读取STC8和STM32的时序,发现有偏差,根据逻辑分析仪的时间更改了STC8读取写入的时序,目前,时序基本一致,可惜,还是老问题,用串口读取也是一样的错误,发现把18B20的初始化和写都注释掉,也能读取数值,这就奇怪了,先说明一下,18B20加有上拉电阻,和贴片滤波电容,接的P13脚。在网上查了一下,都没有我的这种奇怪问题,真是奇哉怪哉
回复

使用道具 举报

ID:123289 发表于 2024-4-25 15:45 | 显示全部楼层
1、设置一个变UU。
2、编程显示UU中的内容,改变UU数据,就可能验证显示程序是否正确。
3、设置一个变MM
4、将读取的18B20数据,放入MM中。并评估MM是否正确。有怀疑时再读读18B20手册。
5、将MM中和数据,转存到UU显示,就OK了。
回复

使用道具 举报

ID:1109793 发表于 2024-4-25 16:32 | 显示全部楼层
窃电方式吗?
回复

使用道具 举报

ID:226055 发表于 2024-4-25 17:03 | 显示全部楼层
    1、DS18B20是单总线通信,确实问题最有可能出在时序上。手头正好有艾克姆的STC8H8K64U开发板,带了这个DS18B20的例程。例程见附件。    2、当然你还要考虑硬件原因,上拉电阻是一方面,DS18B20相对比较脆弱,一旦有接错线的情况都可能导致传感器不正常的,所以必要时可以更换下这个传感器。
D18B20.jpg










DS18B20.rar

38.43 KB, 下载次数: 5

评分

参与人数 1黑币 +15 收起 理由
13872888583 + 15

查看全部评分

回复

使用道具 举报

ID:731755 发表于 2024-4-25 21:02 来自手机 | 显示全部楼层
yzwzfyz 发表于 2024-4-25 15:45
1、设置一个变UU。
2、编程显示UU中的内容,改变UU数据,就可能验证显示程序是否正确。
3、设置一个变MM
...

抱歉,技术有限,你的方法操作起来有点困难。
回复

使用道具 举报

ID:731755 发表于 2024-4-25 21:03 来自手机 | 显示全部楼层
xiaobendan001 发表于 2024-4-25 16:32
电方式吗?

5伏供电
回复

使用道具 举报

ID:731755 发表于 2024-4-25 21:06 来自手机 | 显示全部楼层
cocolala 发表于 2024-4-25 17:03
1、DS18B20是单总线通信,确实问题最有可能出在时序上。手头正好有艾克姆的STC8H8K64U开发板,带了这个 ...

感谢,直接写入你的程序,第一个晶振选择24M,读取为零,至少比我写的强,我的不为零,第二次选择11.052,正常显示温度,手摸,温度会上升。再次感谢
回复

使用道具 举报

ID:619259 发表于 2024-4-26 11:30 | 显示全部楼层
18B20显示不正常,多数为时序不对,对照时序,检查延时程序。
回复

使用道具 举报

ID:731755 发表于 2024-4-27 18:01 | 显示全部楼层
cy009 发表于 2024-4-26 11:30
18B20显示不正常,多数为时序不对,对照时序,检查延时程序。

感谢,的确是时序问题,按照楼上的师傅的程序,写入可以显示实时温度,我的就不行,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表