📄 stop.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: STOP.ASM
Object File: STOP.HEX
List File: STOP.LST
Line I Addr Code Source
1: ;这是一个利用串行口扩展并行I/O口的例子
2: ;系统的晶振频率12MHz,利用CD4014和CD4094扩展出两个8位并行口。
3: ;编程读入开关状态,存入片内RAM的40H单元,并同时输出到LED上显示出来。
4: N 0040 KEY EQU 40H
5: N 0000 ORG 0
6: 0000 75 98 00 MOV SCON,#0H ;串口方式0,允许接收数据
7: 0003 C2 90 RX0: CLR P1.0 ;并行输入开关状态
8: 0005 D2 90 SETB P1.0 ;允许串行移位
9: 0007 D2 9C SETB REN ;允许串行接收数据
10: 0009 30 98 FD JNB RI,$ ;等待一帧数据接收结束
11: 000C C2 9C CLR REN ;停止接收
12: 000E C2 98 CLR RI
13: 0010 E5 99 MOV A,SBUF ;读开关状态
14: 0012 F5 40 MOV KEY,A ;存开关状态
15: 0014 12 00 28 TX0: LCALL CONVERT ;将开关状态转换为数码管的段码
16: 0017 C2 92 clr p1.2
17: 0019 D2 91 setb P1.1 ;关显示
18: 001B F5 99 MOV SBUF,A ;开关状态送数码管显示
19: 001D 30 99 FD JNB TI,$ ;等待一帧数据发送结束
20: 0020 C2 99 CLR TI
21: 0022 C2 91 clr P1.1 ;选通CD4094
22: 0024 D2 92 setb p1.2
23: 0026 80 DB SJMP RX0
24: 0028 20 E0 04 CONVERT:JB ACC.0,C0 ;S0按下了?否,则转
25: 002B 74 3F MOV A,#3FH ;"0"的显示段码
26: 002D 80 33 SJMP C_END
27: 002F 20 E1 04 C0: JB ACC.1,C1
28: 0032 74 06 MOV A,#06H ;"1"的显示段码
29: 0034 80 2C SJMP C_END
30: 0036 20 E2 04 C1: JB ACC.2,C2
31: 0039 74 5B MOV A,#5BH ;"2"的显示段码
32: 003B 80 25 SJMP C_END
33: 003D 20 E3 04 C2: JB ACC.3,C3
34: 0040 74 4F MOV A,#4FH ;"3"的显示段码
35: 0042 80 1E SJMP C_END
36: 0044 20 E4 04 C3: JB ACC.4,C4
37: 0047 74 66 MOV A,#66H ;"4"的显示段码
38: 0049 80 17 SJMP C_END
39: 004B 20 E5 04 C4: JB ACC.5,C5
40: 004E 74 6D MOV A,#6DH ;"5"的显示段码
41: 0050 80 10 SJMP C_END
42: 0052 20 E6 04 C5: JB ACC.6,C6
43: 0055 74 7D MOV A,#7DH ;"6"的显示段码
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0057 80 09 SJMP C_END
45: 0059 20 E7 04 C6: JB ACC.7,C_7
46: 005C 74 27 MOV A,#27H ;"7"的显示段码
47: 005E 80 02 SJMP C_END
48: 0060 74 00 C_7: MOV A,#0
49: 0062 22 C_END: RET
50: 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
C0 CODE 002F 27
C1 CODE 0036 30
C2 CODE 003D 33
C3 CODE 0044 36
C4 CODE 004B 39
C5 CODE 0052 42
C6 CODE 0059 45
CONVERT CODE 0028 24
CY BIT D7
C_7 CODE 0060 48
C_END CODE 0062 49
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
KEY NUMBER 0040 4
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
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
RESET CODE 0000
RI BIT 98
RS0 BIT D3
RS1 BIT D4
RX0 CODE 0003 7
RXD BIT B0
SBUF DATA 99
SCON DATA 98
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
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
TX0 CODE 0014 15
TXD BIT B1
WR BIT B6
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -