📄 test_1602.lst
字号:
02BF 940E055D CALL fp2int
02C1 E02A LDI R18,0xA
02C2 E030 LDI R19,0
02C3 940E04D1 CALL mod16s
02C5 8308 STD Y+0,R16
02C6 2722 CLR R18
02C7 E006 LDI R16,6
02C8 DE11 RCALL _LCD_write_num
(0140) LCD_write_char(7,0,'V');
02C9 E586 LDI R24,0x56
02CA 8388 STD Y+0,R24
02CB 2722 CLR R18
02CC E007 LDI R16,7
02CD DDFA RCALL _LCD_write_char
(0141)
(0142) }
02CE C15C RJMP 0x042B
(0143) else if( disp_num2<1&&disp_num2>=0.1)
02CF 90400074 LDS R4,disp_num2+2
02D1 90500075 LDS R5,disp_num2+3
02D3 90200072 LDS R2,disp_num2
02D5 90300073 LDS R3,disp_num2+1
02D7 925A ST R5,-Y
02D8 924A ST R4,-Y
02D9 923A ST R3,-Y
02DA 922A ST R2,-Y
02DB E608 LDI R16,0x68
02DC E010 LDI R17,0
02DD 940E0549 CALL lpm32
02DF 933A ST R19,-Y
02E0 932A ST R18,-Y
02E1 931A ST R17,-Y
02E2 930A ST R16,-Y
02E3 940E06BD CALL cmp32f
02E5 F00C BLT 0x02E7
02E6 C0B0 RJMP 0x0397
02E7 90400074 LDS R4,disp_num2+2
02E9 90500075 LDS R5,disp_num2+3
02EB 90200072 LDS R2,disp_num2
02ED 90300073 LDS R3,disp_num2+1
02EF 925A ST R5,-Y
02F0 924A ST R4,-Y
02F1 923A ST R3,-Y
02F2 922A ST R2,-Y
02F3 E508 LDI R16,0x58
02F4 E010 LDI R17,0
02F5 940E0549 CALL lpm32
02F7 933A ST R19,-Y
02F8 932A ST R18,-Y
02F9 931A ST R17,-Y
02FA 930A ST R16,-Y
02FB 940E06BD CALL cmp32f
02FD F40C BGE 0x02FF
02FE C098 RJMP 0x0397
(0144) {
(0145) LCD_write_char(1,0,'U');
02FF E585 LDI R24,0x55
0300 8388 STD Y+0,R24
0301 2722 CLR R18
0302 E001 LDI R16,1
0303 DDC4 RCALL _LCD_write_char
(0146) LCD_write_char(2,0,'=');
0304 E38D LDI R24,0x3D
0305 8388 STD Y+0,R24
0306 2722 CLR R18
0307 E002 LDI R16,2
0308 DDBF RCALL _LCD_write_char
(0147) LCD_write_num(3,0,0);
0309 2422 CLR R2
030A 8228 STD Y+0,R2
030B 2722 CLR R18
030C E003 LDI R16,3
030D DDCC RCALL _LCD_write_num
(0148) LCD_write_char(4,0,'.');
030E E28E LDI R24,0x2E
030F 8388 STD Y+0,R24
0310 2722 CLR R18
0311 E004 LDI R16,4
0312 DDB5 RCALL _LCD_write_char
(0149) LCD_write_num(5,0,(disp_num2*100)/10);
0313 E604 LDI R16,0x64
0314 E010 LDI R17,0
0315 940E0549 CALL lpm32
0317 933A ST R19,-Y
0318 932A ST R18,-Y
0319 931A ST R17,-Y
031A 930A ST R16,-Y
031B 90400074 LDS R4,disp_num2+2
031D 90500075 LDS R5,disp_num2+3
031F 90200072 LDS R2,disp_num2
0321 90300073 LDS R3,disp_num2+1
0323 925A ST R5,-Y
0324 924A ST R4,-Y
0325 923A ST R3,-Y
0326 922A ST R2,-Y
0327 940E06EE CALL empy32fs
0329 E50C LDI R16,0x5C
032A E010 LDI R17,0
032B 940E0549 CALL lpm32
032D 933A ST R19,-Y
032E 932A ST R18,-Y
032F 931A ST R17,-Y
0330 930A ST R16,-Y
0331 940E0663 CALL div32f
0333 01FE MOVW R30,R28
0334 8301 STD Z+1,R16
0335 8312 STD Z+2,R17
0336 8323 STD Z+3,R18
0337 8334 STD Z+4,R19
0338 01FE MOVW R30,R28
0339 8021 LDD R2,Z+1
033A 8032 LDD R3,Z+2
033B 8043 LDD R4,Z+3
033C 8054 LDD R5,Z+4
033D 925A ST R5,-Y
033E 924A ST R4,-Y
033F 923A ST R3,-Y
0340 922A ST R2,-Y
0341 E600 LDI R16,0x60
0342 E010 LDI R17,0
0343 940E0549 CALL lpm32
0345 933A ST R19,-Y
0346 932A ST R18,-Y
0347 931A ST R17,-Y
0348 930A ST R16,-Y
0349 940E06BD CALL cmp32f
034B F0CC BLT 0x0365
034C 01FE MOVW R30,R28
034D 8021 LDD R2,Z+1
034E 8032 LDD R3,Z+2
034F 8043 LDD R4,Z+3
0350 8054 LDD R5,Z+4
0351 925A ST R5,-Y
0352 924A ST R4,-Y
0353 923A ST R3,-Y
0354 922A ST R2,-Y
0355 E600 LDI R16,0x60
0356 E010 LDI R17,0
0357 940E0549 CALL lpm32
0359 933A ST R19,-Y
035A 932A ST R18,-Y
035B 931A ST R17,-Y
035C 930A ST R16,-Y
035D 940E060A CALL sub32f
035F 940E055D CALL fp2int
0361 01A8 MOVW R20,R16
0362 5040 SUBI R20,0
0363 4850 SBCI R21,0x80
0364 C008 RJMP 0x036D
0365 01FE MOVW R30,R28
0366 8101 LDD R16,Z+1
0367 8112 LDD R17,Z+2
0368 8123 LDD R18,Z+3
0369 8134 LDD R19,Z+4
036A 940E055D CALL fp2int
036C 01A8 MOVW R20,R16
036D 8348 STD Y+0,R20
036E 2722 CLR R18
036F E005 LDI R16,5
0370 DD69 RCALL _LCD_write_num
(0150) LCD_write_num(6,0,(int)(disp_num2*100)%10);
0371 E604 LDI R16,0x64
0372 E010 LDI R17,0
0373 940E0549 CALL lpm32
0375 933A ST R19,-Y
0376 932A ST R18,-Y
0377 931A ST R17,-Y
0378 930A ST R16,-Y
0379 90400074 LDS R4,disp_num2+2
037B 90500075 LDS R5,disp_num2+3
037D 90200072 LDS R2,disp_num2
037F 90300073 LDS R3,disp_num2+1
0381 925A ST R5,-Y
0382 924A ST R4,-Y
0383 923A ST R3,-Y
0384 922A ST R2,-Y
0385 940E06F1 CALL empy32f
0387 940E055D CALL fp2int
0389 E02A LDI R18,0xA
038A E030 LDI R19,0
038B 940E04D1 CALL mod16s
038D 8308 STD Y+0,R16
038E 2722 CLR R18
038F E006 LDI R16,6
0390 DD49 RCALL _LCD_write_num
(0151) LCD_write_char(7,0,'V');
0391 E586 LDI R24,0x56
0392 8388 STD Y+0,R24
0393 2722 CLR R18
0394 E007 LDI R16,7
0395 DD32 RCALL _LCD_write_char
(0152) }
0396 C094 RJMP 0x042B
(0153) else if( disp_num2<0.1)
0397 90400074 LDS R4,disp_num2+2
0399 90500075 LDS R5,disp_num2+3
039B 90200072 LDS R2,disp_num2
039D 90300073 LDS R3,disp_num2+1
039F 925A ST R5,-Y
03A0 924A ST R4,-Y
03A1 923A ST R3,-Y
03A2 922A ST R2,-Y
03A3 E508 LDI R16,0x58
03A4 E010 LDI R17,0
03A5 940E0549 CALL lpm32
03A7 933A ST R19,-Y
03A8 932A ST R18,-Y
03A9 931A ST R17,-Y
03AA 930A ST R16,-Y
03AB 940E06BD CALL cmp32f
03AD F00C BLT 0x03AF
03AE C07C RJMP 0x042B
(0154) {
(0155) LCD_write_char(1,0,'U');
03AF E585 LDI R24,0x55
03B0 8388 STD Y+0,R24
03B1 2722 CLR R18
03B2 E001 LDI R16,1
03B3 DD14 RCALL _LCD_write_char
(0156) LCD_write_char(2,0,'=');
03B4 E38D LDI R24,0x3D
03B5 8388 STD Y+0,R24
03B6 2722 CLR R18
03B7 E002 LDI R16,2
03B8 DD0F RCALL _LCD_write_char
(0157) LCD_write_num(3,0,0);
03B9 2422 CLR R2
03BA 8228 STD Y+0,R2
03BB 2722 CLR R18
03BC E003 LDI R16,3
03BD DD1C RCALL _LCD_write_num
(0158) LCD_write_char(4,0,'.');
03BE E28E LDI R24,0x2E
03BF 8388 STD Y+0,R24
03C0 2722 CLR R18
03C1 E004 LDI R16,4
03C2 DD05 RCALL _LCD_write_char
(0159) LCD_write_num(5,0,0);
03C3 2422 CLR R2
03C4 8228 STD Y+0,R2
03C5 2722 CLR R18
03C6 E005 LDI R16,5
03C7 DD12 RCALL _LCD_write_num
(0160) LCD_write_num(6,0,(disp_num2*100)/10);
03C8 E604 LDI R16,0x64
03C9 E010 LDI R17,0
03CA 940E0549 CALL lpm32
03CC 933A ST R19,-Y
03CD 932A ST R18,-Y
03CE 931A ST R17,-Y
03CF 930A ST R16,-Y
03D0 90400074 LDS R4,disp_num2+2
03D2 90500075 LDS R5,disp_num2+3
03D4 90200072 LDS R2,disp_num2
03D6 90300073 LDS R3,disp_num2+1
03D8 925A ST R5,-Y
03D9 924A ST R4,-Y
03DA 923A ST R3,-Y
03DB 922A ST R2,-Y
03DC 940E06EE CALL empy32fs
03DE E50C LDI R16,0x5C
03DF E010 LDI R17,0
03E0 940E0549 CALL lpm32
03E2 933A ST R19,-Y
03E3 932A ST R18,-Y
03E4 931A ST R17,-Y
03E5 930A ST R16,-Y
03E6 940E0663 CALL div32f
03E8 01FE MOVW R30,R28
03E9 8301 STD Z+1,R16
03EA 8312 STD Z+2,R17
03EB 8323 STD Z+3,R18
03EC 8334 STD Z+4,R19
03ED 01FE MOVW R30,R28
03EE 8021 LDD R2,Z+1
03EF 8032 LDD R3,Z+2
03F0 8043 LDD R4,Z+3
03F1 8054 LDD R5,Z+4
03F2 925A ST R5,-Y
03F3 924A ST R4,-Y
03F4 923A ST R3,-Y
03F5 922A ST R2,-Y
03F6 E600 LDI R16,0x60
03F7 E010 LDI R17,0
03F8 940E0549 CALL lpm32
03FA 933A ST R19,-Y
03FB 932A ST R18,-Y
03FC 931A ST R17,-Y
03FD 930A ST R16,-Y
03FE 940E06BD CALL cmp32f
0400 F0CC BLT 0x041A
0401 01FE MOVW R30,R28
0402 8021 LDD R2,Z+1
0403 8032 LDD R3,Z+2
0404 8043 LDD R4,Z+3
0405 8054 LDD R5,Z+4
0406 925A ST R5,-Y
0407 924A ST R4,-Y
0408 923A ST R3,-Y
0409 922A ST R2,-Y
040A E600 LDI R16,0x60
040B E010 LDI R17,0
040C 940E0549 CALL lpm32
040E 933A ST R19,-Y
040F 932A ST R18,-Y
0410 931A ST R17,-Y
0411 930A ST R16,-Y
0412 940E060A CALL sub32f
0414 940E055D CALL fp2int
0416 01A8 MOVW R20,R16
0417 5040 SUBI R20,0
0418 4850 SBCI R21,0x80
0419 C008 RJMP 0x0422
041A 01FE MOVW R30,R28
041B 8101 LDD R16,Z+1
041C 8112 LDD R17,Z+2
041D 8123 LDD R18,Z+3
041E 8134 LDD R19,Z+4
041F 940E055D CALL fp2int
0421 01A8 MOVW R20,R16
0422 8348 STD Y+0,R20
0423 2722 CLR R18
0424 E006 LDI R16,6
0425 DCB4 RCALL _LCD_write_num
(0161) LCD_write_char(7,0,'V');
0426 E586 LDI R24,0x56
0427 8388 STD Y+0,R24
0428 2722 CLR R18
0429 E007 LDI R16,7
042A DC9D RCALL _LCD_write_char
(0162) }
042B 9625 ADIW R28,5
042C 940E052C CALL pop_gset1
042E 9508 RET
_main:
p --> Y+3
i --> Y+3
time_s --> R20
042F 9722 SBIW R28,2
(0163) }
(0164) void main(void) {
(0165) unsigned char i;
(0166) unsigned char *p;
(0167) int time_s;
(0168) PORTB = 0xFF; /*电平设置*/
0430 EF8F LDI R24,0xFF
0431 BB88 OUT 0x18,R24
(0169) DDRB = 0xFF; /*方向输出*/
0432 BB87 OUT 0x17,R24
(0170)
(0171) PORTA = 0xFF;
0433 BB8B OUT 0x1B,R24
(0172) DDRA = 0xFF;
0434 BB8A OUT 0x1A,R24
(0173) delay_ms(100);
0435 E604 LDI R16,0x64
0436 E010 LDI R17,0
0437 DC3C RCALL _delay_ms
(0174)
(0175) LCD_init();
0438 DCB4 RCALL _LCD_init
(0176)
(0177)
(0178) time_s=0;
0439 2744 CLR R20
043A 2755 CLR R21
(0179)
(0180) delay_ms(500);
043B EF04 LDI R16,0xF4
043C E011 LDI R17,1
043D DC36 RCALL _delay_ms
(0181) LCD_clear();
043E DC67 RCALL _LCD_clear
043F C089 RJMP 0x04C9
(0182) while (1) {
(0183) key=get_key();
0440 DD62 RCALL _get_key
0441 2E20 MOV R2,R16
0442 2433 CLR R3
0443 92300079 STS key+1,R3
0445 92200078 STS key,R2
(0184)
(0185)
(0186) switch(key)
0447 01C1 MOVW R24,R2
0448 3081 CPI R24,1
0449 E0E0 LDI R30,0
044A 079E CPC R25,R30
044B F149 BEQ 0x0475
044C 3082 CPI R24,2
044D E0E0 LDI R30,0
044E 079E CPC R25,R30
044F F409 BNE 0x0451
0450 C055 RJMP 0x04A6
0451 3083 CPI R24,3
0452 E0E0 LDI R30,0
0453 079E CPC R25,R30
0454 F409 BNE 0x0456
0455 C05F RJMP 0x04B5
0456 3084 CPI R24,4
0457 E0E0 LDI R30,0
0458 079E CPC R25,R30
0459 F409 BNE 0x045B
045A C05D RJMP 0x04B8
045B 3085 CPI R24,5
045C E0E0 LDI R30,0
045D 079E CPC R25,R30
045E F409 BNE 0x0460
045F C05B RJMP 0x04BB
0460 3086 CPI R24,6
0461 E0E0 LDI R30,0
0462 079E CPC R25,R30
0463 F409 BNE 0x0465
0464 C059 RJMP 0x04BE
0465 3087 CPI R24,7
0466 E0E0 LDI R30,0
0467 079E CPC R25,R30
0468 F409 BNE 0x046A
0469 C057 RJMP 0x04C1
046A 3088 CPI R24,0x8
046B E0E0 LDI R30,0
046C 079E CPC R25,R30
046D F409 BNE 0x046F
046E C055 RJMP 0x04C4
046F 3089 CPI R24,0x9
0470 E0E0 LDI R30,0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -