⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rm_all.lst

📁 用51单片机对Philips的RC5遥控编码进行解码,得到遥控器的键值
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.07   RM_ALL                                                                04/07/2004 10:37:37 PAGE 1   


C51 COMPILER V7.07, COMPILATION OF MODULE RM_ALL
OBJECT MODULE PLACED IN RM_ALL.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE RM_ALL.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          /******************************************************************************
   2          #ifdef DOC
   3          File Name       :remocon.c
   4          Description     :Remocon code recieve
   5          Remark          :
   6          Date            :04/03/01
   7          Copyright       :Matsushita Electric Industrial Co.,ltd.
   8          #endif
   9          ******************************************************************************/
  10          /************************************
  11                  include files                                   
  12          *************************************/
  13          #include "reg52.h"
  14          #include "struct.h"
  15          #include "macrodef.h" 
  16          #include "remocon.h"   
  17          
  18          /***********************************
  19                  Macro define                                    
  20          ***********************************/
  21          #define REMO_SYSCODE 0x00                       
  22          /***********************************
  23                  variable declaration                    
  24          ***********************************/ 
  25          
  26          
  27          unsigned char rem_code;   /* remote code receive */
  28          REMO_FRAME      remodata;
  29          
  30          /*Flags         remo_flags;
  31          #define Frem_ok         remo_flags.b_flag.f0
  32          #define Fremin          remo_flags.b_flag.f1
  33          #define Fre_lead        remo_flags.b_flag.f2
  34          */
  35          bit Frem_ok ;
  36          bit Fremin ;
  37          bit Fre_lead;
  38          
  39          //unsigned long int rem_data_tmp; /*                    */
  40          unsigned char re_modc;                          /*              */
  41          unsigned char re_lead_width;            /*                      */
  42          unsigned char re_with;                          /*                      */
  43          unsigned char re_blnk;                          /*                      */
  44          unsigned char re_loc;                           /*                      */
  45          unsigned char re_data;                          /*                      */
  46          unsigned char re_err;                           /*                      */ 
  47          /*********************************************
  48                  prototype declarations
  49          *********************************************/
  50          void vRMC_remocon(void);
  51          void rm_blk(void);
  52          
  53          void irq0(void);
  54          void getrem(void);
  55          extern unsigned char ucIIC_EEP_read(unsigned int addr);
C51 COMPILER V7.07   RM_ALL                                                                04/07/2004 10:37:37 PAGE 2   

  56          extern void vIIC_EEP_write(unsigned int addr, unsigned char regdata);
  57          
  58          
  59          //#define USE_PANAX_REMOCON
  60          #ifdef  USE_PANAX_REMOCON
              /*------------------------------------------------------------------*/
              /*      Remocon KEY Table                                                                                               */
              /*------------------------------------------------------------------*/
              const unsigned char re_key[ ][3] = {
              /*   Code  Code_,       Name                                    */
                      {0x30, 0xCF, KEY_POWER          },                              /* 1    POWER           */
                      {0x10, 0xEF, KEY_DISPLAY        },                      /* 2    DISPLAY         */
                      {0x00, 0xFF, KEY_OPENCLS        },                      /* 3    OPEN/CLOSE      */
                      {0xB0, 0x4F, KEY_TVSYSTEM       },                      /* 4    PAL/NTSC        */      
                      {0x90, 0x6F, KEY_KEY1           },                      /* 5    1                       */
                      {0xA0, 0x5F, KEY_KEY2           },                      /* 6    2                       */
                      {0x80, 0x7F, KEY_KEY3           },                      /* 7    3                       */
                      {0xD2, 0x2D, KEY_KEY4Y          },                      /* 8    4                       */
                      {0xE2, 0x1D, KEY_KEY5           },                      /* 9    5                       */
                      {0xC2, 0x3D, KEY_KEY6           },                      /* 10   6                       */
                      {0x52, 0xAD, KEY_KEY7           },                      /* 11   7                       */
                      {0x62, 0x9D, KEY_KEY8           },                      /* 12   8                       */
                      {0x42, 0xBD, KEY_KEY9           },                      /* 13   9                       */
                      {0x92, 0x6D, KEY_KEY11          },                      /* 14   10+                     */      
                      {0xA2, 0x5D, KEY_KEY00          },                      /* 15   0                       */
                      {0xF2, 0x0D, KEY_ANGLE          },                      /* 16   ANGLE           */
                      {0x72, 0x8D, KEY_SUBTITLE       },                      /* 17   SUBTITLE        */      
                      {0xB2, 0x4D, KEY_PLAYMODE       },                      /* 18   LANGUAGE        */
                      {0x82, 0x7D, KEY_CLEAR          },                      /* 19   CLEAR           */
                      {0x32, 0xCD, KEY_MUTE           },                      /* 20   MUTE            */
                      {0x12, 0xED, KEY_3D             },                      /* 21   3D                      */
                      {0x22, 0xD4, KEY_SEARCH         },                      /* 22   SEARCH          */      
                      {0x02, 0xFD, KEY_ZOOM           },                      /* 23   ZOOM            */
                      {0xF0, 0x0F, KEY_MENU           },                      /* 24   MENU            */
                      {0xC0, 0x3F, KEY_TOPTITIL       },                      /* 25   TITLE           */
                      {0xE0, 0x1F, KEY_UP             },                      /* 26   UP                      */
                      {0xD0, 0x2F, KEY_DOWN           },                      /* 27   DOWN            */
                      {0x70, 0x8F, KEY_LEFT           },                      /* 28   LEFT            */
                      {0x50, 0xAF, KEY_RIGHT          },                      /* 29   RIGHT           */
                      {0x60, 0x9F, KEY_ENTER          },                      /* 30   OK                      */
                      {0xF8, 0x07, KEY_SETUP          },                      /* 31   SETUP           */
                      {0xC8, 0x37, KEY_PCB            },                      /* 32   PBC                     */
                      {0x3A, 0xC5, KEY_SPEAK          },                      /* 33   TSM                     */
                      {0x1A, 0xE5, KEY_INTERLACE      },                      /* 34   INTERLACE       */
                      {0x2A, 0xD5, KEY_VOLUMEMNS      },                      /* 35   VOLUME -        */
                      {0x0A, 0xF5, KEY_VOLUMEPLS      },                      /* 36   VOLUME +        */
                      {0xBA, 0x45, KEY_DIGEST         },                      /* 37   DIGEST          */
                      {0x9A, 0x65, KEY_KALAOKE        },                      /* 38   KALAOKE         */
                      {0xAA, 0x55, KEY_AUDIO          },                      /* 39   AUDIO           */
                      {0x8A, 0x75, KEY_RETURN         },                      /* 40   RETURN          */
                      {0x7A, 0x85, KEY_ABREP          },                      /* 41   A-B                     */
                      {0x5A, 0xA5, KEY_REPEAT         },                      /* 42   REPEAT          */
                      {0x6A, 0x95, KEY_MARK           },                      /* 43   MARK            */
                      {0x4A, 0xB5, KEY_IMAGE          },                      /* 44   VIDEO ADJUST*/
                      {0xFA, 0x05, KEY_BWDSKIP        },                      /* 45   PREVIOUS        */
                      {0xFA, 0x35, KEY_FWDSKIP        },                      /* 46   NEXT            */
                      {0xEA, 0x15, KEY_BWDSEARCH      },                      /* 47   B.WD            */
                      {0xCA, 0x35, KEY_FWDSEARCH      },                      /* 48   F.WD            */
                      {0x38, 0xC7, KEY_STOP           },                      /* 49   STOP            */
                      {0x18, 0xE7, NO_KEY             },                      /* 50   X                       */
                      {0x28, 0xD7, KEY_PAUSE          },                      /* 51   PAUSE/STEP      */
                      {0x08, 0xF7, KEY_PLAY           }                       /* 52   PLAY            */
C51 COMPILER V7.07   RM_ALL                                                                04/07/2004 10:37:37 PAGE 3   

              };
              
              #endif
 121          
 122          void dummy(void)
 123                  {}
 124                  
 125          void vRMC_remocon(void)
 126          {
 127   1              /*REM_FRAME  now_remodata=remodata;*/
 128   1              unsigned char tmp1,tmp2,tmp3,tmp4;
 129   1              if (!Frem_ok) 
 130   1                      {
 131   2                              goto ERR;  /* receive not finish ,then return*/
 132   2                      }
 133   1              /*receive 1 frame ok , process and reset the flag*/ 
 134   1              Frem_ok = 0;    
 135   1                      tmp1=remodata.rem_format.verify.low;
 136   1                      tmp2=remodata.rem_format.verify.high;
 137   1                      tmp3=remodata.rem_format.data_pos;
 138   1                      tmp4=~remodata.rem_format.data_neg;
 139   1              if((tmp3==tmp4)&&(tmp1==tmp2))          /*      check the recieved data is correct or not */
 140   1                              { 
 141   2                                      
 142   2                                          {rem_code=remodata.rem_format.data_pos;}  /* get the remocon code in the frame */
 143   2                                       
 144   2                              }
 145   1              
 146   1      ERR:
 147   1              /*rm_err();*/
 148   1              dummy();
 149   1      }
 150          
 151          
 152          
 153          
 154          
 155          
 156          
 157          
 158          void getrem(void)  /*do in every timer0 irq  */
 159          {
 160   1              switch(re_modc) 
 161   1              {case 0:        
 162   2                              if (Fremin)  /*  if irq0 occured */
 163   2                                      {                   
 164   3                                              Fremin = 0;                 /*  Clear IRQO Flag */
 165   3                                              if(Fre_lead==0)         /*re_lead_width==0 means is the lead start*/
 166   3                                                      {       Fre_lead=1 ;     break;}        
 167   3                                              if(Fre_lead==1)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -