智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1553|回复: 2
打印 上一主题 下一主题

[编程类] DS18B20温度传感器关于写入数据的理解

[复制链接]

15

主题

64

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1529
威望
734
贡献
413
兑换币
382
注册时间
2012-11-27
在线时间
191 小时
毕业学校
跳转到指定楼层
1#
发表于 2013-3-5 20:41:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
unsigned char RD18b20(void)
{
    unsigned char k;
    unsigned char tmp=0;
    DSO = 1;  
    delay8us(1);          //准备读;
    for(k=0;k<8;k++)
    {
      tmp >>= 1;                     //先读取低位
      DSO = 0;                  //Read init;
      delay8us(1);                    
      DSO = 1;                      //必须写1,否则读出来的将是不预期的数据;
      asm("nop");asm("nop");asm("nop");                        //延时9us?
      DSDDR=0;
      asm("nop");
      if(DSI)              //在12us处读取数据;
      tmp |= 0x80;
      delay8us(8);
      DSDDR=1;
      DSO = 1;  
      delay8us(1);
        //恢复One Wire Bus;
    }
    return tmp;
}

tmp先移位1位 不是很明白  顺便讲下后面的理解



49

主题

3751

帖子

1

精华

顶级版主

Rank: 11Rank: 11Rank: 11Rank: 11

积分
27953

资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章技术大牛奖章

威望
10635
贡献
10966
兑换币
4566
注册时间
2010-11-23
在线时间
3176 小时
2#
发表于 2013-3-5 21:03:33 | 只看该作者
先移一位,反正是0。没影响。
如果后移,都读完了还有意义吗?
回复 支持 反对

使用道具 举报

42

主题

1054

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3034

优秀会员奖章活跃会员奖章

QQ
威望
1650
贡献
780
兑换币
625
注册时间
2012-7-6
在线时间
302 小时
3#
发表于 2013-3-5 22:43:02 | 只看该作者
凤姐 风采依旧啊
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 12:20 , Processed in 0.045618 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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