📄 m8demo.lst
字号:
(0436) {
(0437) switch(key_value)
03DB 90E001C5 LDS R14,key_value
03DD 24FF CLR R15
03DE 01C7 MOVW R24,R14
03DF 3F8B CPI R24,0xFB
03E0 E0E0 LDI R30,0
03E1 079E CPC R25,R30
03E2 F409 BNE 0x03E4
03E3 C226 RJMP 0x060A
03E4 3F8C CPI R24,0xFC
03E5 E0E0 LDI R30,0
03E6 079E CPC R25,R30
03E7 F409 BNE 0x03E9
03E8 C170 RJMP 0x0559
03E9 3F8D CPI R24,0xFD
03EA E0E0 LDI R30,0
03EB 079E CPC R25,R30
03EC F409 BNE 0x03EE
03ED C0B8 RJMP 0x04A6
03EE 3F8E CPI R24,0xFE
03EF E0E0 LDI R30,0
03F0 079E CPC R25,R30
03F1 F009 BEQ 0x03F3
03F2 C25C RJMP 0x064F
(0438) {
(0439) case key_inc:
(0440) switch(mode_state)
03F3 90C001C3 LDS R12,mode_state
03F5 24DD CLR R13
03F6 20CC TST R12
03F7 F419 BNE 0x03FB
03F8 20DD TST R13
03F9 F409 BNE 0x03FB
03FA C254 RJMP 0x064F
03FB 01C6 MOVW R24,R12
03FC 3081 CPI R24,1
03FD E0E0 LDI R30,0
03FE 079E CPC R25,R30
03FF F111 BEQ 0x0422
0400 3082 CPI R24,2
0401 E0E0 LDI R30,0
0402 079E CPC R25,R30
0403 F141 BEQ 0x042C
0404 3083 CPI R24,3
0405 E0E0 LDI R30,0
0406 079E CPC R25,R30
0407 F171 BEQ 0x0436
0408 3084 CPI R24,4
0409 E0E0 LDI R30,0
040A 079E CPC R25,R30
040B F409 BNE 0x040D
040C C033 RJMP 0x0440
040D 3085 CPI R24,5
040E E0E0 LDI R30,0
040F 079E CPC R25,R30
0410 F409 BNE 0x0412
0411 C03E RJMP 0x0450
0412 3086 CPI R24,6
0413 E0E0 LDI R30,0
0414 079E CPC R25,R30
0415 F409 BNE 0x0417
0416 C049 RJMP 0x0460
0417 3088 CPI R24,0x8
0418 E0E0 LDI R30,0
0419 079E CPC R25,R30
041A F409 BNE 0x041C
041B C054 RJMP 0x0470
041C 3089 CPI R24,0x9
041D E0E0 LDI R30,0
041E 079E CPC R25,R30
041F F409 BNE 0x0421
0420 C070 RJMP 0x0491
0421 C22D RJMP 0x064F
(0441) {
(0442) case clock_mode:break;
(0443) case out_eeprom_addr_modify_mode:
(0444) out_eeprom_addr++;
0422 91800060 LDS R24,out_eeprom_addr
0424 5F8F SUBI R24,0xFF
0425 93800060 STS out_eeprom_addr,R24
(0445) out_eeprom_data=i2c_Read(out_eeprom_addr);
0427 2F08 MOV R16,R24
0428 D55C RCALL _i2c_Read
0429 930001C0 STS out_eeprom_data,R16
(0446)
(0447)
(0448) break;
042B C223 RJMP 0x064F
(0449) case out_eeprom_data_modify_mode:
(0450) out_eeprom_data++;
042C 918001C0 LDS R24,out_eeprom_data
042E 5F8F SUBI R24,0xFF
042F 938001C0 STS out_eeprom_data,R24
(0451) i2c_Write(out_eeprom_addr,out_eeprom_data);
0431 2F28 MOV R18,R24
0432 91000060 LDS R16,out_eeprom_addr
0434 D501 RCALL _i2c_Write
(0452) break;
0435 C219 RJMP 0x064F
(0453) case out_eeprom_read_mode:
(0454) out_eeprom_addr++;
0436 91800060 LDS R24,out_eeprom_addr
0438 5F8F SUBI R24,0xFF
0439 93800060 STS out_eeprom_addr,R24
(0455) out_eeprom_data=i2c_Read(out_eeprom_addr);
043B 2F08 MOV R16,R24
043C D548 RCALL _i2c_Read
043D 930001C0 STS out_eeprom_data,R16
(0456) break;
043F C20F RJMP 0x064F
(0457) case in_eeprom_addr_modify_mode:
(0458) in_eeprom_addr++;
0440 91800061 LDS R24,in_eeprom_addr
0442 5F8F SUBI R24,0xFF
0443 93800061 STS in_eeprom_addr,R24
(0459) EEPROM_READ(in_eeprom_addr, in_eeprom_data);
0445 E081 LDI R24,1
0446 E090 LDI R25,0
0447 8399 STD Y+1,R25
0448 8388 STD Y+0,R24
0449 EB2F LDI R18,0xBF
044A E031 LDI R19,1
044B 91000061 LDS R16,in_eeprom_addr
044D 2711 CLR R17
044E D6DC RCALL _EEPROMReadBytes_extIO
(0460) break;
044F C1FF RJMP 0x064F
(0461) case in_eeprom_data_modify_mode:
(0462) in_eeprom_data++;
0450 918001BF LDS R24,in_eeprom_data
0452 5F8F SUBI R24,0xFF
0453 938001BF STS in_eeprom_data,R24
(0463) EEPROM_WRITE (in_eeprom_addr,in_eeprom_data);
0455 E081 LDI R24,1
0456 E090 LDI R25,0
0457 8399 STD Y+1,R25
0458 8388 STD Y+0,R24
0459 EB2F LDI R18,0xBF
045A E031 LDI R19,1
045B 91000061 LDS R16,in_eeprom_addr
045D 2711 CLR R17
045E D6ED RCALL _EEPROMWriteBytes_extIO
(0464) break;
045F C1EF RJMP 0x064F
(0465) case in_eeprom_read_mode:
(0466) out_eeprom_addr++;
0460 91800060 LDS R24,out_eeprom_addr
0462 5F8F SUBI R24,0xFF
0463 93800060 STS out_eeprom_addr,R24
(0467) EEPROM_READ(in_eeprom_addr, in_eeprom_data);
0465 E081 LDI R24,1
0466 E090 LDI R25,0
0467 8399 STD Y+1,R25
0468 8388 STD Y+0,R24
0469 EB2F LDI R18,0xBF
046A E031 LDI R19,1
046B 91000061 LDS R16,in_eeprom_addr
046D 2711 CLR R17
046E D6BC RCALL _EEPROMReadBytes_extIO
(0468)
(0469) break;
046F C1DF RJMP 0x064F
(0470) case AT45DB021_addr_modify_mode:
(0471) AT45DB021_addr++;
0470 91800064 LDS R24,AT45DB021_addr
0472 5F8F SUBI R24,0xFF
0473 93800064 STS AT45DB021_addr,R24
(0472) if(AT45DB021_addr==0x80)
0475 3880 CPI R24,0x80
0476 F419 BNE 0x047A
(0473) AT45DB021_addr=0x00;
0477 2422 CLR R2
0478 92200064 STS AT45DB021_addr,R2
(0474) PutStr("45DB21 Read Start Addr");
047A E20F LDI R16,0x2F
047B E011 LDI R17,1
047C D589 RCALL _PutStr
(0475) PutInt( AT45DB021_addr );
047D 91000064 LDS R16,AT45DB021_addr
047F 2711 CLR R17
0480 D598 RCALL _PutInt
(0476) AT45DB021_data=ReadBlock(AT45DB021_addr);
0481 91000064 LDS R16,AT45DB021_addr
0483 D417 RCALL _ReadBlock
0484 930001BE STS AT45DB021_data,R16
(0477) PutStr("45DB21 Read Data");
0486 E10D LDI R16,0x1D
0487 E011 LDI R17,1
0488 D57D RCALL _PutStr
(0478) PutInt( AT45DB021_data );
0489 910001BE LDS R16,AT45DB021_data
048B 2711 CLR R17
048C D58C RCALL _PutInt
(0479) PutStr("45DB21 Read End");
048D E00D LDI R16,0xD
048E E011 LDI R17,1
048F D576 RCALL _PutStr
(0480) break;
0490 C1BE RJMP 0x064F
(0481) case AT45DB021_data_modify_mode:
(0482) AT45DB021_data++;
0491 918001BE LDS R24,AT45DB021_data
0493 5F8F SUBI R24,0xFF
0494 938001BE STS AT45DB021_data,R24
(0483) PutStr("45DB21 Write Start");
0496 EF0A LDI R16,0xFA
0497 E010 LDI R17,0
0498 D56D RCALL _PutStr
(0484) WriteBlock(AT45DB021_addr, AT45DB021_data);
0499 912001BE LDS R18,AT45DB021_data
049B 91000064 LDS R16,AT45DB021_addr
049D D3C3 RCALL _WriteBlock
(0485) PutInt( AT45DB021_data );
049E 910001BE LDS R16,AT45DB021_data
04A0 2711 CLR R17
04A1 D577 RCALL _PutInt
(0486) PutStr("45DB21 Write End");
04A2 EE09 LDI R16,0xE9
04A3 E010 LDI R17,0
04A4 D561 RCALL _PutStr
(0487) break;
(0488)
(0489) default :break;
(0490) }
(0491) break;
04A5 C1A9 RJMP 0x064F
(0492) case key_dec:
(0493) switch(mode_state)
04A6 90A001C3 LDS R10,mode_state
04A8 24BB CLR R11
04A9 20AA TST R10
04AA F419 BNE 0x04AE
04AB 20BB TST R11
04AC F409 BNE 0x04AE
04AD C1A1 RJMP 0x064F
04AE 01C5 MOVW R24,R10
04AF 3081 CPI R24,1
04B0 E0E0 LDI R30,0
04B1 079E CPC R25,R30
04B2 F111 BEQ 0x04D5
04B3 3082 CPI R24,2
04B4 E0E0 LDI R30,0
04B5 079E CPC R25,R30
04B6 F141 BEQ 0x04DF
04B7 3083 CPI R24,3
04B8 E0E0 LDI R30,0
04B9 079E CPC R25,R30
04BA F171 BEQ 0x04E9
04BB 3084 CPI R24,4
04BC E0E0 LDI R30,0
04BD 079E CPC R25,R30
04BE F409 BNE 0x04C0
04BF C033 RJMP 0x04F3
04C0 3085 CPI R24,5
04C1 E0E0 LDI R30,0
04C2 079E CPC R25,R30
04C3 F409 BNE 0x04C5
04C4 C03E RJMP 0x0503
04C5 3086 CPI R24,6
04C6 E0E0 LDI R30,0
04C7 079E CPC R25,R30
04C8 F409 BNE 0x04CA
04C9 C049 RJMP 0x0513
04CA 3088 CPI R24,0x8
04CB E0E0 LDI R30,0
04CC 079E CPC R25,R30
04CD F409 BNE 0x04CF
04CE C054 RJMP 0x0523
04CF 3089 CPI R24,0x9
04D0 E0E0 LDI R30,0
04D1 079E CPC R25,R30
04D2 F409 BNE 0x04D4
04D3 C070 RJMP 0x0544
04D4 C17A RJMP 0x064F
(0494) {
(0495) case clock_mode:break;
(0496) case out_eeprom_addr_modify_mode:
(0497) out_eeprom_addr--;
04D5 91800060 LDS R24,out_eeprom_addr
04D7 5081 SUBI R24,1
04D8 93800060 STS out_eeprom_addr,R24
(0498) out_eeprom_data=i2c_Read(out_eeprom_addr);
04DA 2F08 MOV R16,R24
04DB D4A9 RCALL _i2c_Read
04DC 930001C0 STS out_eeprom_data,R16
(0499) break;
04DE C170 RJMP 0x064F
(0500) case out_eeprom_data_modify_mode:
(0501) out_eeprom_data--;
04DF 918001C0 LDS R24,out_eeprom_data
04E1 5081 SUBI R24,1
04E2 938001C0 STS out_eeprom_data,R24
(0502) i2c_Write(out_eeprom_addr,out_eeprom_data);
04E4 2F28 MOV R18,R24
04E5 91000060 LDS R16,out_eeprom_addr
04E7 D44E RCALL _i2c_Write
(0503) break;
04E8 C166 RJMP 0x064F
(0504) case out_eeprom_read_mode:
(0505) out_eeprom_addr--;
04E9 91800060 LDS R24,out_eeprom_addr
04EB 5081 SUBI R24,1
04EC 93800060 STS out_eeprom_addr,R24
(0506) out_eeprom_data=i2c_Read(out_eeprom_addr);
04EE 2F08 MOV R16,R24
04EF D495 RCALL _i2c_Read
04F0 930001C0 STS out_eeprom_data,R16
(0507) break;
04F2 C15C RJMP 0x064F
(0508) case in_eeprom_addr_modify_mode:
(0509) in_eeprom_addr--;
04F3 91800061 LDS R24,in_eeprom_addr
04F5 5081 SUBI R24,1
04F6 93800061 STS in_eeprom_addr,R24
(0510) EEPROM_READ(in_eeprom_addr, in_eeprom_data);
04F8 E081 LDI R24,1
04F9 E090 LDI R25,0
04FA 8399 STD Y+1,R25
04FB 8388 STD Y+0,R24
04FC EB2F LDI R18,0xBF
04FD E031 LDI R19,1
04FE 91000061 LDS R16,in_eeprom_addr
0500 2711 CLR R17
0501 D629 RCALL _EEPROMReadBytes_extIO
(0511)
(0512) break;
0502 C14C RJMP 0x064F
(0513) case in_eeprom_data_modify_mode:
(0514) in_eeprom_data--;
0503 918001BF LDS R24,in_eeprom_data
0505 5081 SUBI R24,1
0506 938001BF STS in_eeprom_data,R24
(0515) EEPROM_WRITE (in_eeprom_addr,in_eeprom_data);
0508 E081 LDI R24,1
0509 E090 LDI R25,0
050A 8399 STD Y+1,R25
050B 8388 STD Y+0,R24
050C EB2F LDI R18,0xBF
050D E031 LDI R19,1
050E 91000061 LDS R16,in_eeprom_addr
0510 2711 CLR R17
0511 D63A RCALL _EEPROMWriteBytes_extIO
(0516) break;
0512 C13C RJMP 0x064F
(0517)
(0518) case in_eeprom_read_mode:
(0519) in_eeprom_addr--;
0513 91800061 LDS R24,in_eeprom_addr
0515 5081 SUBI R24,1
0516 93800061 STS in_eeprom_addr,R24
(0520) EEPROM_READ(in_eeprom_addr, in_eeprom_data);
0518 E081 LDI R24,1
0519 E090 LDI R25,0
051A 8399 STD Y+1,R25
051B 8388 STD Y+0,R24
051C EB2F LDI R18,0xBF
051D E031 LDI R19,1
051E 91000061 LDS R16,in_eeprom_addr
0520 2711 CLR R17
0521 D609 RCALL _EEPROMReadBytes_extIO
(0521) break;
0522 C12C RJMP 0x064F
(0522) case AT45DB021_addr_modify_mode:
(0523) AT45DB021_addr--;
0523 91800064 LDS R24,AT45DB021_addr
0525 5081 SUBI R24,1
0526 93800064 STS AT45DB021_addr,R24
(0524) if(AT45DB021_addr==0xFF)
0528 3F8F CPI R24,0xFF
0529 F419 BNE 0x052D
(0525) AT45DB021_addr=0x7F;
052A E78F LDI R24,0x7F
052B 93800064 STS AT45DB021_addr,R24
(0526) PutStr("45DB21 Read Start Addr");
052D E20F LDI R16,0x2F
052E E011 LDI R17,1
052F D4D6 RCALL _PutStr
(0527) PutInt( AT45DB021_addr );
0530 91000064 LDS R16,AT45DB021_addr
0532 2711 CLR R17
0533 D4E5 RCALL _PutInt
(0528) AT45DB021_data=ReadBlock(AT45DB021_addr);
0534 91000064 LDS R16,AT45DB021_addr
0536 D364 RCALL _ReadBlock
0537 930001BE STS AT45DB021_data,R16
(0529) PutStr("45DB21 Read Data");
0539 E10D LDI R16,0x1D
053A E011 LDI R17,1
053B D4CA RCALL _PutStr
(0530) PutInt( AT45DB021_data );
053C 910001BE LDS R16,AT45DB021_data
053E 2711 CLR R17
053F D4D9 RCALL _PutInt
(0531) PutStr("45DB21 Read End");
0540 E00D LDI R16,0xD
0541 E011 LDI R17,1
0542 D4C3 RCALL _PutStr
(0532) break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -