找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 123|回复: 8
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
各位师傅好,最近想用STC8H8K64U单片机读18b20温度,在数码管上显示,显示温度20,实际温度25左右,不过,用手捏着18B20,几秒之后,就会显示0,之前用89C51,STM32写过,都能显示,以为时序错误,同时用逻辑分析仪读取STC8和STM32的时序,发现有偏差,根据逻辑分析仪的时间更改了STC8读取写入的时序,目前,时序基本一致,可惜,还是老问题,用串口读取也是一样的错误,发现把18B20的初始化和写都注释掉,也能读取数值,这就奇怪了,先说明一下,18B20加有上拉电阻,和贴片滤波电容,接的P13脚。在网上查了一下,都没有我的这种奇怪问题,真是奇哉怪哉
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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相对比较脆弱,一旦有接错线的情况都可能导致传感器不正常的,所以必要时可以更换下这个传感器。











DS18B20.rar

38.43 KB, 下载次数: 5

评分

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

查看全部评分

回复

使用道具 举报

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

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

使用道具 举报

6#
ID:731755 发表于 2024-4-25 21:03 来自手机 | 只看该作者
xiaobendan001 发表于 2024-4-25 16:32
电方式吗?

5伏供电
回复

使用道具 举报

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

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

使用道具 举报

8#
ID:619259 发表于 2024-4-26 11:30 | 只看该作者
18B20显示不正常,多数为时序不对,对照时序,检查延时程序。
回复

使用道具 举报

9#
ID:731755 发表于 2024-4-27 18:01 | 只看该作者
cy009 发表于 2024-4-26 11:30
18B20显示不正常,多数为时序不对,对照时序,检查延时程序。

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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