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

📄 intctrl.lst

📁 philip RTC 芯片的驱动程序 8563
💻 LST
字号:
C51 COMPILER V7.50   INTCTRL                                                               10/18/2005 14:13:28 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE INTCTRL
OBJECT MODULE PLACED IN IntCtrl.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE IntCtrl.c DEBUG OBJECTEXTEND

line level    source

   1          #include "reg52.h"
   2          #include "intrins.h"
   3          #include "globedef.h"
   4          #include "intctrl.h"
   5          #include "keyproc.h"
   6          #include "keydef.h"
   7          #include "Lcd.h"
   8          
   9          extern unsigned char ff_key_flag;
  10          extern unsigned char fb_key_flag;
  11           
  12          void RemoteInt(void) interrupt 0
  13          {
  14   1              WORD IRTimeCount;
  15   1              BYTE temp1,temp2;
  16   1              IRTimeCount = (WORD)Timer0_CntH*256+(WORD)Timer0_CntL;
  17   1              Timer0_CntH =0;
  18   1              Timer0_CntL = 0;
  19   1              Start_Timer0;   //中断后timer0开始定时,定时数值放到IRTimeCount
  20   1              switch(IrState)
  21   1              {
  22   2                      case  IR_READY: 
  23   2                                IRDataTemp=0;
  24   2                                IRDataCount=0;
  25   2                                IrState=IR_HEAD;      //进入NEC码头低电平段
  26   2                                break;
  27   2                      case  IR_HEAD:
  28   2                                if((IRTimeCount<IR_HEAD_MAX) && (IRTimeCount>IR_HEAD_MIN))    //NEC码头9ms+4.5ms=13.5ms
  29   2                                {
  30   3                                        IRDataCount=0;
  31   3                                        IrState=IR_OFFCODE;   //NEC码头完毕
  32   3                                        IRDataTemp=0;
  33   3                                        RepCount = 0;
  34   3                                        Current_Remote_In = 0;
  35   3                                }
  36   2                                else if((IRTimeCount > IR_REP_MIN) && (IRTimeCount < IR_REP_MAX))     //重复码9ms+2.5ms=11.5ms
  37   2                                {
  38   3      
  39   3      #ifdef  IRRepEnable
  40   3                                        if(1 == Current_Remote_In)
  41   3                                        {
  42   4                                              if((Remote_value == 0x0b) || (Remote_value == 0x1b))
  43   4                                                    FF_FB_Active = 1;
  44   4                                                if( (Remote_value  == 0x0a) ||        //音量+
  45   4                                                  (Remote_value == 0x0e) ||  //音量-
  46   4                               (Remote_value == 0x0b) ||      //NEXT_KEY
  47   4                                                   (Remote_value == 0x1b)||//PREVIOUS_KEY
  48   4                                                       (Remote_value == 0x0f))   //PLAY/PAUSE_KEY                                      
  49   4                                                {
  50   5                                                        RepCount++;
  51   5                                                        if(RepCount > 3)
  52   5                                                        {
  53   6                                                                if( (Remote_value  == 0x0a) || 
  54   6                                                                              (Remote_value == 0x0e))  //如果按住的是音量键                                           
  55   6                                                                      {
C51 COMPILER V7.50   INTCTRL                                                               10/18/2005 14:13:28 PAGE 2   

  56   7                                                                              IR_KeyAct = 1;
  57   7                                                                              Remote_Key = Remote_value;
  58   7                                                                      }
  59   6                                                               /* if((Remote_value  == 0x0b)||(Remote_value == 0x1b))
  60   6                                                                {                                                               
  61   6                                                                        Remote_Key = Remote_value + 1;//FF_KEY OR FB_KEY
  62   6                                                                        IR_KeyAct = 1;//遥控有效标志位
  63   6                                                                }*/
  64   6                                                              if(Remote_value == 0x0b)
  65   6                                                              ff_key_flag = 1;
  66   6                                                              if(Remote_value == 0x1b)
  67   6                                                              fb_key_flag = 1;
  68   6                                                        }
  69   5                                                        
  70   5                                                        if(RepCount > 10)     
  71   5                                                        {
  72   6                                                                if(Remote_value  == 0x0f)     //如果常按住play键则关ipod
  73   6                                                                {
  74   7                                                                        Remote_Key = 0x13;//IPOD_OFF_KEY
  75   7                                                                        Current_Remote_In = 0;                                                                                                
  76   7                                                                }                                                               
  77   6                                                                IR_KeyAct = 1;
  78   6                                                        }
  79   5                                                }
  80   4                                        }
  81   3      #endif
  82   3                                      IrState = IR_READY;
  83   3                              } 
  84   2                              else
  85   2                              {
  86   3                                      IR_KeyAct = 0;
  87   3                                      IrState = IR_READY;
  88   3                                      Current_Remote_In = 0;
  89   3                              }
  90   2                              break;
  91   2                      case  IR_OFFCODE:
  92   2                              IRDataTemp<<=1;
  93   2                              if(((IRTimeCount < CODE_1_MAX) && (IRTimeCount > CODE_1_MIN))
  94   2                                      || ((IRTimeCount < CODE_0_MAX) && (IRTimeCount > CODE_0_MIN)))
  95   2                              {
  96   3                                      IRDataCount++;
  97   3                                      if((IRTimeCount < CODE_1_MAX) && (IRTimeCount > CODE_1_MIN))
  98   3                                              IRDataTemp |= 0x1;
  99   3                                      if(IRDataCount >= 16)
 100   3                                      {
 101   4                                              IRDataCount=0;
 102   4                                              
 103   4                                              if((IRDataTemp==IR_SYSTEM_CODE))
 104   4                                              {
 105   5                                                      IrState=IR_ADDRESS;
 106   5                                                      IRDataTemp=0;
 107   5                                              }
 108   4                                              else
 109   4                                              {
 110   5                                                      IR_KeyAct=0;
 111   5                                                      Current_Remote_In = 0;
 112   5                                                      IrState=IR_READY;
 113   5                                              }
 114   4                                      }
 115   3                              }
 116   2                              else
 117   2                              {
C51 COMPILER V7.50   INTCTRL                                                               10/18/2005 14:13:28 PAGE 3   

 118   3                                      IR_KeyAct = 0;
 119   3                                      Current_Remote_In = 0;
 120   3                                      IrState = IR_READY;
 121   3                              }
 122   2                              break;
 123   2                      case  IR_ADDRESS:
 124   2                              IRDataTemp>>=1;
 125   2                              if(((IRTimeCount < CODE_1_MAX)&&(IRTimeCount > CODE_1_MIN))
 126   2                                      || ((IRTimeCount < CODE_0_MAX) && (IRTimeCount > CODE_0_MIN)))
 127   2                              {
 128   3                                      IRDataCount++;
 129   3                                      if((IRTimeCount < CODE_1_MAX) && (IRTimeCount > CODE_1_MIN))
 130   3                                              IRDataTemp |= 0x8000;
 131   3                                              
 132   3                                  if(IRDataCount >= 16)
 133   3                                      {
 134   4                                              IRDataCount=0;
 135   4                                              temp1 = (BYTE)(IRDataTemp%256);
 136   4                                              temp2 = (BYTE)(IRDataTemp/256);
 137   4                                              temp2 = ~temp2;
 138   4                                              
 139   4                                              if(temp1 == temp2)
 140   4                                              {
 141   5                                                      Remote_value = temp1;                                   
 142   5                                                      
 143   5                                                      Remote_Key = Remote_value;
 144   5                                                      Current_Remote_In = 1;
 145   5                                                      if((Remote_value == 0x0b) || (Remote_value == 0x1b))
 146   5                                                                      FF_FB_Active = 1;
 147   5                                                              else
 148   5                                                                      IR_KeyAct = 1;                          
 149   5                                              }
 150   4                                              IrState = IR_READY;
 151   4                                              IRDataCount = 0;
 152   4                                      }
 153   3                          }
 154   2                              else
 155   2                              {
 156   3                                              IR_KeyAct = 0;
 157   3                                              Current_Remote_In = 0;
 158   3                                              IrState = IR_READY;
 159   3                              }
 160   2                              break;
 161   2              }
 162   1      }
 163          
 164          void TIMER2Int(void) interrupt INT_Timer2
 165          {       
 166   1              TF2 = 0;
 167   1              if(FF_FB_Active >= 1)
 168   1              {
 169   2                      FF_FB_Active++;
 170   2                      if(FF_FB_Active > 40)
 171   2                      {
 172   3                              if(RepCount < 4)
 173   3                              {
 174   4                                      Remote_Key = Remote_value;                              
 175   4                              }
 176   3                              else
 177   3                              {
 178   4                                      Remote_value = 0x7;
 179   4                                      Remote_Key = Remote_value;
C51 COMPILER V7.50   INTCTRL                                                               10/18/2005 14:13:28 PAGE 4   

 180   4                              }
 181   3                              IR_KeyAct    = 1;
 182   3                              FF_FB_Active = 0;
 183   3                      }
 184   2                              
 185   2              }
 186   1              
 187   1              display_counter++;
 188   1              flash_counter++;
 189   1      
 190   1              if((Key_LongTimer >=1) && (Key_LongTimer < 130))
 191   1              {
 192   2                      Key_LongTimer++;
 193   2              }
 194   1              
 195   1              if((Key_ShortTimer >=1) && (Key_ShortTimer < 25))
 196   1              {
 197   2                      Key_ShortTimer++;
 198   2              }
 199   1              
 200   1              if(ReadKey_Timer < 5)
 201   1                      ReadKey_Timer++;   
 202   1      
 203   1      
 204   1      }
 205          
 206          void NotUsing(void) interrupt INT_EXT1 //外部中断1
 207          {
 208   1              _nop_();
 209   1              _nop_();
 210   1      }
 211          
 212          void TIMER0Int(void) interrupt INT_Timer0
 213          {
 214   1              Stop_Timer0;
 215   1              IrState = IR_READY;
 216   1              Timer0_CntH = 0;
 217   1              Timer0_CntL = 0;
 218   1              ET0 = 1;
 219   1      }
 220          
 221          void TIMER1Int(void) interrupt INT_Timer1
 222          {
 223   1      }
 224          
 225          void SerialInt(void) interrupt INT_Serial
 226          {
 227   1                      if(RI)
 228   1                      RI = 0;
 229   1      }
 230          


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

C51 COMPILER V7.50   INTCTRL                                                               10/18/2005 14:13:28 PAGE 5   


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

⌨️ 快捷键说明

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