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

📄 main.lst

📁 嵌入式键盘
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.50   MAIN                                                                  02/06/2009 10:34:28 PAGE 8   

 428   6                                    {
 429   7                              makecode=_f2_PS2;
 430   7                              MS[pointer]=makecode;
 431   7                              pointer++;
 432   7                                                      TwoMcodeFlag=0;
 433   7                                    }
 434   6                             break;
 435   6                         case 0xef://gd-------f7
 436   6                               if(pointer<BUFFNUM)
 437   6                                    {
 438   7                              makecode=_f7_PS2;
 439   7                              MS[pointer]=makecode;
 440   7                                      pointer++;
 441   7                                                      TwoMcodeFlag=0;
 442   7                                    }
 443   6                             break;
 444   6                         case 0xdf://id------f9
 445   6                               if(pointer<BUFFNUM)
 446   6                                    {
 447   7                              makecode=_f9_PS2;
 448   7                              MS[pointer]=makecode;
 449   7                                      pointer++;
 450   7                                                      TwoMcodeFlag=0;
 451   7                                    }
 452   6                             break;
 453   6                         case 0xbf://f4-----o
 454   6                               if(pointer<BUFFNUM)
 455   6                                    {
 456   7                              makecode=_o_PS2;
 457   7                              MS[pointer]=makecode;
 458   7                                      pointer++;
 459   7                                                      TwoMcodeFlag=0;
 460   7                                    }
 461   6                             break;
 462   6                         case 0x7f://#1------y
 463   6                               if(pointer<BUFFNUM)
 464   6                                    {
 465   7                                                  LED2=!LED2;
 466   7                              makecode=_y_PS2;
 467   7                              MS[pointer]=makecode;
 468   7                                      pointer++;
 469   7                                                      TwoMcodeFlag=0;
 470   7                                    }
 471   6      
 472   6                             break;
 473   6                           }
 474   5                       }
 475   4                              else if(DatTemp2==0xfb)//e
 476   4                               {
 477   5                                  SomeKeyKeepFlag=1;
 478   5                               }
 479   4                    break;
 480   4               case 0x1f://P1.5=0
 481   4                           if(!SomeKeyEnableFlag)
 482   4                            {
 483   5                      SomeKeyEnableFlag=1;
 484   5                      switch(DatTemp2)
 485   5                       {
 486   6                         case 0xfe://tab
 487   6                                   if(pointer<BUFFNUM)
 488   6                            {
 489   7                              makecode=_tab_PS2;
C51 COMPILER V7.50   MAIN                                                                  02/06/2009 10:34:28 PAGE 9   

 490   7                              MS[pointer]=makecode;
 491   7                                      pointer++;
 492   7                                                      TwoMcodeFlag=0;
 493   7                                    }
 494   6                             break;
 495   6                         case 0xfd://a/b
 496   6                                   if(pointer<BUFFNUM)
 497   6                                    {
 498   7                              makecode=_ab_PS2;
 499   7                              MS[pointer]=makecode;
 500   7                                      pointer++;
 501   7                                                      TwoMcodeFlag=0;
 502   7                                    }
 503   6                         break;
 504   6                         case 0xfb://main
 505   6                               if(pointer<BUFFNUM)
 506   6                                    {
 507   7                              makecode=_esc_PS2;
 508   7                              MS[pointer]=makecode;
 509   7                                      pointer++;
 510   7                                                      TwoMcodeFlag=0;
 511   7                                    }
 512   6                             break;
 513   6                         case 0xf7://down
 514   6                                   if(pointer<BUFFNUM)
 515   6                                    {
 516   7                              MS[pointer]=0xe0;
 517   7                              pointer++;
 518   7                              makecode=_down_PS2;
 519   7                              MS[pointer]=makecode;
 520   7                              pointer++;
 521   7                                                      TwoMcodeFlag=1;
 522   7                                    }
 523   6                             break;
 524   6                         case 0xef://up
 525   6                               if(pointer<BUFFNUM)
 526   6                                    {
 527   7                              MS[pointer]=0xe0;
 528   7                              pointer++;
 529   7                              makecode=_up_PS2;
 530   7                              MS[pointer]=makecode;
 531   7                                      pointer++;
 532   7                                                      TwoMcodeFlag=1;
 533   7                                    }
 534   6                             break;
 535   6                         case 0xdf://hand
 536   6                               if(pointer<BUFFNUM)
 537   6                                    {
 538   7                                                  LED4=!LED4;
 539   7                              makecode=_hand_PS2;
 540   7                              MS[pointer]=makecode;
 541   7                                      pointer++;
 542   7                                                      TwoMcodeFlag=0;
 543   7                                    }
 544   6                             break;
 545   6                         case 0xbf://fappy
 546   6                               if(pointer<BUFFNUM)
 547   6                                    {
 548   7                                                  LED1=!LED1;
 549   7                              makecode=_fap_PS2;
 550   7                              MS[pointer]=makecode;
 551   7                                      pointer++;
C51 COMPILER V7.50   MAIN                                                                  02/06/2009 10:34:28 PAGE 10  

 552   7                                                      TwoMcodeFlag=0;
 553   7                                    }
 554   6                             break;
 555   6                         case 0x7f://#2-----n
 556   6                               if(pointer<BUFFNUM)
 557   6                                    {
 558   7                                                  LED3=!LED3;
 559   7                              makecode=_n_PS2;
 560   7                              MS[pointer]=makecode;
 561   7                                      pointer++;
 562   7                                                      TwoMcodeFlag=0;
 563   7                                    }
 564   6                             break;
 565   6                           }
 566   5                       }
 567   4                    break;
 568   4                case 0x3f://键盘松开
 569   4                  SomeKeyEnableFlag=0;
 570   4                              if(makecode!=0)
 571   4                               {
 572   5                             if(TwoMcodeFlag)
 573   5                               {//双键码
 574   6                          MS[pointer++]=0xe0;
 575   6                          MS[pointer++]=0xf0;
 576   6                          MS[pointer++]=makecode;
 577   6                               }
 578   5                             else
 579   5                               {//单键码
 580   6                          MS[pointer++]=0xf0;
 581   6                          MS[pointer++]=makecode;
 582   6                               }
 583   5                               }
 584   4                    break;
 585   4                default://多个键盘按下
 586   4                  if(SomeKeyEnableFlag)//
 587   4                   {
 588   5                     SomeKeyKeepFlag=0;
 589   5                                 SomeKeyKeepTime=0;
 590   5                     SomeKeyEnableFlag=0;
 591   5                   }
 592   4                break;
 593   4              }
 594   3             ReadKeyOnceFlag=0;
 595   3           }
 596   2      
 597   2      //===============长时间按键处理
 598   2      /*
 599   2         if(SomeKeyKeepTime>=KEYKEEPTIME)
 600   2              {
 601   2                if(pointer<BUFFNUM)
 602   2                 {
 603   2               SomeKeyKeepTime=0;
 604   2               MS[pointer]=makecode;
 605   2                   pointer++;
 606   2                 }
 607   2      
 608   2              }
 609   2      */
 610   2      //===============键盘值发送,缓冲区重整理
 611   2      
 612   2         if(MS[0]!=0)
 613   2           {
C51 COMPILER V7.50   MAIN                                                                  02/06/2009 10:34:28 PAGE 11  

 614   3            if(!SendByte(MS[0]))
 615   3                  {
 616   4                 for(i=0;i<BUFFNUM;i++)
 617   4                                 MS[i]=MS[i+1];
 618   4                 MS[BUFFNUM]=0;
 619   4                      }
 620   3               }
 621   2      //==============指针指向第一个空缓冲区
 622   2        pointer=0;   
 623   2        while((MS[pointer]!=0)&&(pointer<BUFFNUM))
 624   2              pointer++;
 625   2      //===============
 626   2       _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();      
 627   2          }//for end
 628   1      }//main end


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


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

⌨️ 快捷键说明

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