📄 zkjp.lst
字号:
A51 MACRO ASSEMBLER ZKJP 05/28/2005 21:43:03 PAGE 1
MACRO ASSEMBLER A51 V6.12
OBJECT MODULE PLACED IN .\ZKJP.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE .\ZKJP.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1
2
3 CODE_SEG SEGMENT CODE
4 DATA_SEG SEGMENT DATA
5 STACK_SEG SEGMENT IDATA
6
---- 7 RSEG DATA_SEG
0000 8 KEY_S: DS 1
0001 9 KEY_V: DS 1
10
---- 11 RSEG STACK_SEG
0000 12 STACK: DS 20
13
14
0094 15 K1 BIT P1.4 ;
0095 16 K2 BIT P1.5 ;
17
18
---- 19 CSEG AT 0000H
0000 020000 F 20 JMP MAIN
21
22 ;===============================================================================
---- 23 RSEG CODE_SEG
0000 24 MAIN:
0000 758100 F 25 MOV SP,#(STACK-1) ; 设置栈指针
0003 7580FE 26 MOV P0,#0FEH ; 初始点亮LED P00
0006 750003 F 27 MOV KEY_V,#03H ; 初始键值
28
0009 29 KEY_CHKSW: ; 循环检测按键是否按下
0009 1100 F 30 ACALL SCAN_KEY ; 输入按键状态
000B F500 F 31 MOV KEY_S,A
000D 6500 F 32 XRL A,KEY_V ; 检查按键值是否改变
000F 60F8 33 JZ KEY_CHKSW ; 若无键被按,则跳回KEY_CHKSW
34
0011 7F0A 35 MOV R7,#10 ; 延时10ms
0013 1100 F 36 ACALL DELAYMS ; 延时去抖
0015 1100 F 37 ACALL SCAN_KEY ; 再次检查按键值
0017 F500 F 38 MOV KEY_S,A
0019 6500 F 39 XRL A,KEY_V
001B 60EC 40 JZ KEY_CHKSW
41
001D 850000 F 42 MOV KEY_V,KEY_S ; 保存按键状态
0020 1100 F 43 ACALL PROC_KEY ;
0022 80E5 44 SJMP KEY_CHKSW
45 ;===============================================================================
0024 46 SCAN_KEY:
47 ; 扫描按键
48 ; 传入参
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -