void Int0(void) interrupt 0
{
EX0=0; //关闭外中断0,不再接收二次红外信号的中断
TH0=0; //定时器T0的高8位清0
TL0=0; //定时器T0的低8位清0
TR0=1; //开启定时器T0
while(IR==0); //如果是低电平就等待,给低电平计时
TR0=0; //关闭定时器T0
LowTime=TH0*256+TL0; //保存低电平时间
TH0=0; //定时器T0的高8位清0
TL0=0; //定时器T0的低8位清0
TR0=1; //开启定时器T0
while(IR==1); //如果是高电平就等待,给高电平计时
TR0=0; //关闭定时器T0
HighTime=TH0*256+TL0; //保存高电平时间
}//主函数去计算高低电平时间,得出周期。验证信号。(有示波器测红外接收OUT最好)
红外接收探头,接收红外信号频率为38kHz,OUT:是高电平、低电平不断交替变换,高低电平变化周期约26μs
|