单片机教程网

电脑版
提示:原网页已由神马搜索转码, 内容由www.51hei.com提供.

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

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

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

作者: xiaobendan001   时间: 2024-4-25 16:32
窃电方式吗?
作者: cocolala   时间: 2024-4-25 17:03
   1、DS18B20是单总线通信,确实问题最有可能出在时序上。手头正好有艾克姆的STC8H8K64U开发板,带了这个DS18B20的例程。例程见附件。   2、当然你还要考虑硬件原因,上拉电阻是一方面,DS18B20相对比较脆弱,一旦有接错线的情况都可能导致传感器不正常的,所以必要时可以更换下这个传感器。











DS18B20.rar

38.43 KB, 下载次数: 5


作者: 13872888583   时间: 2024-4-25 21:02
yzwzfyz 发表于 2024-4-25 15:45
1、设置一个变UU。
2、编程显示UU中的内容,改变UU数据,就可能验证显示程序是否正确。
3、设置一个变MM
...

抱歉,技术有限,你的方法操作起来有点困难。
作者: 13872888583   时间: 2024-4-25 21:03
xiaobendan001 发表于 2024-4-25 16:32
电方式吗?

5伏供电
作者: 13872888583   时间: 2024-4-25 21:06
cocolala 发表于 2024-4-25 17:03
1、DS18B20是单总线通信,确实问题最有可能出在时序上。手头正好有艾克姆的STC8H8K64U开发板,带了这个 ...

感谢,直接写入你的程序,第一个晶振选择24M,读取为零,至少比我写的强,我的不为零,第二次选择11.052,正常显示温度,手摸,温度会上升。再次感谢
作者: cy009   时间: 2024-4-26 11:30
18B20显示不正常,多数为时序不对,对照时序,检查延时程序。
作者: 13872888583   时间: 2024-4-27 18:01
cy009 发表于 2024-4-26 11:30
18B20显示不正常,多数为时序不对,对照时序,检查延时程序。

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




欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1