超外差433M无线接收程序

2022/5/5 12:42:44

本文主要是介绍超外差433M无线接收程序,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

/*       

EV1527 发射 接270K电阻时,查资料表得16LCK 12V时  周期为1200US 
 也就是4LCK=300US  12LCK=900US
 
同步头 4LCK(300US)高  低124CLK(9300US)
1 :  12CLK(900US)为高,4LCK(300US)为低
0 : 4LCK(300US)为高,12CLK(900US)为低


*/

/**************** INT2中断接收函数 *************************/
void Ext_INT2 (void) interrupt INT2_VECTOR    //
{
    EA=0;
    cnt=0;
    //INT2_Disable();  //关闭按键中断使能
    while(INT2_K2==0)   //124clk同步低电平 9.3ms
    {
        Delay30us();      //精准延时
        cnt++;
        if(cnt>400&&(cnt<200)) //低电平过长或过短都退出
        {
            EA=1;
            return;
        }
    }
    //开始数据
    for(j=0;j<3;j++)
  {
            for(i=0;i<8;i++)
            {
                cnt=0;
                while(INT2_K2==1); //跳过高电平 
                while(INT2_K2==0)   // 计算低电平
                {
                    Delay30us();
                    cnt++;
                    if(cnt>40)       //低电平过长,跳出
                    {
                        EA=1;
                        return;
                    }
                }
                D[j]<<=1;          //左移
                if(cnt>12)D[j]&=0xfe; //低电平12*30>360US  为0  上一步已经是大于40跳出,所以不计算超值
                else if(cnt<=12&&(cnt>7))  //低电平12*30<=360US 并且宽度要大于30*7=210US 为1
                D[j]|=1;
        else                       //否则
        {
                    EA=1;
                    return;
                }                    
            }
        }
      Uart1_SendChar(D[0]);  //测试输出
    Uart1_SendChar(D[1]);
        Uart1_SendChar(D[2]);
    EA=1;
}

 



这篇关于超外差433M无线接收程序的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程