315M无线学习型遥控问题

2019-07-16 16:48发布

最近在做一个315M的无线学习型遥控,功能是能学习无线遥控器的按键功能,学习好后,发射出去可以实现所学遥控器的功能控制设备。无线接收我用的是外部中断来接收,但是程序写入单片机,运行时,一按学习键,马上就中断,我把超外差接收模块去掉按学习键时不会立即运行中断,接上就不正常,马上就中断,怀疑是不是干扰问题,请大神给看看如何解决?

/*********无线数据接收程序**************************/
void intt0(void) interrupt 0   //外部中断0服务程序
{
        EX0=0;
//        IT0=0;
        EA=0;

if(R_315M==0)
{
Delay1ms(100);    //延时程序
if(R_315M==1)
{
clear_buf();  //数据缓存清0
goto receive_end;
}

        receive_cnt=0;
        F_dat[receive_cnt]=0x0011; //315M标志  自定
        while(receive_cnt<250)
        {
                receive_cnt++;
                TR0=1;//启动定时器0
                while(R_315M==0);  //低电平
                TR0=0;
                F_dat[receive_cnt]=TH0*256+TL0;  //脉宽宽度测量
                receive_cnt++;
                TH0=0;
                TL0=0;
                TF0=0;
                TR0=1;
                while(R_315M==1)
                {
                        if(TF0==1)
                        {
                                goto receive_end;
                        }
                }
                TR0=0;
                F_dat[receive_cnt]=TH0*256+TL0;  //脉宽宽度测量
                TH0=0;
                TL0=0;
                TF0=0;
        }
}
        receive_end:
            if(F_dat[5]>=50)         //消除干扰
                {
                    TR0=0;
                    receive_OK=1;  //接收完毕标志
                        F_dat[receive_cnt]=0x0000;
                        receive_cnt=0;
                        TH0=0;
                        TL0=0;
                        TF0=0;
                }
                else
                {
                        clear_buf();  //数据缓存清0
                        receive_cnt=0;
                        TR0=0;
                        TH0=0;
                        TL0=0;
                        TF0=0;
                        EX0=1;
        //                IT0=1;
                        EA=1;
                }               
}
/*******************************************************/
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。