找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 905|回复: 9
收起左侧

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

[复制链接]
ID:1094287 发表于 2024-1-12 10:19 来自手机 | 显示全部楼层 |阅读模式
大佬们这初始化时序有问题吗,始终是返回为一
mmexport1705025961506.png
回复

使用道具 举报

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单片机来说是个考验,但这也是很多初学者调试出错的问题点。
DS18B20发起时序.jpg DS18B20发起时序2.jpg DS18B20读写时序1.jpg DS18B20读写时序2.jpg DS18B20读写时序3.jpg



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






DS18B20.rar

29.58 KB, 下载次数: 3

回复

使用道具 举报

ID:161164 发表于 2024-1-12 21:34 | 显示全部楼层
第8行没报错吗?
回复

使用道具 举报

ID:1094287 发表于 2024-1-13 16:37 | 显示全部楼层
lkc8210 发表于 2024-1-12 21:34
第8行没报错吗?

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

使用道具 举报

ID:458247 发表于 2024-1-15 14:53 | 显示全部楼层
网上很多ds18b20的通信程序啊,用网上的程序试试呗,首先排除硬件问题
回复

使用道具 举报

ID:161164 发表于 2024-1-15 15:14 | 显示全部楼层
小臭臭废 发表于 2024-1-13 16:37
哈哈,傻了。改了但还是接受不到0

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

使用道具 举报

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
        }
}
回复

使用道具 举报

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 单片机教程网

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