红外接收解码原理及C流程图解释

2019-07-18 14:09发布

最近自己在摸索基于单片机的红外发送接收,遇到点困难,希望高人指点迷津....感激不尽...邮箱xjh_world@163.com
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
51爱好者
1楼-- · 2019-07-19 09:36
#include <reg51.h>
sbit IRIN = P3^2;         //红外接收器数据线

void IRdelay(char x);  //x*0.14MS
void beep();
unsigned char  IRCOM[7];
extern unsigned char Y0;
extern void display(unsigned char Key_Val);
/*******************************************************************/
void IRInit()
{
    IE |= 0x81;                 //允许总中断中断,使能 INT0 外部中断
    TCON |= 0x01;               //触发方式为脉冲负边沿触发
   
    IRIN=1;                    //I/O口初始化
}
/**********************************************************/
void IR_IN(void) interrupt 0
{
   unsigned char j,k,N=0;
   EX0 = 0;  
     
   IRdelay(5);
   if (IRIN==1)
   {
       EX0 =1;
     return;
   }
                            //确认IR信号出现
   while (!IRIN)            //等IR变为高电平,跳过9ms的前导低电平信号。
   {
    IRdelay(1);
   }

  for (j=0;j<4;j++)         //收集四组数据
  {
    for (k=0;k<8;k++)        //每组数据有8位
    {
      while (IRIN){IRdelay(1);}            //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
      while (!IRIN){IRdelay(1);}          //等 IR 变为高电平
        
      while (IRIN)           //计算IR高电平时长
      {
        IRdelay(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;
    }//end for k
      
  }//end for j
   
    if (IRCOM[2]!=~IRCOM[3])
    {
     EX0=1;
        return;
  
    }

EX0 = 1;
}

/**********************************************************/
void IRdelay(unsigned char x)    //x*0.14MS
{
unsigned char i;
  while(x--)
{
  for (i = 0; i<13; i++) {}
}
}


学哥学姐们有知道这短程序是什么意思吗?
幸福的咖啡
2楼-- · 2019-07-19 13:41
楼主大家分享一下吧。。
黄祖强
3楼-- · 2019-07-19 19:17
怎样把语音的模拟信号和温度的数字信号,通过红外管发送出去
回忆zsq
4楼-- · 2019-07-20 00:38
我也需要一份1597351369@qq.com

一周热门 更多>