📄 lcd_icc.lst
字号:
(0350) {
(0351) switch(time_set)//判断是哪个位要改变数值;
0466 91400068 LDS R20,time_set
0468 2755 CLR R21
0469 3041 CPI R20,1
046A E0E0 LDI R30,0
046B 075E CPC R21,R30
046C F0C1 BEQ 0x0485
046D 3042 CPI R20,2
046E E0E0 LDI R30,0
046F 075E CPC R21,R30
0470 F101 BEQ 0x0491
0471 3043 CPI R20,3
0472 E0E0 LDI R30,0
0473 075E CPC R21,R30
0474 F141 BEQ 0x049D
0475 3044 CPI R20,4
0476 E0E0 LDI R30,0
0477 075E CPC R21,R30
0478 F409 BNE 0x047A
0479 C02F RJMP 0x04A9
047A 3045 CPI R20,5
047B E0E0 LDI R30,0
047C 075E CPC R21,R30
047D F409 BNE 0x047F
047E C102 RJMP 0x0581
047F 3046 CPI R20,6
0480 E0E0 LDI R30,0
0481 075E CPC R21,R30
0482 F409 BNE 0x0484
0483 C108 RJMP 0x058C
0484 C112 RJMP 0x0597
(0352) {
(0353) case 1:
(0354) {
(0355) sec++;
0485 91800060 LDS R24,sec
0487 5F8F SUBI R24,0xFF
0488 93800060 STS sec,R24
(0356) if(sec==60)
048A 338C CPI R24,0x3C
048B F009 BEQ 0x048D
048C C10A RJMP 0x0597
(0357) {
(0358) sec=0;
048D 2422 CLR R2
048E 92200060 STS sec,R2
(0359) }
(0360) break;//一定要用 break跳出;
0490 C106 RJMP 0x0597
(0361) }
(0362) case 2:
(0363) {
(0364) min++;
0491 91800061 LDS R24,min
0493 5F8F SUBI R24,0xFF
0494 93800061 STS min,R24
(0365) if(min==60) //超过60分,清0
0496 338C CPI R24,0x3C
0497 F009 BEQ 0x0499
0498 C0FE RJMP 0x0597
(0366) {
(0367) min=0;
0499 2422 CLR R2
049A 92200061 STS min,R2
(0368) }
(0369) break;
049C C0FA RJMP 0x0597
(0370) }
(0371) case 3:
(0372) {
(0373) hou++;
049D 91800062 LDS R24,hou
049F 5F8F SUBI R24,0xFF
04A0 93800062 STS hou,R24
(0374) if(hou==24)
04A2 3188 CPI R24,0x18
04A3 F009 BEQ 0x04A5
04A4 C0F2 RJMP 0x0597
(0375) {
(0376) hou=0;
04A5 2422 CLR R2
04A6 92200062 STS hou,R2
(0377) }
(0378) break;
04A8 C0EE RJMP 0x0597
(0379) }
(0380) case 4:
(0381) {
(0382) day++;
04A9 91800066 LDS R24,day
04AB 5F8F SUBI R24,0xFF
04AC 93800066 STS day,R24
(0383) if(((year%4==0)&&(year%100!=0))||(year%400==0)) //判断是否为闰年 1为闰年
04AE 91800063 LDS R24,year
04B0 91900064 LDS R25,year+1
04B2 7083 ANDI R24,3
04B3 7090 ANDI R25,0
04B4 3080 CPI R24,0
04B5 0789 CPC R24,R25
04B6 F459 BNE 0x04C2
04B7 E624 LDI R18,0x64
04B8 E030 LDI R19,0
04B9 91000063 LDS R16,year
04BB 91100064 LDS R17,year+1
04BD 940E05A0 CALL mod16u
04BF 3000 CPI R16,0
04C0 0701 CPC R16,R17
04C1 F461 BNE 0x04CE
04C2 E920 LDI R18,0x90
04C3 E031 LDI R19,1
04C4 91000063 LDS R16,year
04C6 91100064 LDS R17,year+1
04C8 940E05A0 CALL mod16u
04CA 3000 CPI R16,0
04CB 0701 CPC R16,R17
04CC F009 BEQ 0x04CE
04CD C05B RJMP 0x0529
(0384) {
(0385) if((month==2)&&(day==30))//闰年2月份是29天
04CE 91800065 LDS R24,month
04D0 3082 CPI R24,2
04D1 F441 BNE 0x04DA
04D2 91800066 LDS R24,day
04D4 318E CPI R24,0x1E
04D5 F421 BNE 0x04DA
(0386) {
(0387) //month++;
(0388) day=0;
04D6 2422 CLR R2
04D7 92200066 STS day,R2
(0389) }
04D9 C0BD RJMP 0x0597
(0390) else if((month<=7)&&(month%2==0)&&(day==31))//其他月份小于等于7月份的偶数月份是30天
04DA E087 LDI R24,7
04DB 90200065 LDS R2,month
04DD 1582 CP R24,R2
04DE F070 BCS 0x04ED
04DF E012 LDI R17,2
04E0 2D02 MOV R16,R2
04E1 940E05BC CALL mod8u
04E3 2300 TST R16
04E4 F441 BNE 0x04ED
04E5 91800066 LDS R24,day
04E7 318F CPI R24,0x1F
04E8 F421 BNE 0x04ED
(0391) {
(0392) //month++;
(0393) day=0;
04E9 2422 CLR R2
04EA 92200066 STS day,R2
(0394) }
04EC C0AA RJMP 0x0597
(0395) else if((month<=7)&&(month%2!=0)&&(day==32))//奇数是31天;
04ED E087 LDI R24,7
04EE 90200065 LDS R2,month
04F0 1582 CP R24,R2
04F1 F070 BCS 0x0500
04F2 E012 LDI R17,2
04F3 2D02 MOV R16,R2
04F4 940E05BC CALL mod8u
04F6 2300 TST R16
04F7 F041 BEQ 0x0500
04F8 91800066 LDS R24,day
04FA 3280 CPI R24,0x20
04FB F421 BNE 0x0500
(0396) {
(0397) //month++;
(0398) day=0;
04FC 2422 CLR R2
04FD 92200066 STS day,R2
(0399) }
04FF C097 RJMP 0x0597
(0400) else if((month>7)&&(month%2==0)&&(day==32))//大于7月份的偶数月份是31天
0500 E087 LDI R24,7
0501 90200065 LDS R2,month
0503 1582 CP R24,R2
0504 F470 BCC 0x0513
0505 E012 LDI R17,2
0506 2D02 MOV R16,R2
0507 940E05BC CALL mod8u
0509 2300 TST R16
050A F441 BNE 0x0513
050B 91800066 LDS R24,day
050D 3280 CPI R24,0x20
050E F421 BNE 0x0513
(0401) {
(0402) //month++;
(0403) day=0;
050F 2422 CLR R2
0510 92200066 STS day,R2
(0404) }
0512 C084 RJMP 0x0597
(0405) else if((month>7)&&(month%2!=0)&&(day==31))//奇数是30天;
0513 E087 LDI R24,7
0514 90200065 LDS R2,month
0516 1582 CP R24,R2
0517 F008 BCS 0x0519
0518 C07E RJMP 0x0597
0519 E012 LDI R17,2
051A 2D02 MOV R16,R2
051B 940E05BC CALL mod8u
051D 2300 TST R16
051E F409 BNE 0x0520
051F C077 RJMP 0x0597
0520 91800066 LDS R24,day
0522 318F CPI R24,0x1F
0523 F009 BEQ 0x0525
0524 C072 RJMP 0x0597
(0406) {
(0407) //month++;
(0408) day=0;
0525 2422 CLR R2
0526 92200066 STS day,R2
(0409) }
(0410) }
0528 C06E RJMP 0x0597
(0411) else if((month==2)&&(day==29))//不是闰年二月份是28天;
0529 91800065 LDS R24,month
052B 3082 CPI R24,2
052C F441 BNE 0x0535
052D 91800066 LDS R24,day
052F 318D CPI R24,0x1D
0530 F421 BNE 0x0535
(0412) {
(0413) //month++;
(0414) day=0;
0531 2422 CLR R2
0532 92200066 STS day,R2
(0415) }
0534 C062 RJMP 0x0597
(0416) else if((month<=7)&&(month%2==0)&&(day==31))//其他月份小于等于7月份的偶数月份是30天
0535 E087 LDI R24,7
0536 90200065 LDS R2,month
0538 1582 CP R24,R2
0539 F070 BCS 0x0548
053A E012 LDI R17,2
053B 2D02 MOV R16,R2
053C 940E05BC CALL mod8u
053E 2300 TST R16
053F F441 BNE 0x0548
0540 91800066 LDS R24,day
0542 318F CPI R24,0x1F
0543 F421 BNE 0x0548
(0417) {
(0418) // month++;
(0419) day=0;
0544 2422 CLR R2
0545 92200066 STS day,R2
(0420) }
0547 C04F RJMP 0x0597
(0421) else if((month<=7)&&(month%2!=0)&&(day==32))//奇数是31天;
0548 E087 LDI R24,7
0549 90200065 LDS R2,month
054B 1582 CP R24,R2
054C F070 BCS 0x055B
054D E012 LDI R17,2
054E 2D02 MOV R16,R2
054F 940E05BC CALL mod8u
0551 2300 TST R16
0552 F041 BEQ 0x055B
0553 91800066 LDS R24,day
0555 3280 CPI R24,0x20
0556 F421 BNE 0x055B
(0422) {
(0423) //month++;
(0424) day=0;
0557 2422 CLR R2
0558 92200066 STS day,R2
(0425) }
055A C03C RJMP 0x0597
(0426) else if((month>7)&&(month%2==0)&&(day==32))//大于7月份的偶数月份是31天
055B E087 LDI R24,7
055C 90200065 LDS R2,month
055E 1582 CP R24,R2
055F F470 BCC 0x056E
0560 E012 LDI R17,2
0561 2D02 MOV R16,R2
0562 940E05BC CALL mod8u
0564 2300 TST R16
0565 F441 BNE 0x056E
0566 91800066 LDS R24,day
0568 3280 CPI R24,0x20
0569 F421 BNE 0x056E
(0427) {
(0428) // month++;
(0429) day=0;
056A 2422 CLR R2
056B 92200066 STS day,R2
(0430) }
056D C029 RJMP 0x0597
(0431) else if((month>7)&&(month%2!=0)&&(day==31))//奇数是30天;
056E E087 LDI R24,7
056F 90200065 LDS R2,month
0571 1582 CP R24,R2
0572 F520 BCC 0x0597
0573 E012 LDI R17,2
0574 2D02 MOV R16,R2
0575 940E05BC CALL mod8u
0577 2300 TST R16
0578 F0F1 BEQ 0x0597
0579 91800066 LDS R24,day
057B 318F CPI R24,0x1F
057C F4D1 BNE 0x0597
(0432) {
(0433) //month++;
(0434) day=0;
057D 2422 CLR R2
057E 92200066 STS day,R2
(0435) }
(0436) break;
0580 C016 RJMP 0x0597
(0437) }
(0438) case 5:
(0439) {
(0440) month++;
0581 91800065 LDS R24,month
0583 5F8F SUBI R24,0xFF
0584 93800065 STS month,R24
(0441) if(month==13)
0586 308D CPI R24,0xD
0587 F479 BNE 0x0597
(0442) {
(0443) month=0;
0588 2422 CLR R2
0589 92200065 STS month,R2
(0444) }
(0445) break;
058B C00B RJMP 0x0597
(0446) }
(0447) case 6: year++;break;
058C 91800063 LDS R24,year
058E 91900064 LDS R25,year+1
0590 9601 ADIW R24,1
0591 93900064 STS year+1,R25
0593 93800063 STS year,R24
(0448) }
(0449)
(0450) }
0595 C001 RJMP 0x0597
(0451) while((PIND&0x08)==0x00)
(0452) {
(0453) WDR();
0596 95A8 WDR
0597 9B83 SBIS 0x10,3
0598 CFFD RJMP 0x0596
(0454) }
(0455) GICR=0XC0;
FILE: <library>
0599 EC80 LDI R24,0xC0
059A BF8B OUT 0x3B,R24
059B 940E05E2 CALL pop_gset1
059D 940E060D CALL pop_lset
059F 9518 RETI
mod16u:
05A0 9468 BSET 6
05A1 C001 RJMP xdiv16u
div16u:
05A2 94E8 BCLR 6
xdiv16u:
05A3 92EA ST R14,-Y
05A4 92FA ST R15,-Y
05A5 938A ST R24,-Y
05A6 24EE CLR R14
05A7 24FF CLR R15
05A8 E180 LDI R24,0x10
05A9 0F00 LSL R16
05AA 1F11 ROL R17
05AB 1CEE ROL R14
05AC 1CFF ROL R15
05AD 16E2 CP R14,R18
05AE 06F3 CPC R15,R19
05AF F018 BCS 0x05B3
05B0 1AE2 SUB R14,R18
05B1 0AF3 SBC R15,R19
05B2 9503 INC R16
05B3 958A DEC R24
05B4 F7A1 BNE 0x05A9
05B5 F416 BRTC 0x05B8
05B6 2D0E MOV R16,R14
05B7 2D1F MOV R17,R15
05B8 9189 LD R24,Y+
05B9 90F9 LD R15,Y+
05BA 90E9 LD R14,Y+
05BB 9508 RET
mod8u:
05BC 9468 BSET 6
05BD C001 RJMP xdiv8u
div8u:
05BE 94E8 BCLR 6
xdiv8u:
05BF 932A ST R18,-Y
05C0 92FA ST R15,-Y
05C1 92EA ST R14,-Y
05C2 24FF CLR R15
05C3 24EE CLR R14
05C4 E120 LDI R18,0x10
05C5 0F00 LSL R16
05C6 1CFF ROL R15
05C7 1CEE ROL R14
05C8 16E1 CP R14,R17
05C9 F010 BCS 0x05CC
05CA 1AE1 SUB R14,R17
05CB 9503 INC R16
05CC 952A DEC R18
05CD F7B9 BNE 0x05C5
05CE F40E BRTC 0x05D0
05CF 2D0E MOV R16,R14
05D0 90E9 LD R14,Y+
05D1 90F9 LD R15,Y+
05D2 9129 LD R18,Y+
05D3 9508 RET
pop_gset2:
05D4 E0E2 LDI R30,2
05D5 940C05E3 JMP pop
push_gset5:
05D7 92FA ST R15,-Y
05D8 92EA ST R14,-Y
push_gset4:
05D9 92DA ST R13,-Y
05DA 92CA ST R12,-Y
push_gset3:
05DB 92BA ST R11,-Y
05DC 92AA ST R10,-Y
push_gset2:
05DD 937A ST R23,-Y
05DE 936A ST R22,-Y
push_gset1:
05DF 935A ST R21,-Y
05E0 934A ST R20,-Y
05E1 9508 RET
pop_gset1:
05E2 E0E1 LDI R30,1
pop:
05E3 9149 LD R20,Y+
05E4 9159 LD R21,Y+
05E5 FDE0 SBRC R30,0
05E6 9508 RET
05E7 9169 LD R22,Y+
05E8 9179 LD R23,Y+
05E9 FDE1 SBRC R30,1
05EA 9508 RET
05EB 90A9 LD R10,Y+
05EC 90B9 LD R11,Y+
05ED FDE2 SBRC R30,2
05EE 9508 RET
05EF 90C9 LD R12,Y+
05F0 90D9 LD R13,Y+
05F1 FDE3 SBRC R30,3
05F2 9508 RET
05F3 90E9 LD R14,Y+
05F4 90F9 LD R15,Y+
05F5 9508 RET
push_lset:
05F6 93FA ST R31,-Y
05F7 93EA ST R30,-Y
05F8 93BA ST R27,-Y
05F9 93AA ST R26,-Y
05FA 939A ST R25,-Y
05FB 938A ST R24,-Y
05FC 933A ST R19,-Y
05FD 932A ST R18,-Y
05FE 931A ST R17,-Y
05FF 930A ST R16,-Y
0600 929A ST R9,-Y
0601 928A ST R8,-Y
0602 927A ST R7,-Y
0603 926A ST R6,-Y
0604 925A ST R5,-Y
0605 924A ST R4,-Y
0606 923A ST R3,-Y
0607 922A ST R2,-Y
0608 921A ST R1,-Y
0609 920A ST R0,-Y
060A B60F IN R0,0x3F
060B 920A ST R0,-Y
060C 9508 RET
pop_lset:
060D 9009 LD R0,Y+
060E BE0F OUT 0x3F,R0
060F 9009 LD R0,Y+
0610 9019 LD R1,Y+
0611 9029 LD R2,Y+
0612 9039 LD R3,Y+
0613 9049 LD R4,Y+
0614 9059 LD R5,Y+
0615 9069 LD R6,Y+
0616 9079 LD R7,Y+
0617 9089 LD R8,Y+
0618 9099 LD R9,Y+
0619 9109 LD R16,Y+
061A 9119 LD R17,Y+
061B 9129 LD R18,Y+
061C 9139 LD R19,Y+
061D 9189 LD R24,Y+
061E 9199 LD R25,Y+
061F 91A9 LD R26,Y+
0620 91B9 LD R27,Y+
0621 91E9 LD R30,Y+
0622 91F9 LD R31,Y+
0623 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -