現在常用的都是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();
- }
- }
復制代碼