📄 handle.lst
字号:
(0241) OCR1B=(u16)temp;
00419 8028 LD R2,Y
0041A 8039 LDD R3,Y+1
0041B BC39 OUT 0x29,R3
0041C BC28 OUT 0x28,R2
(0242)
(0243) disbuff0=Table[Per/1000];
0041D EE28 LDI R18,0xE8
0041E E033 LDI R19,3
0041F 9100 0079 LDS R16,Per
00421 9110 007A LDS R17,Per+1
00423 D510 RCALL div16u
00424 01F8 MOVW R30,R16
00425 E680 LDI R24,0x60
00426 E090 LDI R25,0
00427 0FE8 ADD R30,R24
00428 1FF9 ADC R31,R25
00429 8020 LD R2,Z
0042A 9220 0091 STS disbuff+7,R2
(0244) disbuff1=Table[Per/100%10]&0x7f;
0042C E624 LDI R18,0x64
0042D E030 LDI R19,0
0042E 9100 0079 LDS R16,Per
00430 9110 007A LDS R17,Per+1
00432 D501 RCALL div16u
00433 E02A LDI R18,0xA
00434 E030 LDI R19,0
00435 D4FC RCALL mod16u
00436 01F8 MOVW R30,R16
00437 E680 LDI R24,0x60
00438 E090 LDI R25,0
00439 0FE8 ADD R30,R24
0043A 1FF9 ADC R31,R25
0043B 8180 LD R24,Z
0043C 778F ANDI R24,0x7F
0043D 9380 0090 STS disbuff+6,R24
(0245) disbuff2=Table[Per/10%10];
0043F E02A LDI R18,0xA
00440 E030 LDI R19,0
00441 9100 0079 LDS R16,Per
00443 9110 007A LDS R17,Per+1
00445 D4EE RCALL div16u
00446 E02A LDI R18,0xA
00447 E030 LDI R19,0
00448 D4E9 RCALL mod16u
00449 01F8 MOVW R30,R16
0044A E680 LDI R24,0x60
0044B E090 LDI R25,0
0044C 0FE8 ADD R30,R24
0044D 1FF9 ADC R31,R25
0044E 8020 LD R2,Z
0044F 9220 008F STS disbuff+5,R2
(0246) disbuff3=Table[Per%10];
00451 E02A LDI R18,0xA
00452 E030 LDI R19,0
00453 9100 0079 LDS R16,Per
00455 9110 007A LDS R17,Per+1
00457 D4DA RCALL mod16u
00458 01F8 MOVW R30,R16
00459 E680 LDI R24,0x60
0045A E090 LDI R25,0
0045B 0FE8 ADD R30,R24
0045C 1FF9 ADC R31,R25
0045D 8020 LD R2,Z
0045E 9220 008E STS disbuff+4,R2
(0247) CalTemp=Per;
00460 9020 0079 LDS R2,Per
00462 9030 007A LDS R3,Per+1
00464 9230 007C STS CalTemp+1,R3
00466 9220 007B STS CalTemp,R2
(0248) }
00468 C003 RJMP 0x046C
(0249) else
(0250) keypress=0;
00469 2422 CLR R2
0046A 9220 0078 STS keypress,R2
(0251)
(0252) return GOTO_WAIT;
0046C E001 LDI R16,1
0046D 9624 ADIW R28,4
0046E C590 RJMP pop_xgsetF000
_Set_OutH:
0046F 9722 SBIW R28,2
(0253) }
(0254) //-------------------------------------------------------------
(0255) u8 Set_OutH(void)
(0256) {
(0257)
(0258) if(SetKey==0)
00470 99B0 SBIC 0x16,0
00471 C035 RJMP 0x04A7
(0259) {
(0260) Delay(10);
00472 E00A LDI R16,0xA
00473 E010 LDI R17,0
00474 E020 LDI R18,0
00475 E030 LDI R19,0
00476 D484 RCALL _Delay
(0261) if(SetKey==0)
00477 99B0 SBIC 0x16,0
00478 C02E RJMP 0x04A7
(0262) {
(0263) OCR1B=Cal.OutM;
00479 9020 007F LDS R2,Cal+2
0047B 9030 0080 LDS R3,Cal+3
0047D BC39 OUT 0x29,R3
0047E BC28 OUT 0x28,R2
(0264) CalTemp=0;
0047F 2422 CLR R2
00480 2433 CLR R3
00481 9230 007C STS CalTemp+1,R3
00483 9220 007B STS CalTemp,R2
(0265) EEPROMWriteBytes(0,(u8 *)(& Cal),12);
00485 E08C LDI R24,0xC
00486 E090 LDI R25,0
00487 8399 STD Y+1,R25
00488 8388 ST Y,R24
00489 E72D LDI R18,0x7D
0048A E030 LDI R19,0
0048B 2700 CLR R16
0048C 2711 CLR R17
0048D D613 RCALL _EEPROMWriteBytes
(0266) disbuff0=Table[20];
0048E 9020 0074 LDS R2,Table+20
00490 9220 0091 STS disbuff+7,R2
(0267) disbuff1=Table[18];
00492 9020 0072 LDS R2,Table+18
00494 9220 0090 STS disbuff+6,R2
(0268) disbuff2=Table[19];
00496 9020 0073 LDS R2,Table+19
00498 9220 008F STS disbuff+5,R2
(0269) disbuff3=Table[21];
0049A 9020 0075 LDS R2,Table+21
0049C 9220 008E STS disbuff+4,R2
(0270) Delay(50000);
0049E E500 LDI R16,0x50
0049F EC13 LDI R17,0xC3
004A0 E020 LDI R18,0
004A1 E030 LDI R19,0
004A2 D458 RCALL _Delay
(0271) while(SetKey==0);
004A3 9BB0 SBIS 0x16,0
004A4 CFFE RJMP 0x04A3
(0272) return GOTO_SET_OUTM;
004A5 E003 LDI R16,3
004A6 C091 RJMP 0x0538
(0273) }
(0274) }
(0275) if(AddKey==0)
004A7 9980 SBIC 0x10,0
004A8 C01F RJMP 0x04C8
(0276) {
(0277) Delay(10);
004A9 E00A LDI R16,0xA
004AA E010 LDI R17,0
004AB E020 LDI R18,0
004AC E030 LDI R19,0
004AD D44D RCALL _Delay
(0278) if(AddKey==0)
004AE 9980 SBIC 0x10,0
004AF C018 RJMP 0x04C8
(0279) {
(0280) if(Cal.OutH<0x3E7F)
004B0 9180 0081 LDS R24,Cal+4
004B2 9190 0082 LDS R25,Cal+5
004B4 378F CPI R24,0x7F
004B5 E3EE LDI R30,0x3E
004B6 079E CPC R25,R30
004B7 F428 BCC 0x04BD
(0281) Cal.OutH++;
004B8 9601 ADIW R24,1
004B9 9390 0082 STS Cal+5,R25
004BB 9380 0081 STS Cal+4,R24
(0282) OCR1B=Cal.OutH;
004BD 9020 0081 LDS R2,Cal+4
004BF 9030 0082 LDS R3,Cal+5
004C1 BC39 OUT 0x29,R3
004C2 BC28 OUT 0x28,R2
(0283) Delay(10000);
004C3 E100 LDI R16,0x10
004C4 E217 LDI R17,0x27
004C5 E020 LDI R18,0
004C6 E030 LDI R19,0
004C7 D433 RCALL _Delay
(0284) }
(0285) }
(0286) if(SubbKey==0)
004C8 9981 SBIC 0x10,1
004C9 C020 RJMP 0x04EA
(0287) {
(0288) Delay(10);
004CA E00A LDI R16,0xA
004CB E010 LDI R17,0
004CC E020 LDI R18,0
004CD E030 LDI R19,0
004CE D42C RCALL _Delay
(0289) if(SubbKey==0)
004CF 9981 SBIC 0x10,1
004D0 C019 RJMP 0x04EA
(0290) {
(0291) if(Cal.OutH)
004D1 9020 0081 LDS R2,Cal+4
004D3 9030 0082 LDS R3,Cal+5
004D5 2022 TST R2
004D6 F411 BNE 0x04D9
004D7 2033 TST R3
004D8 F031 BEQ 0x04DF
(0292) Cal.OutH--;
004D9 01C1 MOVW R24,R2
004DA 9701 SBIW R24,1
004DB 9390 0082 STS Cal+5,R25
004DD 9380 0081 STS Cal+4,R24
(0293) OCR1B=Cal.OutH;
004DF 9020 0081 LDS R2,Cal+4
004E1 9030 0082 LDS R3,Cal+5
004E3 BC39 OUT 0x29,R3
004E4 BC28 OUT 0x28,R2
(0294) Delay(10000);
004E5 E100 LDI R16,0x10
004E6 E217 LDI R17,0x27
004E7 E020 LDI R18,0
004E8 E030 LDI R19,0
004E9 D411 RCALL _Delay
(0295) }
(0296)
(0297) }
(0298) if(CalTemp!=Cal.OutH)
004EA 9020 0081 LDS R2,Cal+4
004EC 9030 0082 LDS R3,Cal+5
004EE 9040 007B LDS R4,CalTemp
004F0 9050 007C LDS R5,CalTemp+1
004F2 1442 CP R4,R2
004F3 0453 CPC R5,R3
004F4 F409 BNE 0x04F6
004F5 C039 RJMP 0x052F
(0299) {
(0300) disbuff4=Table[(Cal.OutH>>12)&0xf];
004F6 E02C LDI R18,0xC
004F7 E030 LDI R19,0
004F8 0181 MOVW R16,R2
004F9 D55E RCALL lsr16
004FA 01F8 MOVW R30,R16
004FB 70EF ANDI R30,0xF
004FC 70F0 ANDI R31,0
004FD E680 LDI R24,0x60
004FE E090 LDI R25,0
004FF 0FE8 ADD R30,R24
00500 1FF9 ADC R31,R25
00501 8020 LD R2,Z
00502 9220 008D STS disbuff+3,R2
(0301) disbuff5=Table[(Cal.OutH>>8)&0xf];
00504 91E0 0081 LDS R30,Cal+4
00506 91F0 0082 LDS R31,Cal+5
00508 2FEF MOV R30,R31
00509 27FF CLR R31
0050A 70EF ANDI R30,0xF
0050B 70F0 ANDI R31,0
0050C 0FE8 ADD R30,R24
0050D 1FF9 ADC R31,R25
0050E 8020 LD R2,Z
0050F 9220 008C STS disbuff+2,R2
(0302) disbuff6=Table[(Cal.OutH>>4)&0xf];
00511 91E0 0081 LDS R30,Cal+4
00513 91F0 0082 LDS R31,Cal+5
00515 95F6 LSR R31
00516 95E7 ROR R30
00517 95F6 LSR R31
00518 95E7 ROR R30
00519 95F6 LSR R31
0051A 95E7 ROR R30
0051B 95F6 LSR R31
0051C 95E7 ROR R30
0051D 70EF ANDI R30,0xF
0051E 70F0 ANDI R31,0
0051F 0FE8 ADD R30,R24
00520 1FF9 ADC R31,R25
00521 8020 LD R2,Z
00522 9220 008B STS disbuff+1,R2
(0303) disbuff7=Table[Cal.OutH &0xf];
00524 91E0 0081 LDS R30,Cal+4
00526 91F0 0082 LDS R31,Cal+5
00528 70EF ANDI R30,0xF
00529 70F0 ANDI R31,0
0052A 0FE8 ADD R30,R24
0052B 1FF9 ADC R31,R25
0052C 8020 LD R2,Z
0052D 9220 008A STS disbuff,R2
(0304) }
(0305) CalTemp=Cal.OutH;
0052F 9020 0081 LDS R2,Cal+4
00531 9030 0082 LDS R3,Cal+5
00533 9230 007C STS CalTemp+1,R3
00535 9220 007B STS CalTemp,R2
(0306) return GOTO_SET_OUTH;
00537 E004 LDI R16,4
00538 9622 ADIW R28,2
00539 9508 RET
_Set_OutM:
0053A 9722 SBIW R28,2
(0307) }//-------------------------------------------------------------
(0308) u8 Set_OutM(void)
(0309) {
(0310)
(0311) if(SetKey==0)
0053B 99B0 SBIC 0x16,0
0053C C035 RJMP 0x0572
(0312) {
(0313) Delay(10);
0053D E00A LDI R16,0xA
0053E E010 LDI R17,0
0053F E020 LDI R18,0
00540 E030 LDI R19,0
00541 D3B9 RCALL _Delay
(0314) if(SetKey==0)
00542 99B0 SBIC 0x16,0
00543 C02E RJMP 0x0572
(0315) {
(0316)
(0317) OCR1B=Cal.OutL;
00544 9020 007D LDS R2,Cal
00546 9030 007E LDS R3,Cal+1
00548 BC39 OUT 0x29,R3
00549 BC28 OUT 0x28,R2
(0318) CalTemp=0;
0054A 2422 CLR R2
0054B 2433 CLR R3
0054C 9230 007C STS CalTemp+1,R3
0054E 9220 007B STS CalTemp,R2
(0319) EEPROMWriteBytes(0,(u8 *)(& Cal),12);
00550 E08C LDI R24,0xC
00551 E090 LDI R25,0
00552 8399 STD Y+1,R25
00553 8388 ST Y,R24
00554 E72D LDI R18,0x7D
00555 E030 LDI R19,0
00556 2700 CLR R16
00557 2711 CLR R17
00558 D548 RCALL _EEPROMWriteBytes
(0320) disbuff0=Table[20];
00559 9020 0074 LDS R2,Table+20
0055B 9220 0091 STS disbuff+7,R2
(0321) disbuff1=Table[18];
0055D 9020 0072 LDS R2,Table+18
0055F 9220 0090 STS disbuff+6,R2
(0322) disbuff2=Table[19];
00561 9020 0073 LDS R2,Table+19
00563 9220 008F STS disbuff+5,R2
(0323) disbuff3=Table[23];
00565 9020 0077 LDS R2,Table+23
00567 9220 008E STS disbuff+4,R2
(0324) Delay(50000);
00569 E500 LDI R16,0x50
0056A EC13 LDI R17,0xC3
0056B E020 LDI R18,0
0056C E030 LDI R19,0
0056D D38D RCALL _Delay
(0325) while(SetKey==0);
0056E 9BB0 SBIS 0x16,0
0056F CFFE RJMP 0x056E
(0326) return GOTO_SET_OUTL;
00570 E002 LDI R16,2
00571 C091 RJMP 0x0603
(0327) }
(0328) }
(0329) if(AddKey==0)
00572 9980 SBIC 0x10,0
00573 C01F RJMP 0x0593
(0330) {
(0331) Delay(10);
00574 E00A LDI R16,0xA
00575 E010 LDI R17,0
00576 E020 LDI R18,0
00577 E030 LDI R19,0
00578 D382 RCALL _Delay
(0332) if(AddKey==0)
00579 9980 SBIC 0x10,0
0057A C018 RJMP 0x0593
(0333) {
(0334) if(Cal.OutM<0x3E7F)
0057B 9180 007F LDS R24,Cal+2
0057D 9190 0080 LDS R25,Cal+3
0057F 378F CPI R24,0x7F
00580 E3EE LDI R30,0x3E
00581 079E CPC R25,R30
00582 F428 BCC 0x0588
(0335) Cal.OutM++;
00583 9601 ADIW R24,1
00584 9390 0080 STS Cal+3,R25
00586 9380 007F STS Cal+2,R24
(0336) OCR1B=Cal.OutM;
00588 9020 007F LDS R2,Cal+2
0058A 9030 0080 LDS R3,Cal+3
0058C BC39 OUT 0x29,R3
0058D BC28 OUT 0x28,R2
(0337) Delay(10000);
0058E E100 LDI R16,0x10
0058F E217 LDI R17,0x27
00590 E020 LDI R18,0
00591 E030 LDI R19,0
00592 D368 RCALL _Delay
(0338) }
(0339) }
(0340) if(SubbKey==0)
00593 9981 SBIC 0x10,1
00594 C020 RJMP 0x05B5
(0341) {
(0342) Delay(10);
00595 E00A LDI R16,0xA
00596 E010 LDI R17,0
00597 E020 LDI R18,0
00598 E030 LDI R19,0
00599 D361 RCALL _Delay
(0343) if(SubbKey==0)
0059A 9981 SBIC 0x10,1
0059B C019 RJMP 0x05B5
(0344) {
(0345) if(Cal.OutM)
0059C 9020 007F LDS R2,Cal+2
0059E 9030 0080 LDS R3,Cal+3
005A0 2022 TST R2
005A1 F411 BNE 0x05A4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -