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

📄 myfunction.lst

📁 stc/at89c51 的4乘4行列式按键程序
💻 LST
字号:
C51 COMPILER V6.23a  MYFUNCTION                                                            03/16/2006 10:12:21 PAGE 1   


C51 COMPILER V6.23a, COMPILATION OF MODULE MYFUNCTION
OBJECT MODULE PLACED IN MyFunction.obj
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE SCR\MyFunction.c BROWSE DEBUG OBJECTEXTEND PRINT(.\MyFunction.lst) OBJECT(M
                    -yFunction.obj) 

stmt level    source

   1             #include <at89x52.h>
   2             #include  "myiclude.h"
   3             unsigned char  a[]={0x3f,0x06,0x5b,0x4f,0x66 ,0x6d ,0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c};
   4             void delay(unsigned char j) 
   5                 {
   6   1                unsigned char m,k;
   7   1                for(m=0;m<j;m++)
   8   1                for(k=0;k<5;k++);
   9   1               }
  10                  unsigned char GetKey()
  11                  { unsigned char x;
  12   1                if((PointW==PointR)&(OverFlag==0)) {LampEempty=1;LampFull=0;return 255;}
  13   1                if(PointR>=KeyBufSize) PointR=0; 
  14   1                x=KeyBuf[PointR];
  15   1            PointR++;
  16   1                return x;
  17   1               }
  18                  void LcdDriver()
  19                   { static unsigned char i,j;
  20   1                 j=i;
  21   1                 i=GetKey();
  22   1                 if(i==255)  { DispBuf[0]=j; i=j;}
  23   1                 else DispBuf[0]=i;
  24   1                 DispBuf[1]=DispBuf[0];
  25   1                }
  26                  unsigned char PutKey()
  27                  { 
  28   1               if((PointW-PointR)==KeyBufSize-1) {LampEempty=0;LampFull=1;return 255;}
  29   1           if(PointW>=KeyBufSize) { PointW=0; OverFlag=1;} 
  30   1               if((PointW==PointR)&(OverFlag==1)){LampEempty=0;LampFull=1;OverFlag=0;return 255;}
  31   1               KeyBuf[PointW]=JianZi;
  32   1               PointW++;
  33   1              }
  34                  unsigned char KeyDriver()
  35                  { unsigned char x,y,key;
  36   1                P2=0x0f;                              //低四位输入1,高四位输出0
  37   1                x=P2;
  38   1                x=x&0x0f;                     //P2输入后,清高四位,作为X值
  39   1                P2=0xf0;                              //高四位输入1,低四位输出0
  40   1                y=P2;
  41   1            y=y&0xf0; //P2输入后移位到低四位,并清高四位,作为Y值
  42   1            key=x|y;
  43   1                key=key&0xfe;
  44   1                return key;
  45   1               }
  46              void Key()
  47                  {
  48   1                unsigned char Keyok;
  49   1                Keyok=KeyDriver();
  50   1                if(Keyok==254){return;}
  51   1                 else
  52   1              {
  53   2               switch(Keyok)
  54   2                   {
C51 COMPILER V6.23a  MYFUNCTION                                                            03/16/2006 10:12:21 PAGE 2   

  55   3                    case 236: JianZi=3; break;
  56   3                        case 234: JianZi=2; break;
  57   3                        case 230: JianZi=1; break;
  58   3      
  59   3                        case 220: JianZi=6; break;
  60   3                        case 218: JianZi=5; break;
  61   3                        case 214: JianZi=4; break;
  62   3      
  63   3                        case 188: JianZi=9; break;
  64   3                        case 186: JianZi=8; break;
  65   3                        case 182: JianZi=7; break;
  66   3      
  67   3                        case 124: JianZi=0; break;
  68   3                        case 122: JianZi=11; break;
  69   3                        case 118: JianZi=10; break;
  70   3                       }
  71   2                        PutKey();
  72   2                    LcdDriver();
  73   2                  }
  74   1               }
  75               void display(void) //显示函数
  76                   {
  77   1                static unsigned char sys;
  78   1                switch(sys)
  79   1                { case 0:P3_5=1;
  80   2                             P2_0=0;
  81   2                             P0=a[DispBuf[0]];
  82   2                                 sys=1;
  83   2                                 break;
  84   2                     case 1:P3_5=0;
  85   2                            P2_0=1;
  86   2                                P0=a[DispBuf[1]];
  87   2                                sys=0;
  88   2                                break;
  89   2                }
  90   1                }


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