📄 key.lst
字号:
A51 MACRO ASSEMBLER KEY 06/23/2007 09:42:34 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN key.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE key.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;-----------------------------------
2 ; 受控输出实例1
3 ;功能:查询方式检测按键状态,8只LED显示按键被按下次数的二进制值
4 ;-----------------------------------
00B2 5 KEY_PIN EQU P3.2
0030 6 COUNT DATA 30H
7
0000 8 ORG 0000H ;伪指令,指定程序从0000H开始存放
0000 020100 9 LJMP MAIN ;跳转指令,程序跳转到MAIN处
10
0100 11 ORG 0100H ;伪指令,指定以下程序从0100H开始存放
0100 12 MAIN:
0100 758160 13 MOV SP,#60H ;给堆栈指针赋初值
0103 D2B2 14 SETB KEY_PIN ;置一P3.2,初始化输入口
0105 7530FF 15 MOV COUNT,#0FFH ;给计数变量COUNT赋初值
0108 853090 16 MOV P1,COUNT ;给P1赋初值,LED全灭
010B 17 KEY:
010B A2B2 18 MOV C,KEY_PIN ;检测按键
010D 40FC 19 JC KEY
010F 12011D 20 LCALL DELAY10MS ;延时10MS,按键抖动消除
0112 A2B2 21 MOV C,KEY_PIN
0114 40F5 22 JC KEY
0116 1530 23 DEC COUNT ;按键被按下,计数加一
0118 853090 24 MOV P1,COUNT ;LED输出显示
011B 80EE 25 SJMP KEY ;跳转,程序继续
26
27 ;延时10MS子程序
011D 28 DELAY10MS:
011D 7F14 29 MOV R7,#20
011F 30 DELAY0:
011F 7EFA 31 MOV R6,#250
0121 DEFE 32 DJNZ R6,$
0123 DFFA 33 DJNZ R7,DELAY0
0125 22 34 RET
35
36 END
A51 MACRO ASSEMBLER KEY 06/23/2007 09:42:34 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
COUNT. . . . . . . D ADDR 0030H A
DELAY0 . . . . . . C ADDR 011FH A
DELAY10MS. . . . . C ADDR 011DH A
KEY. . . . . . . . C ADDR 010BH A
KEY_PIN. . . . . . B ADDR 00B0H.2 A
MAIN . . . . . . . C ADDR 0100H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
SP . . . . . . . . D ADDR 0081H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -