打印

DS18B20实在搞不好

[复制链接]
1944|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
reaperzero|  楼主 | 2011-3-29 18:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这两天都在搞,看了很多人的程度,也了解了DS18B20的操作时序,但是就是测不出来,现在总是0
用的单片机是AT89S52,晶振11.0592

下面是一部分程度,各位大侠看下有没问题

//先看下这个延时准不准确,15微秒的
void delay15us(uint x)

{

do

{

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();

x--;



}while(x>0);

}


uchar dsinit(void)//这里是检测DS18B20存不存在,我认为这里应该没问题


{

uchar x;

DQ=1;

delay15us(2);//

DQ=0;

delay15us(36);

DQ=1;

delay15us(2);

x=DQ;

delay15us(36);

return x;

}

uchar readbit(void)//这里是读取一位数据


{


uchar ret;

DQ=0;

_nop_();_nop_();

DQ=1;

_nop_();_nop_();_nop_();_nop_();

ret=DQ;

delay15us(4);

DQ=1;

return ret;

}

uchar read(void)//读取一个字节


{

uchar i,dat;

for(i=0;i>8;i++)

{

dat>>=1;

if(readbit())

dat|=0x80;

}

return dat;

}

void writebit(bit i)//写一位数据

{

DQ=0;

_nop_();_nop_();

DQ=i;

delay15us(4);

DQ=1;

}

void write(uchar dat)//写一个字节


{

uchar i;

for(i=8;i>0;i--)

{

writebit(dat&0x01);

dat>>=1;

}

}

uchar temp(void)

{

uchar a=0;

uchar b=0;

uchar t=0;

uint temp;


dsinit();

write(0xCC);   
// 跳过读序号列号的操作

write(0x44);
// 启动温度转换


delay(750);       // 这里是延时,


dsinit();

write(0xCC);
//跳过读序号列号的操作

write(0xBE);
//读取温度寄存器等(共可读9个寄存器) 前两个就是温度





a=read();   
//读取温度值低位

b=read();   
//读取温度值高位

temp=b;

temp=(temp<<8)|a;//

temp=temp*0.0625;

return temp;               

}


还想问下读取温度后,转为十进制那部分对不对(先不考虑正负的问题)

希望各位指点下

相关帖子

沙发
原野之狼| | 2011-3-29 19:21 | 只看该作者
把手册认真看3遍 然后对着示波器调时序

使用特权

评论回复
板凳
john_lee| | 2011-3-30 01:45 | 只看该作者
1、没有示波器。
2、数字逻辑。
用proteus最适合了。

使用特权

评论回复
地板
hotpower| | 2011-3-30 02:17 | 只看该作者
哈哈~~~

使用特权

评论回复
5
ayb_ice| | 2011-3-30 08:26 | 只看该作者
其实还是要多看时序图,仔细分析各个地方延时多长时间最合适,延时程序也要精确,很多地方必须关中断的

使用特权

评论回复
6
银色盒子| | 2011-3-30 08:44 | 只看该作者
学习,学习

使用特权

评论回复
7
huangqi412| | 2011-3-30 09:19 | 只看该作者
用KEIL软仿真调整好时序, wangshangyou yipian guanyu  51 jingque yanshi de wenzhang,  yong  for(,,--)de           tongshi cankao  bieren de ruanjian liucheng .

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:敏

4

主题

60

帖子

1

粉丝