五、超外差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; }
浙公网安备 33010602011771号