⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ds18b20.c

📁 DS18B20测试温度
💻 C
字号:
#include"DS18B20.h"
#include"led_display.c"
#include<math.h>

uchar temp_low,temp_high;


//DS18B20初始化函数*******************************************************//
uchar Reset_DS18B20(void)
{
  uchar t=6,temp;
  Set_DS18B20_dq_DDR();
  Clr_DS18B20_dq();
  while(t--)
  {
    _delay_us(90);
  }
  Set_DS18B20_dq();
  _delay_us(75);  
  temp=In_DS18B20_dq();
  _delay_us(90);
  _delay_us(90);
  _delay_us(90);
  if(temp) 
    return 0;
	  else  return 1;
}


//写命令或数据到温度芯片DS18B20(发送一个字节)*****************************//
void Write_DS18B20(uchar data)
{
   uchar i=0;
   Set_DS18B20_dq_DDR();
   for(i=0;i<8;i++)
   {
     if(data&0x01)
	 {
       Clr_DS18B20_dq();
       _delay_us(8);        
       Set_DS18B20_dq();
       _delay_us(92);
      }
       else
       {
         Clr_DS18B20_dq();
         _delay_us(98);
         Set_DS18B20_dq();
         _delay_us(4);
		}
       data>>=1;
   } 
}

//从温度芯片DS18B20读配置或数据(接收一个字节)*****************************//
uchar Read_DS18B20(void)
{
  uchar data=0,i=0;
  Set_DS18B20_dq_DDR();
  for(i=0;i<8;i++)
  {
    data>>=1;
	Clr_DS18B20_dq();
    _delay_us(8);
    Set_DS18B20_dq();
    _delay_us(4);
	if(In_DS18B20_dq()) 
      data|=0x80;
    _delay_us(70);
//     data>>=1;
  }
  return(data);
}

//读取温度****************************************************************//
void Get_Temperature()
{
	Reset_DS18B20();				  // 总线复位 
	Write_DS18B20(DS18B20_skip_rom);  	     
	Write_DS18B20(DS18B20_read_ram);  
	temp_low=Read_DS18B20();	  // 温度的低8位
	temp_high=Read_DS18B20();	  // 温度的高8位
	Reset_DS18B20();		 		    
	Write_DS18B20(DS18B20_skip_rom); 
	Write_DS18B20(DS18B20_convert_tem);  	

}

//将得到的数据转换成摄氏度************************************************//
int Convert_Temperature(void)
{
    int T_Value; 
	uchar flag=0;
	if(temp_high>127)
	{
	 	temp_high = 256-temp_high;
		temp_low  = 256-temp_low;
		flag=1;	
	}
	T_Value = (temp_high*256+temp_low)/16;	
	if(flag)
	{
	    T_Value=(-1)*T_Value;
	}
    
	return T_Value;
}
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -