观看记录
  • 我的观影记录
登录
测试首页怎么利用STC89C52单片机进行红外遥控解码

怎么利用STC89C52单片机进行红外遥控解码

良多伴侣在操纵单片机DIY的时辰,都有接触过红外线遥控,有时辰出格想本身界说遥控的某个按键来节制单片机做特定的输出,好比节制一个LED,或者一个继电器,进而节制外部电路,例如家里的电灯,今天我给大师一个方式,轻松获取通用红外遥控器的键码值,下面我们起头吧

工具/原料

  • 电脑
  • 单片机最小系统版(带红外接收头的)
  • USB转TTL下载器一个
  • MP3遥控器一个
  • keil软件
  • 电脑串口调试助手

方式/步骤

  1. 1

    首先,我们将单片机和USB转TTL下载器用杜邦线准确地毗连起来,并插入电脑的USB口,看到最小系统版的电源指示灯亮起,申明板子通电正常

  2. 2

    接下来打开电脑上的keil,并新建一个工程,定名为“红外遥控解码测试”

  3. 3

    工程成立好今后,为工程添加一个C文件,双击打开C文件,复制下面的代码粘贴上去


    #include <REG52.H>

    #define uchar unsigned char //宏界说



    #define uint unsigned int

    #define uchar unsigned char

    sbit IRIN=P3^2;//红外线接口

    sbit d=P2^0;//解码指示


    uchar IRCOM[7],a;

    bit Flag;


    void delay(uchar x);//红外线用延迟 

    void fasong()

    {

     if(Flag==1)

       {   ES=0;//封闭串口

           Flag=0;//发送一次

           SBUF=IRCOM[2];//把a发送给本家儿机

           

           while(!TI);//当TI为1的时辰,也就是期待数据发送竣事

            TI=0;//软件清零

            ES=1;//打开串口

       }


    }

    void main (){


     SM0=0;//体例1

     SM1=1; 

           REN = 1;//REN=1许可串行接管状况,串口工作模式1              

        TMOD|= 0x20;//按时器工作体例2                    

    PCON|= 0x80;//波特率提高一倍                                                          

    TH1=0xFA; 

        TL1=0xFA;//9600波特率 ,按倍频算        

    TR1  = 1;                                                             

    ES   = 1;   //开串口间断                  

    EA   = 1;  // 开总间断 

       EX0 =1;//外部间断0许可      

           IRIN=1;

    while(1)  

      { fasong();}

    }


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

                   串口间断程序

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

    void ser ()interrupt 4 

    {

     //if(RI == 1)        //RI接管间断标记

    // {

     RI = 0;    //断根RI接管间断标记 

    a =SBUF;  //SUBF接管/发送缓冲器 

     Flag=1;

        

     //}

    }

    void IR_IN(void) interrupt 0//红外间断办事程序   

    {

      unsigned char j,k,N=0;

         EX0 = 0;   

    delay(15);

    if (IRIN==1) 

         { EX0 =1;

       return;

      }                        

      while (!IRIN)           

        {delay(1);}


     for (j=0;j<4;j++)       

     { 

      for (k=0;k<8;k++)       

      {

       while (IRIN)            

         {delay(1);}

        while (!IRIN)         

         {delay(1);}

         while (IRIN)         

          {

        delay(1);

        N++;           

        if (N>=30)

    { EX0=1;

    return;}                 

          }                                       

         IRCOM[j]=IRCOM[j] >> 1;                 

         if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} 

         N=0;

      }

     }  

       if (IRCOM[2]!=~IRCOM[3])

       { EX0=1;

         return; }


       IRCOM[5]=IRCOM[2] & 0x0F;     

       IRCOM[6]=IRCOM[2] >> 4;     


       if(IRCOM[5]>9)

        { IRCOM[5]=IRCOM[5]+0x37;}

       else

      IRCOM[5]=IRCOM[5]+0x30;


       if(IRCOM[6]>9)

        { IRCOM[6]=IRCOM[6]+0x37;}

       else

      IRCOM[6]=IRCOM[6]+0x30;

           d=~d;

           Flag=1;

          EX0 = 1; 

    void delay(unsigned char x)    

    {

     unsigned char i;

      while(x--)

     {

      for (i = 0; i<14; i++) {}

     }

    }

  4. 4

    从头编译程序,程序没有错误之后进行下一步,第二张图中“0错误,0警告”申明程序没问题

  5. 5

    打开程序下载软件,下载程序进单片机,显示下载当作功今后,进行下一步

  6. 6

    打开电脑串口调试助手,按照图中的设置数据设置一下参数,注重端口跟下载的端口是一样的,选好本身的端口,我这里是COM4,你们的电脑不一定是

  7. 7

    下面拿出红外遥控器,然后把串口助手中的端口打开,打开之后,按钮酿成“封闭串口”,而前面的灯会酿成红色,暗示串口打开当作功,进行下一步

  8. 8

    按挨次瞄准单片机板子上的红外接收头别离按遥控器上的ON,OFF,2H,4H,8H。之后你会发现串口调试助手上显示了代码,1,2,3,4,5号按键别离对应的代码为12 ,1E ,04 ,06, 1B (当然你们用的遥控器纷歧样,代码也会分歧),那么就可以进行下一步

  9. 9

    在程序中点窜想要节制的参数,共同单片机外部电路,就可以实现分歧的功能啦

    在红外间断办事程序中插手下面这段节制代码,就可以实现了

        switch(IRCOM[2])

    {

       case 0x12: d=0; break;

        }

    此中case暗示按键的值,这里暗示用“ON”这个按键节制一个灯

  10. 10

    今天就到这里,教程先告一段落了,我们下次再会

