📄 yss215.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: YSS215.ASM
Object File: YSS215.HEX
List File: YSS215.LST
Line I Addr Code Source
1: N 0000 ORG 0
2: 0000 80 2E SJMP STAR
3: N 0013 ORG 0013H
4: 0013 02 00 66 LJMP XW
5: N 001B ORG 001BH
6: 001B 02 01 7A LJMP TLSTART
7: N 0030 ORG 30H
8: 0030 STAR:; CLR RS0 ;主程序,初始化,等待中断
9: ;CLR RS1
10: 0030 75 81 30 MOV SP,#30H
11: 0033 75 89 10 MOV TMOD,#10H
12: 0036 D2 BA SETB PX1 ;外中断优先级高
13: 0038 C2 8A CLR IT1 ;外中断申请信号;低电平
14: 003A 75 A8 8C MOV IE,#8CH ;开中断
15: 003D 75 8D 3C MOV TH1,#3CH ;设置定时器中断次数初值
16: 0040 75 8B B0 MOV TL1,#0B0H
17: 0043 75 40 02 MOV 40H,#2
18: 0046 75 20 80 MOV 20H,#80H
19: 0049 75 70 28 MOV 70H,#40 ;秒
20: 004C 75 71 3A MOV 71H,#58 ;分
21: 004F 75 72 17 MOV 72H,#23 ;时
22: 0052 75 73 04 MOV 73H,#4 ;天
23: 0055 75 74 06 MOV 74H,#6 ;月
24: 0058 75 75 08 MOV 75H,#08 ;年
25: 005B 75 76 14 MOV 76H,#20 ;年
26: 005E D2 B3 SETB P3.3
27: 0060 D2 B4 SETB P3.4
28: 0062 D2 8E SETB TR1
29: 0064 80 FE E01: SJMP E01 ;等待溢出
30: ;;;;;;;;;;;;;;;;;;
31: 0066 C0 E0 XW: PUSH ACC ;外中断
32: 0068 E5 20 MOV A,20H ;移动标志位并修改内容
33: 006A 20 E6 05 JB ACC.6,E60
34: 006D 23 RL A
35: 006E F5 20 MOV 20H,A
36: 0070 80 03 SJMP E20
37: 0072 75 20 01 E60:MOV 20H,#1
38: 0075 30 B4 FD E20:JNB P3.4,E20 ;检测JIA下降沿;等待变成1
39: 0078 20 B4 FD E30:JB P3.4,E30 ;等待变成0
40: 007B 20 B3 60 JB P3.3,E37 ;JIA下降沿时,若P3.3为1,退出子程序
41: ; MOV A,20H
42: 007E 20 06 4D JB 20H.6,E36
43: 0081 20 05 3E JB 20H.5,E35
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 2
Line I Addr Code Source
44: 0084 20 04 2F JB 20H.4,E34
45: 0087 20 03 2A JB 20H.3,E33
46: 008A 20 02 1B JB 20H.2,E32
47: 008D 20 01 0C JB 20H.1,E31
48:
49: 0090 05 70 INC 70H ;修改秒
50: 0092 E5 70 MOV A,70H
51: 0094 B4 3C 41 CJNE A,#60,BTOD
52: 0097 75 70 00 MOV 70H,#0
53: 009A 80 3C SJMP BTOD
54: 009C 05 71 E31:INC 71H ;修改分
55: 009E E5 71 MOV A,71H
56: 00A0 B4 3C 35 CJNE A,#60,BTOD
57: 00A3 75 71 00 MOV 71H,#0
58: 00A6 80 30 SJMP BTOD
59: 00A8 05 72 E32: INC 72H ;修改时
60: 00AA E5 72 MOV A,72H
61: 00AC B4 18 29 CJNE A,#24,BTOD
62: 00AF 75 72 00 MOV 72H,#0
63: 00B2 80 24 SJMP BTOD
64: 00B4 80 30 E33: SJMP YUE ; 跳转YUE,修改天
65: 00B6 05 74 E34:INC 74H ;修改月
66: 00B8 E5 74 MOV A,74H
67: 00BA B4 0D 1B CJNE A,#13,BTOD
68: 00BD 75 74 01 MOV 74H,#1
69: 00C0 80 16 SJMP BTOD
70: 00C2 05 75 E35:INC 75H ;修改低年
71: 00C4 E5 75 MOV A,75H
72: 00C6 B4 64 0F CJNE A,#100,BTOD
73: 00C9 75 75 00 MOV 75H,#0
74: 00CC 80 0A SJMP BTOD
75: 00CE 05 76 E36:INC 76H ;修改高年
76: 00D0 E5 76 MOV A,76H
77: 00D2 B4 64 03 CJNE A,#100,BTOD
78: 00D5 75 76 00 MOV 76H,#0
79: 00D8 31 25 BTOD:ACALL BTOD5
80: 00DA 31 39 ACALL DISP
81: 00DC 80 97 SJMP E20
82: 00DE D0 E0 E37:POP ACC
83: 00E0 32 RETI
84: ;;;;;;;;;;;;;;;
85: 00E1 75 73 01 AA:MOV 73H,#1 ;中间跳转
86: 00E4 80 F2 SJMP BTOD
87: ;;;;;;;;;;;;;;;
88: 00E6 E5 74 YUE: MOV A,74H
89: 00E8 B4 02 2F CJNE A,#2,SS
90: 00EB E5 75 MOV A,75H
91: 00ED B4 00 0C CJNE A,#0,ss1;判断75H内是0,向下执行
92:
93: 00F0 E5 76 MOV A,76H ;76H,即检验能否被400除
94: 00F2 75 F0 04 MOV B,#4
95: 00F5 84 DIV AB
96: 00F6 E5 F0 MOV A,B
97: 00F8 60 0E JZ ss2
98: 00FA 80 15 SJMP ss3
99:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 3
Line I Addr Code Source
100: 00FC E5 75 ss1:MOV A,75H ;75H不为0,验证75H能否被4整除
101: 00FE 75 F0 04 MOV B,#4
102: 0101 84 DIV AB
103: 0102 E5 F0 MOV A,B
104: 0104 60 02 JZ ss2
105: 0106 80 09 SJMP ss3
106:
107: 0108 05 73 ss2:INC 73H ;闰年时二月
108: 010A E5 73 MOV A,73H
109: 010C B4 1E C9 CJNE A,#30,BTOD
110: 010F 80 D0 SJMP AA
111: 0111 05 73 ss3: INC 73H ;平年时二月
112: 0113 E5 73 MOV A,73H
113: 0115 B4 1D C0 CJNE A,#29,BTOD
114: 0118 80 C7 SJMP AA
115: 011A E5 74 SS: MOV A,74H ;除二月其它月
116: 011C 51 15 ACALL seg7
117: 011E 05 73 INC 73H
118: 0120 B5 73 B5 CJNE A,73H,BTOD
119: 0123 80 BC SJMP AA
120: ;;;;;;;;;;;;;;;
121: 0125 78 70 BTOD5: MOV R0,#70H ;数据转换子程序
122: 0127 79 50 MOV R1,#50H
123: 0129 E6 BTOD1: MOV A,@R0
124: 012A 75 F0 0A MOV B,#10
125: 012D 84 DIV AB
126: 012E A7 F0 MOV @R1,B
127: 0130 C4 SWAP A
128: 0131 47 ORL A,@R1
129: 0132 F7 MOV @R1,A
130: 0133 09 INC R1
131: 0134 08 INC R0
132: 0135 B8 77 F1 CJNE R0,#77H,BTOD1
133: 0138 22 RET
134: ;;;;;;;;;;;;;;;;
135: 0139 79 50 DISP: MOV R1,#50H ;显示子程序
136: 013B E7 MOV A,@R1
137: 013C F5 90 MOV P1,A ;显示秒
138: 013E C2 B2 CLR P3.2
139: 0140 D2 B2 SETB P3.2
140: 0142 00 NOP
141: 0143 09 INC R1
142: 0144 E7 MOV A,@R1
143: 0145 F5 90 MOV P1,A ;显示分
144: 0147 C2 B1 CLR P3.1
145: 0149 D2 B1 SETB P3.1 ;产生锁存信号
146: 014B 00 NOP
147: 014C 09 INC R1
148: 014D E7 MOV A,@R1
149: 014E F5 90 MOV P1,A ;显示时
150: 0150 C2 B0 CLR P3.0
151: 0152 D2 B0 SETB P3.0 ;产生锁存信号
152: 0154 00 NOP
153: 0155 09 INC R1
154: 0156 E7 MOV A,@R1
155: 0157 F5 90 MOV P1,A ;显示天
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 4
Line I Addr Code Source
156: 0159 C2 A2 CLR P2.2
157: 015B D2 A2 SETB P2.2 ;产生锁存信号
158: 015D 00 NOP
159: 015E 09 INC R1
160: 015F E7 MOV A,@R1
161: 0160 F5 90 MOV P1,A ;显示月
162: 0162 C2 A1 CLR P2.1
163: 0164 D2 A1 SETB P2.1 ;产生锁存信号
164: 0166 00 NOP
165:
166: 0167 09 INC R1
167: 0168 E7 MOV A,@R1
168: 0169 F5 90 MOV P1,A ;显示年
169: 016B C2 A0 CLR P2.0
170: 016D D2 A0 SETB P2.0 ;产生锁存信号
171: 016F 00 NOP
172: 0170 09 INC R1
173: 0171 E7 MOV A,@R1
174: 0172 F5 90 MOV P1,A ;显示年
175: 0174 C2 A3 CLR P2.3
176: 0176 D2 A3 SETB P2.3 ;产生锁存信号
177: 0178 00 NOP
178: 0179 22 RET
179: ;;;;;;;;;;;;
180: 017A TLSTART: ;SETB RS1 ;定时中断
181: ;CLR RS0
182: 017A C0 E0 PUSH ACC
183: 017C 75 8D 3C MOV TH1,#3CH
184: 017F 75 8B B0 MOV TL1,#0B0H
185: 0182 D5 40 4A DJNZ 40H,E50
186: 0185 75 40 02 MOV 40H,#2
187: 0188 31 25 ACALL BTOD5
188: 018A 05 70 INC 70H ;够1秒
189: 018C E5 70 MOV A,70H
190: 018E B4 3C 3A CJNE A,#60,BTOD2
191: 0191 75 70 00 MOV 70H,#0
192: 0194 05 71 INC 71H ;够1分
193: 0196 E5 71 MOV A,71H
194: 0198 B4 3C 30 CJNE A,#60,BTOD2
195: 019B 75 71 00 MOV 71H,#0
196: 019E 05 72 INC 72H ;够1小时
197: 01A0 E5 72 MOV A,72H
198: 01A2 B4 18 26 CJNE A,#24,BTOD2
199: 01A5 75 72 00 MOV 72H,#0
200:
201: ;;;;;;;;;;;
202: 01A8 80 2C SJMP YUEE ;跳到YUEE 判断修改天
203: ;;;;;;;;;;;;
204: 01AA 75 73 01 BB:MOV 73H,#1 ;中间跳转
205: ;SJMP CC
206: ;;;;;;;;;;
207: 01AD 05 74 CC:INC 74H ;够1月
208: 01AF E5 74 MOV A,74H
209: 01B1 B4 0D 17 CJNE A,#13,BTOD2
210: 01B4 75 74 01 MOV 74H,#1
211: 01B7 05 75 INC 75H ;够1年
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
Line I Addr Code Source
212: 01B9 E5 75 MOV A,75H
213: 01BB B4 64 0D CJNE A,#100,BTOD2
214: 01BE 75 75 00 MOV 75H,#0
215: 01C1 05 76 INC 76H ;够100年
216: 01C3 E5 76 MOV A,76H
217: 01C5 B4 64 03 CJNE A,#100,BTOD2
218: 01C8 75 76 00 MOV 76H,#0
219: 01CB 31 25 BTOD2:ACALL BTOD5
220: 01CD 31 39 ACALL DISP
221: 01CF C2 D3 E50: CLR RS0
222: 01D1 C2 D4 CLR RS1
223: 01D3 D0 E0 POP ACC
224: 01D5 32 RETI
225: ;;;;;;;;;;;;;;
226: 01D6 E5 74 YUEE:MOV A,74H
227: 01D8 B4 02 2F CJNE A,#2,KK
228: 01DB E5 75 MOV A,75H
229: 01DD B4 00 0C CJNE A,#0,kk1; 75H为0向下执行
230:
231: 01E0 E5 76 MOV A,76H ; 看76H,即检验能否被400整除
232: 01E2 75 F0 04 MOV B,#4
233: 01E5 84 DIV AB
234: 01E6 E5 F0 MOV A,B
235: 01E8 60 0E JZ kk2
236: 01EA 80 15 SJMP kk3
237: 01EC E5 75 kk1:MOV A,75H ;75H不为0 ,只验证75H能不能被4整除
238: 01EE 75 F0 04 MOV B,#4
239: 01F1 84 DIV AB
240: 01F2 E5 F0 MOV A,B
241: 01F4 60 02 JZ kk2
242: 01F6 80 09 SJMP kk3
243:
244: 01F8 05 73 kk2:INC 73H ;闰年时二月
245: 01FA E5 73 MOV A,73H
246: 01FC B4 1E CC CJNE A,#30,BTOD2
247: 01FF 80 A9 SJMP BB
248:
249: 0201 05 73 kk3: INC 73H ;平年时二月
250: 0203 E5 73 MOV A,73H
251: 0205 B4 1D C3 CJNE A,#29,BTOD2
252: 0208 80 A0 SJMP BB
253: 020A E5 74 KK: MOV A,74H ;除二月其它月
254: 020C 51 15 ACALL SEG7
255: 020E 05 73 INC 73H
256: 0210 B5 73 B8 CJNE A,73H,BTOD2
257: 0213 80 95 SJMP BB
258: ;;;;;;;;;;;;;;;;;
259: 0215 83 SEG7:MOVC A,@A+PC
260: 0216 22 RET
261: 0217 20 1C 20 1F TAB: DB 32,28,32,31,32,31,32,32,31,32,31,32
021B 20 1F 20 20
021F 1F 20 1F 20
262: ;;;;;;;;;;;;;;;;;
263: END
264:
265:
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 6
Line I Addr Code Source
266:
267:
268:
269:
270:
register banks used: ---
no errors
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 7
L I S T O F S Y M B O L S
=============================
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
AA CODE 00E1 85
AC BIT D6
ACC DATA E0
B DATA F0
BB CODE 01AA 204
BTOD CODE 00D8 79
BTOD1 CODE 0129 123
BTOD2 CODE 01CB 219
BTOD5 CODE 0125 121
CC CODE 01AD 207
CY BIT D7
DISP CODE 0139 135
DPH DATA 83
DPL DATA 82
E01 CODE 0064 29
E20 CODE 0075 38
E30 CODE 0078 39
E31 CODE 009C 54
E32 CODE 00A8 59
E33 CODE 00B4 64
E34 CODE 00B6 65
E35 CODE 00C2 70
E36 CODE 00CE 75
E37 CODE 00DE 82
E50 CODE 01CF 221
E60 CODE 0072 37
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
KK CODE 020A 253
KK1 CODE 01EC 237
KK2 CODE 01F8 244
KK3 CODE 0201 249
OV BIT D2
P BIT D0
P0 DATA 80
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 8
SYMBOL TYPE VALUE LINE
------------------------------------------------------------
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
SCON DATA 98
SEG7 CODE 0215 259
SINT CODE 0023
SM0 BIT 9F
SM1 BIT 9E
SM2 BIT 9D
SP DATA 81
SS CODE 011A 115
SS1 CODE 00FC 100
SS2 CODE 0108 107
SS3 CODE 0111 111
STAR CODE 0030 8
T0 BIT B4
T1 BIT B5
TAB CODE 0217 261
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
TLSTART CODE 017A 180
TMOD DATA 89
TR0 BIT 8C
TR1 BIT 8E
TXD BIT B1
WR BIT B6
XW CODE 0066 31
YUE CODE 00E6 88
YUEE CODE 01D6 226
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -