hong_fa.lst

来自「红外38k发射和接受代码」· LST 代码 · 共 572 行 · 第 1/3 页

LST
572
字号
 364                                  }
 365                                  key1=0xfd;
C51 COMPILER V8.02   HONG_FA                                                               09/06/2008 21:38:11 PAGE 7   

 366                                  if(key0!=0xff)
 367                                  {
 368                                          for(i=0;i<8;i++)
 369                                          {
 370                                                  if(~key0==keyv[i])
 371                                                  {
 372                                                          keyvol=i+8;
 373                                                          flag=0;
 374                                                  }
 375                                          }
 376                                  }
 377                                  key1=0xfb;
 378                                  if(key0!=0xff)
 379                                  {
 380                                          for(i=0;i<8;i++)
 381                                          {
 382                                                  if(~key0==keyv[i])
 383                                                  {
 384                                                          keyvol=i+16;
 385                                                          flag=0;
 386                                                  }
 387                                          }
 388                                  }
 389                                  key1=0xf7;
 390                                  if(key0!=0xff)
 391                                  {
 392                                          for(i=0;i<8;i++)
 393                                          {
 394                                                  if(~key0==keyv[i])
 395                                                  {
 396                                                          keyvol=i+24;
 397                                                          flag=0;
 398                                                  }
 399                                          }
 400                                  }
 401                                  delay(360);//当键按下超过108ms,发射连发码
 402                                  if(key0!=0xff)
 403                                  {
 404                                          delay(360);
 405                                          if(key0!=0xff)
 406                                          {
 407                                                  flag=1;
 408                                       }
 409                                  }
 410                          }
 411                          while(key0!=0xff);
 412                  }
 413          }          */
 414          //
 415          //
 416          void keyscan()
 417          {
 418   1              P1=0xfe;
 419   1              temp=P1;
 420   1              temp&=0xf0;
 421   1              if(temp!=0xf0)
 422   1              {
 423   2                      delay(20);
 424   2                      if(temp!=0xf0)
 425   2                      {
 426   3                              flag1=1;
 427   3                              switch(temp)
C51 COMPILER V8.02   HONG_FA                                                               09/06/2008 21:38:11 PAGE 8   

 428   3                              {
 429   4                                      case 0xe0: key=0;break;
 430   4                                      case 0xd0: key=1;break;
 431   4                                      case 0xb0: key=2;break;
 432   4                                      case 0x70: key=3;break;
 433   4              
 434   4                              } 
 435   3      
 436   3                      }               
 437   2              }
 438   1              P1=0xfd;
 439   1              temp=P1;
 440   1              temp&=0xf0;
 441   1              if(temp!=0xf0)
 442   1              {
 443   2                      delay(20);
 444   2                      if(temp!=0xf0)
 445   2                      {
 446   3                              flag1=1;
 447   3                              switch(temp)
 448   3                              {
 449   4                                      case 0xe0: key=4;break;
 450   4                                      case 0xd0: key=5;break;
 451   4                                      case 0xb0: key=6;break;
 452   4                                      case 0x70: key=7;break;
 453   4              
 454   4                              } 
 455   3                      }               
 456   2              }
 457   1          P1=0xfb;
 458   1              temp=P1;
 459   1              temp&=0xf0;
 460   1              if(temp!=0xf0)
 461   1              {
 462   2                      delay(20);
 463   2                       if(temp!=0xf0)
 464   2                       {
 465   3                              flag1=1;
 466   3                              switch(temp)
 467   3                              {
 468   4                                      case 0xe0: key=8;break;
 469   4                                      case 0xd0: key=9;break;
 470   4                                      case 0xb0: key=10;break;
 471   4                                      case 0x70: key=11;break;
 472   4              
 473   4                              }       
 474   3                      }       
 475   2              }
 476   1              P1=0xf7;
 477   1              temp=P1;
 478   1              temp&=0xf0;
 479   1              if(temp!=0xf0)
 480   1              {
 481   2                      delay(20); 
 482   2                      if(temp!=0xf0)
 483   2                      {
 484   3                              flag1=1;
 485   3                              switch(temp)
 486   3                              {
 487   4                                      case 0xe0: key=12;break;
 488   4                                      case 0xd0: key=13;break;
 489   4                                      case 0xb0: key=14;break;
C51 COMPILER V8.02   HONG_FA                                                               09/06/2008 21:38:11 PAGE 9   

 490   4                                      case 0x70: key=15;break;
 491   4              
 492   4                              } 
 493   3                      }               
 494   2              }
 495   1               
 496   1      
 497   1      
 498   1      
 499   1      }
 500          
 501          /***************主函数****************/
 502          main()
 503          {
 504   1      
 505   1              while(1)
 506   1              {
 507   2                      /*keywork();
 508   2                      if(key==1)
 509   2                      {
 510   2                              tx();
 511   2                      }
 512   2                      key=0; */
 513   2      
 514   2      
 515   2                      if(flag1==1)
 516   2                      {
 517   3                              tx();
 518   3                      }
 519   2              
 520   2                      flag1=0;
 521   2              }
 522   1      }
 523          /****************38KHz发生器******************/
 524          void time_intt1(void) interrupt 3
 525          {
 526   1              remoteout=~remoteout;
 527   1      }
 528          //
 529          //
 530          /*************************END************************/
 531          
 532          


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


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

⌨️ 快捷键说明

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