📄 1602_8563_timer.lst
字号:
040F 918000A3 LDS R24,timer+2
0411 5081 SUBI R24,1
0412 938000A3 STS timer+2,R24
(0323) if((timer[2]&0x0F)==0x0F)timer[2]&=0xF9;
0414 708F ANDI R24,0xF
0415 308F CPI R24,0xF
0416 F429 BNE 0x041C
0417 918000A3 LDS R24,timer+2
0419 7F89 ANDI R24,0xF9
041A 938000A3 STS timer+2,R24
(0324) if(timer[2]>0x24)timer[2]=0x23;
041C E284 LDI R24,0x24
041D 902000A3 LDS R2,timer+2
041F 1582 CP R24,R2
0420 F418 BCC 0x0424
0421 E283 LDI R24,0x23
0422 938000A3 STS timer+2,R24
(0325) set_xs1(2); //显示时
0424 E002 LDI R16,2
0425 DE8B RCALL _set_xs1
(0326) break;
0426 C0F1 RJMP 0x0518
(0327) case 5:
(0328) timer[1]-=0x01;
0427 918000A2 LDS R24,timer+1
0429 5081 SUBI R24,1
042A 938000A2 STS timer+1,R24
(0329) if((timer[1]&0x0F)==0x0F)timer[1]&=0xf9;
042C 708F ANDI R24,0xF
042D 308F CPI R24,0xF
042E F429 BNE 0x0434
042F 918000A2 LDS R24,timer+1
0431 7F89 ANDI R24,0xF9
0432 938000A2 STS timer+1,R24
(0330) if(timer[1]>0x59)timer[1]=0x59;
0434 E589 LDI R24,0x59
0435 902000A2 LDS R2,timer+1
0437 1582 CP R24,R2
0438 F410 BCC 0x043B
0439 938000A2 STS timer+1,R24
(0331) set_xs1(1); //显示分
043B E001 LDI R16,1
043C DE74 RCALL _set_xs1
(0332) break;
043D C0DA RJMP 0x0518
(0333) case 6:
(0334) timer[4]-=0x01;
043E 918000A5 LDS R24,0xA5
0440 5081 SUBI R24,1
0441 938000A5 STS 0xA5,R24
(0335) if(timer[4]>6)timer[4]=0x06;
0443 E086 LDI R24,6
0444 902000A5 LDS R2,0xA5
0446 1582 CP R24,R2
0447 F410 BCC 0x044A
0448 938000A5 STS 0xA5,R24
(0336) set_xs1(4); //显示周
044A E004 LDI R16,4
044B DE65 RCALL _set_xs1
(0337) break;
044C C0CB RJMP 0x0518
(0338) default:set_time=0;break;
044D 2766 CLR R22
(0339) }
(0340) }
044E C0C9 RJMP 0x0518
(0341) else
(0342) start_timer();
044F DDCC RCALL _start_timer
(0343) break;
0450 C0C7 RJMP 0x0518
(0344) case 0x08:
(0345) if(set_flag==1)
0451 8189 LDD R24,Y+1
0452 3081 CPI R24,1
0453 F009 BEQ 0x0455
0454 C0B5 RJMP 0x050A
(0346) {
(0347) spk(10,1);
0455 E021 LDI R18,1
0456 E00A LDI R16,0xA
0457 DD1F RCALL _spk
(0348) set_bh=1;
0458 2400 CLR R0
0459 9403 INC R0
045A 820A STD Y+2,R0
(0349) locate(2,7); //显示“时间调整”
045B E027 LDI R18,7
045C E002 LDI R16,2
045D DCBB RCALL _locate
(0350) switch(set_time)
045E 2EA6 MOV R10,R22
045F 24BB CLR R11
0460 01C5 MOVW R24,R10
0461 3081 CPI R24,1
0462 E0E0 LDI R30,0
0463 079E CPC R25,R30
0464 F0C9 BEQ 0x047E
0465 3082 CPI R24,2
0466 E0E0 LDI R30,0
0467 079E CPC R25,R30
0468 F171 BEQ 0x0497
0469 3083 CPI R24,3
046A E0E0 LDI R30,0
046B 079E CPC R25,R30
046C F409 BNE 0x046E
046D C041 RJMP 0x04AF
046E 3084 CPI R24,4
046F E0E0 LDI R30,0
0470 079E CPC R25,R30
0471 F409 BNE 0x0473
0472 C054 RJMP 0x04C7
0473 3085 CPI R24,5
0474 E0E0 LDI R30,0
0475 079E CPC R25,R30
0476 F409 BNE 0x0478
0477 C067 RJMP 0x04DF
0478 3086 CPI R24,6
0479 E0E0 LDI R30,0
047A 079E CPC R25,R30
047B F409 BNE 0x047D
047C C07B RJMP 0x04F8
047D C08A RJMP 0x0508
(0351) {
(0352) case 1:
(0353) timer[6]+=0x01;
047E 918000A7 LDS R24,0xA7
0480 5F8F SUBI R24,0xFF
0481 938000A7 STS 0xA7,R24
(0354) if((timer[6]&0x0F)==0x0A)timer[6]=(timer[6]&0xF0)+0x10;
0483 708F ANDI R24,0xF
0484 308A CPI R24,0xA
0485 F431 BNE 0x048C
0486 918000A7 LDS R24,0xA7
0488 7F80 ANDI R24,0xF0
0489 5F80 SUBI R24,0xF0
048A 938000A7 STS 0xA7,R24
(0355) if(timer[6]>0x99)timer[6]=0x00;
048C E989 LDI R24,0x99
048D 902000A7 LDS R2,0xA7
048F 1582 CP R24,R2
0490 F418 BCC 0x0494
0491 2422 CLR R2
0492 922000A7 STS 0xA7,R2
(0356) set_xs1(6); //显示年
0494 E006 LDI R16,6
0495 DE1B RCALL _set_xs1
(0357) break;
0496 C081 RJMP 0x0518
(0358) case 2:
(0359) timer[5]+=0x01;
0497 918000A6 LDS R24,0xA6
0499 5F8F SUBI R24,0xFF
049A 938000A6 STS 0xA6,R24
(0360) if((timer[5]&0x0F)==0x0A)timer[5]=(timer[5]&0xF0)+0x10;
049C 708F ANDI R24,0xF
049D 308A CPI R24,0xA
049E F431 BNE 0x04A5
049F 918000A6 LDS R24,0xA6
04A1 7F80 ANDI R24,0xF0
04A2 5F80 SUBI R24,0xF0
04A3 938000A6 STS 0xA6,R24
(0361) if(timer[5]>=0x13)timer[5]=0x01;
04A5 918000A6 LDS R24,0xA6
04A7 3183 CPI R24,0x13
04A8 F018 BCS 0x04AC
04A9 E081 LDI R24,1
04AA 938000A6 STS 0xA6,R24
(0362) set_xs1(5); //显示月
04AC E005 LDI R16,5
04AD DE03 RCALL _set_xs1
(0363) break;
04AE C069 RJMP 0x0518
(0364) case 3:
(0365) timer[3]+=0x01;
04AF 918000A4 LDS R24,timer+3
04B1 5F8F SUBI R24,0xFF
04B2 938000A4 STS timer+3,R24
(0366) if((timer[3]&0x0F)==0x0A)timer[3]=(timer[3]&0xF0)+0x10;
04B4 708F ANDI R24,0xF
04B5 308A CPI R24,0xA
04B6 F431 BNE 0x04BD
04B7 918000A4 LDS R24,timer+3
04B9 7F80 ANDI R24,0xF0
04BA 5F80 SUBI R24,0xF0
04BB 938000A4 STS timer+3,R24
(0367) if(timer[3]>=0x31)timer[3]=0x01;
04BD 918000A4 LDS R24,timer+3
04BF 3381 CPI R24,0x31
04C0 F018 BCS 0x04C4
04C1 E081 LDI R24,1
04C2 938000A4 STS timer+3,R24
(0368) set_xs1(3); //显示日
04C4 E003 LDI R16,3
04C5 DDEB RCALL _set_xs1
(0369) break;
04C6 C051 RJMP 0x0518
(0370) case 4:
(0371) timer[2]+=0x01;
04C7 918000A3 LDS R24,timer+2
04C9 5F8F SUBI R24,0xFF
04CA 938000A3 STS timer+2,R24
(0372) if((timer[2]&0x0F)==0x0A)timer[2]=(timer[2]&0xF0)+0x10;
04CC 708F ANDI R24,0xF
04CD 308A CPI R24,0xA
04CE F431 BNE 0x04D5
04CF 918000A3 LDS R24,timer+2
04D1 7F80 ANDI R24,0xF0
04D2 5F80 SUBI R24,0xF0
04D3 938000A3 STS timer+2,R24
(0373) if(timer[2]>=0x24)timer[2]=0x00;
04D5 918000A3 LDS R24,timer+2
04D7 3284 CPI R24,0x24
04D8 F018 BCS 0x04DC
04D9 2422 CLR R2
04DA 922000A3 STS timer+2,R2
(0374) set_xs1(2); //显示时
04DC E002 LDI R16,2
04DD DDD3 RCALL _set_xs1
(0375) break;
04DE C039 RJMP 0x0518
(0376) case 5:
(0377) timer[1]+=0x01;
04DF 918000A2 LDS R24,timer+1
04E1 5F8F SUBI R24,0xFF
04E2 938000A2 STS timer+1,R24
(0378) if((timer[1]&0x0F)==0x0A)timer[1]=(timer[1]&0xf0)+0x10;
04E4 708F ANDI R24,0xF
04E5 308A CPI R24,0xA
04E6 F431 BNE 0x04ED
04E7 918000A2 LDS R24,timer+1
04E9 7F80 ANDI R24,0xF0
04EA 5F80 SUBI R24,0xF0
04EB 938000A2 STS timer+1,R24
(0379) if(timer[1]>0x59)timer[1]=0x00;
04ED E589 LDI R24,0x59
04EE 902000A2 LDS R2,timer+1
04F0 1582 CP R24,R2
04F1 F418 BCC 0x04F5
04F2 2422 CLR R2
04F3 922000A2 STS timer+1,R2
(0380) set_xs1(1); //显示分
04F5 E001 LDI R16,1
04F6 DDBA RCALL _set_xs1
(0381) break;
04F7 C020 RJMP 0x0518
(0382) case 6:
(0383) timer[4]+=0x01;
04F8 918000A5 LDS R24,0xA5
04FA 5F8F SUBI R24,0xFF
04FB 938000A5 STS 0xA5,R24
(0384) if(timer[4]>6)timer[4]=0x00;
04FD E086 LDI R24,6
04FE 902000A5 LDS R2,0xA5
0500 1582 CP R24,R2
0501 F418 BCC 0x0505
0502 2422 CLR R2
0503 922000A5 STS 0xA5,R2
(0385) set_xs1(4); //显示周
0505 E004 LDI R16,4
0506 DDAA RCALL _set_xs1
(0386) break;
0507 C010 RJMP 0x0518
(0387) default:set_time=0;break;
0508 2766 CLR R22
(0388) }
(0389) }
0509 C00E RJMP 0x0518
(0390) else
(0391) LED_OFF; //关背光
050A 98C3 CBI 0x18,3
(0392) break;
(0393) default:break;
(0394) }
(0395) }
050B C00C RJMP 0x0518
(0396) while(a!=0)
(0397) {
(0398) a=KEY_RD;
050C B383 IN R24,0x13
050D 9586 LSR R24
050E 6F81 ORI R24,0xF1
050F B340 IN R20,0x10
0510 9546 LSR R20
0511 9546 LSR R20
0512 6F4E ORI R20,0xFE
0513 2348 AND R20,R24
0514 9540 COM R20
(0399) delay_ms(10);
FILE: <library>
0515 E00A LDI R16,0xA
0516 E010 LDI R17,0
0517 DB6D RCALL _delay_ms
0518 2344 TST R20
0519 F791 BNE 0x050C
051A CDE1 RJMP 0x02FC
051B 9625 ADIW R28,5
051C 9508 RET
pop_gset2:
051D E0E2 LDI R30,2
051E 940C052F JMP pop
pop_gset3:
0520 E0E4 LDI R30,4
0521 940C052F JMP pop
push_gset5:
0523 92FA ST R15,-Y
0524 92EA ST R14,-Y
push_gset4:
0525 92DA ST R13,-Y
0526 92CA ST R12,-Y
push_gset3:
0527 92BA ST R11,-Y
0528 92AA ST R10,-Y
push_gset2:
0529 937A ST R23,-Y
052A 936A ST R22,-Y
push_gset1:
052B 935A ST R21,-Y
052C 934A ST R20,-Y
052D 9508 RET
pop_gset1:
052E E0E1 LDI R30,1
pop:
052F 9149 LD R20,Y+
0530 9159 LD R21,Y+
0531 FDE0 SBRC R30,0
0532 9508 RET
0533 9169 LD R22,Y+
0534 9179 LD R23,Y+
0535 FDE1 SBRC R30,1
0536 9508 RET
0537 90A9 LD R10,Y+
0538 90B9 LD R11,Y+
0539 FDE2 SBRC R30,2
053A 9508 RET
053B 90C9 LD R12,Y+
053C 90D9 LD R13,Y+
053D FDE3 SBRC R30,3
053E 9508 RET
053F 90E9 LD R14,Y+
0540 90F9 LD R15,Y+
0541 9508 RET
push_lset:
0542 93FA ST R31,-Y
0543 93EA ST R30,-Y
0544 93BA ST R27,-Y
0545 93AA ST R26,-Y
0546 939A ST R25,-Y
0547 938A ST R24,-Y
0548 933A ST R19,-Y
0549 932A ST R18,-Y
054A 931A ST R17,-Y
054B 930A ST R16,-Y
054C 929A ST R9,-Y
054D 928A ST R8,-Y
054E 927A ST R7,-Y
054F 926A ST R6,-Y
0550 925A ST R5,-Y
0551 924A ST R4,-Y
0552 923A ST R3,-Y
0553 922A ST R2,-Y
0554 921A ST R1,-Y
0555 920A ST R0,-Y
0556 B60F IN R0,0x3F
0557 920A ST R0,-Y
0558 9508 RET
pop_lset:
0559 9009 LD R0,Y+
055A BE0F OUT 0x3F,R0
055B 9009 LD R0,Y+
055C 9019 LD R1,Y+
055D 9029 LD R2,Y+
055E 9039 LD R3,Y+
055F 9049 LD R4,Y+
0560 9059 LD R5,Y+
0561 9069 LD R6,Y+
0562 9079 LD R7,Y+
0563 9089 LD R8,Y+
0564 9099 LD R9,Y+
0565 9109 LD R16,Y+
0566 9119 LD R17,Y+
0567 9129 LD R18,Y+
0568 9139 LD R19,Y+
0569 9189 LD R24,Y+
056A 9199 LD R25,Y+
056B 91A9 LD R26,Y+
056C 91B9 LD R27,Y+
056D 91E9 LD R30,Y+
056E 91F9 LD R31,Y+
056F 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -