📄 mydesign.lst
字号:
0337 E010 LDI R17,0
0338 D923 RCALL lpm32
0339 933A ST R19,-Y
033A 932A ST R18,-Y
033B 931A ST R17,-Y
033C 930A ST R16,-Y
033D 90400085 LDS R4,0x85
033F 90500086 LDS R5,0x86
0341 90200083 LDS R2,0x83
0343 90300084 LDS R3,0x84
0345 925A ST R5,-Y
0346 924A ST R4,-Y
0347 923A ST R3,-Y
0348 922A ST R2,-Y
0349 DAFA RCALL mpy32f
034A 2FEC MOV R30,R28
034B 2FFD MOV R31,R29
034C 8300 STD Z+0,R16
034D 8311 STD Z+1,R17
034E 8322 STD Z+2,R18
034F 8333 STD Z+3,R19
0350 2FEC MOV R30,R28
0351 2FFD MOV R31,R29
0352 8020 LDD R2,Z+0
0353 8031 LDD R3,Z+1
0354 8042 LDD R4,Z+2
0355 8053 LDD R5,Z+3
0356 925A ST R5,-Y
0357 924A ST R4,-Y
0358 923A ST R3,-Y
0359 922A ST R2,-Y
035A E30E LDI R16,0x3E
035B E010 LDI R17,0
035C D8FF RCALL lpm32
035D 933A ST R19,-Y
035E 932A ST R18,-Y
035F 931A ST R17,-Y
0360 930A ST R16,-Y
0361 DAB1 RCALL cmp32f
0362 F0C4 BLT 0x037B
0363 2FEC MOV R30,R28
0364 2FFD MOV R31,R29
0365 8020 LDD R2,Z+0
0366 8031 LDD R3,Z+1
0367 8042 LDD R4,Z+2
0368 8053 LDD R5,Z+3
0369 925A ST R5,-Y
036A 924A ST R4,-Y
036B 923A ST R3,-Y
036C 922A ST R2,-Y
036D E30E LDI R16,0x3E
036E E010 LDI R17,0
036F D8EC RCALL lpm32
0370 933A ST R19,-Y
0371 932A ST R18,-Y
0372 931A ST R17,-Y
0373 930A ST R16,-Y
0374 D9F9 RCALL sub32f
0375 D95E RCALL fp2int
0376 2F40 MOV R20,R16
0377 2F51 MOV R21,R17
0378 5040 SUBI R20,0
0379 4850 SBCI R21,0x80
037A C009 RJMP 0x0384
037B 2FEC MOV R30,R28
037C 2FFD MOV R31,R29
037D 8100 LDD R16,Z+0
037E 8111 LDD R17,Z+1
037F 8122 LDD R18,Z+2
0380 8133 LDD R19,Z+3
0381 D952 RCALL fp2int
0382 2F40 MOV R20,R16
0383 2F51 MOV R21,R17
0384 2F04 MOV R16,R20
0385 2F15 MOV R17,R21
0386 9624 ADIW R28,4
0387 D8AB RCALL pop_gset1
0388 9508 RET
_mode_choice:
flag --> R20
key_temp --> R10
0389 D8C3 RCALL push_gset4
038A 9726 SBIW R28,6
(0047) }
(0048) void mode_choice(void)
(0049) {
(0050) unsigned char flag=1;
038B E041 LDI R20,1
(0051) unsigned char key_temp;
(0052)
(0053) LCD_init();
038C D3C1 RCALL _LCD_init
(0054) K1=EEPROMread(0x00)+EEPROMread(0x01)*0.1+EEPROMread(0x02)*0.01+EEPROMread(0x03)*0.001+EEPROMread(0x04)*0.0001;
038D 2700 CLR R16
038E 2711 CLR R17
038F D92E RCALL _EEPROMread
0390 2E20 MOV R2,R16
0391 E001 LDI R16,1
0392 E010 LDI R17,0
0393 922F PUSH R2
0394 D929 RCALL _EEPROMread
0395 902F POP R2
0396 2E40 MOV R4,R16
0397 E002 LDI R16,2
0398 E010 LDI R17,0
0399 924F PUSH R4
039A 922F PUSH R2
039B D922 RCALL _EEPROMread
039C 902F POP R2
039D 904F POP R4
039E 2E60 MOV R6,R16
039F E003 LDI R16,3
03A0 E010 LDI R17,0
03A1 926F PUSH R6
03A2 924F PUSH R4
03A3 922F PUSH R2
03A4 D919 RCALL _EEPROMread
03A5 902F POP R2
03A6 904F POP R4
03A7 906F POP R6
03A8 2E80 MOV R8,R16
03A9 E004 LDI R16,4
03AA E010 LDI R17,0
03AB 928F PUSH R8
03AC 926F PUSH R6
03AD 924F PUSH R4
03AE 922F PUSH R2
03AF D90E RCALL _EEPROMread
03B0 902F POP R2
03B1 904F POP R4
03B2 906F POP R6
03B3 908F POP R8
03B4 2F80 MOV R24,R16
03B5 2D02 MOV R16,R2
03B6 2711 CLR R17
03B7 D95A RCALL int2fp
03B8 933A ST R19,-Y
03B9 932A ST R18,-Y
03BA 931A ST R17,-Y
03BB 930A ST R16,-Y
03BC E30A LDI R16,0x3A
03BD E010 LDI R17,0
03BE D89D RCALL lpm32
03BF 933A ST R19,-Y
03C0 932A ST R18,-Y
03C1 931A ST R17,-Y
03C2 930A ST R16,-Y
03C3 2D04 MOV R16,R4
03C4 2711 CLR R17
03C5 D94C RCALL int2fp
03C6 933A ST R19,-Y
03C7 932A ST R18,-Y
03C8 931A ST R17,-Y
03C9 930A ST R16,-Y
03CA DA77 RCALL mpy32fs
03CB D99B RCALL add32fs
03CC E306 LDI R16,0x36
03CD E010 LDI R17,0
03CE D88D RCALL lpm32
03CF 933A ST R19,-Y
03D0 932A ST R18,-Y
03D1 931A ST R17,-Y
03D2 930A ST R16,-Y
03D3 2D06 MOV R16,R6
03D4 2711 CLR R17
03D5 D93C RCALL int2fp
03D6 933A ST R19,-Y
03D7 932A ST R18,-Y
03D8 931A ST R17,-Y
03D9 930A ST R16,-Y
03DA DA67 RCALL mpy32fs
03DB D98B RCALL add32fs
03DC E302 LDI R16,0x32
03DD E010 LDI R17,0
03DE D87D RCALL lpm32
03DF 933A ST R19,-Y
03E0 932A ST R18,-Y
03E1 931A ST R17,-Y
03E2 930A ST R16,-Y
03E3 2D08 MOV R16,R8
03E4 2711 CLR R17
03E5 D92C RCALL int2fp
03E6 933A ST R19,-Y
03E7 932A ST R18,-Y
03E8 931A ST R17,-Y
03E9 930A ST R16,-Y
03EA DA57 RCALL mpy32fs
03EB D97B RCALL add32fs
03EC E20E LDI R16,0x2E
03ED E010 LDI R17,0
03EE D86D RCALL lpm32
03EF 933A ST R19,-Y
03F0 932A ST R18,-Y
03F1 931A ST R17,-Y
03F2 930A ST R16,-Y
03F3 2F08 MOV R16,R24
03F4 2711 CLR R17
03F5 D91C RCALL int2fp
03F6 933A ST R19,-Y
03F7 932A ST R18,-Y
03F8 931A ST R17,-Y
03F9 930A ST R16,-Y
03FA DA47 RCALL mpy32fs
03FB D96D RCALL add32f
03FC 93100084 STS 0x84,R17
03FE 93000083 STS 0x83,R16
0400 93300086 STS 0x86,R19
0402 93200085 STS 0x85,R18
(0055) Time1=EEPROMread(0x05)*1000+EEPROMread(0x06)*100+EEPROMread(0x07)*10+EEPROMread(0x08);
0404 E005 LDI R16,5
0405 E010 LDI R17,0
0406 D8B7 RCALL _EEPROMread
0407 2E20 MOV R2,R16
0408 E006 LDI R16,6
0409 E010 LDI R17,0
040A 922F PUSH R2
040B D8B2 RCALL _EEPROMread
040C 902F POP R2
040D 2E40 MOV R4,R16
040E E007 LDI R16,7
040F E010 LDI R17,0
0410 924F PUSH R4
0411 922F PUSH R2
0412 D8AB RCALL _EEPROMread
0413 902F POP R2
0414 904F POP R4
0415 2E60 MOV R6,R16
0416 E008 LDI R16,0x8
0417 E010 LDI R17,0
0418 926F PUSH R6
0419 924F PUSH R4
041A 922F PUSH R2
041B D8A2 RCALL _EEPROMread
041C 902F POP R2
041D 904F POP R4
041E 906F POP R6
041F 2E80 MOV R8,R16
0420 2D24 MOV R18,R4
0421 2733 CLR R19
0422 E604 LDI R16,0x64
0423 E010 LDI R17,0
0424 D885 RCALL mpy16s
0425 2E40 MOV R4,R16
0426 2E51 MOV R5,R17
0427 2D22 MOV R18,R2
0428 2733 CLR R19
0429 EE08 LDI R16,0xE8
042A E013 LDI R17,3
042B D87E RCALL mpy16s
042C 2E20 MOV R2,R16
042D 2E31 MOV R3,R17
042E 0C24 ADD R2,R4
042F 1C35 ADC R3,R5
0430 2D26 MOV R18,R6
0431 2733 CLR R19
0432 E00A LDI R16,0xA
0433 E010 LDI R17,0
0434 D875 RCALL mpy16s
0435 0E20 ADD R2,R16
0436 1E31 ADC R3,R17
0437 2499 CLR R9
0438 0C28 ADD R2,R8
0439 1C39 ADC R3,R9
043A 923000F8 STS __idata_end+1,R3
043C 922000F7 STS __idata_end,R2
(0056) if(Time1<MIN_T) Time1=MIN_T;
043E 2D82 MOV R24,R2
043F 2D93 MOV R25,R3
0440 3382 CPI R24,0x32
0441 E0E0 LDI R30,0
0442 079E CPC R25,R30
0443 F430 BCC 0x044A
0444 E382 LDI R24,0x32
0445 E090 LDI R25,0
0446 939000F8 STS __idata_end+1,R25
0448 938000F7 STS __idata_end,R24
(0057) mode_again:
(0058) LCD_clr();
044A D3D8 RCALL _LCD_clr
(0059) LCD_write_string(0,0,"K= ,T= ");
044B EC85 LDI R24,0xC5
044C E090 LDI R25,0
044D 8399 STD Y+1,R25
044E 8388 STD Y+0,R24
044F 2722 CLR R18
0450 2700 CLR R16
0451 D3AB RCALL _LCD_write_string
(0060) LCD_display(2,0,5,changK1());
0452 DEC1 RCALL _changK1
0453 2E20 MOV R2,R16
0454 2E31 MOV R3,R17
0455 2444 CLR R4
0456 2455 CLR R5
0457 822A STD Y+2,R2
0458 823B STD Y+3,R3
0459 824C STD Y+4,R4
045A 825D STD Y+5,R5
045B E085 LDI R24,5
045C 8388 STD Y+0,R24
045D 2722 CLR R18
045E E002 LDI R16,2
045F D3CB RCALL _LCD_display
(0061) LCD_display(10,0,4,Time1);
0460 902000F7 LDS R2,__idata_end
0462 903000F8 LDS R3,__idata_end+1
0464 2444 CLR R4
0465 2455 CLR R5
0466 822A STD Y+2,R2
0467 823B STD Y+3,R3
0468 824C STD Y+4,R4
0469 825D STD Y+5,R5
046A E084 LDI R24,4
046B 8388 STD Y+0,R24
046C 2722 CLR R18
046D E00A LDI R16,0xA
046E D3BC RCALL _LCD_display
(0062) LCD_write_string(0,1,"Fn:Mod C:Def");
046F EB88 LDI R24,0xB8
0470 E090 LDI R25,0
0471 8399 STD Y+1,R25
0472 8388 STD Y+0,R24
0473 E021 LDI R18,1
0474 2700 CLR R16
0475 D387 RCALL _LCD_write_string
0476 C258 RJMP 0x06CF
(0063) while(flag)
(0064) {
(0065) key_temp=keypad();
0477 D462 RCALL _keypad
0478 2EA0 MOV R10,R16
(0066) if(key_temp==KEY_OK)
0479 3005 CPI R16,5
047A F4B1 BNE 0x0491
(0067) {
(0068) Time1=0-Time1;
047B 902000F7 LDS R2,__idata_end
047D 903000F8 LDS R3,__idata_end+1
047F 2444 CLR R4
0480 2455 CLR R5
0481 1842 SUB R4,R2
0482 0853 SBC R5,R3
0483 925000F8 STS __idata_end+1,R5
0485 924000F7 STS __idata_end,R4
(0069) TCNT1H=Time1>>8;
0487 2C24 MOV R2,R4
0488 2C35 MOV R3,R5
0489 2C23 MOV R2,R3
048A 2433 CLR R3
048B BC2D OUT 0x2D,R2
(0070) TCNT1L=Time1&0xff;
048C 2D84 MOV R24,R4
048D 2D95 MOV R25,R5
048E 7090 ANDI R25,0
048F BD8C OUT 0x2C,R24
(0071) break;
0490 C241 RJMP 0x06D2
(0072) }
(0073) if(key_temp==KEY_CU)
0491 2D8A MOV R24,R10
0492 3082 CPI R24,2
0493 F529 BNE 0x04B9
(0074) {
(0075) K1=DEFAULT_K1;
0494 E20A LDI R16,0x2A
0495 E010 LDI R17,0
0496 D7C5 RCALL lpm32
0497 93100084 STS 0x84,R17
0499 93000083 STS 0x83,R16
049B 93300086 STS 0x86,R19
049D 93200085 STS 0x85,R18
(0076) data_init(changK1());
049F DE74 RCALL _changK1
04A0 DC20 RCALL _data_init
(0077) SaveToEEPROM(0,5,0);
04A1 2422 CLR R2
04A2 2433 CLR R3
04A3 8239 STD Y+1,R3
04A4 8228 STD Y+0,R2
04A5 E025 LDI R18,5
04A6 2700 CLR R16
04A7 DE48 RCALL _SaveToEEPROM
(0078) Time1=DEFAULT_T;
04A8 E684 LDI R24,0x64
04A9 E090 LDI R25,0
04AA 939000F8 STS __idata_end+1,R25
04AC 938000F7 STS __idata_end,R24
(0079) data_init(Time1);
04AE 2F08 MOV R16,R24
04AF 2F19 MOV R17,R25
04B0 DC10 RCALL _data_init
(0080) SaveToEEPROM(1,4,5);
04B1 E085 LDI R24,5
04B2 E090 LDI R25,0
04B3 8399 STD Y+1,R25
04B4 8388 STD Y+0,R24
04B5 E024 LDI R18,4
04B6 E001 LDI R16,1
04B7 DE38 RCALL _SaveToEEPROM
(0081) goto mode_again;
04B8 CF91 RJMP 0x044A
(0082) }
(0083) if(key_temp==KEY_FN)
04B9 2D8A MOV R24,R10
04BA 3081 CPI R24,1
04BB F009 BEQ 0x04BD
04BC C212 RJMP 0x06CF
(0084) {
(0085) LCD_clr();
04BD D365 RCALL _LCD_clr
(0086) LCD_display(0,0,5,changK1());
04BE DE55 RCALL _changK1
04BF 2E20 MOV R2,R16
04C0 2E31 MOV R3,R17
04C1 2444 CLR R4
04C2 2455 CLR R5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -