📄 akey_s.lst
字号:
A51 MACRO ASSEMBLER AKEY_S 09/06/2003 18:27:24 PAGE 1
MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN akey_s.OBJ
ASSEMBLER INVOKED BY: C:\KEIL\C51\BIN\A51.EXE akey_s.asm SET(LARGE) DEBUG EP
LOC OBJ LINE SOURCE
1 ;参数定义
0060 2 SPBM DATA 60H
0092 3 KDKEY BIT P1.2 ;定义键盘检测位
0090 4 FRIT EQU P1 ;定义P1口
5 ;程序开始
4000 6 ORG 4000H
4000 024100 7 LJMP MAIN
8
4100 9 ORG 4100H ;程序从4100H单元开始存放
4100 758160 10 MAIN: MOV SP,#SPBM;给堆栈指针赋初值
11
4103 12 KEY1:
4103 3107 13 ACALL KEY ;调KEY子程序
14
4105 2103 15 AJMP KEY1 ;继续
16
4107 17 KEY:
4107 C0D0 18 PUSH PSW
4109 C0E0 19 PUSH ACC
410B 79FF 20 KEYREP: MOV R1,#0FFH;赋初值
410D 7400 21 MOV A,#00H
410F 3135 22 ACALL TXDBYTE
4111 2092F7 23 JB KDKEY,KEYREP
4114 3149 24 ACALL DELAY
4116 7900 25 MOV R1,#00H
4118 74FE 26 MOV A,#0FEH ;是,则判断其键值
411A 27 KEYZHI:
411A C297 28 CLR P1.7
411C 3149 29 ACALL DELAY
411E D297 30 SETB P1.7
4120 C297 31 CLR P1.7
4122 3149 32 ACALL DELAY
4124 D297 33 SETB P1.7
4126 3135 34 ACALL TXDBYTE
4128 309205 35 JNB KDKEY,KEYRET ;是,则保存退出
412B 23 36 RL A ;否则检测下一个键
412C 09 37 INC R1
412D B47FEA 38 CJNE A,#7FH,KEYZHI ;检测完了吗?
4130 39 KEYRET:
4130 D0E0 40 POP ACC
4132 D0D0 41 POP PSW
4134 22 42 RET
43
4135 44 TXDBYTE:
4135 C0D0 45 PUSH PSW
4137 C0E0 46 PUSH ACC
4139 7B08 47 MOV R3,#08H
413B 33 48 TXDUP: RLC A ;
413C 9290 49 MOV P1.0,C
413E C291 50 CLR P1.1
4140 D291 51 SETB P1.1
4142 DBF7 52 DJNZ R3,TXDUP
4144 D0E0 53 POP ACC
4146 D0D0 54 POP PSW
4148 22 55 RET
56
4149 7F10 57 DELAY: MOV R7,#10H
414B 7E10 58 DELAY0: MOV R6,#10H
A51 MACRO ASSEMBLER AKEY_S 09/06/2003 18:27:24 PAGE 2
414D DEFE 59 DELAY1: DJNZ R6,DELAY1
414F DFFA 60 DJNZ R7,DELAY0
4151 22 61 RET
62 END
A51 MACRO ASSEMBLER AKEY_S 09/06/2003 18:27:24 PAGE 3
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
ACC. . . . . . . . D ADDR 00E0H A
DELAY. . . . . . . C ADDR 4149H A
DELAY0 . . . . . . C ADDR 414BH A
DELAY1 . . . . . . C ADDR 414DH A
FRIT . . . . . . . D ADDR 0090H A
KDKEY. . . . . . . B ADDR 0090H.2 A
KEY. . . . . . . . C ADDR 4107H A
KEY1 . . . . . . . C ADDR 4103H A
KEYREP . . . . . . C ADDR 410BH A
KEYRET . . . . . . C ADDR 4130H A
KEYZHI . . . . . . C ADDR 411AH A
MAIN . . . . . . . C ADDR 4100H A
P1 . . . . . . . . D ADDR 0090H A
PSW. . . . . . . . D ADDR 00D0H A
SP . . . . . . . . D ADDR 0081H A
SPBM . . . . . . . D ADDR 0060H A
TXDBYTE. . . . . . C ADDR 4135H A
TXDUP. . . . . . . C ADDR 413BH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -