else
{
TR0 = 0; //关闭定时器
ET0 = 0; //定时器0中断关闭
if ((IRCode[1]!=0xFF) && (IRCode[2]!=0xFF))
{
if (IRCode[1] == 0x55)
{
switch (IRCode[2])
{
case 0xAB: //1-8键控制
P1_0 = ~P1_0;
DT = 1;
break;
case 0xAC:
P1_1 = ~P1_1;
DT = 1;
break;
case 0xAD:
P1_2 = ~P1_2;
DT = 1;
break;
case 0xB2:
P1_3 = ~P1_3;
DT = 1;
break;
case 0xB3:
P1_4 = ~P1_4;
DT = 1;
break;
case 0xB4:
P1_5 = ~P1_5;
DT = 1;
break;
case 0xB5:
P1_6 = ~P1_6;
DT = 1;
break;
case 0xCA:
P1_7 = ~P1_7;
DT = 1;
break;
case 0xD2: //按关闭电源键,关闭所有继电器
P1 = 0xFF;
DT = 1;
break;
}
}
}
}
}
//INT0中断
void INT0Fun(void) interrupt 0 using 2
{
EX0 = 0; //外部中断0关闭
ET0 = 1; //定时器0中断打开
TH0=0xFD;
TL0=0x1E; //设定时值为800us
for (IRCON=0; IRCON<3; IRCON++)
IRCode[IRCON] = 0;
IRCON = 0;
IRCON2 = 0; //计数清零
TR0 = 1;//开始计数
}