📄 key.lst
字号:
A51 MACRO ASSEMBLER KEY 06/23/2007 09:43:50 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 ; 受控输出实例2
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处
0003 10 ORG 0003H ;伪指令,外部中断0中断程序入口地址
0003 020123 11 LJMP KEY_INT ;跳转指令,程序跳转到KEY_INT处
12
0100 13 ORG 0100H ;伪指令,指定以下程序从0100H开始存放
0100 14 MAIN:
0100 758160 15 MOV SP,#60H ;给堆栈指针赋初值
0103 D2B2 16 SETB KEY_PIN ;置一P3.2,初始化输入口
0105 7530FF 17 MOV COUNT,#0FFH ;给计数变量COUNT赋初值
0108 853090 18 MOV P1,COUNT ;给P1赋初值,LED全灭
19
010B 120119 20 LCALL X0_INIT ;调用外部中断0初始化子程序
21
010E 80FE 22 SJMP $ ;程序原地跳转,等待中断
23
24 ;延时10MS子程序
0110 25 DELAY10MS:
0110 7F14 26 MOV R7,#20
0112 27 DELAY0:
0112 7EFA 28 MOV R6,#250
0114 DEFE 29 DJNZ R6,$
0116 DFFA 30 DJNZ R7,DELAY0
0118 22 31 RET
32
0119 33 X0_INIT:
34 ;---------------------------------
35 ; 外部中断0初始化子程序
36 ;---------------------------------
0119 758801 37 MOV TCON,#01H ;外部中断0为下降沿触发
011C 75B801 38 MOV IP,#01H ;外部中断0为高优先级
011F 75A881 39 MOV IE,#81H ;允许外部中断0
0122 22 40 RET
41
0123 42 KEY_INT:
43 ;---------------------------------
44 ; 外部中断0服务程序
45 ;---------------------------------
0123 C0D0 46 PUSH PSW
0125 D2D4 47 SETB RS1
0127 120110 48 LCALL DELAY10MS ;延时10MS,按键抖动消除
012A A2B2 49 MOV C,KEY_PIN
012C 4005 50 JC KEY_INT_EXIT
012E 1530 51 DEC COUNT ;按键被按下,计数加一
0130 853090 52 MOV P1,COUNT ;LED输出显示
0133 53 KEY_INT_EXIT:
0133 D0D0 54 POP PSW
0135 32 55 RETI
56
57 END
A51 MACRO ASSEMBLER KEY 06/23/2007 09:43:50 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 0112H A
DELAY10MS. . . . . C ADDR 0110H A
IE . . . . . . . . D ADDR 00A8H A
IP . . . . . . . . D ADDR 00B8H A
KEY_INT. . . . . . C ADDR 0123H A
KEY_INT_EXIT . . . C ADDR 0133H A
KEY_PIN. . . . . . B ADDR 00B0H.2 A
MAIN . . . . . . . C ADDR 0100H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
PSW. . . . . . . . D ADDR 00D0H A
RS1. . . . . . . . B ADDR 00D0H.4 A
SP . . . . . . . . D ADDR 0081H A
TCON . . . . . . . D ADDR 0088H A
X0_INIT. . . . . . C ADDR 0119H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -