Exemplo n.º 1
0
u8 DS18B20_Read_Bit(void)                      // read one bit

{

    u8 data;

       DS18B20_IO_OUT();//SET PA0 OUTPUT		//wl

    DS18B20_DQ_OUT=0;

       delay_us(2);

    DS18B20_DQ_OUT=1;

       DS18B20_IO_IN();//SET PA0 INPUT			//wl

       delay_us(12);

       if(DS18B20_DQ_IN)
	   
	   data=1;

    else data=0;   

    delay_us(50);          

    return data;

}
Exemplo n.º 2
0
//从DS18B20读取一个位
//返回值:1/0
uint8_t DS18B20_Read_Bit(void) 			 // read one bit
{
    uint8_t data;
	DS18B20_IO_OUT();//SET PA0 OUTPUT
    DS18B20_DQ_OUT=0; 
	wait_us(2);
    DS18B20_DQ_OUT=1; 
	DS18B20_IO_IN();//SET PA0 INPUT
	wait_us(12);
	if(DS18B20_DQ_IN)data=1;
    else data=0;	 
    wait_us(50);           
    return data;
}
Exemplo n.º 3
0
//等待DS18B20的回应
//返回1:未检测到DS18B20的存在
//返回0:存在
u8 DS18B20_Check(void) 	   
{   
	u8 retry=0;
	DS18B20_IO_IN();//SET PA0 INPUT	 
    while (DS18B20_DQ_IN&&retry<200)
	{
		retry++;
		wait_us(1);
	};	 
	if(retry>=200)return 1;
	else retry=0;
    while (!DS18B20_DQ_IN&&retry<240)
	{
		retry++;
		wait_us(1);
	};
	if(retry>=240)return 1;	    
	return 0;
}