|
void IR_INT0() interrupt 0 using 0
{
TL0=0x86; //赋低位
TR0=1; //开启定时器0
TH0=0xfe; //赋高位
EX0=0; //关闭外部中断
table[0]=table[1]=table[2]=0;
num=0;
count=0;
}
void time0() interrupt 1 using 0
{
bit in=~IR;
TL0=0x85; //赋初值
TH0=0xf9;
if(count==3) //滤掉多余的脉冲
{
TR0=0; //关闭定时器0
IR=1; //复位
delayms(168);//延时避开重复按键的时间80ms
IE0=0;
TF0=0;
EX0=1; //开启外部中断
return;
}
num++;
if(num==3)
{
count=1;
}
else if(num==8)
{
count=2;
}
else if(num==14)
{
count=3;
}
else if(count!=3)
{
table[count]=table[count]|in;
table[count]<<=1;
}
}
这是我的解码中断函数 就是有点不稳定 解码时 帮我看看问题出在哪
|
|