单片机红外接收c程序
网上看到的红外解码程序 小弟有一处疑问
void t0(void) interrupt 0 using 2//外部中断0的函数
{
EA=0;
for(k=0;k<10;k++)
{
ds0_9ms();
if (p32==1) {k=10;break;}
else if(k==9)
{
while(p32==0);//此处循环一直到wile为1,后面为什么还要延时4.5ms
ds4_5ms();
for(i=0;i<4;i++)
{
for(j=1;j<=8;j++)
{
while(p32==0);
ds0_9ms();
if(p32==1)
{ds1ms();
dm=dm|0x80;
if(j<8) dm=dm>>1;
}
else if(j<8)dm=dm>>1;
}
a[i]=dm;
dm=0;
}
for(i=0;i<4;i++)
{
p0=a[i];
ds2s();
}
}
}
p0=0;
EA=1;
}问题见标示处,望达人指点,谢谢