#include "NEW_8051.H"
#include "task.h"
uchar  irtime;//红外用全局变量
bit new_code;
uchar IRcord[2];
uchar irdata[17];
uchar key_code;
/************************************************/
void tim1_isr (void) interrupt 3 using 1//定时器1中断服务函数
{
  irtime++;
}
/*************************************************************/
//外部中断1解码程序
void ex1_isr (void) interrupt 2 using 2//外部中断1服务函数
{
    static uchar i,p,z;
    static bit startflag;
    TR1=1;
    if(startflag)
    {        
        if(irtime<100&&irtime>=53)//引导码 TC9012的头码
        { 
            i=0;
            p=1;
            z=0;
            irdata[i]=irtime;
            irtime=0;
        }
        z++;
        if(z>=18)
        {
            irdata[p]=irtime;
            irtime=0;
            p++;
            if(p==17)
            {
                new_code=1;
                p=0;
				TR1=0;
            }	  
        }
        else 
            irtime=0;          
        
    }   
    else
    {
        irtime=0;
        startflag=1;
    }
}
/************************************************/
void Ircordpro(void)//红外码值处理函数
{
    uchar i, j, k;
    uchar cord,value;
    
    k=1;
    for(i=0;i<2;i++)//处理4个字节
    {
     for(j=1;j<=8;j++) //处理1个字节8位
    {
        cord=irdata[k];
    if(cord>11)//大于某值为1
    {
        value=value|0x80;
    }
    else
    {
        value=value;
    }
    if(j<8)
    {
        value=value>>1;
    }
        k++;
    }
        IRcord[i]=value;
        value=0;    
    }
	key_code=IRcord[0]; 

} 