编程语言
首页 > 编程语言> > 超外差433M无线接收程序

超外差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;
}

 

标签:cnt,12,超外差,300US,低电平,433M,4LCK,INT2,无线
来源: https://www.cnblogs.com/Zyj1739/p/16224298.html