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

📄 main.lst

📁 基于ARM的按键测试开发.很实用也很普遍.
💻 LST
字号:
C51 COMPILER V7.50   MAIN                                                                  05/27/2008 11:08:23 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil51\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <reg52.h>
   2          #include <stdio.h>
   3          #include <uart.h>
   4          #include <max7219.h>
   5          
   6          #define  P_KEY   P1
   7          
   8          void delay(int time)
   9          {
  10   1              int i;
  11   1              for (i=0; i<time; i++)
  12   1              {
  13   2                      ;
  14   2              }
  15   1      }
  16          
  17          
  18          
  19          
  20          
  21          char FindKey()
  22          {
  23   1              char key = -1, i;
  24   1      
  25   1              P_KEY = 0x0f;
  26   1              key   = P_KEY;
  27   1      
  28   1      
  29   1              if (key == 0x0f)
  30   1              {
  31   2                      return -1;
  32   2              }
  33   1      
  34   1              delay(5000);
  35   1      
  36   1              
  37   1              key = P_KEY;
  38   1              if (key == 0x0f)
  39   1              {
  40   2                      return -1;
  41   2              }
  42   1      
  43   1              for (i=0; i<4; i++)
  44   1              {
  45   2                      P_KEY = ~(1 << (i + 4));
  46   2      
  47   2                      key   = P_KEY;
  48   2      
  49   2                      key   = key & 0x0f;
  50   2                      if (key == 0x0f)
  51   2                      {
  52   3                              continue;
  53   3                      }
  54   2      
  55   2                      if (key == 0x0e)
C51 COMPILER V7.50   MAIN                                                                  05/27/2008 11:08:23 PAGE 2   

  56   2                      {
  57   3                              key = i + 0 * 4;
  58   3                      }
  59   2                      else if (key == 0x0d)
  60   2                      {
  61   3                              key = i + 1 * 4;
  62   3                      }
  63   2                      else if (key == 0x0b)
  64   2                      {
  65   3                              key = i + 2 * 4;
  66   3                      }
  67   2                      else if (key == 0x07)
  68   2                      {
  69   3                              key = i + 3 * 4;
  70   3                      }
  71   2                      P_KEY = 0x0f;
  72   2                      while( (P_KEY != 0x0f));
  73   2                      break;
  74   2      
  75   2              }
  76   1              return key;
  77   1      
  78   1      }
  79          
  80          
  81          /*
  82          unsigned char FindKey()
  83          {
  84                  unsigned char key, temp;
  85          
  86                  P_KEY = 0x0f;
  87                  key   = P_KEY;
  88                  if (key == 0x0f)
  89                  {
  90                          return 0;
  91                  }
  92                  delay(5000);
  93                  
  94                  key = P_KEY;
  95                  if (key == 0x0f)
  96                  {
  97                          return 0;
  98                  }
  99          
 100          
 101                  temp = (key >> 4);
 102                  
 103              if (temp >= 4)
 104                  {
 105                          if (temp == 4)
 106                          {
 107                                  temp = 3;
 108                          }
 109                          else
 110                          {
 111                                  temp = 4;
 112                          }
 113                  }
 114          
 115              
 116                  P_KEY = 0xf0;
 117              
C51 COMPILER V7.50   MAIN                                                                  05/27/2008 11:08:23 PAGE 3   

 118                  key = P_KEY;
 119              
 120                  key = key & 0x0f;
 121          
 122              if (key >= 4)
 123                  {
 124                          if (key == 4)
 125                          {
 126                                  key = 3;
 127                          }
 128                          else
 129                          {
 130                                  key = 4;
 131                          }
 132                  }
 133          
 134          
 135          
 136                  key = (key - 1) * 4 + temp;
 137                  
 138                  P_KEY = 0x0f;
 139                  while( P_KEY != 0x0f);
 140                  return key;
 141          
 142          
 143          }
 144          */
 145          
 146          char buf[20];
 147          sbit P20 = P2^0;
 148          
 149          
 150          unsigned char code ascii[11]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0F};
 151          
 152          
 153          void main(void)
 154          {
 155   1         int key;
 156   1      
 157   1         int i;
 158   1      
 159   1      
 160   1         uart_init();
 161   1         InitialMax7219();
 162   1      
 163   1         for (i=0; i<8; i++)
 164   1         {
 165   2                      WriteToMax7219(i + 1, ascii[i]&0x7f);
 166   2         }
 167   1      
 168   1       
 169   1         while(1)
 170   1         {
 171   2      
 172   2                      key = FindKey();
 173   2                      if (key >= 0)
 174   2                      {
 175   3                      sprintf(buf, "Key = %d  \n", key);
 176   3                              SendStr(buf);
 177   3                      }
 178   2         }
 179   1        
C51 COMPILER V7.50   MAIN                                                                  05/27/2008 11:08:23 PAGE 4   

 180   1      
 181   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    240    ----
   CONSTANT SIZE    =     23    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     20       4
   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 + -