📄 11.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: 11.ASM
Object File: 11.HEX
List File: 11.LST
Line I Addr Code Source
1: N 0000 ORG 0H
2: 0000 02 00 30 LJMP START
3: N 0003 ORG 0003H ;INT0中断处理程序入口地址
4: 0003 01 9C AJMP EXTINT0 ;跳转到EXINT0
5: N 000B ORG 000BH ;定时/计数器0中断处理程序入口地址
6: 000B 01 79 AJMP TIMER0INT ;跳转到TIMER0INT
7: N 0013 ORG 0013H ;INT1中断处理程序入口地址
8: 0013 01 AB AJMP EXTINT1 ;跳转到EXINT1
9: N 0030 ORG 30H
10: 0030 START:
11: 0030 D2 AA SETB EX1 ;开外部中断1
12: 0032 D2 A8 SETB EX0 ;开外部中断0
13: 0034 D2 8A SETB IT1 ;外部中断1由下降沿触发
14: 0036 D2 88 SETB IT0 ;外部中断0由下降沿触发
15:
16: 0038 75 89 01 MOV TMOD,#00000001B ;定时0工作于方式1(16位)
17: 003B 75 8C B1 MOV TH0,#0B1H
18: 003E 75 8A E0 MOV TL0,#0E0H ;设定定时时间20ms
19: 0041 D2 A9 SETB ET0 ;开定时/计数器0允许
20: 0043 C2 8C CLR TR0 ;关闭定时器
21: 0045 D2 AF SETB EA ;开总中断允许
22: 0047 7B 32 MOV R3,#50 ;计溢出次数50×20ms=1S
23:
24: 0049 75 80 FF MOV P0,#0FFH ;P0口置1
25: 004C 75 A0 00 MOV P2,#0H ;P2口清0
26: 004F 75 30 00 MOV 30H,#0 ;初始显示00
27: 0052 75 31 00 MOV 31H,#0 ;
28: 0055 90 00 B2 MOV DPTR,#TABLE ;将数据表TABLE的首地址赋给DPTR
29: 0058 SCANK:
30: 0058 7C 02 MOV R4,#2 ;数码管数目赋给R4
31: 005A 79 30 MOV R1,#30H ;R1装显示内容的地址
32: 005C 7A 80 MOV R2,#10000000B ;R2装位选信号
33:
34:
35: 005E E7 DISPLAY:MOV A,@R1 ;R1中的数据作为地址,取数据给A
36: 005F 93 MOVC A,@A+DPTR;将(A+DPTR)地址中的值赋给A
37: 0060 8A A0 MOV P2,R2 ;选择第一个数码管
38: 0062 F5 80 MOV P0,A ;送到P0口数码管显示
39: 0064 12 00 70 LCALL DELAY ;显示延时
40: 0067 EA MOV A,R2 ;位选信号右移
41: 0068 03 RR A ;
42: 0069 FA MOV R2,A ;
43: 006A 09 INC R1 ;下一个显示的内容的地址
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 006B DC F1 DJNZ R4,DISPLAY;没显示完转DISPLAY
45: 006D 02 00 58 LJMP SCANK ;重新开始扫描
46:
47: 0070 DELAY:
48: 0070 7E 02 MOV R6,#2
49: 0072 7F 64 D3: MOV R7,#100
50: 0074 DF FE D4: DJNZ R7,D4
51: 0076 DE FA DJNZ R6,D3
52: 0078 22 RET
53: 0079 TIMER0INT: ;定时器0中断服务程序
54: 0079 C0 D0 PUSH PSW
55: 007B 75 8C B1 MOV TH0,#0B1H
56: 007E 75 8A E0 MOV TL0,#0E0H ;重置定时时间20ms
57: 0081 DB 16 DJNZ R3,TRUESC;不到1S退出中断程序
58: 0083 7B 32 MOV R3,#50 ;重新赋溢出计数值
59: 0085 05 30 INC 30H ;个位加1
60: 0087 E5 30 MOV A,30H ;
61: 0089 B4 0A 0D CJNE A,#10,TRUESC;判断个位加到10否?
62: 008C 75 30 00 MOV 30H,#0 ;加到10重新赋0
63: 008F 05 31 INC 31H ;十位加1
64: 0091 E5 31 MOV A,31H ;
65: 0093 B4 02 03 CJNE A,#2,TRUESC;判断加到2否?
66: 0096 75 31 00 MOV 31H,#0 ;加到2重新赋0
67: 0099 D0 D0 TRUESC: POP PSW
68: 009B 32 RETI ;
69:
70: 009C C0 D0 EXTINT0:PUSH PSW ;外部中断0服务程序
71: 009E 75 8C B1 MOV TH0,#0B1H
72: 00A1 75 8A E0 MOV TL0,#0E0H ;重置定时时间20ms
73: 00A4 7B 32 MOV R3,#50 ;重新赋溢出计数值
74: 00A6 D2 8C SETB TR0 ;启动定时器
75: 00A8 D0 D0 POP PSW
76: 00AA 32 RETI ;中断返回
77:
78: 00AB C0 D0 EXTINT1:PUSH PSW ;外部中断1服务程序
79: 00AD C2 8C CLR TR0 ;关闭定时器
80: 00AF D0 D0 POP PSW
81: 00B1 32 RETI ;中断返回
82: 00B2 C0 F9 A4 B0 TABLE: DB 0C0H,0F9H,0A4H,0B0H ;0,1,2,3
83: 00B6 99 92 82 F8 DB 99H,92H,82H,0F8H,80H,90H ;4,5,6,7,8,9
00BA 80 90
84: END
85:
86:
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
D3 CODE 0072 49
D4 CODE 0074 50
DELAY CODE 0070 47
DISPLAY CODE 005E 35
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
EXTINT0 CODE 009C 70
EXTINT1 CODE 00AB 78
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
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
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
SBUF DATA 99
SCANK CODE 0058 29
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 0030 10
T0 BIT B4
T1 BIT B5
TABLE CODE 00B2 82
TB8 BIT 9B
TCON DATA 88
TF0 BIT 8D
TF1 BIT 8F
TH0 DATA 8C
TH1 DATA 8D
TI BIT 99
TIMER0 CODE 000B
TIMER0INT CODE 0079 53
TIMER1 CODE 001B
TL0 DATA 8A
TL1 DATA 8B
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TRUESC CODE 0099 67
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -