⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pxsjpgb.lst

📁 电子时钟的单片机设计
💻 LST
📖 第 1 页 / 共 3 页
字号:
  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 + -