芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

飞芯科技-芯片解密|单片机解密|IC解密|芯片破解|芯片复制| PCB抄板|软件开发

芯片解密单片机IR收发程序

单片机源程序如下:

  1. 芯片解密#include "IRSEND.h"
  2. 芯片解密unsigned char SDATA[5] = {0,0,0,0,0};
  3. 芯片解密unsigned char SNDATA[5] = {0,0,0,0,0};
  4. 芯片解密unsigned char gSendBitCount = 0;    //发送的位计数
  5. 芯片解密unsigned char gSendCount = 0;       //发送个数计数
  6. unsigned char gSendTimeCount = 0;   //发送计时
  7. unsigned char gIRSendMode = 0;      //发送模式
  8. unsigned char gFinishCount = 0;
  9. void IRSENDInit()
  10. {
  11.         _IRSENDOUT_;
  12.         _IRSENDUP_;
  13.         _DATAH_;
  14. }

  15. void IRSEND()   //125us
  16. {
  17.         switch(gIRSendMode)
  18.         {
  19.                 case IR_DELAY:
  20.                         _DATAH_;
  21.                         gSendTimeCount++;
  22.                         if(gSendTimeCount >= _DELAY_)
  23.                         {
  24.                                 gSendTimeCount = 0;
  25.                                 gSendBitCount = 0;
  26.                                 gSendCount = 0;
  27.                                 SNDATA[0] = SDATA[0];
  28.                                 SNDATA[1] = SDATA[1];
  29.                                 SNDATA[2] = SDATA[2];
  30.                                 SNDATA[3] = SDATA[3];
  31.                                 SNDATA[4] = (unsigned char)(~(SDATA[0]+SDATA[1]+SDATA[2]+SDATA[3]+0xbb));
  32.                                 gIRSendMode = IR_SEND;
  33.                         }
  34.                 break;
  35.                 case IR_SEND:
  36.                         gSendTimeCount++;
  37.                         if(gSendTimeCount >= _ROUND_)
  38.                         {
  39.                                 gSendTimeCount = 0;
  40.                                 gSendBitCount++;           //已发送1位
  41.                                 SNDATA[gSendCount] <<= 1;  //数据移位
  42.                                 if(gSendBitCount >= 8)     //已发送8位
  43.                                 {
  44.                                         gSendBitCount = 0;
  45.                                         gSendCount++;
  46.                                         if(gSendCount >= 5)
  47.                                         {
  48.                                                 gSendTimeCount = 0;
  49.                                                 gSendBitCount = 0;
  50.                                                 gSendCount = 0;
  51.                                 //                _DATAH_;
  52.                                                 gIRSendMode = IR_LAST;
  53.                                                 goto _2;
  54.                                         }
  55.                                 }
  56.                         }
  57.                         if((SNDATA[gSendCount] & B10000000) != 0)        //如果等于1
  58.                         {
  59.                                 if(gSendTimeCount < _DATAHTIME_)
  60.                                 {
  61.                                         _DATAL_;
  62.                                 }
  63.                                 else
  64.                                 {
  65.                                         _DATAH_;
  66.                                 }
  67.                         }
  68.                         else
  69.                         {
  70.                                 if(gSendTimeCount < _DATALTIME_)
  71.                                 {
  72.                                         _DATAL_;
  73.                                 }
  74.                                 else
  75.                                 {
  76.                                         _DATAH_;
  77.                                 }
  78.                         }
  79.                         _2:
  80.                 break;
  81.                         
  82.                 case IR_LAST:
  83.                         if(gFinishCount <= _DATAHTIME_)
  84.                         {
  85.                                 _DATAL_;
  86.                         }
  87.                         else
  88.                         {
  89.                                 _DATAH_;
  90.                         }
  91.                         gFinishCount++;
  92.                         if(gFinishCount >= _ROUND_)
  93.                         {
  94.                                 gFinishCount = 0;
  95.                                 gIRSendMode = IR_DELAY;
  96.                         }
  97.                 break;
  98.         }
  99. }



联系方式

地址:石家庄市新华区民族路77号华强广场D座2009
电话:0311-88816616/87087811
手机:13315190088
传真:0311-67901001
联系人:张工
网址:www.feixindz.com
邮箱:feixindz@163.com
微信:xinpianjiemi
QQ:527263666/568069805

在线客服
热线电话

企业微信