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

📄 矩阵键盘.lst

📁 按一个键显示相应的数字
💻 LST
字号:
C51 COMPILER V6.12  _____黖_                                                               03/01/2009 11:54:09 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE _____黖_
OBJECT MODULE PLACED IN C:\Documents and Settings\Administrator\桌面\临时\矩阵键盘.obj
COMPILER INVOKED BY: E:\KEIL C51\C51\BIN\C51.EXE .\矩阵键盘.c DEBUG OBJECTEXTEND OBJECT(C:\Documents and Settings\Admini
                    -strator\桌面\临时\矩阵键盘.obj) 

stmt level    source

   1          /****************************************/
   2          /*               楼宇0711 		*/
   3          /*       http://www.bloglcz.ccoo.cn     */
   4          /*             综合演示程序 		*/
   5          /*	     目标器件:AT89C51		*/
   6          /*	      晶振:11.0592MHZ		*/
   7          /*          编译环境:Keil C51		*/
   8          /****************************************/
   9          
  10          #include<reg51.h>
  11          
  12          /*********************************数码管表格********************************/
  13          
  14          unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
  15          
  16          0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
  17          
  18          /****************************************************************************
  19          
  20          函数功能:延时子程序
  21          
  22          入口参数:
  23          
  24          出口参数:
  25          
  26          ****************************************************************************/
  27          
  28          void delay(void)
  29          
  30          {
  31   1      
  32   1      unsigned char i,j;
  33   1      
  34   1      for(i=0;i<20;i++)
  35   1      
  36   1      for(j=0;j<250;j++);
  37   1      
  38   1      }
  39          
  40          /****************************************************************************
  41          
  42          函数功能:LED显示子程序
  43          
  44          入口参数:i
  45          
  46          出口参数:
  47          
  48          ****************************************************************************/
  49          
  50          void display(unsigned char i)
  51          
  52          {
  53   1      
  54   1      P2=0x01;
C51 COMPILER V6.12  _____黖_                                                               03/01/2009 11:54:09 PAGE 2   

  55   1      
  56   1      P0=table[i];
  57   1      
  58   1      }
  59          
  60          /****************************************************************************
  61          
  62          函数功能:键盘扫描子程序
  63          
  64          入口参数:
  65          
  66          出口参数:
  67          
  68          ****************************************************************************/
  69          
  70          void keyscan(void)
  71          
  72          {
  73   1      
  74   1      unsigned char n;
  75   1      
  76   1      //扫描第一行
  77   1      
  78   1      P1=0xfe;
  79   1      
  80   1      n=P1;
  81   1      
  82   1      n&=0xf0;
  83   1      
  84   1      if(n!=0xf0)
  85   1      
  86   1      {
  87   2      
  88   2      delay();
  89   2      
  90   2      P1=0xfe;
  91   2      
  92   2      n=P1;
  93   2      
  94   2      n&=0xf0;
  95   2      
  96   2      if(n!=0xf0)
  97   2      
  98   2      {
  99   3      
 100   3      switch(n)
 101   3      
 102   3      {
 103   4      
 104   4      case(0xe0):display(0);break;
 105   4      
 106   4      case(0xd0):display(1);break;
 107   4      
 108   4      case(0xb0):display(2);break;
 109   4      
 110   4      case(0x70):display(3);break;
 111   4      
 112   4      }
 113   3      
 114   3      }
 115   2      
 116   2      }
C51 COMPILER V6.12  _____黖_                                                               03/01/2009 11:54:09 PAGE 3   

 117   1      
 118   1      //扫描第二行
 119   1      
 120   1      P1=0xfd;
 121   1      
 122   1      n=P1;
 123   1      
 124   1      n&=0xf0;
 125   1      
 126   1      if(n!=0xf0)
 127   1      
 128   1      {
 129   2      
 130   2      delay();
 131   2      
 132   2      P1=0xfd;
 133   2      
 134   2      n=P1;
 135   2      
 136   2      n&=0xf0;
 137   2      
 138   2      if(n!=0xf0)
 139   2      
 140   2      {
 141   3      
 142   3      switch(n)
 143   3      
 144   3      {
 145   4      
 146   4      case(0xe0):display(4);break;
 147   4      
 148   4      case(0xd0):display(5);break;
 149   4      
 150   4      case(0xb0):display(6);break;
 151   4      
 152   4      case(0x70):display(7);break;
 153   4      
 154   4      }
 155   3      
 156   3      }
 157   2      
 158   2      }
 159   1      
 160   1      //扫描第三行
 161   1      
 162   1      P1=0xfb;
 163   1      
 164   1      n=P1;
 165   1      
 166   1      n&=0xf0;
 167   1      
 168   1      if(n!=0xf0)
 169   1      
 170   1      {
 171   2      
 172   2      delay();
 173   2      
 174   2      P1=0xfb;
 175   2      
 176   2      n=P1;
 177   2      
 178   2      n&=0xf0;
C51 COMPILER V6.12  _____黖_                                                               03/01/2009 11:54:09 PAGE 4   

 179   2      
 180   2      if(n!=0xf0)
 181   2      
 182   2      {
 183   3      
 184   3      switch(n)
 185   3      
 186   3      {
 187   4      
 188   4      case(0xe0):display(8);break;
 189   4      
 190   4      case(0xd0):display(9);break;
 191   4      
 192   4      case(0xb0):display(10);break;
 193   4      
 194   4      case(0x70):display(11);break;
 195   4      
 196   4      }
 197   3      
 198   3      }
 199   2      
 200   2      }
 201   1      
 202   1      //扫描第四行
 203   1      
 204   1      P1=0xf7;
 205   1      
 206   1      n=P1;
 207   1      
 208   1      n&=0xf0;
 209   1      
 210   1      if(n!=0xf0)
 211   1      
 212   1      {
 213   2      
 214   2      delay();
 215   2      
 216   2      P1=0xf7;
 217   2      
 218   2      n=P1;
 219   2      
 220   2      n&=0xf0;
 221   2      
 222   2      if(n!=0xf0)
 223   2      
 224   2      {
 225   3      
 226   3      switch(n)
 227   3      
 228   3      {
 229   4      
 230   4      case(0xe0):display(12);break;
 231   4      
 232   4      case(0xd0):display(13);break;
 233   4      
 234   4      case(0xb0):display(14);break;
 235   4      
 236   4      case(0x70):display(15);break;
 237   4      
 238   4      }
 239   3      
 240   3      }
C51 COMPILER V6.12  _____黖_                                                               03/01/2009 11:54:09 PAGE 5   

 241   2      
 242   2      }
 243   1      
 244   1      }
 245          
 246          /****************************************************************************
 247          
 248          函数功能:主程序
 249          
 250          入口参数:
 251          
 252          出口参数:
 253          
 254          ****************************************************************************/
 255          
 256          void main(void)
 257          
 258          {
 259   1      
 260   1      while(1)
 261   1      
 262   1      {
 263   2      
 264   2      keyscan();
 265   2      
 266   2      }
 267   1      
 268   1      }


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