DS18B20配置

复位脉冲:

  先拉低至少480us,以产生复位脉冲,接着释放4.7k电阻为高,延时15~60us,

进入接收。

 

1 void DS18B20_Rst(void)       
2 {                 
3     DS18B20_IO_OUT();     //SET PG11 OUTPUT
4     DS18B20_DQ_OUT=0;     //拉低DQ
5     delay_us(750);        //拉低750us
6     DS18B20_DQ_OUT=1;     //DQ=1 
7     delay_us(15);         //15US
8 }

 

应答脉冲:

  然后在拉低总线为60~240us,产生低电平应答脉冲(接收)。

 

 1 u8 DS18B20_Check(void)        
 2 {   
 3     u8 retry=0;
 4     DS18B20_IO_IN();    //SET PG11 INPUT     
 5     while (DS18B20_DQ_IN&&retry<200)
 6     {
 7         retry++;
 8         delay_us(1);
 9     };     
10     if(retry>=200)return 1;
11     else retry=0;
12     while (!DS18B20_DQ_IN&&retry<240)
13     {
14         retry++;
15         delay_us(1);
16     };
17     if(retry>=240)return 1;        
18     return 0;
19 }

 

写时序:

  写1:先低电平延时2us,在释放总线延时60us。写0:先低电平60us,在释放

总线延时2us。

 

 1 void DS18B20_Write_Byte(u8 dat)     
 2  {             
 3     u8 j;
 4     u8 testb;
 5     DS18B20_IO_OUT();    //SET PG11 OUTPUT;
 6     for (j=1;j<=8;j++) 
 7     {
 8         testb=dat&0x01;
 9         dat=dat>>1;
10         if (testb) 
11         {
12             DS18B20_DQ_OUT=0;    // Write 1
13             delay_us(2);                            
14             DS18B20_DQ_OUT=1;
15             delay_us(60);             
16         }
17         else 
18         {
19             DS18B20_DQ_OUT=0;    // Write 0
20             delay_us(60);             
21             DS18B20_DQ_OUT=1;
22             delay_us(2);                          
23         }
24     }
25 }

 

读时序:

  主机输出低电平2us,然后在释放总线延时12us,接着在读取数据是0还是1,并

且延时50us。先读一个字节,然后在读一个位。

 1 u8 DS18B20_Read_Bit(void)      
 2 {
 3     u8 data;
 4     DS18B20_IO_OUT();    //SET PG11 OUTPUT
 5     DS18B20_DQ_OUT=0; 
 6     delay_us(2);
 7     DS18B20_DQ_OUT=1; 
 8     DS18B20_IO_IN();    //SET PG11 INPUT
 9     delay_us(12);
10     if(DS18B20_DQ_IN)data=1;
11     else data=0;     
12     delay_us(50);           
13     return data;
14 }

 

posted on 2017-09-17 21:30  zengsf  阅读(244)  评论(0编辑  收藏  举报

导航