找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3458|回复: 5
收起左侧

单片机+DS18B20读取温度失败

[复制链接]
ID:213173 发表于 2020-3-14 21:02 | 显示全部楼层
VENMON 发表于 2020-3-14 16:10
在这里说下,keil和proteus中都是使用89C52单片机及晶振频率为12MHZ,心态被搞崩了,有些东西遗留了,不好 ...

uint Ds18b20ReadTemp()
{
  uchar tml=0;
  uchar tmh=0;
  uint t=0;
  float tt=0;
  Ds18b20Init();
  Delay1ms(1);
  Ds18b20WriteByte(0xcc);                                 
  Ds18b20WriteByte(0x44);                 
  Ds18b20Init();
  Delay1ms(1);
  Ds18b20WriteByte(0xcc);                        
// Ds18b20WriteByte(0x44);// 错误                    
  Ds18b20WriteByte(0xbe);        //发送读取温度命令
tml = Ds18b20ReadByte();               
  tmh = Ds18b20ReadByte();        
  t = tmh;
  t <<= 8;
  t |= tml;
  tt = t*0.0625;
  t = tt*10+0.5;
  return t;
}
回复

使用道具 举报

ID:213173 发表于 2020-3-15 07:45 | 显示全部楼层
VENMON 发表于 2020-3-14 22:17
我查看我的原程序的确有这一处错误,粗心大意了,想着把那部分独立出来看一下问题所在,对了时序,步骤却 ...

初始化DS18B20在单器件通讯时判断返回应答信号不是必须的,初始化过程类似于唤醒。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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