请问下为什么我一用红外遥控器控制单片机结果我的其他按键功能都没了?连LCD,18B20也没反应了,只能按复位。。。
我想过是计算时间的那个while出问题,可是我加个i上去给了个while的循环上限,可还是出问题,求各位帮帮忙看看。。。/*************************************
红外线触发的外中断处理函数
**************************************/
void Int0(void) interrupt 0
{
unsigned int i;
EX0 = 0; //关闭外中断0,不再接收二次红外信号的中断
TH0 = 0; //定时器T0清0
TL0 = 0;
i = 0;
TR0 = 1; //开启定时器T0
while(IR==0 && i<10000)
i++; //低电平计时
TR0 = 0; //关闭定时器T0
LowTime = TH0*256+TL0; //保存低电平时间
TH0 = 0; //定时器T0清0
TL0 = 0;
i = 0;
TR0 = 1; //开启定时器T0
while(IR==1 && i<6000)
i++; //高电平计时
TR0 = 0; //关闭定时器T0
HighTime = TH0*256+TL0; //保存引导码的高电平长度
if((LowTime>7800) && (LowTime<8800) && (HighTime>3600) && (HighTime<=4700))
{
if(DeCode() == 1) //解码
{
if(a[2] == 0x45)
{
jdq2 = ~jdq2;
}
}
}
EX0 = 1; //开启外中断
}
|