📄 pxsjpgb.lst
字号:
211: 01D4 E6 mov a,@r0 ;当前显示值送a
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 5
Line I Addr Code Source
212: 01D5 45 42 orl a,42h ;当前显示值与闪烁保留值"或"取出当前实际值
213: 01D7 F5 F0 cs: mov b,a ;寻找数据末位
214: 01D9 E5 F0 mov a,b
215: 01DB 64 30 xrl a,#30h ;当前显示位是否为"-"
216: 01DD 70 03 jnz cs10
217: 01DF 02 01 FA ljmp kw0 ;当前显示位是为"-"
218: 01E2 E5 F0 cs10: mov a,b
219: 01E4 64 2E xrl a,#2eh ;当前显示位是否为"灭"
220: 01E6 70 03 jnz cs20
221: 01E8 02 01 FA ljmp kw0 ;当前显示位是为"灭"
222: 01EB 18 cs20: dec r0 ;当前显示位不是为"灭",继续寻找数据末位
223: 01EC E8 mov a,r0
224: 01ED 64 1F xrl a,#1fh ;是否找过最低显示位;20h
225: 01EF 60 03 jz kw00
226: 01F1 02 01 D7 ljmp cs
227: 01F4 75 5B 00 kw00: mov 5bh,#00h ;显示位全为数据:5bh指向显示末位
228: 01F7 02 01 FE ljmp kw2
229: 01FA 88 5B kw0: mov 5bh,r0 ;
230: 01FC 05 5B inc 5bh ;是第一次按k17当前显示指针加一(指向有数末位)存5bh
231: 01FE 15 41 kw2: dec 41h ;当前指针减一
232: 0200 E5 41 mov a,41h
233: 0202 64 1F xrl a,#1fh
234: 0204 70 05 jnz k170 ;是否减过最低显示位
235: 0206 75 41 23 mov 41h,#23h ;减过最低显示位回到最高显示位
236: 0209 41 0B ajmp k170
237: 020B A8 4A k170: mov r0,4ah ;当前显示指针存r0
238: 020D E5 41 mov a,41h
239: 020F 64 23 xrl a,#23h ;减一后的显示指针是否指向最高显示位
240: 0211 70 0E jnz kw3
241: 0213 E5 5B mov a,5bh
242: 0215 64 00 xrl a,#00h
243: 0217 70 03 jnz k171
244: 0219 02 02 3D ljmp kw
245: 021C 75 42 2E k171: mov 42h,#2eh ;减一后的显示指针是指向最高显示位,当前显示"灭"
246: 021F A6 42 mov @r0,42h
247: 0221 E5 41 kw3: mov a,41h
248: 0223 04 inc a
249: 0224 65 5B xrl a,5bh ;是否第一次按k34
250: 0226 60 0A jz kw12
251: 0228 E5 41 mov a,41h ;不是第一次按k34
252: 022A 04 inc a
253: 022B 95 5B subb a,5bh ;
254: 022D 50 0E jnc kw
255: 022F 75 42 2E mov 42h,#2eh
256: 0232 A6 42 kw12: mov @r0,42h ;当前显示位是显示"灭"
257: 0234 A8 41 mov r0,41h
258: 0236 76 30 mov @r0,#30h
259: 0238 86 42 mov 42h,@r0
260: 023A 02 00 6A ljmp kl0
261: 023D kw:
262: 023D A6 42 mov @r0,42h
263: 023F A8 41 mov r0,41h
264: 0241 86 42 mov 42h,@r0
265: 0243 02 00 6A ljmp kl0
266:
267: 0246 k41: ;键c
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 6
Line I Addr Code Source
268: 0246 12 03 22 lcall xshg ;显示退一位(向20h方向)
269: 0249 A8 41 mov r0,41h ;当前显示位(23h--20h)指针取到r0
270: 024B E6 mov a,@r0 ;当前显示内容取到a
271: 024C 64 2E xrl a,#2eh ;当前显示是否为"灭"
272: 024E 60 04 jz k150 ;当前显示为"灭"跳
273: 0250 E6 mov a,@r0 ;当前显示内容取到a(不为"灭")
274: 0251 02 02 56 ljmp k151
275: 0254 E5 42 k150: mov a,42h ;当前显示内容取到a(不为"灭")
276: 0256 F5 F0 k151: mov b,a
277: 0258 64 30 xrl a,#30h ;当前显示是否为"_"
278: 025A 70 0D jnz k152 ;当前显示不为"_"跳
279: 025C D2 47 setb 47h
280: 025E A8 41 mov r0,41h ;当前显示位取到a
281: 0260 18 dec r0 ;显示退一位(向20h方向)
282: 0261 76 2E mov @r0,#2eh ;显示"灭"(显示不移位)
283: 0263 A8 41 mov r0,41h ;当前显示位取到a
284: 0265 08 inc r0 ;显示进一位(向23h方向)----小数点打在该位
285: 0266 E6 mov a,@r0 ;当前显示内容取到a
286: 0267 F5 F0 mov b,a
287:
288: 0269 C3 k152: clr c
289: 026A 94 0A subb a,#0ah ;显示内容是否已经有"."
290: 026C 50 1E jnc k155 ;显示内容已经有"."退出
291: 026E E5 F0 mov a,b
292: 0270 24 0A add a,#0ah ;打小数点
293: 0272 F6 mov @r0,a
294: 0273 F5 42 mov 42h,a
295: 0275 E5 F0 mov a,b
296: 0277 64 30 xrl a,#30h
297: 0279 60 11 jz k155
298: 027B A8 41 mov r0,41h
299: 027D 18 dec r0
300: 027E E6 mov a,@r0
301: 027F 64 30 xrl a,#30h
302: 0281 70 09 jnz k155
303: 0283 12 03 4A k153: lcall xs ;当前显示位(23h--20h)指针减一(向20h方向)
304: 0286 75 6B 00 mov 6bh,#00h ;清除键"-"记忆
305: 0289 75 5B 00 mov 5bh,#00h ;显示数据末位指针清零
306: 028C 30 47 09 k155: jnb 47h,k156 ;当前显示不为"_"跳
307: 028F C2 47 clr 47h
308: 0291 A8 41 mov r0,41h
309: 0293 76 30 mov @r0,#30h
310: 0295 75 42 30 mov 42h,#30h
311: 0298 k156:
312: 0298 02 00 6A ljmp kl0
313:
314: 029B k42: ;键0
315: 029B 12 03 22 lcall xshg
316: 029E A8 41 mov r0,41h
317: 02A0 76 00 mov @r0,#00h
318: 02A2 12 03 4A lcall xs
319: 02A5 75 6B 00 mov 6bh,#00h ;清除键"-"记忆
320: 02A8 75 5B 00 mov 5bh,#00h ;显示数据末位指针清零
321: 02AB 02 00 6A ljmp kl0
322: 02AE k43: ;键=
323: 02AE 02 00 6A ljmp kl0
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 7
Line I Addr Code Source
324: 02B1 k44: ;键+
325: 02B1 85 41 4A mov 4ah,41h
326: 02B4 05 41 inc 41h
327: 02B6 E5 41 mov a,41h
328: 02B8 85 41 6C mov 6ch,41h
329: 02BB 64 24 xrl a,#24h
330: 02BD 70 05 jnz k160
331: 02BF 75 41 20 mov 41h,#20h
332: 02C2 41 C4 ajmp k160
333: 02C4 E5 41 k160: mov a,41h
334: 02C6 64 20 xrl a,#20h
335: 02C8 70 09 jnz kw4
336: 02CA 85 21 6C mov 6ch,21h
337: 02CD E5 6C mov a,6ch
338: 02CF 95 5B subb a,5bh
339: 02D1 40 1A jc kw5
340: 02D3 A8 4A kw4: mov r0,4ah
341: 02D5 E5 6C mov a,6ch
342: 02D7 95 5B subb a,5bh
343: 02D9 40 23 jc kw1
344: 02DB E5 6C mov a,6ch
345: 02DD 65 5B xrl a,5bh
346: 02DF 70 03 jnz kw6
347: 02E1 75 42 30 mov 42h,#30h
348: 02E4 A6 42 kw6: mov @r0,42h
349: 02E6 A8 41 mov r0,41h
350: 02E8 86 42 mov 42h,@r0
351: 02EA 02 00 6A ljmp kl0
352: 02ED C0 00 kw5: push 0
353: 02EF A8 4A mov r0,4ah
354: 02F1 A6 42 mov @r0,42h
355: 02F3 A8 41 mov r0,41h
356: 02F5 76 2E mov @r0,#2eh
357: 02F7 86 42 mov 42h,@r0
358: 02F9 D0 00 pop 0
359: 02FB 02 00 6A ljmp kl0
360: 02FE 75 42 30 kw1: mov 42h,#30h
361: 0301 A6 42 mov @r0,42h
362: 0303 A8 41 mov r0,41h
363: 0305 76 2E mov @r0,#2eh
364: 0307 86 42 mov 42h,@r0
365: 0309 02 00 6A ljmp kl0
366: ;*************************************************************
367: ; 时钟中断0 程序
368: ;*************************************************************
369: 030C C0 00 it00: push 0 ;R0入栈
370: 030E 30 6E 06 JnB 6EH,it001
371: 0311 A8 41 mov r0,41h
372: 0313 A6 42 MOV @r0,42H ;显示输入的信号与灭构成一闪一灭
373: 0315 61 1D ajmp it002
374: 0317 A8 41 it001: mov r0,41h
375: 0319 86 42 MOV 42h,@r0
376: 031B 76 2E MOV @r0,#2eH ;显示灭
377: 031D B2 6E it002: cpl 6eh ;取反6eh闪动开关(0:开 1:关)
378: 031F D0 00 pop 0
379: 0321 32 reti
ASEM-51 V1.2 Copyright (c) 1996 by W.W. Heinz PAGE 8
Line I Addr Code Source
380: ;***********************;
381: ; 显示移位 ;
382: ;***********************;
383: 0322 xshg:
384: 0322 C0 00 push 0 ;r0入栈
385:
386: 0324 E5 41 mov a,41h ;当前显示位存A
387: 0326 14 dec a ;当前显示位减一位
388: 0327 65 50 xrl a,50h ;当前显示位减一位是否等于"-"显示位
389: 0329 60 0D jz csz0 ;当前显示位减一位等于"-"跳
390:
391: 032B A8 41 mov r0,41h ;当前显示位存r0
392: 032D 18 dec r0 ;当前显示位减一位
393: 032E E6 mov a,@r0
394: 032F 64 2E xrl a,#2eh ;当前显示位减一位是否等于"灭"
395: 0331 70 14 jnz csz ;当前显示位减一位不等于"灭"退出
396:
397: 0333 76 30 mov @r0,#30h ;当前显示位减一位等于"灭":"-"值送显示
398: 0335 02 03 47 ljmp csz ;退出
399:
400: 0338 A8 50 csz0: mov r0, 50h ;当前显示位减一位是等于"-"显示位
401: 033A 76 30 mov @r0,#30h ;"-"值送显示
402: 033C 15 50 dec 50h ;"-"值显示位减一
403: 033E 74 1F mov a,#1fh ;"-"值显示位是否减过最低显示位20h
404: 0340 65 50 xrl a,50h
405: 0342 70 03 jnz csz ;"-"值显示位没有减过最低显示位20h退出
406:
407: 0344 75 50 23 mov 50h,#23h ;"-"值显示位减过最低显示位20h,指针指向最高显示位23h
408:
409: 0347 D0 00 csz: pop 0 ;r0出栈
410: 0349 22 ret
411: ;***********************;
412: ; 光标右移 ;
413: ;***********************;
414: 034A 15 41 xs: dec 41h ;光标减一
415: 034C E5 41 mov a,41h
416: 034E 64 1F xrl a,#1fh ;光标是否减过最低显示位20h
417: 0350 60 05 jz pd ;光标是减过最低显示位20h跳
418:
419: 0352 A8 41 mov r0,41h ;光标所指显示位送r0
420: 0354 86 42 mov 42h,@r0 ;显示内容送42h
421: 0356 22 ret ;退出
422:
423: 0357 75 41 23 pd: mov 41h,#23h ;光标是减过最低显示位20h,循环到23h
424: 035A A8 41 mov r0,41h ;光标所指显示位送r0
425: 035C 86 42 mov 42h,@r0 ;显示内容送42h
426: 035E 22 ret ;退出
427: ;******************;
428: ; 显示 ;
429: ;******************;
430: 035F dirv:
431: 035F 78 FE mov r0,#0feh
432: 0361 79 23 mov r1,#23h
433: 0363 E8 mov a,r0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -