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

📄 key.lst

📁 C51键盘扫描程序
💻 LST
字号:
C51 COMPILER V7.06   KEY                                                                   11/09/2008 15:26:29 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\Program Files\KB\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg52.h>
   2          #define uint unsigned int
   3          #define uchar unsigned char
   4          sbit dula=P2^6;
   5          sbit wela=P2^7;
   6          sbit key1=P3^4;
   7          uchar code table[]={
   8          0xc0,0xf9,0xa4,0xb0,0x99,
   9          0x92,0x82,0xf8,0x80,0x90,
  10          0x88,0x83,0xc6,0xa7,0xa1,
  11          0x86,0x84,0x8e,0xc2,0x89,
  12          0xc7,0x8c,0x98,0xc1};
  13          uchar num,temp,num1;
  14          void delay(uint z)
  15          {
  16   1              uint x,y;
  17   1              for(x=z;x>0;x--)
  18   1                      for(y=110;y>0;y--);
  19   1      }
  20          uchar keyscan();
  21          void display(uchar aa);
  22          void main()
  23          {
  24   1              num=17;
  25   1              dula=1;
  26   1              P0=0;
  27   1              dula=0;
  28   1              wela=1;
  29   1              P0=0xc0;
  30   1              wela=0;
  31   1              
  32   1              while(1)
  33   1                      {
  34   2                              display(keyscan());
  35   2                  
  36   2                      }
  37   1      }
  38          
  39          void display(uchar aa)
  40          {
  41   1                              dula=1;
  42   1                              P0=table[aa-1];
  43   1                              dula=0;         
  44   1      }
  45          
  46          uchar keyscan()
  47          {
  48   1                              P3=0xfe;
  49   1                              temp=P3;
  50   1                              temp=temp&0xf0;
  51   1                              while(temp!=0xf0)
  52   1                                      {
  53   2                                              delay(5);
  54   2                                              temp=P3;
  55   2                                              temp=temp&0xf0;
C51 COMPILER V7.06   KEY                                                                   11/09/2008 15:26:29 PAGE 2   

  56   2                                              while(temp!=0xf0)
  57   2                                              {
  58   3                                                      temp=P3;
  59   3                                              switch(temp)
  60   3                                                      {
  61   4                                                              case 0xee:num=1;
  62   4                                                                      break;
  63   4                                                              case 0xde:num=2;
  64   4                                                                      break;
  65   4                                                              case 0xbe:num=3;
  66   4                                                                      break;
  67   4                                                              case 0x7e:num=4;
  68   4                                                                      break;
  69   4                                                      }
  70   3                                              while(temp!=0xf0)
  71   3                                                      {
  72   4                                                              temp=P3;
  73   4                                                              temp=temp&0xf0;
  74   4                                                      }
  75   3                                              }
  76   2                                      }
  77   1      
  78   1                              P3=0xfd;
  79   1                              temp=P3;
  80   1                              temp=temp&0xf0;
  81   1                              while(temp!=0xf0)
  82   1                                      {
  83   2                                              delay(5);
  84   2                                              temp=P3;
  85   2                                              temp=temp&0xf0;
  86   2                                              while(temp!=0xf0)
  87   2                                              {
  88   3                                                      temp=P3;
  89   3                                              switch(temp)
  90   3                                                      {
  91   4                                                              case 0xed:num=5;
  92   4                                                                      break;
  93   4                                                              case 0xdd:num=6;
  94   4                                                                      break;
  95   4                                                              case 0xbd:num=7;
  96   4                                                                      break;
  97   4                                                              case 0x7d:num=8;
  98   4                                                                      break;
  99   4                                                      }
 100   3                                              while(temp!=0xf0)
 101   3                                                      {
 102   4                                                              temp=P3;
 103   4                                                              temp=temp&0xf0;
 104   4                                                      }
 105   3                                              }
 106   2                                      }
 107   1      
 108   1      
 109   1                              P3=0xfb;
 110   1                              temp=P3;
 111   1                              temp=temp&0xf0;
 112   1                              while(temp!=0xf0)
 113   1                                      {
 114   2                                              delay(5);
 115   2                                              temp=P3;
 116   2                                              temp=temp&0xf0;
 117   2                                              while(temp!=0xf0)
C51 COMPILER V7.06   KEY                                                                   11/09/2008 15:26:29 PAGE 3   

 118   2                                              {
 119   3                                                      temp=P3;
 120   3                                              switch(temp)
 121   3                                                      {
 122   4                                                              case 0xeb:num=9;
 123   4                                                                      break;
 124   4                                                              case 0xdb:num=10;
 125   4                                                                      break;
 126   4                                                              case 0xbb:num=11;
 127   4                                                                      break;
 128   4                                                              case 0x7b:num=12;
 129   4                                                                      break;
 130   4                                                      }
 131   3                                              while(temp!=0xf0)
 132   3                                                      {
 133   4                                                              temp=P3;
 134   4                                                              temp=temp&0xf0;
 135   4                                                      }
 136   3                                              }
 137   2                                      }
 138   1      
 139   1      
 140   1                              P3=0xf7;
 141   1                              temp=P3;
 142   1                              temp=temp&0xf0;
 143   1                              while(temp!=0xf0)
 144   1                                      {
 145   2                                              delay(5);
 146   2                                              temp=P3;
 147   2                                              temp=temp&0xf0;
 148   2                                              while(temp!=0xf0)
 149   2                                              {
 150   3                                                      temp=P3;
 151   3                                              switch(temp)
 152   3                                                      {
 153   4                                                              case 0xe7:num=13;
 154   4                                                                      break;
 155   4                                                              case 0xd7:num=14;
 156   4                                                                      break;
 157   4                                                              case 0xb7:num=15;
 158   4                                                                      break;
 159   4                                                              case 0x77:num=16;
 160   4                                                                      break;
 161   4                                                      }
 162   3                                              while(temp!=0xf0)
 163   3                                                      {
 164   4                                                              temp=P3;
 165   4                                                              temp=temp&0xf0;
 166   4                                                      }
 167   3                                              }
 168   2                                      }
 169   1                  dula=1;
 170   1                      P0=table[num];
 171   1                      dula=0;             
 172   1                      P0=0xff;
 173   1                      wela=1;
 174   1                      P0=0x01;
 175   1                      wela=0;
 176   1                      delay(1);
 177   1      return num;
 178   1      
 179   1      
C51 COMPILER V7.06   KEY                                                                   11/09/2008 15:26:29 PAGE 4   

 180   1      }
 181          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    435    ----
   CONSTANT SIZE    =     24    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      3    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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