📄 8.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: 8.ASM
Object File: 8.HEX
List File: 8.LST
Line I Addr Code Source
1: N 0000 ORG 0000H
2: 0000 01 30 AJMP START
3: N 000B ORG 000BH ;定时器0的中断向量地址
4: 000B 01 71 AJMP TIME0 ;跳转到定时器0中断处理程序处
5: N 0030 ORG 30H
6: 0030 START:
7: 0030 75 89 01 MOV TMOD,#00000001B ;定时0工作于方式1(16位)
8: 0033 75 8C B1 MOV TH0,#0B1H
9: 0036 75 8A E0 MOV TL0,#0E0H ;设定定时时间20ms
10: 0039 D2 8C SETB TR0 ;定时器0开关打开
11: 003B D2 A9 SETB ET0 ;打开开定时/计数器0允许
12: 003D D2 AF SETB EA ;打开总中断允许
13: 003F 90 00 A8 MOV DPTR,#TABLE ;将数据表TABLE的首地址赋给DPTR
14: 0042 75 30 00 MOV 30H,#0 ;30H-33H为显示内容,初始为0
15: 0045 75 31 00 MOV 31H,#0
16: 0048 75 32 00 MOV 32H,#0
17: 004B 75 33 00 MOV 33H,#0
18: 004E 7B 32 MOV R3,#50 ;计溢出次数50×20ms=1S
19: 0050 DISAGAIN:
20: 0050 7C 04 MOV R4,#4
21: 0052 79 30 MOV R1,#30H
22: 0054 7A 80 MOV R2,#10000000B
23: 0056 LOOP:
24: 0056 E7 MOV A,@R1 ;
25: 0057 93 MOVC A,@A+DPTR ;将(A+DPTR)地址中的值赋给A
26: 0058 8A A0 MOV P2,R2 ;选择数码管
27: 005A F5 80 MOV P0,A ;送到P0口数码管显示
28: 005C 12 00 68 LCALL DELAY ;显示延时
29: 005F EA MOV A,R2 ;R2的值移位
30: 0060 03 RR A
31: 0061 FA MOV R2,A
32: 0062 09 INC R1
33: 0063 DC F1 DJNZ R4,LOOP ;扫描完4个否?
34: 0065 02 00 50 LJMP DISAGAIN ;重新开始扫描
35: 0068 DELAY:
36: 0068 7E 04 MOV R6,#4
37: 006A 7F 64 D1: MOV R7,#100
38: 006C DF FE D2: DJNZ R7,D2
39: 006E DE FA DJNZ R6,D1
40: 0070 22 RET
41:
42: 0071 C0 D0 TIME0: PUSH PSW
43: 0073 75 8C B1 MOV TH0,#0B1H
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0076 75 8A E0 MOV TL0,#0E0H ;重置定时时间20ms
45: 0079 DB 2A DJNZ R3,TRUESC;不到1S退出中断程序
46: 007B 7B 32 MOV R3,#50 ;重新赋溢出计数值
47: 007D 05 30 INC 30H ;P2口左移
48: 007F E5 30 MOV A,30H
49: 0081 B4 0A 21 CJNE A,#10,TRUESC
50: 0084 75 30 00 MOV 30H,#0
51: 0087 05 31 INC 31H
52: 0089 E5 31 MOV A,31H
53: 008B B4 06 17 CJNE A,#6,TRUESC
54: 008E 75 31 00 MOV 31H,#0
55: 0091 05 32 INC 32H
56: 0093 E5 32 MOV A,32H
57: 0095 B4 0A 0D CJNE A,#10,TRUESC
58: 0098 75 32 00 MOV 32H,#0
59: 009B 05 33 INC 33H
60: 009D E5 33 MOV A,33H
61: 009F B4 06 03 CJNE A,#6,TRUESC
62: 00A2 75 33 00 MOV 33H,#0
63:
64: 00A5 D0 D0 TRUESC: POP PSW
65: 00A7 32 RETI
66: 00A8 C0 F9 A4 B0 TABLE: DB 0C0H,0F9H,0A4H,0B0H ;0,1,2,3
67: 00AC 99 92 82 F8 DB 99H,92H,82H,0F8H,80H,90H ;4,5,6,7,8,9
00B0 80 90
68: END
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
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
CY BIT D7
D1 CODE 006A 37
D2 CODE 006C 38
DELAY CODE 0068 35
DISAGAIN CODE 0050 19
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
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
LOOP CODE 0056 23
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
RS0 BIT D3
RS1 BIT D4
RXD BIT B0
SBUF DATA 99
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 0030 6
T0 BIT B4
T1 BIT B5
TABLE CODE 00A8 66
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIME0 CODE 0071 42
TIMER0 CODE 000B
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TRUESC CODE 00A5 64
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -