📄 counter(4_bit).lst
字号:
A51 MACRO ASSEMBLER COUNTER_4_BIT_ 07/27/2006 21:46:54 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Counter(4_bit).OBJ
ASSEMBLER INVOKED BY: e:\Program Files\Keil\C51\BIN\A51.EXE Counter(4_bit).asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 00H
0000 E5B0 2 START: MOV A,P3 ;读置数开关状态(初始值)
0002 F590 3 MOV P1,A ;输出初始值
0004 F4 4 CPL A
0005 540F 5 ANL A,#0FH ;将按键状态转化为计数值
0007 F9 6 MOV R1,A
0008 30B606 7 S1: JNB P3.6,K1 ;如果加1键按下,转K1
000B 30B719 8 JNB P3.7,K2 ;如果减1键按下,转K2
000E 020008 9 LJMP S1
0011 B90F06 10 K1: CJNE R1,#0FH,D1 ;是否达到最大值
0014 20B6E9 11 JB P3.6,START
0017 020011 12 LJMP K1
001A 09 13 D1: INC R1 ;计数值加1
001B E9 14 MOV A,R1
001C F4 15 CPL A
001D 540F 16 ANL A,#0FH ;将计数值转换为显示码
001F F590 17 D2: MOV P1,A ;显示计数值
0021 20B6E4 18 JB P3.6,S1 ;等待按键释放
0024 02001F 19 LJMP D2
0027 B90006 20 K2: CJNE R1,#00H,D3 ;是否达到最小值
002A 20B7D3 21 JB P3.7,START
002D 020027 22 LJMP K2
0030 19 23 D3: DEC R1 ;计数值减1
0031 E9 24 MOV A,R1
0032 F4 25 CPL A
0033 540F 26 ANL A,#0FH ;将计数值转换为显示码
0035 F590 27 D4: MOV P1,A ;显示计数值
0037 20B7CE 28 JB P3.7,S1 ;等待按键释放
003A 020035 29 LJMP D4
30 END
A51 MACRO ASSEMBLER COUNTER_4_BIT_ 07/27/2006 21:46:54 PAGE 2
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
D1 . . . . . . . . C ADDR 001AH A
D2 . . . . . . . . C ADDR 001FH A
D3 . . . . . . . . C ADDR 0030H A
D4 . . . . . . . . C ADDR 0035H A
K1 . . . . . . . . C ADDR 0011H A
K2 . . . . . . . . C ADDR 0027H A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
S1 . . . . . . . . C ADDR 0008H A
START. . . . . . . C ADDR 0000H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -