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

📄 4x4key.lst

📁 与C51相关模块LCD,24CXX,等的源代码程序
💻 LST
字号:
C51 COMPILER V7.06   4X4KEY                                                                03/03/2006 15:27:36 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE 4X4KEY
OBJECT MODULE PLACED IN 4X4Key.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 4X4Key.c BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS

stmt level    source

   1          //--------------------------------------------------------
   2          #include <at89x51.h>
   3          #include "4X4Key.h"
   4          //--------------------------------------------------------
   5          #define KEYPORT P1
   6          #define HLINES  4
   7          #define VLINES  4
   8          //--------------------------------------------------------
   9          unsigned char GetKey(void);
  10          //--------------------------------------------------------
  11          static unsigned char oldkey=0;
  12          //--------------------------------------------------------
  13          unsigned char GetKey(){
  14   1              unsigned char i,j,tmp;
  15   1              
  16   1              KEYPORT=0xf0;
  17   1              tmp=~(KEYPORT|0x0f);
  18   1              if(!tmp){oldkey=NOKEY;return NOKEY;}
  19   1              if(oldkey!=NOKEY)return NOKEY;
  20   1      
  21   1              for(i=0;i<HLINES;i++){
  22   2                      KEYPORT=~(1<<i);
  23   2                      tmp=~(KEYPORT|0x0f);    
  24   2                      for(j=0;j<VLINES;j++)if(tmp==(0x10<<j)){
  25   3                              oldkey=i*4+j;
  26   3                              return oldkey;
  27   3                      }
  28   2              }
  29   1              return NOKEY;
  30   1      }
  31          //--------------------------------------------------------
C51 COMPILER V7.06   4X4KEY                                                                03/03/2006 15:27:36 PAGE 2   

ASSEMBLY LISTING OF GENERATED OBJECT CODE


             ; FUNCTION GetKey (BEGIN)
                                           ; SOURCE LINE # 13
                                           ; SOURCE LINE # 16
0000 7590F0            MOV     P1,#0F0H
                                           ; SOURCE LINE # 17
0003 E590              MOV     A,P1
0005 440F              ORL     A,#0FH
0007 F4                CPL     A
;---- Variable 'tmp' assigned to Register 'R1' ----
0008 F9                MOV     R1,A
                                           ; SOURCE LINE # 18
0009 7006              JNZ     ?C0001
000B 7500FF      R     MOV     oldkey,#0FFH
000E 7FFF              MOV     R7,#0FFH
0010 22                RET     
0011         ?C0001:
                                           ; SOURCE LINE # 19
0011 E500        R     MOV     A,oldkey
0013 F4                CPL     A
0014 6003              JZ      ?C0003
0016 7FFF              MOV     R7,#0FFH
0018 22                RET     
0019         ?C0003:
                                           ; SOURCE LINE # 21
;---- Variable 'i' assigned to Register 'R5' ----
0019 E4                CLR     A
001A FD                MOV     R5,A
001B         ?C0004:
                                           ; SOURCE LINE # 22
001B 7401              MOV     A,#01H
001D A805              MOV     R0,AR5
001F 08                INC     R0
0020 8002              SJMP    ?C0012
0022         ?C0011:
0022 C3                CLR     C
0023 33                RLC     A
0024         ?C0012:
0024 D8FC              DJNZ    R0,?C0011
0026 F4                CPL     A
0027 F590              MOV     P1,A
                                           ; SOURCE LINE # 23
0029 E590              MOV     A,P1
002B 440F              ORL     A,#0FH
002D F4                CPL     A
002E F9                MOV     R1,A
                                           ; SOURCE LINE # 24
;---- Variable 'j' assigned to Register 'R4' ----
002F E4                CLR     A
0030 FC                MOV     R4,A
0031         ?C0007:
0031 7410              MOV     A,#010H
0033 7E00              MOV     R6,#00H
0035 A804              MOV     R0,AR4
0037 08                INC     R0
0038 8005              SJMP    ?C0014
003A         ?C0013:
003A C3                CLR     C
003B 33                RLC     A
003C CE                XCH     A,R6
C51 COMPILER V7.06   4X4KEY                                                                03/03/2006 15:27:36 PAGE 3   

003D 33                RLC     A
003E CE                XCH     A,R6
003F         ?C0014:
003F D8F9              DJNZ    R0,?C0013
0041 FF                MOV     R7,A
0042 E9                MOV     A,R1
0043 7A00              MOV     R2,#00H
0045 B5070E            CJNE    A,AR7,?C0009
0048 EA                MOV     A,R2
0049 B5060A            CJNE    A,AR6,?C0009
                                           ; SOURCE LINE # 25
004C ED                MOV     A,R5
004D 25E0              ADD     A,ACC
004F 25E0              ADD     A,ACC
0051 2C                ADD     A,R4
0052 F500        R     MOV     oldkey,A
                                           ; SOURCE LINE # 26
0054 FF                MOV     R7,A
0055 22                RET     
                                           ; SOURCE LINE # 27
0056         ?C0009:
0056 0C                INC     R4
0057 BC04D7            CJNE    R4,#04H,?C0007
                                           ; SOURCE LINE # 28
005A         ?C0006:
005A 0D                INC     R5
005B BD04BD            CJNE    R5,#04H,?C0004
005E         ?C0005:
                                           ; SOURCE LINE # 29
005E 7FFF              MOV     R7,#0FFH
                                           ; SOURCE LINE # 30
0060         ?C0002:
0060 22                RET     
             ; FUNCTION GetKey (END)

C51 COMPILER V7.06   4X4KEY                                                                03/03/2006 15:27:36 PAGE 4   

NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
====                                    =====   ======  ====    ======  ====


P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
oldkey . . . . . . . . . . . . . . . .  STATIC   DATA   U_CHAR   0000H  1
GetKey . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  i. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0005H  1
  j. . . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0004H  1
  tmp. . . . . . . . . . . . . . . . .  * REG *  DATA   U_CHAR   0001H  1


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