芯片破解HX1838红外无线遥控模块51单片机程序
芯片破解单片机源程序如下:
- #include<reg52.h> //包含单片机寄存器的头文件
- #include<intrins.h> //包含_nop_()函数定义的头文件
- #define uchar unsigned char
- #define uint unsigned int
- sbit IRIN=P3^2; //红外接收器数据线
- sbit led1=P1^0;
- sbit led2=P1^1;
- sbit led3=P1^2;
- sbit led4=P1^3;
- sbit led5=P1^4;
- sbit led6=P1^5;
- sbit led7=P1^6;
- sbit led8=P1^7;
- uchar IRCOM[7];
- void delay(unsigned char x) ;
- /*******************************************************************/
- void main()
- {
- unsigned int a;
-
- IRIN=1; //I/O口初始化
- IE=0x81; //允许总中断中断,使能 INT0 外部中断
- TCON=TCON|0x01; //触发方式为脉冲负边沿触发
-
- while(1)
- {
- for(a=100;a>0;a--)
- {
- void IR_IN();
- }
- }
- }
- /**********************************************************/
- void IR_IN() interrupt 0 using 0
- {
- unsigned char j,k,N=0;
- unsigned char q=0;
- EX0 = 0;
- delay(15);
- if (IRIN==1)
- {
- EX0 =1;
- return;
- }
- //确认IR信号出现
- while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。
- delay(1);
-
- for (j=0;j<4;j++) //收集四组数据
- {
- for (k=0;k<8;k++) //每组数据有8位
- {
- while (IRIN) //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
- {delay(1);}
- while (!IRIN) //等 IR 变为高电平
- delay(1);
- while (IRIN) //计算IR高电平时长
- {
- delay(1);
- N++;
- if (N>=30)
- {
- EX0=1;
- return;
- } //0.14ms计数过长自动离开。
- } //高电平计数完毕
- IRCOM[j]=IRCOM[j] >> 1; //数据最高位补“0”
- if(N>=8)
- {
- IRCOM[j] = IRCOM[j] | 0x80; //数据最高位补“1”
- }
- N=0;
- }
- }

芯片解密