红外遥控的接收程序问题

2019-07-16 05:09发布

各位高手我最近在做单片机红外遥控,仿照视频教程写的程序不知道哪里不对?以下是程序,烦请各位指教!

#include<reg52.h>
#define uchar unsigned char
#define uint  unsinged int

uchar irtime;
uchar startflag;
uchar bitnum;
uchar irreceok;
uchar ircode[4];
uchar irdata[33];
uchar irprosok;

//***************************************************************************   
void timer0init(void)                                //计时器0初始化
{
TMOD=0X02;
TH0=0X00;
TL0=0X00;
ET0=1;
EA=1;
TR0=1;
}
//****************************************************************************
void int0init(void)                                       //外部中断初始化
{
IT0=1;
EX0=1;
EA=1;
}
//************************************************************************
void irpros(void)                                     //取出irtime并解码
{ uchar k,i,j;
  uchar value;
  k=1;
  for(j=0;j<4;j++)
  {
    for(i=0;i<8;i++)
     {
        value=value>>1;
         if(irdata[k]>6)
   
       value=value|0X08;
       }
   
     k++;
   }
      
   ircode[j]=value;
   
  }
  irprosok=1;
}
//***************************************************************************

void main()                                                      //主函数
{uchar j,k;
timer0init();
int0init();

P2=0x00;
  while(1)
  {
    if(irreceok)
    {
     irpros();
   
     irreceok=0;
     
    }
   
    if(irprosok)
    {
     
     P1=ircode[2] ;   //想以8个led小灯显示遥控键值
     irprosok=0;
     
    }
   

  }
}

//******************************************************************************

void timer0() interrupt 1       //定时器0中断服务函数
{
irtime++;
}

//******************************************************************************
void int0() interrupt 0            //外部中断0服务函数
{               
if(startflag)
  {   
    if(irtime>52)
    {
      bitnum=0;
     
    }


   
  }
     irdata[bitnum]=irtime;
     irtime=0;
     bitnum++;
if(bitnum==33)
  {
    bitnum=0;
    irreceok=1;
  
  }
  else
  {
    startflag=1;
    irtime=0;
  
  }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
lovezjf234
1楼-- · 2019-07-16 06:21
 精彩回答 2  元偷偷看……
jhcwwsck
2楼-- · 2019-07-16 06:25
嗯嗯,正是因为找了好多天找不出才问的,不过现在问题解决了,谢谢哈!谢谢您的建议啊!
jhcwwsck
3楼-- · 2019-07-16 11:56
lovezjf234 发表于 2012-7-18 18:29
这么长的程序,一般先自己找下问题的所在,然后针对实际的问题提出,如果不是问题很明显,别人是很难花那么 ...

嗯嗯,正是因为找了好多天找不出才问的,不过现在问题解决了,谢谢哈!谢谢您的建议啊!
ulinux
4楼-- · 2019-07-16 15:25
楼主,加油。
zhongyayi
5楼-- · 2019-07-16 18:01
jhcwwsck
6楼-- · 2019-07-16 19:17
 精彩回答 2  元偷偷看……

一周热门 更多>