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

📄 keyboard.lst

📁 usb demo controller
💻 LST
字号:
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 1   


C51 COMPILER V7.00, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN KEYBOARD.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KEYBOARD.C BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include "keyboard.h"
   2          
   3          void kbbufadd(unsigned char dat)
   4          {
   5   1        unsigned char i;
   6   1      
   7   1        for (i=0;i<BUFLEN;i++)
   8   1        {
   9   2          if (kbbuf[i]==dat)
  10   2          {
  11   3            return;
  12   3          }
  13   2        }
  14   1        for (i=0;i<BUFLEN;i++)
  15   1        {
  16   2          if (kbbuf[i]==0)
  17   2          {
  18   3            kbbuf[i] = dat;
  19   3            break;
  20   3          }
  21   2        }
  22   1      }
  23          
  24          void kbbufdel(unsigned char dat)
  25          {
  26   1        unsigned char i, c, c0 = 0, t;
  27   1        bit f = 0;
  28   1      
  29   1        for (i=0;i<BUFLEN;i++)
  30   1        {
  31   2          if (kbbuf[i] == dat)
  32   2          {
  33   3            t = i;
  34   3            kbbuf[i] = 0;
  35   3            f = 1;
  36   3          }
  37   2        }
  38   1        if (f == 0)
  39   1        {
  40   2          for (i=0;i<BUFLEN;i++)
  41   2          {
  42   3            kbbuf[i] = 0;
  43   3          }
  44   2        }
  45   1      }
*** WARNING C280 IN LINE 26 OF KEYBOARD.C: 'c': unreferenced local variable
  46          
  47          void kbReply(void)
  48          {
  49   1        unsigned char i, j, t, mod;
  50   1      
  51   1        j = 2; mod = 0;
  52   1        for (i=0;i<6;i++)
  53   1        {
  54   2          ReplyBuffer[i+2] = 0;
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 2   

  55   2          t = kbdecode(kbbuf[i]);
  56   2          if (t != 0)
  57   2          {
  58   3            s0 = 0;
  59   3            switch (t) {
  60   4            case 0xe0:
  61   4              s0b0 = 1;
  62   4              break;
  63   4            case 0xe1:
  64   4              s0b1 = 1;
  65   4              break;
  66   4            case 0xe2:
  67   4              s0b2 = 1;
  68   4              break;
  69   4            case 0xe3:
  70   4              s0b3 = 1;
  71   4              break;
  72   4            case 0xe4:
  73   4              s0b4 = 1;
  74   4              break;
  75   4            case 0xe5:
  76   4              s0b5 = 1;
  77   4              break;
  78   4            case 0xe6:
  79   4              s0b6 = 1;
  80   4              break;
  81   4            case 0xe7:
  82   4              s0b7 = 1;
  83   4              break;
  84   4            default:
  85   4              ;
  86   4            }
  87   3            if (s0 == 0) ReplyBuffer[j++] = t;
  88   3            mod |= s0;
  89   3          }
  90   2        }
  91   1      
  92   1        ReplyCount = 8;
  93   1        ReplyBuffer[0] = mod;
  94   1        ReplyBuffer[1] = 0;
  95   1      }
  96          
  97          void kbScan(void)
  98          {
  99   1        bit p;
 100   1        p = ps2read();
 101   1        while (ps2test(p) == 0)
 102   1        {
 103   2          ps2write(0xfe);
 104   2          p = ps2read();
 105   2        }
 106   1        Output(PS2_BYTE);
 107   1        
 108   1        if (PS2_Ready == 1)
 109   1        {
 110   2          if (PS2_BYTE != 0xf0)
 111   2          {
 112   3            kbbufadd(PS2_BYTE);
 113   3          }
 114   2          else
 115   2          {
 116   3            do {
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 3   

 117   4              p = ps2read();
 118   4              while (ps2test(p) == 0)
 119   4              {
 120   5                ps2write(0xfe);
 121   5                p = ps2read();
 122   5              }
 123   4              Output(PS2_BYTE);
 124   4            } while (PS2_Ready == 0);
 125   3        
 126   3            kbbufdel(PS2_BYTE);
 127   3          }
 128   2          kbReply();  //write keyboard buffer to reply buffer
 129   2      //    IsListening = 0;
 130   2          d12comm(0x03);
 131   2          SendReplyBuffer();
 132   2        }
 133   1      }
 134          
 135          unsigned char kbdecode(unsigned char dat)
 136          {
 137   1        unsigned char usage;
 138   1      
 139   1        switch (dat) {
 140   2        case 0x1c:
 141   2          usage = 0x04;
 142   2          break;
 143   2        case 0x32:
 144   2          usage = 0x05;
 145   2          break;
 146   2        case 0x21:
 147   2          usage = 0x06;
 148   2          break;
 149   2        case 0x23:
 150   2          usage = 0x07;
 151   2          break;
 152   2        case 0x24:
 153   2          usage = 0x08;
 154   2          break;
 155   2        case 0x2b:
 156   2          usage = 0x09;
 157   2          break;
 158   2        case 0x34:
 159   2          usage = 0x0a;
 160   2          break;
 161   2        case 0x33:
 162   2          usage = 0x0b;
 163   2          break;
 164   2        case 0x43:
 165   2          usage = 0x0c;
 166   2          break;
 167   2        case 0x3b:
 168   2          usage = 0x0d;
 169   2          break;
 170   2        case 0x42:
 171   2          usage = 0x0e;
 172   2          break;
 173   2        case 0x4b:
 174   2          usage = 0x0f;
 175   2          break;
 176   2        case 0x3a:
 177   2          usage = 0x10;
 178   2          break;
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 4   

 179   2        case 0x31:
 180   2          usage = 0x11;
 181   2          break;
 182   2        case 0x44:
 183   2          usage = 0x12;
 184   2          break;
 185   2        case 0x4d:
 186   2          usage = 0x13;
 187   2          break;
 188   2        case 0x15:
 189   2          usage = 0x14;
 190   2          break;
 191   2        case 0x2d:
 192   2          usage = 0x15;
 193   2          break;
 194   2        case 0x1b:
 195   2          usage = 0x16;
 196   2          break;
 197   2        case 0x2c:
 198   2          usage = 0x17;
 199   2          break;
 200   2        case 0x3c:
 201   2          usage = 0x18;
 202   2          break;
 203   2        case 0x2a:
 204   2          usage = 0x19;
 205   2          break;
 206   2        case 0x1d:
 207   2          usage = 0x1a;
 208   2          break;
 209   2        case 0x22:
 210   2          usage = 0x1b;
 211   2          break;
 212   2        case 0x35:
 213   2          usage = 0x1c;
 214   2          break;
 215   2        case 0x1a:
 216   2          usage = 0x1d;
 217   2          break;
 218   2        case 0x16:
 219   2          usage = 0x1e;
 220   2          break;
 221   2        case 0x1e:
 222   2          usage = 0x1f;
 223   2          break;
 224   2        case 0x26:
 225   2          usage = 0x20;
 226   2          break;
 227   2        case 0x25:
 228   2          usage = 0x21;
 229   2          break;
 230   2        case 0x2e:
 231   2          usage = 0x22;
 232   2          break;
 233   2        case 0x36:
 234   2          usage = 0x23;
 235   2          break;
 236   2        case 0x3d:
 237   2          usage = 0x24;
 238   2          break;
 239   2        case 0x3e:
 240   2          usage = 0x25;
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 5   

 241   2          break;
 242   2        case 0x46:
 243   2          usage = 0x26;
 244   2          break;
 245   2        case 0x45:
 246   2          usage = 0x27;
 247   2          break;
 248   2        case 0x5a:
 249   2          usage = 0x28;
 250   2          break;
 251   2        case 0x76:
 252   2          usage = 0x29;
 253   2          break;
 254   2        case 0x66:
 255   2          usage = 0x2a;
 256   2          break;
 257   2        case 0x0d:
 258   2          usage = 0x2b;
 259   2          break;
 260   2        case 0x29:
 261   2          usage = 0x2c;
 262   2          break;
 263   2        case 0x4e:
 264   2          usage = 0x2d;
 265   2          break;
 266   2        case 0x55:
 267   2          usage = 0x2e;
 268   2          break;
 269   2        case 0x54:
 270   2          usage = 0x2f;
 271   2          break;
 272   2        case 0x5b:
 273   2          usage = 0x30;
 274   2          break;
 275   2        case 0x5d:
 276   2          usage = 0x31;
 277   2          break;
 278   2        case 0x4c:
 279   2          usage = 0x33;
 280   2          break;
 281   2        case 0x52:
 282   2          usage = 0x34;
 283   2          break;
 284   2        case 0x41:
 285   2          usage = 0x36;
 286   2          break;
 287   2        case 0x49:
 288   2          usage = 0x37;
 289   2          break;
 290   2        case 0x4a:
 291   2          usage = 0x38;
 292   2          break;
 293   2        case 0x58:
 294   2          usage = 0x39;
 295   2          break;
 296   2        case 0x05:
 297   2          usage = 0x3a;
 298   2          break;
 299   2        case 0x06:
 300   2          usage = 0x3b;
 301   2          break;
 302   2        case 0x04:
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 6   

 303   2          usage = 0x3c;
 304   2          break;
 305   2        case 0x0c:
 306   2          usage = 0x3d;
 307   2          break;
 308   2        case 0x03:
 309   2          usage = 0x3e;
 310   2          break;
 311   2        case 0x0b:
 312   2          usage = 0x3f;
 313   2          break;
 314   2        case 0x83:
 315   2          usage = 0x40;
 316   2          break;
 317   2        case 0x0a:
 318   2          usage = 0x41;
 319   2          break;
 320   2        case 0x01:
 321   2          usage = 0x42;
 322   2          break;
 323   2        case 0x09:
 324   2          usage = 0x43;
 325   2          break;
 326   2        case 0x78:
 327   2          usage = 0x44;
 328   2          break;
 329   2        case 0x07:
 330   2          usage = 0x45;
 331   2          break;
 332   2      //  case 0x57:  //PrintScreen
 333   2      //    usage = 0x46;
 334   2      //    break;
 335   2        case 0x7e:
 336   2          usage = 0x47;
 337   2          break;
 338   2      //  case 0x62:  //Break
 339   2      //    usage = 0x48;
 340   2      //    break;
 341   2        case 0x70:
 342   2          usage = 0x49;
 343   2          break;
 344   2        case 0x6c:
 345   2          usage = 0x4a;
 346   2          break;
 347   2        case 0x7d:
 348   2          usage = 0x4b;
 349   2          break;
 350   2        case 0x71:
 351   2          usage = 0x4c;
 352   2          break;
 353   2        case 0x69:
 354   2          usage = 0x4d;
 355   2          break;
 356   2        case 0x7a:
 357   2          usage = 0x4e;
 358   2          break;
 359   2        case 0x74:
 360   2          usage = 0x4f;
 361   2          break;
 362   2        case 0x6b:
 363   2          usage = 0x50;
 364   2          break;
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 7   

 365   2        case 0x72:
 366   2          usage = 0x51;
 367   2          break;
 368   2        case 0x75:
 369   2          usage = 0x52;
 370   2          break;
 371   2        case 0x77:
 372   2          usage = 0x53;
 373   2          break;
 374   2      //  case 0x4a:
 375   2      //    usage = 0x54;
 376   2      //    break;
 377   2        case 0x7c:
 378   2          usage = 0x55;
 379   2          break;
 380   2        case 0x7b:
 381   2          usage = 0x56;
 382   2          break;
 383   2        case 0x79:
 384   2          usage = 0x57;
 385   2          break;
 386   2      //  case 0x5a:  //Keypad ENTER
 387   2      //    usage = 0x58;
 388   2      //    break;
 389   2      //  case 0x69:  //Keypad 1
 390   2      //    usage = 0x59;
 391   2      //    break;
 392   2      //  case 0x72:  //Keypad 2
 393   2      //    usage = 0x5a;
 394   2      //    break;
 395   2      //  case 0x7a:  //Keypad 3
 396   2      //    usage = 0x5b;
 397   2      //    break;
 398   2      //  case 0x6b:
 399   2      //    usage = 0x5c;
 400   2      //    break;
 401   2      //  case 0x73:
 402   2      //    usage = 0x5d;
 403   2      //    break;
 404   2      //  case 0x74:
 405   2      //    usage = 0x5e;
 406   2      //    break;
 407   2      //  case 0x6c:
 408   2      //    usage = 0x5f;
 409   2      //    break;
 410   2      //  case 0x75:
 411   2      //    usage = 0x60;
 412   2      //    break;
 413   2      //  case 0x7d:
 414   2      //    usage = 0x61;
 415   2      //    break;
 416   2      //  case 0x70:
 417   2      //    usage = 0x62;
 418   2      //    break;
 419   2      //  case 0x71:
 420   2      //    usage = 0x63;
 421   2      //    break;
 422   2        case 0x2f:
 423   2          usage = 0x76;
 424   2          break;
 425   2        case 0x14:
 426   2          usage = 0xe0;
C51 COMPILER V7.00  KEYBOARD                                                               12/15/2004 13:45:58 PAGE 8   

 427   2          break;
 428   2        case 0x12:
 429   2          usage = 0xe1;
 430   2          break;
 431   2        case 0x11:
 432   2          usage = 0xe2;
 433   2          break;
 434   2        case 0x1f:
 435   2          usage = 0xe3;
 436   2          break;
 437   2      //  case 0x14:  //Right Ctrl
 438   2      //    usage = 0xe4;
 439   2      //    break;
 440   2        case 0x59:
 441   2          usage = 0xe5;
 442   2          break;
 443   2      //  case 0x11:  //Right ALT
 444   2      //    usage = 0xe6;
 445   2      //    break;
 446   2        case 0x27:
 447   2          usage = 0xe7;
 448   2          break;
 449   2        default:
 450   2          usage = 0;
 451   2        }
 452   1        return usage;
 453   1      }
 454          


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


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

⌨️ 快捷键说明

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