五、超外差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;
  while(INT2_K2==0) //124clk同步低电平 9.3ms
  {
    Delay30us(); //精准延时
    cnt++;
    if(cnt>330) //低电平过长退出
    {
      EA=1;
      return;
    }
  }
  if(cnt<280) //低电平过短退出
  {
    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;
}

 

posted @ 2022-05-05 12:22  来去勿扰  阅读(509)  评论(0)    收藏  举报