您现在的位置: 主页 > MCU > 单片机技术应用 > KCS301滚动码解码程序 -
本文所属标签:
为本文创立个标签吧:

KCS301滚动码解码程序 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]#include #define uchar unsigned char#define HOP1 CSR0#define HOP2 CSR1#define HOP3 CSR2#define HOP4 CSR3uchar KEY0,KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7;uchar CSR0,CSR1,CSR2,CSR3,CSR4,CSR5,CSR6,CSR7,CSR8

#include
#define uchar unsigned char

本文引用地址: http://www.21ic.com/app/mcu/201807/785085.htm

#define HOP1 CSR0
#define HOP2 CSR1
#define HOP3 CSR2
#define HOP4 CSR3

uchar KEY0,KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7;
uchar CSR0,CSR1,CSR2,CSR3,CSR4,CSR5,CSR6,CSR7,CSR8;

uchar CNT0,CNT1,HOP_LENGTH,MASK,KEELOQ_Temp;

bit bb,bb1;
uchar testbit(uchar x,uchar n)
{
return x & (1<

}
void decrypt(void)
{
uchar i,j;
uchar temp1,temp;
for(i=0;i<12;i++)
{
for(j=0;j<48;j++)
{
if(i==11)
goto aa;

if(testbit(HOP3,3)!=0)
MASK=0x10;
else
MASK=1;

if(testbit(HOP2,0)!=0)
{
MASK<<=2;
}
if(testbit(HOP1,0)!=0)
MASK<<=1;

temp1=HOP4 & 0x42; ;//Bit6 and bit 1
switch(temp1)
{
case 0x0:
temp=0x2e;
break;
case 0x02:
temp=0x74;
break;
case 0x40:
temp=0x5c;
break;
case 0x42:
temp=0x3a;
break;
default:
break;
}
if((MASK & temp)==0)
temp=0;
else
temp=0x80;
temp^=HOP2;
temp^=HOP4;
temp^=KEY1;

bb=HOP1>0x7f;
HOP1<<=1;
if(temp>0x7f) HOP1|=1;

bb1=HOP2>0x7f;
HOP2<<=1;
if(bb) HOP2|=1;

bb=HOP3>0x7f;
HOP3<<=1;
if(bb1) HOP3|=1;

HOP4<<=1;
if(bb) HOP4|=1;

aa:
bb=KEY0>0x7f;
KEY0<<=1;
if(KEY7>0x7f) KEY0|=1;

bb1=KEY1>0x7f;
KEY1<<=1;
if(bb) KEY1|=1;

bb=KEY2>0x7f;
KEY2<<=1;
if(bb1) KEY2|=1;

bb1=KEY3>0x7f;
KEY3<<=1;
if(bb) KEY3|=1;

bb=KEY4>0x7f;
KEY4<<=1;
if(bb1) KEY4|=1;

bb1=KEY5>0x7f;
KEY5<<=1;
if(bb) KEY5|=1;

bb=KEY6>0x7f;
KEY6<<=1;
if(bb1) KEY6|=1;

bb1=KEY7>0x7f;
KEY7<<=1;
if(bb) KEY7|=1;

}
}

}

void main(void)
{
KEY7=0x01;
KEY6=0x23;
KEY5=0x45;
KEY4=0x67;
KEY3=0x89;
KEY2=0xab;
KEY1=0xcd;
KEY0=0xef;
while(1)
{
CSR3=0X60; ;
CSR2=0;
CSR1=3;
CSR0=0X45; //解码结果87 24 3D 4B
decrypt();
}

}




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > KCS301滚动码解码程序 -
 

"KCS301滚动码解码程序 -"的相关文章

网站地图

围观()