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

📄 text1.lst

📁 4*4矩阵键盘按键显示按键值
💻 LST
字号:
C51 COMPILER V8.02   TEXT1                                                                 03/22/2009 20:22:59 PAGE 1   


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

line level    source

   1          #include<reg52.h>
   2          #define unchar unsigned char 
   3          
   4           /*----------------------------
   5           延时
   6           -----------------------------*/
   7          void delay()
   8           {  
   9   1          unchar i,j;
  10   1          for(i=0;i<20;i++)
  11   1              for(j=0;j<20;j++); 
  12   1       }
  13          
  14          unchar Led[]={0x3f,0x06,0x5b,0x4f,0x66};
  15          unchar disbuf[4]={0};
  16          
  17          /*----------------------------
  18          判断有无按键,并返回按键值
  19          ----------------------------*/
  20          
  21          unchar  Keybcd()
  22          {
  23   1        unchar count,cmd,key;
  24   1        key=0;
  25   1       while(key==0)
  26   1        { P1=0x0f;
  27   2            if( P1!=0x0f){
  28   3                delay();
  29   3                           if(P1!=0x0f){
  30   4                                  cmd=0xef;
  31   4      
  32   4      for(count=0;count<4;count++){
  33   5         P1=cmd;
  34   5         if((P1&0x0f)!=0x0f){
  35   6                       key= (cmd&0xf0)+(P1&0x0f);
  36   6                                        key=~key;
  37   6                                             break;}
  38   5         else
  39   5            cmd=(cmd<<1)+1;
  40   5                              }
  41   4                    }
  42   3           }
  43   2        else  
  44   2            return(0); 
  45   2         }
  46   1                
  47   1         P1=0x0f;
  48   1         while(P1!=0x0f);
  49   1        return(key);
  50   1       }
  51          /*----------------------------
  52          LED显示
  53          ---------------------------*/
  54          void display()
  55          {
C51 COMPILER V8.02   TEXT1                                                                 03/22/2009 20:22:59 PAGE 2   

  56   1       static unchar x=0 ;
  57   1        switch(x){
  58   2                 case 0:P2=0xff;P0=Led[disbuf[0]];P2=0xf7;delay();x=1;break;
  59   2                         case 1:P2=0xff;P0=Led[disbuf[1]];P2=0xfb;delay();x=2;break;
  60   2                         case 2:P2=0xff;P0=Led[disbuf[2]];P2=0xfd;delay();x=3;break;
  61   2                         case 3:P2=0xff;P0=Led[disbuf[3]];P2=0xfe;delay();x=0;break;
  62   2                         }
  63   1      }
  64           /*-----------------------------
  65           有按键就移位
  66           ------------------------------*/
  67          void yi_wei(unchar a[],unchar x)
  68          {
  69   1         unchar i;
  70   1         for(i=3;i>0;i--){
  71   2              a[i]=a[i-1];
  72   2              }
  73   1                      a[i]=x;
  74   1      }
  75          /*----------------------------
  76          主程序
  77          ------------------------------*/
  78          void main()
  79          {
  80   1         unchar var,temp;
  81   1         while(1){
  82   2         display();
  83   2      
  84   2         var=Keybcd();         
  85   2      
  86   2        if(var==0x28){
  87   3               temp=1;
  88   3                       yi_wei(disbuf,temp);
  89   3                   display();
  90   3                            }
  91   2          else if(var==0x24) {
  92   3                    temp=2;
  93   3                        yi_wei(disbuf,temp);
  94   3                        display();
  95   3                         
  96   3                        }
  97   2                 else if(var==0x22){
  98   3                     temp=3;
  99   3                         yi_wei(disbuf,temp);
 100   3                         display();
 101   3                         }
 102   2                 else if(var==0x48){
 103   3                       temp=4;
 104   3                           yi_wei(disbuf,temp);
 105   3                           display();
 106   3                      }  
 107   2              }
 108   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    306    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     10       4
   IDATA SIZE       =   ----    ----
C51 COMPILER V8.02   TEXT1                                                                 03/22/2009 20:22:59 PAGE 3   

   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 + -