学习本质就是学编码方式,例如2262,1527编码,再扣重点说就是存储发射器的地址码,具体的按键需要逐个具体学习 |
各种遥控器有固定编码格式,学习一个按键就知道对应的编码格式,其它按键值都是固定的值。 |
433模块? |
//+++++++++++++++++++++++++2262与1527数据分离处理++++++++++++++++++++++++++++++++++++++++ if((da1527[0][0]==da1527[1][0]) && (da1527[0][1]==da1527[1][1]) && (da1527[0][2]==da1527[1][2])) //两次接收到的数据相同 { uchar u,i,x; rf_ok=1; for(i=0;i<3;i++) //判定2262与1527 { for(u=0;u<4;u++) {if(((da1527[0][i]>>(u*2)) & 3)==2) {i=80;break;}} //有10则为1527 if(i==80) break; } if(i==80) //1527 { key_d=da1527[1][2] & 0x0f; //分出1527的按键值 da1527[0][2]=da1527[1][2]>>4; //分出1527的后4位地址 jmnx=1; //为0是2262,1是1527 } else //2262 { key_d=0; for(i=0;i<4;i++){if(((da1527[0][2]>>(i*2))&3)==3) key_d|=1<<i;} //计算出2262的按键数据 da1527[0][2]=00; //2262无后4位地址,全为0 jmnx=0; //为0是2262,1是1527 } if (!study) //非学习状态 { rf_ok=0; for(x=0;x<60;x++) { if((da1527[0][0]==key_number[x*3+1])&&(da1527[0][1]==key_number[x*3+2]) &&(da1527[0][2]==key_number[x*3+3]))//判断是否已学习过的编码 { D0=key_d&0x08; //取得按键码 D0=key_d&0x04; //取得按键码 D0=key_d&0x02; //取得按键码 D0=key_d&0x01; //取得按键码 |