标题: 求助51单片机红外遥控模块 [打印本页]

作者: zjjmw    时间: 2018-1-21 10:00
标题: 求助51单片机红外遥控模块
买的单片机自带的有红外遥控视频,但是听的我一头雾水。有没有已经做过红外遥控的大佬教导我一下。

作者: 维超    时间: 2018-1-21 11:52
本帖最后由 维超 于 2018-1-21 12:02 编辑

给个自适应的红外解码实例你参考吧(非本人原创,资料来自网络,感谢分享的大侠)
#include "INC\STC89C52RC.H"
#include "INC\MY_SET.H"
#include "INC\IR_NEC.H"                   //调用NEC解码头文件

sfr   SE   = 0x80;             //数码管段选 P0:0x80   P1:0x90
sbit  WX1  = P2^0;                           //数码管位显
sbit  WX2  = P2^1;
sbit  WX3  = P2^2;
sbit  WX4  = P2^3;
sbit  WX5  = P2^4;
sbit  WX6  = P2^5;
sbit  WX7  = P2^6;
sbit  WX8  = P2^7;

uint8c tab[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0X88,0X83,0XC6,0XA1,0X86,0X8E,0xFF};
uint8  Xn,X1,X2,X3,X4,X5,X6;

void KZ0();      //短按处理
void KZ1();      //长按处理


/***************** 主函数 ********************/
void main(void)
{
        IR_Init();                           //红外线解码初始化
                                                   
        while(1)
        {
          //遥控检测
          if((IR_BT==2)||(IR_BT==3))                          
      {
                if(IR_BT==2)KZ0();      //短按处理                  
                 else        KZ1();      //长按处理        
                IR_BT =0;                        //清有效标志

                X1 = NEC[0]/16;                   //更新显示
                X2 = NEC[0]%16;
                X3 = NEC[1]/16;
                X4 = NEC[1]%16;
                X5 = NEC[2]/16;
                X6 = NEC[2]%16;
          }
         
        }

}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函数:遥控短按处理
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void KZ0()
{
   switch(NEC[2])            
   {
      case 0x12: P10 = !P10; break;
          case 0x05: break;
          case 0x1E: break;
          case 0x55: break;

          case 0x01: break;
          case 0x1B: break;
          case 0x03: break;
          case 0x6B: break;

          case 0x07: break;
          case 0x08: break;
          case 0x09: break;
          case 0x68: break;

          case 0x22: break;
          case 0xE6: break;
          case 0x33: break;
          case 0xE2: break;
          default:break;
   }
}
/*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
函数:遥控长按处理
┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
void KZ1()
{
   switch(NEC[2])            
   {
      case 0x12: P14 = !P14; break;
          case 0x05: break;
          case 0x1E: break;
          case 0x55: break;

          case 0x01: break;
          case 0x1B: break;
          case 0x03: break;
          case 0x6B: break;

          case 0x07: break;
          case 0x08: break;
          case 0x09: break;
          case 0x68: break;

          case 0x22: break;
          case 0xE6: break;
          case 0x33: break;
          case 0xE2: break;
          default:break;
   }
}
/*********************数码管扫描*************************/
void XS(void)
{
  if(++Xn > 7)Xn=0;
  switch(Xn)            
  {
         case 0: WX8=1;        NOP;                                        //屏蔽上个位显
                 SE=tab[X1];                                        //送段码
                         WX1=0;                                                        //开位显
                         break;
     case 1: WX1=1; NOP; SE=tab[X2]; WX2=0; break;
     case 2: WX2=1; NOP; SE=tab[X3]; WX3=0; break;        
         case 3: WX3=1; NOP; SE=tab[X4]; WX4=0; break;
         case 4: WX4=1; NOP; SE=tab[16]; WX5=0; break;
         case 5: WX5=1; NOP; SE=tab[16]; WX6=0; break;
         case 6: WX6=1; NOP; SE=tab[X5]; WX7=0; break;
         case 7: WX7=1; NOP; SE=tab[X6]; WX8=0; break;                 
         default:break;                        
  }
}

/********************** 定时器0中断函数************************/
void time0(void) interrupt 1
{
   IR_NEC();
   XS();         
}   红外线NEC解码.rar (53.47 KB, 下载次数: 13)


作者: wc86110    时间: 2018-1-21 12:42
看着视频还得跟着有样学样才行,好不好呢要看教和学两者之间水平了。
社会上的维修店面一般都有招学徒工的,虽然不能系统的学习但干这活的理解能力也不会太差
作者: 天下1213    时间: 2018-1-21 14:31
这个得自看着资料慢慢学习,多看几遍,要自己动手体会,这样是效果最好的
作者: zjjmw    时间: 2018-1-22 11:25
wc86110 发表于 2018-1-21 12:42
看着视频还得跟着有样学样才行,好不好呢要看教和学两者之间水平了。
社会上的维修店面一般都有招学徒工的 ...

emmm这个还在上学,当学徒可能有点困难
作者: zjjmw    时间: 2018-1-22 11:26
天下1213 发表于 2018-1-21 14:31
这个得自看着资料慢慢学习,多看几遍,要自己动手体会,这样是效果最好的

就是倒在了动手的道路上
作者: zjjmw    时间: 2018-1-22 11:26
维超 发表于 2018-1-21 11:52
给个自适应的红外解码实例你参考吧(非本人原创,资料来自网络,感谢分享的大侠)
#include "INC\STC89C52 ...






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1