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

📄 key board.lst

📁 用到Proteus软件来仿真51单片机
💻 LST
字号:
A51 MACRO ASSEMBLER  KEY_BOARD                                                            07/27/2006 13:51:02 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Key Board.OBJ
ASSEMBLER INVOKED BY: e:\Program Files\Keil\C51\BIN\A51.EXE Key Board.asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  00B0                 1     DIN             EQU             P3.0
  00B1                 2     CLK             EQU             P3.1
  0030                 3     DBUF    EQU             30H
  0040                 4     TEMP    EQU     40H
0000                   5                     ORG             00H
0000 753010            6                     MOV             30H,#16                 ;数码管显示初始化
0003 1142              7     MAIN:   ACALL   DISP                    ;显示
0005 1109              8                     ACALL   KEY                             ;计算键值
0007 0103              9                     AJMP    MAIN
0009                  10     KEY:                                                    ;计算键码子程序
0009 7590FF           11                     MOV     P1,#0FFH        ;读数前先写1       
000C E590             12                     MOV             A,P1               
000E B4FF02           13                     CJNE    A,#0FFH,K00     ;判断是否有键按下   
0011 0109             14                     AJMP    KEY                     
0013 1167             15     K00:    ACALL   DELAY                  
0015 E590             16                     MOV             A,P1
0017 B4FF02           17                     CJNE    A,#0FFH,K01     ;消除按键抖动    
001A 0109             18                     AJMP    KEY
001C 7B08             19     K01:    MOV             R3,#8              
001E 7A00             20                     MOV     R2,#0                  
0020 F5F0             21                     MOV     B,A                   
0022 90003A           22                     MOV             DPTR,#K0TAB             ;查表比较,计算键值
0025 EA               23     K02:    MOV     A,R2
0026 93               24                     MOVC    A,@A+DPTR             
0027 B5F009           25                     CJNE    A,B,K04               
002A E590             26     K03:    MOV             A,P1                     
002C B4FFFB           27                     CJNE    A,#0FFH,K03     ;等待按键抬起    
002F 1167             28                     ACALL   DELAY                   
0031 EA               29                     MOV     A,R2                    
0032 22               30                     RET
0033 0A               31     K04:    INC     R2              
0034 DBEF             32                     DJNZ    R3,K02
0036 74FF             33                     MOV     A,#0FFH     
0038 0109             34                     AJMP    KEY
003A FEFDFBF7         35     K0TAB:  DB      0FEH,0FDH,0FBH,0F7H       
003E EFDFBF7F         36                     DB      0EFH,0DFH,0BFH,07FH
0042                  37     DISP:                                                   ;数码显示子程序
0042 F530             38                     MOV     DBUF,A                  ;键值存入缓存
0044 7830             39                     MOV     R0,#DBUF
0046 7940             40                     MOV     R1,#TEMP
                      41     
0048 90005D           42     DP10:   MOV     DPTR,#SEGTAB
004B E6               43                     MOV     A,@R0
004C 93               44                     MOVC    A,@A+DPTR               ;根据键值查表取段码
004D F7               45                     MOV     @R1,A                   ;暂存段码
004E 7840             46                     MOV     R0,#TEMP
                      47     
0050 7A08             48     DP12:   MOV     R2,#8                   ;设置移位次数
0052 E6               49                     MOV     A,@R0
0053 33               50     DP13:   RLC     A                               ;段码移位输出
0054 92B0             51                     MOV     DIN,C
0056 C2B1             52                     CLR     CLK                             ;输出移位脉冲
0058 D2B1             53                     SETB    CLK
005A DAF7             54                     DJNZ    R2,DP13
005C 22               55                     RET
005D 3F065B4F         56     SEGTAB: DB      3FH,06H,5BH,4FH,66H         
0061 66                      
0062 6D7D077F         57             DB      6DH,7DH,07H,7FH,6FH
A51 MACRO ASSEMBLER  KEY_BOARD                                                            07/27/2006 13:51:02 PAGE     2

0066 6F                      
                      58                                    
0067 7C02             59     DELAY:  MOV     R4,#02H                
0069 7DF8             60     AA1:    MOV     R5,#0F8H
006B DDFE             61     AA:     DJNZ    R5,AA
006D DCFA             62                     DJNZ    R4,AA1
006F 22               63                     RET
                      64                     END
A51 MACRO ASSEMBLER  KEY_BOARD                                                            07/27/2006 13:51:02 PAGE     3

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

AA . . . . . . . .  C ADDR   006BH   A   
AA1. . . . . . . .  C ADDR   0069H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
CLK. . . . . . . .  B ADDR   00B0H.1 A   
DBUF . . . . . . .  N NUMB   0030H   A   
DELAY. . . . . . .  C ADDR   0067H   A   
DIN. . . . . . . .  B ADDR   00B0H.0 A   
DISP . . . . . . .  C ADDR   0042H   A   
DP10 . . . . . . .  C ADDR   0048H   A   
DP12 . . . . . . .  C ADDR   0050H   A   
DP13 . . . . . . .  C ADDR   0053H   A   
K00. . . . . . . .  C ADDR   0013H   A   
K01. . . . . . . .  C ADDR   001CH   A   
K02. . . . . . . .  C ADDR   0025H   A   
K03. . . . . . . .  C ADDR   002AH   A   
K04. . . . . . . .  C ADDR   0033H   A   
K0TAB. . . . . . .  C ADDR   003AH   A   
KEY. . . . . . . .  C ADDR   0009H   A   
MAIN . . . . . . .  C ADDR   0003H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P3 . . . . . . . .  D ADDR   00B0H   A   
SEGTAB . . . . . .  C ADDR   005DH   A   
TEMP . . . . . . .  N NUMB   0040H   A   


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -