怎么利用STC89C52单片机进行红外遥控解码( 二 )


// {
  RI = 0;     //断根RI接管间断标记 
a =SBUF;  //SUBF接管/发送缓冲器 

  Flag=1;
    
 //}
}
void IR_IN(void) interrupt 0//红外间断办事程序   
{
  unsigned char j,k,N=0;
     EX0 = 0;   
delay(15);
if (IRIN==1) 
     { EX0 =1;
   return;
  }                        
  while (!IRIN)           
    {delay(1);}


 for (j=0;j<4;j++)       
 { 
  for (k=0;k<8;k++)       
  {
   while (IRIN)            
     {delay(1);}
    while (!IRIN)         
     {delay(1);}
     while (IRIN)         
      {
    delay(1);
    N++;           
    if (N>=30)
{ EX0=1;
return;}                 
      }                                       
     IRCOM[j]=IRCOM[j] >> 1;                 
     if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} 
     N=0;
  }
 }  
   if (IRCOM[2]!=~IRCOM[3])
   { EX0=1;
     return; }
【怎么利用STC89C52单片机进行红外遥控解码】

   IRCOM[5]=IRCOM[2] & 0x0F;     
   IRCOM[6]=IRCOM[2] >> 4;     


   if(IRCOM[5]>9)
    { IRCOM[5]=IRCOM[5]+0x37;}
   else
  IRCOM[5]=IRCOM[5]+0x30;


   if(IRCOM[6]>9)
    { IRCOM[6]=IRCOM[6]+0x37;}
   else
  IRCOM[6]=IRCOM[6]+0x30;
       d=~d;
       Flag=1;
      EX0 = 1; 

void delay(unsigned char x)    
{
 unsigned char i;
  while(x--)
 {
  for (i = 0; i<14; i++) {}
 }
}

怎么利用STC89C52单片机进行红外遥控解码

文章插图

怎么利用STC89C52单片机进行红外遥控解码

文章插图

4从头编译程序 , 程序没有错误之后进行下一步 , 第二张图中“0错误,0警告”申明程序没问题

怎么利用STC89C52单片机进行红外遥控解码

文章插图

怎么利用STC89C52单片机进行红外遥控解码

文章插图

5打开程序下载软件 , 下载程序进单片机 , 显示下载当作功今后 , 进行下一步

怎么利用STC89C52单片机进行红外遥控解码

推荐阅读