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

📄 key.lst

📁 这个是44行列式键盘
💻 LST
字号:
C51 COMPILER V7.50   KEY                                                                   09/01/2006 17:22:50 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /************************************************************************************/
   2          /*     程序名:44键盘代码                                                           */
   3          /*                                                                                  */
   4          /*     晶振:12.0 M                                        CPU型号:AT89S52         */
   5          /*                                                                                  */
   6          /*                                                                                  */
   7          /*     功能描述: 44键盘代码,需将J13,J14连接P1口                                   */
   8          /*                    将J2跳线帽插上便于观察实验现象                                            */
   9          /*        K1(0)  K2(1)  K3(2)  K4(3)  K9(8)   K10(9)  K11(A)  K12(B)                */ 
  10          /*        K5(4)  K6(5)  K7(6)  K8(7)  K13(C)  K14(D)  K15(E)  K16(F)                */               
  11          /*                                                                                  */
  12          /*     http://www.mculover.net                                                      */
  13          /*     http://www.mculover.net/bbs                                                  */
  14          /*                                                                                                                                                      */
  15          /*                                                湘灵电子工作室 版权所有           */     
  16          /*                                                         2006-03-20               */
  17          /************************************************************************************/ 
  18          #include<reg51.h>
  19           
  20          unsigned char code tab[ ]={0xc0, 0xf9, 0xa4, 0xb0, 
  21                                                                  0x99, 0x92, 0x82, 0xf8, 
  22                                                                  0x80, 0x90, 0x88, 0x83,
  23                                                                  0xc6, 0xa1, 0x86, 0x8e};//0到F的16个键植
  24          
  25          /******************************************************************************/
  26          void delayt(unsigned char t)//延时函数
  27          {
  28   1              unsigned char a;
  29   1              while( --t != 0)
  30   1              {
  31   2                      for(a=0;a<125;a++);
  32   2          }
  33   1      }
  34          
  35          /******************************************************************************/
  36          bit pkey(void)//判断键的否被按下,通过返回值确定
  37          {
  38   1              P1=0xf0;
  39   1              if(P1!=0xf0)
  40   1              {
  41   2              delayt(20);
  42   2              if(P1 != 0xf0)
  43   2                      return 1;
  44   2              else 
  45   2                      return 0;
  46   2          }
  47   1              else
  48   1              return 0;
  49   1      }
  50          
  51          /******************************************************************************/
  52          void main(void)//主函数
  53          {
  54   1              unsigned char key, j ,k, s;
  55   1      
C51 COMPILER V7.50   KEY                                                                   09/01/2006 17:22:50 PAGE 2   

  56   1              while(1)
  57   1              {
  58   2                              if(pkey()== 1)//确定键被按下
  59   2                              {   
  60   3                              P1=0xfe;
  61   3                                      k=0xfe;
  62   3                              for(j=0;j<4;j++)
  63   3                          {   
  64   4                              s=P1&0xf0;
  65   4                                      switch(s)
  66   4                                              {
  67   5                                                      case 0xe0: key=4*j+0; break;    
  68   5                                                      case 0xd0: key=4*j+1; break;
  69   5                                                      case 0xb0: key=4*j+2; break;
  70   5                                                      case 0x70: key=4*j+3; break;
  71   5                                                      default:        break;
  72   5                                              }
  73   4                                              k=(k<<1)|0x01;
  74   4                                              P1=k;
  75   4                     }//for
  76   3                              }//if
  77   2                      //if((P1&0xf0)==0xf0)
  78   2                      
  79   2                      P0=tab[key];
  80   2                      P2=0xfe;
  81   2                      delayt(10);
  82   2              }//while
  83   1      }
  84          
  85           


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    139    ----
   CONSTANT SIZE    =     16    ----
   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 + -