现在常用的都是PIC解滚码HCS300/301,及那个DECRYPT的加密算法
很少能找到这样的C程序,且又是在51下的,我也没有找到
是从PIC的汇编中,一句句理顺,转成C的
本例只对关键程序,24C02存储及同步校验等非本程序关键
程序介绍:
1 利用INT1 和定时器1的GATE=1,高电平时计数,加中断后判断时间,完成滚码串行数据接收
2 接收完成后,在DECRYPT下解密
3 检查序列号 校验同步值
4 注意一个滚码至少需要6个字节保存,前4字节为序号,后2字节为同步值
5 建议开辟一个大的RAM来保存,不然老是刷新24C02的话,同步值易出错
部分源代码
-
- #define main_c
- #include "io.h"
- //==============================================
- void MUC_INITIAL(void)
- {
- TMOD=0X91;
- TCON=0X55;//TR0=TR1=1;IT0=IT1=1 int0/1下降沿触发中断
- SCON= 0X50;
- RCAP2L=TL2=0Xd8;//9600
- RCAP2H=TH2=0Xff;
- T2CON=0X34;
- PCON =0XF0;
- AUXR=0X01;
- IP=0X05;
- IE=0X9E;
- }
- //********************** delay ***************************
- void DELAY(unsigned int t)
- {unsigned int i;
- for(i=0;i<t;i++)wdt();
- }
- //********************** main ***************************
- void main(void)
- {
- DELAY(1000);
- MUC_INITIAL();
- MUC_INITIAL();
- while(1)
- {
- RF_DECODE();
- KEELOQ_PROCESS();
- STUDY_RT_KEELOQ();
- }
- }
复制代码