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

📄 rfsoftdecode.txt

📁 AVR单片机的C语言版本的无线遥控解码程序
💻 TXT
字号:
下面发一段AVR单片机的C语言版本的无线遥控解码程序,针对2240、2262等常用的无线编码芯片!单片机是ATmega8,可以完全拷贝使用!

同时本人承接各种安防,电动控制,小家电和无线电控制方面的开发设计工作,价格绝对实惠,产品可靠性高,成本低,方便生产!收到合格样品后再付开发费用!联系方式:QQ:710414207   

///**********************************************************************
void RE_DF(void)
{
  CODE_TEMP3=0;
  CODE_TEMP1=0;
  CODE_TEMP2=0;
  times=0;
  re_data=get_bit(PIND,6);
 while(re_data==0)
 {
   
   wdt_reset();
   delay_us(40);
   times++;
   if(times>500)
   { 
   goto code_out;
   }
   re_data=get_bit(PIND,6);
 }
 times=0;
 while(re_data)
 {
   
   
   wdt_reset();
   delay_us(40);
   times++;
   if(times>150)
  {
   goto code_out;
  }
  re_data=get_bit(PIND,6);
 }
 times=0;
 while(re_data==0)
 {
   
   wdt_reset();
      delay_us(40);
  times++;
  if(times>550)
  {
   goto code_out;
  } 
  re_data=get_bit(PIND,6);
 }
 count=24;
 bit_num=0; 
 if((times>100)&&(times<450))
 {         ///451
  
  while(count--)
  {
    h_times=0;
    low_times=0;  
      
   while(re_data&&(h_times<581))
   {
    
     wdt_reset();
     wdt_reset();
     wdt_reset();
     wdt_reset();
    h_times++;
    re_data=get_bit(PIND,6);
   }
   if((h_times>100)&&(h_times<550))
   {
     low_times=0;
     while((low_times<551)&&(re_data==0))
    {
         
      
       wdt_reset();
       wdt_reset();
       wdt_reset();
       wdt_reset();
      low_times++; 
      re_data=get_bit(PIND,6);
      
    }
     if((low_times>100)&&(low_times<550))
    {   
       
     times=low_times+h_times;
     if((times>400)&&(times<850))  //128
     {
      
       
       if(CODE_TEMP2%2)
       {
        CODE_TEMP1=CODE_TEMP1/2+128; 
       }
       else
       {
        CODE_TEMP1=CODE_TEMP1/2; 
       }
         if(CODE_TEMP3%2)
       {
        CODE_TEMP2=CODE_TEMP2/2+128;
       }
       else
       {
        CODE_TEMP2=CODE_TEMP2/2;
       } 
       if(h_times>low_times)
       {
        CODE_TEMP3=CODE_TEMP3/2+128;
       }
       else
       {
        CODE_TEMP3=CODE_TEMP3/2; 
       }
       
       bit_num++;
       if(bit_num==24)
       {
       
       if(s.study&((CODE_TEMP3&0xf0)==0x20))
        {
        switch(study_num)
        {
         
         case 0:
         {
          eeprom_write_byte(1,CODE_TEMP1);
          delay_ms(100);
          eeprom_write_byte(2,CODE_TEMP2);
          delay_ms(100);
          eeprom_write_byte(3,CODE_TEMP3);
          delay_ms(100);
          study_num=1;
          s.do_study=1;
          break;
         }
         case 1:
         {
          eeprom_write_byte(4,CODE_TEMP1);
          delay_ms(100);
          eeprom_write_byte(5,CODE_TEMP2);
          delay_ms(100);
          eeprom_write_byte(6,CODE_TEMP3);
          delay_ms(100);
          study_num=2;
          s.do_study=1;
          break;
         }
         case 2:
         {
          eeprom_write_byte(7,CODE_TEMP1);
          delay_ms(100);
          eeprom_write_byte(8,CODE_TEMP2);
          delay_ms(100);
          eeprom_write_byte(9,CODE_TEMP3);
          delay_ms(100);
          study_num=0;
          s.do_study=1;
          break;
         }
         default: study_num=0;break;
        }
        
        }
       }
     }
     else
      count=0;
    } 
    else
     count=0;
   }
   else
    count=0;
  } 
 }
code_out:
 times=0;
 count=0;
 
}

⌨️ 快捷键说明

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