找回密码
 立即注册

QQ登录

只需一步,快速开始

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

d18b20时序问题,始终是返回为1

[复制链接]
跳转到指定楼层
楼主
ID:1094287 发表于 2024-1-12 10:19 来自手机 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
大佬们这初始化时序有问题吗,始终是返回为一

mmexport1705025961506.png (125.79 KB, 下载次数: 21)

mmexport1705025961506.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1064915 发表于 2024-1-12 11:21 | 只看该作者
IO口是否有冲突
回复

使用道具 举报

板凳
ID:1094287 发表于 2024-1-12 11:44 | 只看该作者
joyb 发表于 2024-1-12 11:21
IO口是否有冲突

应该没有,这个I/o就做这一个活
回复

使用道具 举报

地板
ID:226055 发表于 2024-1-12 15:15 | 只看该作者
    没有看到你单片机的型号描述,也没有指出所用晶振是内部晶振还是外部晶振。下面从几点常见问题分析下:
    1、除了楼上所说的IO口有没有被其他电路占用外,还要知道该IO口总线上必须外接上拉电阻。这是单总线通信要求。上拉电阻4.7K~10K范围。
    2、单总线通信需要严格的时序,这样一定检查下程序的延时函数是否准确,尤其us级延时对51单片机来说是个考验,但这也是很多初学者调试出错的问题点。




    3、当然还有一个重要原因要注意DS18B20元件的方向,一旦方向接反芯片烧坏的可能性极大。那么就不要再次使用了。附件给基于单片机STC8A8K64D4的DS18B20程序源码,个人认为这一家写的程序源码很规范,参考性很强。






DS18B20.rar

29.58 KB, 下载次数: 3

回复

使用道具 举报

5#
ID:161164 发表于 2024-1-12 21:34 | 只看该作者
第8行没报错吗?
回复

使用道具 举报

6#
ID:1094287 发表于 2024-1-13 16:37 | 只看该作者
lkc8210 发表于 2024-1-12 21:34
第8行没报错吗?

哈哈,傻了。改了但还是接受不到0
回复

使用道具 举报

7#
ID:458247 发表于 2024-1-15 14:53 | 只看该作者
网上很多ds18b20的通信程序啊,用网上的程序试试呗,首先排除硬件问题
回复

使用道具 举报

8#
ID:161164 发表于 2024-1-15 15:14 | 只看该作者
小臭臭废 发表于 2024-1-13 16:37
哈哈,傻了。改了但还是接受不到0

30块包邮的逻辑分析仪,你值得拥有
回复

使用道具 举报

9#
ID:213173 发表于 2024-1-15 15:33 | 只看该作者
小臭臭废 发表于 2024-1-13 16:37
哈哈,傻了。改了但还是接受不到0

d18b20复位成功当然接收到1,收到0反而怪了。如果一定想以收到0判断复位失败可以改写:
bit DS18B20_Reset()
{
        DQ=0;                           //送出低电平复位信号
        delay_us(240);                  //延时至少480us
        delay_us(240);
        DQ=1;                                    //释放数据线
        delay_us(60);                   //等待60us
        if(!DQ)                                            //如果DQ低电平
        {
                delay_us(240);              //等待设备释放数据线
                delay_us(180);
                return 1;                            //返回1
        }
        else                            //DQ低电平
        {
                delay_us(240);              //等待设备释放数据线
                delay_us(180);
                return 0;                   //返回0
        }
}
回复

使用道具 举报

10#
ID:1109316 发表于 2024-1-15 17:24 | 只看该作者
没有看到你单片机的型号描述,也没有指出所用晶振是内部晶振还是外部晶振。下面从几点常见问题分析下:     1、除了楼上所说的IO口有没有被其他电路占用外,还要知道该IO口总线上必须外接上拉电阻。这是单总线通信要求。上拉电阻4.7K~10K范围。     2、单总线通信需要严格的时序,这样一定检查下程序的延时函数是否准确,尤其us级延时对51单片机来说是个考验,但这也是很多初学者调试出错的问题点。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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