“怎么利用STC89C52单片机进行红外遥控解码”关联的文章

  • 电脑网络异常

    进入电脑界面后,需要打开设置图标,进入后点击网格和Internet选项中心进行操作,以下是详细步骤操作:

    1小时前0阅读

    电脑网络异常
  • 美团电动车怎么还车

    美团电动车怎么还车?下面给大家详细介绍一下具体步骤及说明。

    1小时前0阅读

    美团电动车怎么还车
  • 腾讯新闻怎么关闭视频自动播放
  • 快速除痱子

    夏天到了,人们身上容易长痱子,有什么办法可以轻松除掉痱子吗,今天小编找到了几种方法,希望能帮到你。

    1小时前0阅读

  • 华为手机畅享7,怎样设置指纹锁
  • 做深蹲运动有什么好处

    做深蹲运动有什么好处呢?很多人都不知道,下面小编来告诉大家。

    1小时前0阅读

  • 果酱烤棉花糖的制作方法

    棉花糖的香甜美味与果酱的清新可口会撞出怎样的味道呢?今天小编就来介绍一下果酱烤棉花糖的制作方法。

    1小时前0阅读

  • 原神机关烹饪之法之二怎么过关

    原神机关烹饪之法之二怎么过关?韶光抚月第二阶段活动有些玩家已经顺利完成了,这里给大家带来了原神机关烹饪之法之二玩法技巧,一起来看下文中介绍吧。

    2小时前0阅读

    原神机关烹饪之法之二怎么过关
  • 如何让idm不要自动下载视频

    用浏览器打开带有视频的网页,便会自动下载此页面的所有视频。如何禁止IDM自动下载视频呢?请看下面的经验。

    2小时前0阅读

    如何让idm不要自动下载视频
  • 手机用什么浏览器好?

    网络时代的到来,丰富了我们的生活,出现了越来越多的浏览器,你用的哪一款浏览器?你知道哪一款浏览器最好用吗?下面我们就一起来看看吧。

    2小时前0阅读

切换深色外观
留言
视频编辑修改
回到顶部
首页
手机数码
医疗健康
金融管理
社交情感
无名