📄 counter.lst
字号:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 1
MCS-51 Family Cross Assembler A S E M - 5 1 V 1.2
=====================================================
Source File: COUNTER.ASM
Object File: COUNTER.HEX
List File: COUNTER.LST
Line I Addr Code Source
1: N 0030 COUNT EQU 30H ;计数单元
2: N 0031 BUF EQU 31H ;显示缓冲区首地址,共2字节
3: N 0000 ORG 0
4: 0000 02 00 30 LJMP START
5: N 0003 ORG 3
6: 0003 02 00 B6 LJMP JS
7: N 0030 ORG 30H
8: 0030 75 81 60 START: MOV SP,#60H
9: 0033 D2 88 SETB IT0 ;设INT0为边沿中断
10: 0035 D2 A8 SETB EX0 ;允许INT0中断
11: 0037 75 30 00 MOV COUNT,#0 ;计数单元清零
12: 003A D2 B2 SETB P3.2 ;设置INT0管脚为输入状态
13: 003C D2 AF SETB EA ;开中断
14: 003E AE 30 LOOP: MOV R6,COUNT ;取计数值
15: 0040 12 00 A5 LCALL HTOB ;将计数值转换为BCD码
16: 0043 8A 31 MOV BUF,R2 ;存转换后的计数值
17: 0045 8B 32 MOV BUF+1,R3
18: 0047 12 00 4C LCALL DISP
19: 004A 80 F2 SJMP LOOP
20: ;显示程序
21: ;将BUF单元的2字节BCD码送数码管显示
22: 004C 78 31 DISP: MOV R0,#BUF
23: 004E 7A 02 MOV R2,#2 ;共显示2个字节的BCD码
24: 0050 7B 01 MOV R3,#1 ;位码初值
25: 0052 E6 MOV A,@R0
26: 0053 54 0F ANL A,#0FH
27: 0055 90 00 94 MOV DPTR,#DISP_TAB
28: 0058 93 MOVC A,@A+DPTR
29: 0059 F5 80 MOV P0,A ;送段码
30: 005B EB MOV A,R3
31: 005C 75 A0 02 MOV P2,#2
32: 005F 12 00 CD LCALL DELAY ;延时1ms
33: 0062 E6 MOV A,@R0
34: 0063 C4 SWAP A
35: 0064 54 0F ANL A,#0FH
36: 0066 90 00 94 MOV DPTR,#DISP_TAB
37: 0069 93 MOVC A,@A+DPTR
38: 006A F5 80 MOV P0,A ;送段码
39: 006C 75 A0 01 MOV P2,#1
40: 006F 12 00 CD LCALL DELAY
41: 0072 08 INC R0
42: 0073 E6 MOV A,@R0
43: 0074 54 0F ANL A,#0FH
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0076 90 00 94 MOV DPTR,#DISP_TAB
45: 0079 93 MOVC A,@A+DPTR
46: 007A F5 80 MOV P0,A ;送段码
47: 007C EB MOV A,R3
48: 007D 75 A0 08 MOV P2,#8
49: 0080 12 00 CD LCALL DELAY ;延时1ms
50: 0083 E6 MOV A,@R0
51: 0084 C4 SWAP A
52: 0085 54 0F ANL A,#0FH
53: 0087 90 00 94 MOV DPTR,#DISP_TAB
54: 008A 93 MOVC A,@A+DPTR
55: 008B F5 80 MOV P0,A ;送段码
56: 008D 75 A0 04 MOV P2,#4
57: 0090 12 00 CD LCALL DELAY
58: 0093 22 RET
59: 0094 C0 F9 A4 B0 DISP_TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H
0098 99 92 82 F8
60: 009C 80 90 88 83 DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH
00A0 C6 A1 86 8E
00A4 FF
61: ;这是一个将16进制数转换为BCD码的程序
62: ;待转换的16进制数在R6中,转换完的结果在R2R3中
63: ;使用的寄存器A,,B,R6,R2,R3
64: 00A5 EE HTOB: MOV A,R6
65: 00A6 75 F0 64 MOV B,#100
66: 00A9 84 DIV AB
67: 00AA FA MOV R2,A
68: 00AB E5 F0 MOV A,B
69: 00AD 75 F0 0A MOV B,#10
70: 00B0 84 DIV AB
71: 00B1 C4 SWAP A
72: 00B2 25 F0 ADD A,B
73: 00B4 FB MOV R3,A
74: 00B5 22 RET
75: ;计数程序
76: ;计数值为1字节 存在COUNT单元
77: 00B6 C0 D0 JS: PUSH PSW
78: 00B8 C0 E0 PUSH ACC
79: 00BA C0 83 PUSH DPH
80: 00BC C0 82 PUSH DPL
81: 00BE C2 D4 CLR RS1
82: 00C0 D2 D3 SETB RS0 ;选择1区工作寄存器
83: 00C2 05 30 INC COUNT
84: 00C4 D0 82 POP DPL
85: 00C6 D0 83 POP DPH
86: 00C8 D0 E0 POP ACC
87: 00CA D0 D0 POP PSW
88: 00CC 32 RETI
89: 00CD 7E FA DELAY: MOV R6,#250
90: 00CF 00 L1: NOP
91: 00D0 00 NOP
92: 00D1 DE FC DJNZ R6,L1
93: 00D3 22 RET
94: END
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AC BIT D6
ACC DATA E0
B DATA F0
BUF NUMBER 0031 2
COUNT NUMBER 0030 1
CY BIT D7
DELAY CODE 00CD 89
DISP CODE 004C 22
DISP_TAB CODE 0094 59
DPH DATA 83
DPL DATA 82
EA BIT AF
ES BIT AC
ET0 BIT A9
ET1 BIT AB
EX0 BIT A8
EX1 BIT AA
EXTI0 CODE 0003
EXTI1 CODE 0013
F0 BIT D5
HTOB CODE 00A5 64
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
JS CODE 00B6 77
L1 CODE 00CF 90
LOOP CODE 003E 14
OV BIT D2
P BIT D0
P0 DATA 80
P1 DATA 90
P2 DATA A0
P3 DATA B0
PCON DATA 87
PS BIT BC
PSW DATA D0
PT0 BIT B9
PT1 BIT BB
PX0 BIT B8
PX1 BIT BA
RB8 BIT 9A
RD BIT B7
REN BIT 9C
RESET CODE 0000
RI BIT 98
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 0030 8
T0 BIT B4
T1 BIT B5
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -