📄 handle.lst
字号:
00289 D6C4 RCALL div32u
0028A E04A LDI R20,0xA
0028B E050 LDI R21,0
0028C E060 LDI R22,0
0028D E070 LDI R23,0
0028E 937A ST -Y,R23
0028F 936A ST -Y,R22
00290 935A ST -Y,R21
00291 934A ST -Y,R20
00292 D6BD RCALL mod32u
00293 01F8 MOVW R30,R16
00294 E680 LDI R24,0x60
00295 E090 LDI R25,0
00296 0FE8 ADD R30,R24
00297 1FF9 ADC R31,R25
00298 8020 LD R2,Z
00299 9220 008C STS disbuff+2,R2
(0167) disbuff6=Table[temp/10%10];
0029B E04A LDI R20,0xA
0029C E050 LDI R21,0
0029D E060 LDI R22,0
0029E E070 LDI R23,0
0029F 8108 LD R16,Y
002A0 8119 LDD R17,Y+1
002A1 812A LDD R18,Y+2
002A2 813B LDD R19,Y+3
002A3 937A ST -Y,R23
002A4 936A ST -Y,R22
002A5 935A ST -Y,R21
002A6 934A ST -Y,R20
002A7 D6A6 RCALL div32u
002A8 E04A LDI R20,0xA
002A9 E050 LDI R21,0
002AA E060 LDI R22,0
002AB E070 LDI R23,0
002AC 937A ST -Y,R23
002AD 936A ST -Y,R22
002AE 935A ST -Y,R21
002AF 934A ST -Y,R20
002B0 D69F RCALL mod32u
002B1 01F8 MOVW R30,R16
002B2 E680 LDI R24,0x60
002B3 E090 LDI R25,0
002B4 0FE8 ADD R30,R24
002B5 1FF9 ADC R31,R25
002B6 8020 LD R2,Z
002B7 9220 008B STS disbuff+1,R2
(0168) disbuff7=Table[temp%10];
002B9 E04A LDI R20,0xA
002BA E050 LDI R21,0
002BB E060 LDI R22,0
002BC E070 LDI R23,0
002BD 8108 LD R16,Y
002BE 8119 LDD R17,Y+1
002BF 812A LDD R18,Y+2
002C0 813B LDD R19,Y+3
002C1 937A ST -Y,R23
002C2 936A ST -Y,R22
002C3 935A ST -Y,R21
002C4 934A ST -Y,R20
002C5 D68A RCALL mod32u
002C6 01F8 MOVW R30,R16
002C7 E680 LDI R24,0x60
002C8 E090 LDI R25,0
002C9 0FE8 ADD R30,R24
002CA 1FF9 ADC R31,R25
002CB 8020 LD R2,Z
002CC 9220 008A STS disbuff,R2
(0169) }
(0170)
(0171) if(SetKey==0 && AddKey==0)
002CE 99B0 SBIC 0x16,0
002CF C030 RJMP 0x0300
002D0 9980 SBIC 0x10,0
002D1 C02E RJMP 0x0300
(0172) {
(0173) Delay(50000);
002D2 E500 LDI R16,0x50
002D3 EC13 LDI R17,0xC3
002D4 E020 LDI R18,0
002D5 E030 LDI R19,0
002D6 D624 RCALL _Delay
(0174) if(SetKey==0 && AddKey==0)
002D7 99B0 SBIC 0x16,0
002D8 C027 RJMP 0x0300
002D9 9980 SBIC 0x10,0
002DA C025 RJMP 0x0300
(0175) {
(0176)
(0177) OCR1B=Cal.OutH;
002DB 9020 0081 LDS R2,Cal+4
002DD 9030 0082 LDS R3,Cal+5
002DF BC39 OUT 0x29,R3
002E0 BC28 OUT 0x28,R2
(0178) CalTemp=0;
002E1 2422 CLR R2
002E2 2433 CLR R3
002E3 9230 007C STS CalTemp+1,R3
002E5 9220 007B STS CalTemp,R2
(0179) disbuff0=Table[20];
002E7 9020 0074 LDS R2,Table+20
002E9 9220 0091 STS disbuff+7,R2
(0180) disbuff1=Table[18];
002EB 9020 0072 LDS R2,Table+18
002ED 9220 0090 STS disbuff+6,R2
(0181) disbuff2=Table[19];
002EF 9020 0073 LDS R2,Table+19
002F1 9220 008F STS disbuff+5,R2
(0182) disbuff3=Table[22];
002F3 9020 0076 LDS R2,Table+22
002F5 9220 008E STS disbuff+4,R2
(0183) Delay(50000);
002F7 E500 LDI R16,0x50
002F8 EC13 LDI R17,0xC3
002F9 E020 LDI R18,0
002FA E030 LDI R19,0
002FB D5FF RCALL _Delay
(0184) while(SetKey==0);
002FC 9BB0 SBIS 0x16,0
002FD CFFE RJMP 0x02FC
(0185) return GOTO_SET_OUTH;
002FE E004 LDI R16,4
002FF C16D RJMP 0x046D
(0186) }
(0187) }
(0188) if(AddKey==0)
00300 9980 SBIC 0x10,0
00301 C034 RJMP 0x0336
(0189) {
(0190) Delay(10);
00302 E00A LDI R16,0xA
00303 E010 LDI R17,0
00304 E020 LDI R18,0
00305 E030 LDI R19,0
00306 D5F4 RCALL _Delay
(0191) if(AddKey==0)
00307 9980 SBIC 0x10,0
00308 C02D RJMP 0x0336
(0192) {
(0193) if(Per<2000)
00309 9180 0079 LDS R24,Per
0030B 9190 007A LDS R25,Per+1
0030D 3D80 CPI R24,0xD0
0030E E0E7 LDI R30,7
0030F 079E CPC R25,R30
00310 F428 BCC 0x0316
(0194) Per++;
00311 9601 ADIW R24,1
00312 9390 007A STS Per+1,R25
00314 9380 0079 STS Per,R24
(0195) if(keypress<250)
00316 9180 0078 LDS R24,keypress
00318 3F8A CPI R24,0xFA
00319 F418 BCC 0x031D
(0196) keypress++;
0031A 5F8F SUBI R24,0xFF
0031B 9380 0078 STS keypress,R24
(0197) if(keypress<30)
0031D 9180 0078 LDS R24,keypress
0031F 318E CPI R24,0x1E
00320 F430 BCC 0x0327
(0198) Delay(50000);
00321 E500 LDI R16,0x50
00322 EC13 LDI R17,0xC3
00323 E020 LDI R18,0
00324 E030 LDI R19,0
00325 D5D5 RCALL _Delay
00326 C00F RJMP 0x0336
(0199) else if(keypress<100)
00327 9180 0078 LDS R24,keypress
00329 3684 CPI R24,0x64
0032A F430 BCC 0x0331
(0200) Delay(10000);
0032B E100 LDI R16,0x10
0032C E217 LDI R17,0x27
0032D E020 LDI R18,0
0032E E030 LDI R19,0
0032F D5CB RCALL _Delay
00330 C005 RJMP 0x0336
(0201) else
(0202) Delay(1000);
00331 EE08 LDI R16,0xE8
00332 E013 LDI R17,3
00333 E020 LDI R18,0
00334 E030 LDI R19,0
00335 D5C5 RCALL _Delay
(0203) }
(0204) }
(0205) if(SubbKey==0)
00336 9981 SBIC 0x10,1
00337 C036 RJMP 0x036E
(0206) {
(0207) Delay(10);
00338 E00A LDI R16,0xA
00339 E010 LDI R17,0
0033A E020 LDI R18,0
0033B E030 LDI R19,0
0033C D5BE RCALL _Delay
(0208) if(SubbKey==0)
0033D 9981 SBIC 0x10,1
0033E C02F RJMP 0x036E
(0209) {
(0210) if(Per>400)
0033F E980 LDI R24,0x90
00340 E091 LDI R25,1
00341 9020 0079 LDS R2,Per
00343 9030 007A LDS R3,Per+1
00345 1582 CP R24,R2
00346 0593 CPC R25,R3
00347 F430 BCC 0x034E
(0211) Per--;
00348 01C1 MOVW R24,R2
00349 9701 SBIW R24,1
0034A 9390 007A STS Per+1,R25
0034C 9380 0079 STS Per,R24
(0212) if(keypress<250)
0034E 9180 0078 LDS R24,keypress
00350 3F8A CPI R24,0xFA
00351 F418 BCC 0x0355
(0213) keypress++;
00352 5F8F SUBI R24,0xFF
00353 9380 0078 STS keypress,R24
(0214) if(keypress<30)
00355 9180 0078 LDS R24,keypress
00357 318E CPI R24,0x1E
00358 F430 BCC 0x035F
(0215) Delay(50000);
00359 E500 LDI R16,0x50
0035A EC13 LDI R17,0xC3
0035B E020 LDI R18,0
0035C E030 LDI R19,0
0035D D59D RCALL _Delay
0035E C00F RJMP 0x036E
(0216) else if(keypress<100)
0035F 9180 0078 LDS R24,keypress
00361 3684 CPI R24,0x64
00362 F430 BCC 0x0369
(0217) Delay(10000);
00363 E100 LDI R16,0x10
00364 E217 LDI R17,0x27
00365 E020 LDI R18,0
00366 E030 LDI R19,0
00367 D593 RCALL _Delay
00368 C005 RJMP 0x036E
(0218) else
(0219) Delay(1000);
00369 EE08 LDI R16,0xE8
0036A E013 LDI R17,3
0036B E020 LDI R18,0
0036C E030 LDI R19,0
0036D D58D RCALL _Delay
(0220) }
(0221) }
(0222)
(0223) if(CalTemp!=Per)
0036E 9020 0079 LDS R2,Per
00370 9030 007A LDS R3,Per+1
00372 9040 007B LDS R4,CalTemp
00374 9050 007C LDS R5,CalTemp+1
00376 1442 CP R4,R2
00377 0453 CPC R5,R3
00378 F409 BNE 0x037A
00379 C0EF RJMP 0x0469
(0224) {
(0225) if(Per<1250)
0037A 01C1 MOVW R24,R2
0037B 3E82 CPI R24,0xE2
0037C E0A4 LDI R26,4
0037D 079A CPC R25,R26
0037E F008 BCS 0x0380
0037F C04B RJMP 0x03CB
(0226) {
(0227) temp=Cal.OutM-Cal.OutL; //1600
00380 9020 007D LDS R2,Cal
00382 9030 007E LDS R3,Cal+1
00384 9040 007F LDS R4,Cal+2
00386 9050 0080 LDS R5,Cal+3
00388 1842 SUB R4,R2
00389 0853 SBC R5,R3
0038A 0112 MOVW R2,R4
0038B 2444 CLR R4
0038C 2455 CLR R5
0038D 8228 ST Y,R2
0038E 8239 STD Y+1,R3
0038F 824A STD Y+2,R4
00390 825B STD Y+3,R5
(0228) CalTemp=Per-400;
00391 5980 SUBI R24,0x90
00392 4091 SBCI R25,1
00393 9390 007C STS CalTemp+1,R25
00395 9380 007B STS CalTemp,R24
(0229) temp*=CalTemp;
00397 011C MOVW R2,R24
00398 2444 CLR R4
00399 2455 CLR R5
0039A 8108 LD R16,Y
0039B 8119 LDD R17,Y+1
0039C 812A LDD R18,Y+2
0039D 813B LDD R19,Y+3
0039E 925A ST -Y,R5
0039F 924A ST -Y,R4
003A0 923A ST -Y,R3
003A1 922A ST -Y,R2
003A2 D613 RCALL empy32s|empy32u
003A3 8308 ST Y,R16
003A4 8319 STD Y+1,R17
003A5 832A STD Y+2,R18
003A6 833B STD Y+3,R19
(0230) temp/=850;
003A7 E542 LDI R20,0x52
003A8 E053 LDI R21,3
003A9 E060 LDI R22,0
003AA E070 LDI R23,0
003AB 8108 LD R16,Y
003AC 8119 LDD R17,Y+1
003AD 812A LDD R18,Y+2
003AE 813B LDD R19,Y+3
003AF 937A ST -Y,R23
003B0 936A ST -Y,R22
003B1 935A ST -Y,R21
003B2 934A ST -Y,R20
003B3 D59A RCALL div32u
003B4 8308 ST Y,R16
003B5 8319 STD Y+1,R17
003B6 832A STD Y+2,R18
003B7 833B STD Y+3,R19
(0231) temp+=Cal.OutL;
003B8 9020 007D LDS R2,Cal
003BA 9030 007E LDS R3,Cal+1
003BC 2444 CLR R4
003BD 2455 CLR R5
003BE 8068 LD R6,Y
003BF 8079 LDD R7,Y+1
003C0 808A LDD R8,Y+2
003C1 809B LDD R9,Y+3
003C2 0C62 ADD R6,R2
003C3 1C73 ADC R7,R3
003C4 1C84 ADC R8,R4
003C5 1C95 ADC R9,R5
003C6 8268 ST Y,R6
003C7 8279 STD Y+1,R7
003C8 828A STD Y+2,R8
003C9 829B STD Y+3,R9
(0232) }
003CA C04E RJMP 0x0419
(0233) else
(0234) {
(0235) temp=Cal.OutH-Cal.OutM; //1600
003CB 9020 007F LDS R2,Cal+2
003CD 9030 0080 LDS R3,Cal+3
003CF 9040 0081 LDS R4,Cal+4
003D1 9050 0082 LDS R5,Cal+5
003D3 1842 SUB R4,R2
003D4 0853 SBC R5,R3
003D5 0112 MOVW R2,R4
003D6 2444 CLR R4
003D7 2455 CLR R5
003D8 8228 ST Y,R2
003D9 8239 STD Y+1,R3
003DA 824A STD Y+2,R4
003DB 825B STD Y+3,R5
(0236) CalTemp=Per-1250;
003DC 9180 0079 LDS R24,Per
003DE 9190 007A LDS R25,Per+1
003E0 5E82 SUBI R24,0xE2
003E1 4094 SBCI R25,4
003E2 9390 007C STS CalTemp+1,R25
003E4 9380 007B STS CalTemp,R24
(0237) temp*=CalTemp;
003E6 011C MOVW R2,R24
003E7 2444 CLR R4
003E8 2455 CLR R5
003E9 8108 LD R16,Y
003EA 8119 LDD R17,Y+1
003EB 812A LDD R18,Y+2
003EC 813B LDD R19,Y+3
003ED 925A ST -Y,R5
003EE 924A ST -Y,R4
003EF 923A ST -Y,R3
003F0 922A ST -Y,R2
003F1 D5C4 RCALL empy32s|empy32u
003F2 8308 ST Y,R16
003F3 8319 STD Y+1,R17
003F4 832A STD Y+2,R18
003F5 833B STD Y+3,R19
(0238) temp/=750;
003F6 EE4E LDI R20,0xEE
003F7 E052 LDI R21,2
003F8 E060 LDI R22,0
003F9 E070 LDI R23,0
003FA 8108 LD R16,Y
003FB 8119 LDD R17,Y+1
003FC 812A LDD R18,Y+2
003FD 813B LDD R19,Y+3
003FE 937A ST -Y,R23
003FF 936A ST -Y,R22
00400 935A ST -Y,R21
00401 934A ST -Y,R20
00402 D54B RCALL div32u
00403 8308 ST Y,R16
00404 8319 STD Y+1,R17
00405 832A STD Y+2,R18
00406 833B STD Y+3,R19
(0239) temp+=Cal.OutM;
00407 9020 007F LDS R2,Cal+2
00409 9030 0080 LDS R3,Cal+3
0040B 2444 CLR R4
0040C 2455 CLR R5
0040D 8068 LD R6,Y
0040E 8079 LDD R7,Y+1
0040F 808A LDD R8,Y+2
00410 809B LDD R9,Y+3
00411 0C62 ADD R6,R2
00412 1C73 ADC R7,R3
00413 1C84 ADC R8,R4
00414 1C95 ADC R9,R5
00415 8268 ST Y,R6
00416 8279 STD Y+1,R7
00417 828A STD Y+2,R8
00418 829B STD Y+3,R9
(0240) }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -