📄 io.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: IO.ASM
Object File: IO.HEX
List File: IO.LST
Line I Addr Code Source
1: ;单片机每50ms从扩展的外部输入口读取开关的状态
2: ;单片机将开关的状态以1Hz的闪动频率显示出来
3: ;开关闭合时LED闪烁
4: N 8000 IO EQU 8000H ;扩展的I/O口地址
5: N 0030 BUF EQU 30H ;开关状态缓冲区
6: N 00 FLASH BIT 00H
7: N 0000 ORG 0
8: 0000 02 00 30 LJMP START
9: N 000B ORG 0BH
10: 000B 02 00 5B LJMP TS
11: N 0030 ORG 30H
12: 0030 75 81 60 START: MOV SP,#60H
13: 0033 75 89 01 MOV TMOD,#1
14: 0036 75 8C 3C MOV TH0,#3CH
15: 0039 75 8D B0 MOV TH1,#0B0H ;定时50ms
16: 003C D2 A9 SETB ET0
17: 003E D2 AF SETB EA
18: 0040 7A 0A MOV R2,#10 ;定时500ms计数
19: 0042 75 30 00 MOV BUF,#0 ;清开关状态缓冲区
20: 0045 C2 00 CLR FLASH ;清闪烁标志
21: 0047 D2 8C SETB TR0
22: 0049 12 00 4E LOOP: LCALL DISP ;显示开关状态
23: 004C 80 FB SJMP LOOP
24: ;============================================
25: ;显示程序
26: ;功能:根据闪烁标志FLASH将开关缓冲区内容送显
27: ;============================================
28: 004E 90 80 00 DISP: MOV DPTR,#IO
29: 0051 20 00 03 JB FLASH,DISP1 ;FLASH=1则将开关缓冲区内容送显
30: 0054 E4 CLR A ;否则熄灭所有LED
31: 0055 F0 MOVX @DPTR,A
32: 0056 22 RET
33: 0057 E5 30 DISP1: MOV A,BUF
34: 0059 F0 MOVX @DPTR,A
35: 005A 22 RET
36: ;============================================
37: ;50ms中断服务程序
38: ;功能:读取开关状态并存到开关缓冲区
39: ; 每500ms将闪烁标志取反。
40: ;============================================
41: 005B C2 8C TS: CLR TR0
42: 005D 75 8C 3C MOV TH0,#3CH
43: 0060 75 8A B0 MOV TL0,#0B0H
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0063 D2 8C SETB TR0
45: 0065 90 80 00 MOV DPTR,#IO
46: 0068 E0 MOVX A,@DPTR ;读开关状态
47: 0069 F4 CPL A
48: 006A F5 30 MOV BUF,A ;存开关状态
49: 006C DA 04 DJNZ R2,TS1
50: 006E 7A 0A MOV R2,#10
51: 0070 B2 00 CPL FLASH
52: 0072 32 TS1: RETI
53: 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
BUF NUMBER 0030 5
CY BIT D7
DISP CODE 004E 28
DISP1 CODE 0057 33
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
FLASH BIT 00 6
IE DATA A8
IE0 BIT 89
IE1 BIT 8B
INT0 BIT B2
INT1 BIT B3
IO NUMBER 8000 4
IP DATA B8
IT0 BIT 88
IT1 BIT 8A
LOOP CODE 0049 22
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
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
START CODE 0030 12
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
TS CODE 005B 41
TS1 CODE 0072 52
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -