DS18B20 初始化失败 纠结中

cqlhj 2010-06-24 11:12:35
为了单独测试这个DS18B20的初始化,弄了个最小化的电路如下:
DS18B20接P1.7,LED接P1.0


如果初始化成功,则LED应该点亮.
程序:
#include <STC12C2052AD.H>

sbit DQ = P1^7;

sbit LED = P1^0;

void delay2us(unsigned char t)
{
while(--t)
;
}

void main(void)
{
bit x;
DQ = 1;
delay2us(1);
DQ = 0;
delay2us(200);
delay2us(100);
DQ = 1;
delay2us(35);
x = DQ;
delay2us(20);

while(1)
{
LED = x;
}
}


...全文
1287 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
BH9AFV 2013-01-14
  • 打赏
  • 举报
回复
STC12系列是1T 单片机,与普通AT89的机器周期不同(12T)。延时相差5-12倍
jbb0523 2010-06-26
  • 打赏
  • 举报
回复
这个对时序很严格的,初次写时建议不要自已写,先参考一下别人先成的程序再说吧,祝楼主好运。
Linux_lee 2010-06-26
  • 打赏
  • 举报
回复
这个东西对时序要求比较严格,以前搞的时候是用51汇编写的,呵呵
Peasant_Lee 2010-06-26
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cqlhj 的回复:]
引用 6 楼 lbing7 的回复:
无果剩下就是时序的问题。。。

慢慢调咯,其实可以在PROTUE上模拟一下


时序问题已经在上面解决了.呵呵.

只是,为什么差别如此之大.不解
[/Quote]

一个小小的时序,却影响着读写数据或者状态位的出错的。。。那么初始化就失败了。。差异就只有成功与不成功,当然大了,呵呵。
猫界大佬 2010-06-25
  • 打赏
  • 举报
回复
学习了,顶
lbing7 2010-06-25
  • 打赏
  • 举报
回复
无果剩下就是时序的问题。。。

慢慢调咯,其实可以在PROTUE上模拟一下

cqlhj 2010-06-25
  • 打赏
  • 举报
回复
非常郁闷!

关于加上拉电阻,我也测试过在DS18B20的2脚加一个4.7K电阻到电源,无果.

关于这个时序,查到的是:
复位,拉低后延时480us-960us,再拉高,再延时15-60us,再读,如果为低则复位成功.

几近崩溃.
后来疯狂的大范围的调整延时时间,居然看见LED灯亮了!!!!!

电路未动,程序改为:
#include <STC12C2052AD.H>

sbit DQ = P1^7; //定义DS18B20数据线.
sbit LED = P1^0; //定义LED

void delay2us(unsigned char t)
{
while(--t)
;
}

void main(void)
{
bit x;
DQ = 0;
delay2us(250);
delay2us(250);
delay2us(250);

DQ = 1;
delay2us(100);
x = DQ;
delay2us(150);

while(1)
{
LED = x;
}
}


LED灯点亮了!不易啊!再不亮就准备放弃了.

在Keil里调试看了看延时时间,拉低后延时1500微秒左右,再拉高,延时时间为200微秒左右.

这个数值与资料说的出入如此之大,是怎么回事呢?
LED灯亮了后,将我从崩溃边缘拉回来了,但,还是不明白,是资料错误?我的器件特殊?
kingkb 2010-06-25
  • 打赏
  • 举报
回复
网上看看别人怎么做的吧
lbing7 2010-06-25
  • 打赏
  • 举报
回复
加个上拉再说!

cbyibby 2010-06-25
  • 打赏
  • 举报
回复
用示波器先测一下输出吧
cqlhj 2010-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 lbing7 的回复:]
无果剩下就是时序的问题。。。

慢慢调咯,其实可以在PROTUE上模拟一下
[/Quote]

时序问题已经在上面解决了.呵呵.

只是,为什么差别如此之大.不解
ww2000e 2010-06-24
  • 打赏
  • 举报
回复
电路没问题吧,我以前也是时序搞不好,记得读的时候少延时或多延时数据就乱了

27,374

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