中国领先的工业平台

返回贤集网 返回微头条
贤集网技术微头条APP获取

各位师傅,你们好!我最近在尝试用STC8H8K64...

 技术小工

下载贤集网APP入驻自媒体

各位师傅,你们好!我最近在尝试用STC8H8K64U单片机读取18b20温度传感器并在数码管上显示温度。但是,我遇到了一个问题:当实际温度为25度左右时,数码管显示的却是20度。更奇怪的是,当我用手捏住18B20传感器几秒钟后,数码管显示的温度竟然变成了0度。之前我用89C51和STM32写过类似的程序,都能正常显示温度,所以我以为可能是时序问题。于是,我用逻辑分析仪对比了STC8和STM32的时序,发现确实存在偏差。根据逻辑分析仪的结果,我调整了STC8的读取和写入时序,使它们与STM32的时序基本一致。然而,问题依然存在。即使我注释掉了18B20的初始化和写操作,依然能读取到数值,这让我感到非常困惑。我想说明的是,我已经在18B20上加了上拉电阻和贴片滤波电容,并且它是接在P13脚上的。请问各位师傅,这个问题该如何解决呢?希望能得到你们的指点,谢谢!

最新回复
发布回复
1、设置一个变UU。2、编程显示UU中的内容,改变UU数据,就可能验证显示程序是否正确。3、设置一个变MM4、将读取的18B20数据,放入MM中。并评估MM是否正确。有怀疑时再读读18B20手册。5、将MM中和数据,转存到UU显示,就OK了。
1、DS18B20是单总线通信,确实问题最有可能出在时序上。手头正好有艾克姆的STC8H8K64U开发板,带了这个DS18B20的例程。例程见附件。 2、当然你还要考虑硬件原因,上拉电阻是一方面,DS18B20相对比较脆弱,一旦有接错线的情况都可能导致传感器不正常的,所以必要时可以更换下这个传感器。
确保您的单片机和DS18B20的电源是稳定的。不稳定的电源可能导致DS18B20读取错误。考虑使用稳压电源或添加去耦电容来改善电源质量。
上拉电阻是一方面,DS18B20相对比较脆弱,一旦有接错线的情况都可能导致传感器不正常的

为您推荐

热门交流