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

📄 text1.lst

📁 3个IO口扫16键,想了好久
💻 LST
字号:
C51 COMPILER V8.02   TEXT1                                                                 12/10/2008 14:17:39 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE TEXT1
OBJECT MODULE PLACED IN Text1.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Text1.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include <at89x52.h>
   2          #include "led.h"
   3          #define uchar unsigned char
   4          #define scanIO P1
   5          /*
   6          uchar scan_k0k6(void)
   7          {
   8          uchar tmp = 255;
   9          scanIO |= 0x07; 
  10          tmp = scanIO & 0x07;
  11          //if(tmp!=7)
  12                  switch(tmp)
  13                  {
  14                          case 0x03:return 0;break;
  15                          case 0x05:return 1;break;
  16                          case 0x06:return 2;break;
  17                          case 0x01:return 3;break;
  18                          case 0x02:return 4;break;
  19                          case 0x04:return 5;break;
  20                          case 0x00:return 6;break;
  21                          default:return 255;break;
  22                  }
  23                  return tmp;
  24          }
  25          
  26          /*
  27          uchar scan_k7k8(void)
  28          {
  29          uchar tmp = 255;
  30                  tmp = scanIO & 0xf8;
  31                  scanIO = tmp | 0x04; 
  32                  tmp = scanIO & 0x07;
  33                  if(tmp == 0x00)
  34                  {
  35                  tmp = scanIO & 0xf8;
  36                  scanIO = tmp | 0x06; 
  37                  tmp = scanIO & 0x07;
  38                  if(tmp == 0x02)
  39                          tmp = 7;
  40                  else
  41                          {
  42                          tmp = scanIO & 0xf8;
  43                          scanIO = tmp | 0x05;
  44                          tmp = scanIO & 0x07; 
  45                          if(tmp == 0x01)
  46                          tmp = 8;
  47                          }
  48                  }
  49                  else tmp = 255;
  50                  return tmp;
  51          }
  52          
  53          uchar scan_k9k10(void)
  54          {
  55          uchar tmp = 255;
C51 COMPILER V8.02   TEXT1                                                                 12/10/2008 14:17:39 PAGE 2   

  56                  tmp = scanIO & 0xf8;
  57                  scanIO = tmp | 0x02;
  58                  tmp = scanIO & 0x07; 
  59                  if(tmp == 0x00)
  60                  {
  61                  tmp = scanIO & 0xf8;
  62                  scanIO = tmp | 0x06; 
  63                  tmp = scanIO & 0x07;
  64                  if(tmp == 0x04)
  65                          tmp = 9;
  66                  else
  67                          {
  68                          tmp = scanIO & 0xf8;
  69                          scanIO = tmp | 0x03;
  70                          tmp = scanIO & 0x07;
  71                          if(tmp == 0x01)
  72                          tmp = 10;
  73                          }
  74                  }
  75                  else tmp = 255;
  76                  return tmp;
  77          }
  78          
  79          uchar scan_k11k12(void)
  80          {
  81          uchar tmp = 255;
  82                  tmp = scanIO & 0xf8;
  83                  scanIO = tmp | 0x01;
  84                  tmp = scanIO & 0x07;
  85                  if(tmp == 0x00)
  86                  {
  87                  tmp = scanIO & 0xf8;
  88                  scanIO = tmp | 0x05;
  89                  tmp = scanIO & 0x07; 
  90                  if(tmp == 0x04)
  91                          tmp = 11;
  92                  else
  93                          {
  94                          tmp = scanIO & 0xf8;
  95                          scanIO = tmp | 0x03; 
  96                          tmp = scanIO & 0x07;
  97                          if(tmp == 0x02)
  98                          tmp = 12;
  99                          }
 100                  }
 101                  else tmp = 255;
 102                  return tmp;
 103          }
 104          
 105          uchar scan_k13(void)
 106          {
 107          uchar tmp = 255;
 108                          tmp = scanIO & 0xf8;
 109                          scanIO = tmp | 0x04; 
 110                          tmp = scanIO & 0x07;
 111                          if(tmp == 0x00)
 112                          {
 113                          tmp = scanIO & 0xf8;
 114                          scanIO = tmp | 0x02; 
 115                          tmp = scanIO & 0x07;
 116                          if(tmp == 0x00)
 117                          tmp = 13;
C51 COMPILER V8.02   TEXT1                                                                 12/10/2008 14:17:39 PAGE 3   

 118                          else tmp = 255;
 119                          }
 120                          else tmp = 255;
 121          return  tmp;
 122          }
 123          
 124          uchar scan_k14(void)
 125          {
 126          uchar tmp = 255;
 127          tmp = scanIO & 0xf8;
 128          scanIO = tmp | 0x05; 
 129          tmp = scanIO & 0x07;
 130                  if(tmp == 0x00)
 131                          tmp = 14;
 132                  else tmp = 255;
 133          return  tmp;
 134          }
 135          
 136          uchar scan_k15(void)
 137          {
 138          uchar tmp = 255;
 139          tmp = scanIO & 0xf8;
 140          scanIO = tmp | 0x03; 
 141          tmp = scanIO & 0x07;
 142                  if(tmp == 0x00)
 143                          tmp = 15;
 144                  else tmp = 255;
 145          return  tmp;
 146          }
 147          
 148          uchar getkey(void)
 149          {
 150          uchar keynum=255;
 151          keynum = scan_k0k6();
 152          /*
 153          if(keynum == 255)
 154                  keynum = scan_k7k8();
 155          if(keynum == 255)
 156                  keynum = scan_k9k10();
 157          if(keynum == 255)
 158                  keynum = scan_k11k12();
 159          if(keynum == 255)
 160                  keynum = scan_k13();
 161          if(keynum == 255)
 162                  keynum = scan_k14();
 163          if(keynum == 255)
 164                  keynum = scan_k15();
 165          return keynum;
 166          }*/
 167          uchar scan_step1(void)
 168          {
 169   1      uchar tmp = 255;
 170   1               tmp = scanIO & 0xf8;
 171   1               scanIO = tmp | 0x07; 
 172   1               tmp = scanIO & 0x07;
 173   1               switch(tmp)
 174   1              {
 175   2                      case 0x03:tmp = 0;break;
 176   2                      case 0x05:tmp = 1;break;
 177   2                      case 0x06:tmp = 2;break;
 178   2                      case 0x01:tmp = 3;break;
 179   2                      case 0x02:tmp = 4;break;
C51 COMPILER V8.02   TEXT1                                                                 12/10/2008 14:17:39 PAGE 4   

 180   2                      case 0x04:tmp = 5;break;
 181   2                      case 0x00:tmp = 6;break;
 182   2                      default:tmp = 255;break;
 183   2              }
 184   1      return tmp;
 185   1      }
 186          
 187          uchar scan_step2(void)
 188          {
 189   1      uchar tmp = 255;
 190   1      tmp = scanIO & 0xf8;
 191   1      scanIO = tmp | 0x06; 
 192   1      tmp = scanIO & 0x07;
 193   1              switch(tmp)
 194   1              {
 195   2                      case 0x02:tmp = 7;break;
 196   2                      case 0x04:tmp = 9;break;
 197   2                      case 0x00:tmp = 13;break;
 198   2                      default:tmp = 255;break;
 199   2              }
 200   1      return tmp;
 201   1      }
 202          
 203          uchar scan_step3(void)
 204          {
 205   1      uchar tmp = 255;
 206   1      tmp = scanIO & 0xf8;
 207   1      scanIO = tmp | 0x05; 
 208   1      tmp = scanIO & 0x07;
 209   1              switch(tmp)
 210   1              {
 211   2                      case 0x01:tmp = 8;break;
 212   2                      case 0x04:tmp = 11;break;
 213   2                      case 0x00:tmp = 14;break;
 214   2                      default:tmp = 255;break;
 215   2              }
 216   1      return tmp;
 217   1      }
 218          
 219          uchar scan_step4(void)
 220          {
 221   1      uchar tmp = 255;
 222   1      tmp = scanIO & 0xf8;
 223   1      scanIO = tmp | 0x03; 
 224   1      tmp = scanIO & 0x07;
 225   1              switch(tmp)
 226   1              {
 227   2                      case 0x01:tmp = 10;break;
 228   2                      case 0x02:tmp = 12;break;
 229   2                      case 0x00:tmp = 15;break;
 230   2                      default:tmp = 255;break;
 231   2              }
 232   1      return tmp;
 233   1      }
 234          
 235          uchar getkey(void)
 236          {
 237   1      uchar keynum=255;
 238   1      if(keynum == 255)
 239   1              keynum = scan_step1();
 240   1      if(keynum == 255)
 241   1              keynum = scan_step2();
C51 COMPILER V8.02   TEXT1                                                                 12/10/2008 14:17:39 PAGE 5   

 242   1      if(keynum == 255)
 243   1              keynum = scan_step3();
 244   1      if(keynum == 255)
 245   1              keynum = scan_step4();
 246   1      return keynum;
 247   1      }
 248          
 249          main()
 250          {
 251   1      while(1)
 252   1      led_display(getkey());
 253   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    438    ----
   CONSTANT SIZE    =     18    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   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 + -