芯片解密单片机源程序如下:
- //内部晶振:11.0592M
- //测试芯片:STC15F104E/STC11F04W
- //By David Xu 2020/08/18
- //硬件最简版
- //实现2262、1527解码输出,学习、自适应多阻值,片内EEPROM存储相关信息
- #include <reg52.h>
- #include <intrins.h>
-
- sfr AUXR=0x8e;
- sfr IAP_DATA = 0xC2; //片内EEPROM资源声明
- sfr IAP_ADDRH = 0xC3;
- sfr IAP_ADDRL = 0xC4;
- sfr IAP_CMD = 0xC5;
- sfr IAP_TRIG = 0xC6;
- sfr IAP_CONTR = 0xC7;
- sfr P3M0 =0xb2;
- sfr P3M1 =0xb1;
- #define uchar unsigned char
- #define uint unsigned int
- sbit RF = P3^4; //射频引脚定义
- sbit set = P3^3; //设置键定义
-
- sbit keya = P3^0; //第一路
- sbit keyb = P3^1; //第二路
- sbit keyc = P3^2; //第三路
- sbit keyd = P3^5; //第四路
- uint ll_w;
- uchar hh_w; //高,低电平宽度
- uchar ma_x; //接收到第几位编码了
- uchar idata bma1,bma2,bma3; //用于接收过程存放遥控编码,编码比较两次,这是第一次
- uchar idata mmb1,mmb2,mmb3; // 用于接收过程存放遥控编码,第二次
- uchar key_data;
- uchar short_k;
- uchar mma1,mma2,mma3; //用于解码过程
- uchar L_M_select;
- uchar xplx;
- uint s,s1;
- bit old_rc5; //保存上一次查询到的电平状态
- bit tb_ok; //接收到同步的马时置1
- bit rf_ok1,rf_ok2; //解码过程中的临时接收成功标志
- bit rf_ok; //接收到一个完整的遥控命令后置1,通知解码程序可以解码了
- bit study; //进入学习状态标志
- bit system_int; //系统清零标志
- bit m1,m2,m3,m4;
- bit flag_zs;
- bit decode_ok; //解码成功
- uchar idata key_number[61];
- void delay_1ms(uint x) //1毫秒延时
- {
- uchar b,c;
- for(x;x>0;x--)
- {
- for(b=5;b>0;b--)
- {
- for(c=150;c>0;c--);
- }
- }
- }
- void BB(uint size,uchar Number)
- {
-
- if(Number)
- {
- for(Number;Number>0;Number--)
- {
- set=0;
- delay_1ms(size);
- set=1;
- delay_1ms(size);
- }
- }
- else
- {
- set=0;
- delay_1ms(size);
- set=1;
- }
- }
|