lue>>1; Р if(irdata[k]>6) Р {Р value=value | 0x80; Р }Р k++;Р?if(k>33)Р?k=1;Р }Р ircode[j]=value;Р }Р irprosok=1;Р }Р Рvoid main()Р {Р timer0init();Р int0init();Р while(1)Р {Р if(irreceok)Р {Р irpros();Р irreceok=0; Р }Р display();Р Р } Р Р Р }Р void display()Р{ Р switch(ircode[2])Р {Р case 0x05:Р led1=1;Р led2=1;Р led3=1;Р break;Р?Р case 0x02:Р led1=0;Р led2=1;Р led3=1;Р break;Р?Р case 0x03:Р led2=0;Р led1=1;Р led3=1;Р break;Р?Р case 0x04:Р led3=0;Р led1=1;Р led2=1;Р break;Р?Р?Р //case 0x01: 备用Р }Р?Р?Р} Р Р Рvoid timer0 () interrupt 1Р {Р irtime++; Р }Р Рvoid int0 () interrupt 0Р {Р if(startflag)Р {Р if(irtime>32) //检测引导码Р {Р bitnum=0;Р }Р irdata[bitnum]=irtime;Р irtime=0;Р bitnum++;Р if(bitnum==33)Р {Р bitnum=0;Р irreceok=1;Р?startflag=0;Р Р }Р Р }Р elseР {Р startflag=1;Р irtime=0;Р }Р }