请问各位前辈,我想在这个红外遥控程序: 总菜单按键(case ox01)下面加几个子菜单按键(也是红外遥控),switch后面要怎么改? 红外中断程序:
void int1()interrupt 2
{ uchar i,j,n=0;
dat[4]=0;
EX1=0; //必须将中断关闭,否则将无法准确解读
delay(0xf8,0x30);
if(ultra_red) //延时2ms后判断是否为高电平,若是,则跳出中断(红外发射端发射信号以9ms高电平开始,接收端接受信号与发射信号相反)
{ r=1;
delay(0x15,0xa0);
return;
}
while(!ultra_red) delay(0xff,0x9c);//等待9ms低电平
while(ultra_red) delay(0xff,0x9c); //等待4.5ms高电平
for(i=0;i<4;i++)
for(j=0;j<8;j++)
{ while(!ultra_red) delay(0xff,0x9c); //等待0.56ms的低电平区
while(ultra_red)
{ delay(0xff,0x9c); //每0.1ms,指针n自加1
n++;
}
dat[i]>>=1; //最高位写入0
if(n>6) dat[i]=dat[i]|0x80; //若n>6,说明高电平持续时间大于0.56ms,则将高位置1
n=0; //指针清零
}
if(dat[2]==~dat[3]) //若数据码与数据反码的非相同,说明解码成功
{ switch(dat[2])
{ case 0x01:
case 0x02:
default:break;
}
}
else dat[4]=0;
r=1;
return;
} |