找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2111|回复: 6
打印 上一主题 下一主题
收起左侧

求助51单片机红外遥控模块

[复制链接]
跳转到指定楼层
楼主
ID:265318 发表于 2018-1-21 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
买的单片机自带的有红外遥控视频,但是听的我一头雾水。有没有已经做过红外遥控的大佬教导我一下。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:46999 发表于 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)

回复

使用道具 举报

板凳
ID:96682 发表于 2018-1-21 12:42 | 只看该作者
看着视频还得跟着有样学样才行,好不好呢要看教和学两者之间水平了。
社会上的维修店面一般都有招学徒工的,虽然不能系统的学习但干这活的理解能力也不会太差
回复

使用道具 举报

地板
ID:247467 发表于 2018-1-21 14:31 | 只看该作者
这个得自看着资料慢慢学习,多看几遍,要自己动手体会,这样是效果最好的
回复

使用道具 举报

5#
ID:265318 发表于 2018-1-22 11:25 | 只看该作者
wc86110 发表于 2018-1-21 12:42
看着视频还得跟着有样学样才行,好不好呢要看教和学两者之间水平了。
社会上的维修店面一般都有招学徒工的 ...

emmm这个还在上学,当学徒可能有点困难
回复

使用道具 举报

6#
ID:265318 发表于 2018-1-22 11:26 | 只看该作者
天下1213 发表于 2018-1-21 14:31
这个得自看着资料慢慢学习,多看几遍,要自己动手体会,这样是效果最好的

就是倒在了动手的道路上
回复

使用道具 举报

7#
ID:265318 发表于 2018-1-22 11:26 | 只看该作者
维超 发表于 2018-1-21 11:52
给个自适应的红外解码实例你参考吧(非本人原创,资料来自网络,感谢分享的大侠)
#include "INC\STC89C52 ...

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表