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

📄 keyboard.lst

📁 8*8键盘检测
💻 LST
字号:
C51 COMPILER V8.08   KEYBOARD                                                              06/01/2008 17:26:14 PAGE 1   


C51 COMPILER V8.08, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN keyboard.OBJ
COMPILER INVOKED BY: D:\Program Files\keilc\C51\BIN\C51.EXE keyboard.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          
   2          #include<reg51.h>
   3          
   4          typedef unsigned char uchar;
   5          
   6          sbit vclk = P1^0;
   7          sbit qh = P1^1;
   8          sbit sl = P1^2;
   9          
  10          bit flag;
  11          
  12          void delay(uchar count) 
  13          {
  14   1              int i,j;
  15   1              for(j = count ; j ; j --)
  16   1                      for(i = 125 ; i; i --);
  17   1      }
  18          
  19          void out_164(uchar set)
  20          {
  21   1              SBUF = set;
  22   1              while(!TI);
  23   1              TI = 0;
  24   1      }
  25          
  26          uchar in_165()
  27          {       
  28   1              uchar i,result;
  29   1              sl = 0;
  30   1              sl = 1;
  31   1              for(i = 8; i; i --)
  32   1              {
  33   2                      result <<= 1;
  34   2                      vclk = 0;
  35   2                      if(qh == 1)
  36   2                              result = result | 0x01;
  37   2                      else
  38   2                              result = result & 0xfe;
  39   2                      vclk = 1;       
  40   2              }
  41   1              return result;
  42   1      }
  43          
  44          void init()
  45          {       
  46   1              SCON = 0x00;
  47   1              TI = 0;
  48   1              out_164(0x00);
  49   1              vclk = 0;
  50   1      }
  51          
  52          
  53          void main()
  54          {       
  55   1      
C51 COMPILER V8.08   KEYBOARD                                                              06/01/2008 17:26:14 PAGE 2   

  56   1              init();
  57   1              do
  58   1              {       
  59   2                      while(in_165() == 0xff);
  60   2                      delay(10);
  61   2                      if(in_165() != 0xff)
  62   2                              flag = 0;
  63   2                      else
  64   2                              flag = 1;
  65   2              }while(flag);
  66   1      
  67   1              out_164(0x07);
  68   1              if(in_165() == 0xf7)
  69   1              {
  70   2                      P2 = 0x02;
  71   2              }
  72   1              if(in_165() == 0xfb)
  73   1              {
  74   2                      P2 = 0x11;
  75   2              }
  76   1              //后边还可以检查其他按钮;;
  77   1              
  78   1      }


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


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

⌨️ 快捷键说明

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