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

📄 ir.lst

📁 8051单片机的LCDTV用户界面程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 187   2                      LeadCode=0;
 188   2                      }
 189   1              else
 190   1                      {  
 191   2                      if(MxicIr.Bits.b1GetIrFlame==1)
 192   2                      MxicIr.Bits.b1GetIrFlame = 0;
 193   2                      MxicIr.Bits.b1GetIrRepeatCode=0;
 194   2                      MxicIr.Bits.b1GetIrCommand=0;
 195   2                      TR1=0;
 196   2                      }
 197   1      
 198   1              FirstEdge=0;  //start wait next cycle
 199   1      //      TR1=0;     //stop counting
 200   1              TH1=0;TL1=0;
 201   1      }
 202          //------------------------------------
 203          // check timer_1 counter in EX_1 interrupt 
 204          //------------------------------------
 205          void Ex1_int( void ) interrupt 2 
 206          {   
 207   1              union Counter
 208   1                      {
 209   1                      struct Int1Cnt
 210   1                              {
 211   1                              BYTE    HiCnt;
 212   1                              BYTE    LoCnt;
 213   1                              }Cnt;
 214   1                      
 215   1                              UINT    Timer;
 216   1                      }T1;
 217   1      
 218   1              if ( FirstEdge == 0 )
 219   1                      {
 220   2                      FirstEdge=1;
 221   2                      TH1=0;TL1=0;
 222   2                      TR1=1;   //start counting 
 223   2                      }
 224   1              else
 225   1                      {
 226   2                      T1.Cnt.HiCnt=TH1;
 227   2                      T1.Cnt.LoCnt=TL1;
 228   2                      if ( LeadCode == 0) 
 229   2                              {       
 230   3                              if ( (MxicIr.Bits.b1GetIrFlame == 0)&&(T1.Timer < _LEAD_UPPER) && (T1.Timer > _LEAD_LOWER))
 231   3                              //   ((MxicIr.Bits.b1GetIrFlame == 1)&&(T1.Timer > _REPEAT_LOWER)&&( T1.Timer < _REPEAT_UPPER)) )
 232   3                                      {
 233   4                                      LeadCode=1;
 234   4                                      IrCount=0;      
 235   4                                      }
 236   3                              }
 237   2                      else  //LeadCode ==1 
 238   2                              {
 239   3                              if(( T1.Timer > _IR_0_LOWER ) && ( T1.Timer < _IR_0_UPPER ))
 240   3                                      {  
 241   4                                      Ir.Code=(Ir.Code << 1)|0x01;
C51 COMPILER V7.01  IR                                                                     12/01/2005 09:38:54 PAGE 5   

 242   4                                      IrCount++;
 243   4                                      }
 244   3                              else 
 245   3                                      if(( T1.Timer > _IR_1_LOWER ) && ( T1.Timer < _IR_1_UPPER ))
 246   3                                              {   //got IR logical "1" signal
 247   4                                              Ir.Code = Ir.Code << 1;
 248   4                                              IrCount++;
 249   4                                              }
 250   3                                      else
 251   3                                              {  //Ir Receive fail condition
 252   4                                              IrCount=IrCount;   //for debug only
 253   4                                              }
 254   3                                      
 255   3                              if ( IrCount >=32 )
 256   3                                      {   
 257   4                                      MxicIr.Bits.b1GetIrFlame=1;
 258   4                                      MxicIr.Bits.b1GetIrCommand=1;
 259   4                                      FirstEdge=0;    //start wait next cycle
 260   4                                      TR1=1;                  //starting counting
 261   4                                      LeadCode=0;
 262   4                                      }
 263   3                      }
 264   2              }
 265   1              TH1=0;TL1=0;
 266   1              
 267   1      }
 268          
 269          
 270          
 271          
 272          /*BYTE IrFunction(void)
 273          {
 274             BYTE i;
 275            
 276             bit IrRepeat;
 277             BYTE GetIr,backupir;//,BakIr
 278          //BYTE val_str[3];
 279          
 280          
 281                
 282          //      IrVaild=CheckIrFlame();
 283                //  Value_ASCII(GetIrCodeData(), val_str, 0);
 284          //              OSD_ShowTitle(val_str, 3);
 285                  
 286                                  switch(GetIrCodeData())
 287                                  {
 288                                   case 0x5f:
 289                  //                SHDN_L5V=1;
 290                                    GetIr=MENU;
 291                                    break;
 292                                     case 0xb7:
 293                                    GetIr=MODE_DEC;
 294                  //                SHDN_L5V=1;
 295                                    break;
 296                                     case 0x9F:
 297                                    GetIr=UP;
 298                                    break;
 299                                      case 0xDF:
 300                                    GetIr=DOWN;
 301                                    break;
 302                                     case 0xef:
 303                                    GetIr=MODE_DEC;
C51 COMPILER V7.01  IR                                                                     12/01/2005 09:38:54 PAGE 6   

 304                                    break;
 305                                     case 0x8f:
 306                                    GetIr=ENTER;
 307                                    break;
 308                                     case 0x87:
 309                                     GetIr=POWER;
 310                                    break;
 311                         case 0xA7:
 312                                     GetIr=IRMUTE;
 313                                    break;
 314                        case 0xBF:
 315                                     GetIr=IRUP;
 316                                    break;
 317                                    case 0x1F:
 318                                     GetIr=VOLUMADD;
 319                                    break;
 320                                    case 0xAF:
 321                                     GetIr=VOLUMSUB;
 322                                    break;
 323                                    case 0x6F:
 324                                     GetIr=UPDOWN;
 325                                    break;
 326                                    case 0x07:
 327                                     GetIr=LEFTRIGHT;
 328                                    break;
 329                                    case 0xCF:
 330                                     GetIr=CALL;
 331                                    break;
 332                                    case 0x4F:
 333                                     GetIr=DISPLAYSIZE;
 334                                    break;
 335                        default:
 336                        GetIr=0x00;
 337                        break;
 338                         
 339                                   }
 340                                   if(GetIr!=0x00)
 341                                          for (i=0; i!=0x0f; i++)
 342                                  {
 343                                  T0_0Interval = 500;                             //reset the Timer interval 10sec.
 344                                          }
 345                                  IrRepeat=CheckIrRepeatCode();
 346                     if(IrRepeat)
 347                             {
 348                                    
 349                             GetIr=backupir;
 350                                  }
 351                            
 352                     backupir=GetIr;
 353          //                       MxicIr.Bits.b1GetIrFlame = 0;  
 354                 for(i=0;i<125;i++)
 355                         DELAY(20);                                                                                                                                
 356                          
 357          return(GetIr);
 358          }
 359          */
 360          //------------------------------------
 361          //------------------------------------
 362          
 363          
 364          
 365          
C51 COMPILER V7.01  IR                                                                     12/01/2005 09:38:54 PAGE 7   

 366          


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


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

⌨️ 快捷键说明

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