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

📄 drv_18b20.i

📁 该模板使用于周立功公司研发的EasyARM2100系列开发板
💻 I
字号:
#line 1 "src\\drv_18b20.c"










    
#line 18 "src\\drv_18b20.c"

void delays(uint32 time)
{
uint32 i,j;
for(i=0;i<time;i++)
   {
   for(j=0;j<3;j++){;}
   }

}


uint8 init_ds1820(void) {
     IO0DIR=IO0DIR|0x00020000;
       IO0CLR|=0x00020000;
       delays(1200);  
      IO0SET|=0x00020000;
     IO0DIR=IO0DIR&0xfffdffff;
       delays(240);   
			
      if(IO0PIN&0x00020000>1)
         {
          return 0;
         }
	    else
        { 
         
           IO0DIR=IO0DIR|0x00020000;
           IO0SET|=0x00020000;
             delays(950); 
          return 1;
        }
}

void write_ds1820(uint8 data)
{
   uint8 i; 
    IO0DIR=IO0DIR|0x00020000;
    for(i=0;i<8;i++)
     {
        if(data & 0x01) { 
                            
            IO0CLR|=0x00020000;
             delays(18);      
             IO0SET|=0x00020000;
             delays(133);     
        }  
        else
        {                
            IO0CLR|=0x00020000;
            delays(133);     
             IO0SET|=0x00020000;
            delays(18);      
        }
       data = data>>1;
    }
}

uint8  read_bit_ds1820(void){
    uint8  data;
    IO0DIR=IO0DIR|0x00020000;
    IO0CLR|=0x00020000;
      delays(1);        
     IO0SET|=0x00020000;
      delays(2);      
   
    IO0DIR=IO0DIR&0xfffdffff;
    data =((IO0PIN&0x00020000)>>17);
    delays(140);      
    return data;
}


uint8  read_byte_ds1820(void){
   uint8  i,datak;
	 datak = 0;
    for(i=0;i<8;i++){
        datak = datak >> 1;    
        if(read_bit_ds1820()) datak |= 0x80;
    }
    return datak;
}


void covert_ds1820(void)
{
    write_ds1820(0xCC);
    write_ds1820(0x44);
}


uint8 read_tem_ds1820(void)
{
    uint8  Height,Low;
    uint16   Temp; 
    uint8 wendu=0;                              
    write_ds1820(0xCC);                   
    write_ds1820(0xBE);                   
    Low    = read_byte_ds1820();
    Height = read_byte_ds1820();
    Temp   = (Height << 8) + Low;
    wendu=(uint8)(Temp>>4) ;
   return wendu;
}


	



⌨️ 快捷键说明

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