⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jiema.h

📁 红外 解码
💻 H
字号:
bit leader;//判断引导码
unsigned int codegroup=0; //接收的32位二进制数
unsigned char KEY=1;//指令码,初始值不能为0
unsigned char length;

unsigned int xdata  timerN=0; 

void init_interrupt(void)
{
  leader=0;
  length=0;
  TMOD=0x11; 
  TCON=0x05; 
  EX1=1; 
  EA=1; 
  TR0=0; 
  TH0=0x00;
TL0=0x00;
  EX0=1;EX1=1;ET0=0;ET1=1;//INT0中断允许,T0不允许中断,T1允许中断
}

void service_INT0()interrupt 2
{
 TR0=1;//T0开始计时
 timerN=0;
 TR1=0;
 TH1=0x3c;
 TL1=0xb0;
 TR1=1;//T1计时30s关背光
 WDT=0x3d; 
}

void service_INT1()interrupt 0
{
  TR0=0; 
  EX1=0; 
  if(TH0==0x11)// 若编码代表“引导码”则引导码标志为1
     {leader=1;length=0;}

  if(leader)
     {
      if(TH0==0x02)
        {codegroup=(codegroup<<1)+0;length++;}   //若编码代表“0”则在code尾部加0
      else if(TH0==0x06)
        {codegroup=(codegroup<<1)+1;length++;}   //若编码代表“1”则在code尾部加1
    }
 TH0=0;TL0=0;
 EX1=1;
}

void code_process()
{
  if(length>31)
  {
  KEY=(unsigned char)(codegroup>>8);
  length=0;
  leader=0;
   LED=1; 
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -