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

📄 ir.lst

📁 mcu for gm5621带遥控,键盘输入的单片机代码.供学习参考使用.谢谢.
💻 LST
字号:
C51 COMPILER V7.50   IR                                                                    07/06/2006 10:40:56 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE IR
OBJECT MODULE PLACED IN .\obj\Ir.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE Ir.c BROWSE DEBUG OBJECTEXTEND PRINT(.\lst\Ir.lst) OBJECT(.\obj\Ir.obj)

line level    source

   1          
   2          #include "board.h"
   3          
   4          #include "keypaddef.h"
   5          #if DebugIRCode
              #include "debug.h"
              #endif
   8          #include "ir.h"
   9          #include "global.h"
  10          #include "Power.h"
  11          
  12          #if DebugIRCode
              BYTE xdata IRDebugCode0=0;
              BYTE xdata IRDebugCode1=0;
              BYTE xdata IRDebugData=0;
              #endif
  17          BYTE IR_Status;
  18          WORD IR_Width;
  19          BYTE IR_Bit_Count;
  20          BYTE IR_Data;
  21          BYTE IR_Data_Backup;
  22          BYTE IR_ErrTimeCount;
  23          
  24          
  25          
  26          void IR_Init(void)
  27          {   
  28   1              BYTE tmp;
  29   1      
  30   1              IT0 = 1; //set edge  trigger -(INT1)
  31   1              EX0 = 1;
  32   1              tmp = TMOD&0xf0;//timer0
  33   1              TMOD = tmp|0x01;
  34   1              Set_IR_ResetFlag();
  35   1              Clr_IR_Data_OKFlag();
  36   1              IR_Data = 0;
  37   1              IR_Bit_Count = 0;
  38   1              IR_ErrTimeCount = 0;
  39   1      }
  40          
  41          
  42          
  43          void ir_interrupt(void)   interrupt 0
  44          {
  45   1              EA = 0;
  46   1              EX0 = 0;
  47   1      //------------------------
  48   1              TR0 = 0;
  49   1              IR_Width = TH0;IR_Width <<=8;IR_Width |= TL0;
  50   1      //    TMOD = 0x11;                  //change timer1 mode
  51   1              TH0 = IR_Parameter_Table[8]>>8;
  52   1              TL0 = IR_Parameter_Table[8]&0xFF; // timer 1 counter
  53   1              TF0 = 0;
  54   1              ET0 = 1;
  55   1              TR0 = 1;
C51 COMPILER V7.50   IR                                                                    07/06/2006 10:40:56 PAGE 2   

  56   1              IR_Width -=  IR_Parameter_Table[8];
  57   1      //-----------------------------------------------------------------------
  58   1      
  59   1      
  60   1      
  61   1              if(IR_ResetFlag)
  62   1               {
  63   2                      
  64   2                      Clr_IR_ResetFlag();
  65   2                      Clr_IR_Data_OKFlag();
  66   2                      IR_Data = 0;
  67   2                      IR_Bit_Count = 0;
  68   2      //      IR_ErrTimeCount = 110;
  69   2               // IR_ErrTimeCount = 108+IR_ErrTimeCountTorlance;              //jt update 2004-04-27
  70   2                      IR_ErrTimeCount = 9;
  71   2              }
  72   1              else
  73   1            {
  74   2                      if(IR_Bit_Count==0)//decode lead
  75   2                      {
  76   3                              if(IR_Width>IR_Parameter_Table[4] && IR_Width<IR_Parameter_Table[5])
  77   3                                      IR_Bit_Count++;
  78   3                      }
  79   2                      else if(IR_Bit_Count<17)//decode customer code
  80   2                      {
  81   3                      //--------------------------------------------------------------
  82   3                              if(IR_Width>IR_Parameter_Table[0] && IR_Width<IR_Parameter_Table[1])
  83   3                              {
  84   4                                      IR_Data >>= 1;IR_Bit_Count++;
  85   4                              }
  86   3                              if(IR_Width>IR_Parameter_Table[2] && IR_Width<IR_Parameter_Table[3])
  87   3                              {
  88   4                                      IR_Data >>= 1;IR_Data |= 0x80;IR_Bit_Count++;
  89   4                              }
  90   3              //--------------------------------------------------------------
  91   3                              if(IR_Bit_Count==9)
  92   3                              {
  93   4                                      #if DebugIRCode
                                              IRDebugCode0 = IR_Data;
                                              Set_IR_DebugCustomerCode0_OKFlag();
                                              #endif
  97   4      
  98   4                                      if(IR_Data!=IR_Customer_Code[0])
  99   4                                              IR_Bit_Count = 0; 
 100   4                                      
 101   4                              }
 102   3                              if(IR_Bit_Count==17)
 103   3                              {
 104   4                                      #if DebugIRCode
                                              IRDebugCode1 = IR_Data;
                                              Set_IR_DebugCustomerCode1_OKFlag();
                                              #endif
 108   4      
 109   4                                      if(IR_Data!=IR_Customer_Code[1])
 110   4                                              IR_Bit_Count = 0;
 111   4                                      
 112   4                              }
 113   3                      }
 114   2                      else if(IR_Bit_Count<33)//decode data code
 115   2                      {
 116   3                              //test++;       
 117   3              //--------------------------------------------------------------
C51 COMPILER V7.50   IR                                                                    07/06/2006 10:40:56 PAGE 3   

 118   3                              if(IR_Width>IR_Parameter_Table[0] && IR_Width<IR_Parameter_Table[1])
 119   3                              {
 120   4                                      IR_Data >>= 1;IR_Bit_Count++;
 121   4                              }
 122   3                              if(IR_Width>IR_Parameter_Table[2] && IR_Width<IR_Parameter_Table[3])
 123   3                              {
 124   4                                      IR_Data >>= 1;IR_Data |= 0x80;IR_Bit_Count++;
 125   4                              }
 126   3              //--------------------------------------------------------------
 127   3                      if(IR_Bit_Count==25)
 128   3                              {
 129   4                                      
 130   4                                      IR_Data_Backup = IR_Data;
 131   4                              }
 132   3                              if(IR_Bit_Count==33)
 133   3                              {
 134   4                                      IR_Data = IR_Data^IR_Data_Backup;
 135   4                                      if(IR_Data==0xff)
 136   4                                      {
 137   5                                              #if DebugIRCode
                                                      IRDebugData = IR_Data_Backup;
                                                      Set_IR_DebugData_OKFlag();
                                                      #endif
 141   5                                                              
 142   5                                              Set_IR_Data_OKFlag();
 143   5                                      }
 144   4                              else
 145   4                                      IR_Bit_Count = 0;  
 146   4                              }
 147   3                      }
 148   2                      else if(IR_Width>IR_Parameter_Table[6] && IR_Width<IR_Parameter_Table[7])//decode stop and repeat 
             -code
 149   2                      {
 150   3      //                      IR_ErrTimeCount = 110;
 151   3                              //IR_ErrTimeCount = 108+IR_ErrTimeCountTorlance;                //jt update 2004-04-27
 152   3                              IR_ErrTimeCount = 9;
 153   3                              
 154   3                              #if DebugIRCode
                                      IRDebugData = IR_Data_Backup;
                                      Set_IR_DebugData_OKFlag();
                                      #endif
 158   3      
 159   3                              if(IR_Bit_Count==33)
 160   3                                      Set_IR_Data_OKFlag();
 161   3                      }
 162   2              }
 163   1              EX0 = 1;
 164   1              EA = 1;
 165   1      }
 166          
 167          
 168          void timer0(void) interrupt 1
 169          { 
 170   1              // Int Vector at 001BH, Reg Bank 1
 171   1              EA = 0;
 172   1              ET0 = 0; // inhibit timer0 interrupt
 173   1              TR0 = 0; // stop timer0
 174   1      
 175   1              
 176   1              if(!IR_ErrTimeCount)
 177   1              {
 178   2                      Set_IR_ResetFlag();
C51 COMPILER V7.50   IR                                                                    07/06/2006 10:40:56 PAGE 4   

 179   2              }
 180   1              EA = 1;
 181   1        
 182   1      }
 183          /*
 184          void timer1(void) interrupt 3 
 185          { 
 186                  // Int Vector at 001BH, Reg Bank 1
 187                  EA = 0;
 188                  ET1 = 0; // inhibit timer1 interrupt
 189                  TR1 = 0; // stop timer1
 190          
 191                  
 192                  if(!IR_ErrTimeCount)
 193                  {
 194                          Set_IR_ResetFlag();
 195                  }
 196                  EA = 1;
 197            
 198          }
 199          
 200          */
 201          
 202          BYTE Get_IR_Key(void)
 203          {
 204   1              BYTE tmp;
 205   1              tmp = KEY_NOTHING;
 206   1      
 207   1              if(IR_Data_OKFlag)
 208   1              {
 209   2                      
 210   2                      tmp = IR_Key_Table[IR_Data_Backup];
 211   2                      Clr_IR_Data_OKFlag();
 212   2                      //test = IR_Data_Backup;
 213   2              }
 214   1              //----------------------------------
 215   1      
 216   1              return tmp;
 217   1      }
 218          
 219          
 220          /*
 221          void PC_Interrupt(void) interrupt 6
 222          {
 223                       GreenLedOn();
 224                          //ForceDelay1ms(2);
 225                          //GreenLedOn();
 226                                   
 227          }*/
 228          
 229          /*
 230          void Reset_Ir_Key(void)
 231          { 
 232                  Clr_IR_Data_OKFlag();
 233          }
 234          */
 235          #if 0//DebugIRCode
              void DebugIRHandler(void)
              {
                      if(IR_DebugCustomerCode0_OKFlag)
                  {
                      Clr_IR_DebugCustomerCode0_OKFlag();
C51 COMPILER V7.50   IR                                                                    07/06/2006 10:40:56 PAGE 5   

                  printData("IR CustomerCode0 %x",IRDebugCode0);              
                  }
                      if(IR_DebugCustomerCode1_OKFlag)
                  {
                      Clr_IR_DebugCustomerCode1_OKFlag();
                  printData("IR CustomerCode1 %x",IRDebugCode1);
                  }
                if(IR_DebugData_OKFlag)
                  {
                  Clr_IR_DebugData_OKFlag();
                  printData("IR Data %x",IRDebugData);
                  }
              }
              #endif


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    508    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      7    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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