打印
[AVR单片机]

DS18B20序列号读取

[复制链接]
785|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wh13651|  楼主 | 2015-11-20 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wh13651|  楼主 | 2015-11-20 11:25 | 只看该作者
void ds18b20_search_ROM()
{
    unsigned char id_bit_number;
    unsigned char id_byte_number;
    unsigned char id_bit, cmp_id_bit;
    unsigned char value;
    unsigned i=0;
    unsigned j; //冲突次数
    unsigned m=0; //搜索完成一个器件
    unsigned ROM_bit=0;
    unsigned ROM_bit_number=0;
   
    // 搜索变量初始化
    id_bit_number = 0;   //ID 位数
    id_byte_number=0;
    id_bit=0;cmp_id_bit=0;
   
    for(j=0;j<2;j++)
    {
      while(ds18b20_init());
   
        ds18b20_write_date(0xF0);
        while(!((id_bit)&(cmp_id_bit)))
        {
         id_bit = ds18b20_read_bit();        //原码
         cmp_id_bit = ds18b20_read_bit();    //反码
         value=((id_bit<<1)|(cmp_id_bit));
         switch(value)
         {
         case 0x01 :                    //同为0
           {
             ROM_bit=0;      
               } break;
               
         case 0x10 :                    //同为1
           {
             ROM_bit=1;
            }  break;
            
         case 0x00 :                     //不同位
           {
              if(j==1)                    //
              {
                ROM_bit=1;
               }
               else
               {
                ROM_bit=0 ;
               }   
           }  break;
           
         case 0x11 : ROM_bit=2; break;
         }        
         
         if(ROM_bit==0)
         {
           ROM_LOT_ID[j][id_bit_number]&=(~(1<<i)); //置0
           ds18b20_write_bit(ROM_bit);
         }
         if(ROM_bit==1)
         {
           ROM_LOT_ID[j][id_bit_number]|=(1<<i);
           ds18b20_write_bit(ROM_bit);
         }
         if(ROM_bit==2)
         {
           id_bit=0;
           cmp_id_bit=0;
          }
         i++;
         ROM_bit_number++;
         if(i==8)
         {
          i=0;
          id_bit_number++;
          if((id_bit_number==8)&&(ROM_bit_number==65))
          {
           ROM_bit_number=0;
           id_bit_number=0;//搜索完一遍
           id_bit=0;cmp_id_bit=0;
           break;
           }
         }      
       }              
    }
}

使用特权

评论回复
板凳
hotpower| | 2017-5-14 10:14 | 只看该作者
我正在看【HotPower超级CRC计算器(V1.23)】,分享给你,一起看吧! http://www.21ic.com/tools/HotWC3_V1.23.html

使用特权

评论回复
地板
hotpower| | 2017-5-14 10:14 | 只看该作者
我正在看【HotPower超级CRC计算器(V1.23)】,分享给你,一起看吧! http://www.21ic.com/tools/HotWC3_V1.23.html

使用特权

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

本版积分规则

10

主题

30

帖子

1

粉丝