📄 atmega16test.lst
字号:
(0840) ModeStatus=MODE_NOMALE;
0443 E081 LDI R24,1
0444 9380013F STS ModeStatus,R24
(0841) kind=0;
0446 2400 CLR R0
0447 860C STD Y+12,R0
(0842) break;
0448 C0DF RJMP 0x0528
(0843) }
(0844) }
(0845) }
(0846) K4Count++;
0449 9180013B LDS R24,K4Count
044B 5F8F SUBI R24,0xFF
044C 9380013B STS K4Count,R24
(0847) switch(K4Count)
044E 2EC8 MOV R12,R24
044F 24DD CLR R13
0450 01C6 MOVW R24,R12
0451 3082 CPI R24,2
0452 E0E0 LDI R30,0
0453 079E CPC R25,R30
0454 F089 BEQ 0x0466
0455 3083 CPI R24,3
0456 E0E0 LDI R30,0
0457 079E CPC R25,R30
0458 F091 BEQ 0x046B
0459 3084 CPI R24,4
045A E0E0 LDI R30,0
045B 079E CPC R25,R30
045C F099 BEQ 0x0470
045D 3085 CPI R24,5
045E E0E0 LDI R30,0
045F 079E CPC R25,R30
0460 F0A1 BEQ 0x0475
0461 3086 CPI R24,6
0462 E0E0 LDI R30,0
0463 079E CPC R25,R30
0464 F0A9 BEQ 0x047A
0465 C018 RJMP 0x047E
(0848) {
(0849) case 2: //byte1
(0850) PasswordData[0]=KK;
0466 842D LDD R2,Y+13
0467 843E LDD R3,Y+14
0468 922000B2 STS PasswordData,R2
(0851) break;
046A C013 RJMP 0x047E
(0852) case 3: //byte2
(0853) PasswordData[1]=KK;
046B 842D LDD R2,Y+13
046C 843E LDD R3,Y+14
046D 922000B3 STS PasswordData+1,R2
(0854) break;
046F C00E RJMP 0x047E
(0855) case 4: //byte3
(0856) PasswordData[2]=KK;
0470 842D LDD R2,Y+13
0471 843E LDD R3,Y+14
0472 922000B4 STS PasswordData+2,R2
(0857) break;
0474 C009 RJMP 0x047E
(0858) case 5: //byte4
(0859) PasswordData[3]=KK;
0475 842D LDD R2,Y+13
0476 843E LDD R3,Y+14
0477 922000B5 STS PasswordData+3,R2
(0860) break;
0479 C004 RJMP 0x047E
(0861) case 6: //byte5
(0862) PasswordData[4]=KK;
047A 842D LDD R2,Y+13
047B 843E LDD R3,Y+14
047C 922000B6 STS 0xB6,R2
(0863) break;
(0864) default:
(0865) break;
(0866) }
(0867) // if(Password_Enable==TRUE && PwModify_flag>=TRUE)
(0868) if(Password_Enable==TRUE && PwModify_flag==TRUE) //070616 modify
047E 91800137 LDS R24,Password_Enable
0480 3081 CPI R24,1
0481 F009 BEQ 0x0483
0482 C055 RJMP 0x04D8
0483 91800128 LDS R24,PwModify_flag
0485 91900129 LDS R25,PwModify_flag+1
0487 3081 CPI R24,1
0488 E0E0 LDI R30,0
0489 079E CPC R25,R30
048A F009 BEQ 0x048C
048B C04C RJMP 0x04D8
(0869) {
(0870) if(K4Count==2 && PasswordData[0]==0x3)
048C 9180013B LDS R24,K4Count
048E 3082 CPI R24,2
048F F4D1 BNE 0x04AA
0490 918000B2 LDS R24,PasswordData
0492 3083 CPI R24,3
0493 F4B1 BNE 0x04AA
(0871) {
(0872) ModeStatus=MODE_PASSWORD;
0494 E084 LDI R24,4
0495 9380013F STS ModeStatus,R24
(0873) PassDate_flag=PASSWORD_SETUP;
0497 E181 LDI R24,0x11
0498 93800136 STS PassDate_flag,R24
(0874) PwModify_flag=3;
049A E083 LDI R24,3
049B E090 LDI R25,0
049C 93900129 STS PwModify_flag+1,R25
049E 93800128 STS PwModify_flag,R24
(0875) K1Count=0;
04A0 2422 CLR R2
04A1 9220013C STS K1Count,R2
(0876) K4Count=0;
04A3 9220013B STS K4Count,R2
(0877) KK=0;
04A5 2400 CLR R0
04A6 2411 CLR R1
04A7 861E STD Y+14,R1
04A8 860D STD Y+13,R0
(0878) }
04A9 C02E RJMP 0x04D8
(0879) else if(K4Count==2 && PasswordData[0]==0x8)
04AA 9180013B LDS R24,K4Count
04AC 3082 CPI R24,2
04AD F4A1 BNE 0x04C2
04AE 918000B2 LDS R24,PasswordData
04B0 3088 CPI R24,0x8
04B1 F481 BNE 0x04C2
(0880) {
(0881) ModeStatus=MODE_PASSWORD;
04B2 E084 LDI R24,4
04B3 9380013F STS ModeStatus,R24
(0882) PassDate_flag=DATE_SETUP;
04B5 E282 LDI R24,0x22
04B6 93800136 STS PassDate_flag,R24
(0883) K1Count=0;
04B8 2422 CLR R2
04B9 9220013C STS K1Count,R2
(0884) K4Count=0;
04BB 9220013B STS K4Count,R2
(0885) KK=0;
04BD 2400 CLR R0
04BE 2411 CLR R1
04BF 861E STD Y+14,R1
04C0 860D STD Y+13,R0
(0886) }
04C1 C016 RJMP 0x04D8
(0887) else if(K4Count==3 && PasswordData[0]==38&& PasswordData[1]==83)
04C2 9180013B LDS R24,K4Count
04C4 3083 CPI R24,3
04C5 F491 BNE 0x04D8
04C6 918000B2 LDS R24,PasswordData
04C8 3286 CPI R24,0x26
04C9 F471 BNE 0x04D8
04CA 918000B3 LDS R24,PasswordData+1
04CC 3583 CPI R24,0x53
04CD F451 BNE 0x04D8
(0888) {
(0889) K1Count=0;
04CE 2422 CLR R2
04CF 9220013C STS K1Count,R2
(0890) ModeStatus=MODE_NOMALE;
04D1 E081 LDI R24,1
04D2 9380013F STS ModeStatus,R24
(0891) kind=0;
04D4 2400 CLR R0
04D5 860C STD Y+12,R0
(0892) PasswordCannel();
04D6 DCBF RCALL _PasswordCannel
(0893) break;
04D7 C050 RJMP 0x0528
(0894) }
(0895) }
(0896)
(0897) KK=0;
04D8 2400 CLR R0
04D9 2411 CLR R1
04DA 861E STD Y+14,R1
04DB 860D STD Y+13,R0
(0898) }
(0899) }
(0900) break;
04DC C04B RJMP 0x0528
(0901) case KEY_K1K4RST://k1k4
(0902) FactorySetup();
04DD 940E18D0 CALL _FactorySetup
(0903) EepromICnumberWr();
04DF 940E17E9 CALL _EepromICnumberWr
(0904) EepromViewModeWr();
04E1 940E18F6 CALL _EepromViewModeWr
(0905) WatchDog(0);
04E3 2700 CLR R16
04E4 D3D8 RCALL _WatchDog
(0906) while(1);
04E5 CFFF RJMP 0x04E5
(0907) break;
04E6 C041 RJMP 0x0528
(0908) case KEY_K3K4RST: //k3k4
(0909) EepromPasswordRd();
04E7 940E1910 CALL _EepromPasswordRd
(0910) PwModify_flag=FALSE;
04E9 2422 CLR R2
04EA 2433 CLR R3
04EB 92300129 STS PwModify_flag+1,R3
04ED 92200128 STS PwModify_flag,R2
(0911) if(Password_Enable==FALSE)
04EF 90200137 LDS R2,Password_Enable
04F1 2022 TST R2
04F2 F481 BNE 0x0503
(0912) {
(0913) ModeStatus=MODE_PASSWORD;
04F3 E084 LDI R24,4
04F4 9380013F STS ModeStatus,R24
(0914) PassDate_flag=INVALE_SETUP;
04F6 E383 LDI R24,0x33
04F7 93800136 STS PassDate_flag,R24
(0915) K1Count=0;
04F9 2422 CLR R2
04FA 9220013C STS K1Count,R2
(0916) K4Count=0;
04FC 9220013B STS K4Count,R2
(0917) KK=0;
04FE 2400 CLR R0
04FF 2411 CLR R1
0500 861E STD Y+14,R1
0501 860D STD Y+13,R0
(0918) }
0502 C025 RJMP 0x0528
(0919) else
(0920) {
(0921) ModeStatus=MODE_PASSWORD;
0503 E084 LDI R24,4
0504 9380013F STS ModeStatus,R24
(0922) PassDate_flag=PASSWORD_SETUP;
0506 E181 LDI R24,0x11
0507 93800136 STS PassDate_flag,R24
(0923) K1Count=0;
0509 2422 CLR R2
050A 9220013C STS K1Count,R2
(0924) K4Count=0;
050C 9220013B STS K4Count,R2
(0925) for(i=0;i<PASSWORDLENGHT;i++)
050E 2400 CLR R0
050F 8609 STD Y+9,R0
0510 C010 RJMP 0x0521
(0926) tempPW[i]=PasswordData[i];
0511 EB82 LDI R24,0xB2
0512 E090 LDI R25,0
0513 85E9 LDD R30,Y+9
0514 27FF CLR R31
0515 0FE8 ADD R30,R24
0516 1FF9 ADC R31,R25
0517 8020 LDD R2,Z+0
0518 01CE MOVW R24,R28
0519 85E9 LDD R30,Y+9
051A 27FF CLR R31
051B 0FE8 ADD R30,R24
051C 1FF9 ADC R31,R25
051D 8220 STD Z+0,R2
051E 8409 LDD R0,Y+9
051F 9403 INC R0
0520 8609 STD Y+9,R0
0521 8589 LDD R24,Y+9
0522 3086 CPI R24,6
0523 F368 BCS 0x0511
(0927) KK=0;
0524 2400 CLR R0
0525 2411 CLR R1
0526 861E STD Y+14,R1
0527 860D STD Y+13,R0
(0928) }
(0929) break;
(0930) default:
(0931) break;
(0932) }
(0933) KeyCode=0;
0528 2422 CLR R2
0529 9220006E STS KeyCode,R2
(0934) if(ModeStatus==MODE_LENGHT)
052B 9180013F LDS R24,ModeStatus
052D 3082 CPI R24,2
052E F009 BEQ 0x0530
052F C066 RJMP 0x0596
(0935) {
(0936) DispBuffer[0]=CharFont[17];
0530 EFE5 LDI R30,0xF5
0531 E0F1 LDI R31,1
0532 91E4 LPM R30,0(Z)
0533 93E00073 STS DispBuffer,R30
(0937) loop=val_lenght;
0535 90200134 LDS R2,val_lenght
0537 90300135 LDS R3,val_lenght+1
0539 823F STD Y+7,R3
053A 822E STD Y+6,R2
(0938) bit=loop/1000;
053B EE28 LDI R18,0xE8
053C E033 LDI R19,3
053D 0181 MOVW R16,R2
053E 940E1B3B CALL div16u
0540 8708 STD Y+8,R16
(0939) DispBuffer[1]=CharFont[bit];
0541 EE84 LDI R24,0xE4
0542 E091 LDI R25,1
0543 2FE0 MOV R30,R16
0544 27FF CLR R31
0545 0FE8 ADD R30,R24
0546 1FF9 ADC R31,R25
0547 91E4 LPM R30,0(Z)
0548 93E00074 STS DispBuffer+1,R30
(0940) loop=loop-bit *1000;
054A 2F20 MOV R18,R16
054B 2733 CLR R19
054C EE08 LDI R16,0xE8
054D E013 LDI R17,3
054E 940E1BC6 CALL empy16s
0550 800E LDD R0,Y+6
0551 801F LDD R1,Y+7
0552 1A00 SUB R0,R16
0553 0A11 SBC R1,R17
0554 821F STD Y+7,R1
0555 820E STD Y+6,R0
(0941) bit=loop/100;
0556 E624 LDI R18,0x64
0557 E030 LDI R19,0
0558 0180 MOVW R16,R0
0559 940E1B3B CALL div16u
055B 8708 STD Y+8,R16
(0942) DispBuffer[2]=CharFont[bit];
055C EE84 LDI R24,0xE4
055D E091 LDI R25,1
055E 2FE0 MOV R30,R16
055F 27FF CLR R31
0560 0FE8 ADD R30,R24
0561 1FF9 ADC R31,R25
0562 91E4 LPM R30,0(Z)
0563 93E00075 STS DispBuffer+2,R30
(0943) loop=loop-bit *100;
0565 E684 LDI R24,0x64
0566 2E00 MOV R0,R16
0567 9D80 MUL R24,R0
0568 810E LDD R16,Y+6
0569 811F LDD R17,Y+7
056A 1900 SUB R16,R0
056B 0911 SBC R17,R1
056C 831F STD Y+7,R17
056D 830E STD Y+6,R16
(0944) bit=loop/10;
056E E02A LDI R18,0xA
056F E030 LDI R19,0
0570 940E1B3B CALL div16u
0572 8708 STD Y+8,R16
(0945) DispBuffer[3]=CharFont[bit];
0573 EE84 LDI R24,0xE4
0574 E091 LDI R25,1
0575 2FE0 MOV R30,R16
0576 27FF CLR R31
0577 0FE8 ADD R30,R24
0578 1FF9 ADC R31,R25
0579 91E4 LPM R30,0(Z)
057A 93E00076 STS DispBuffer+3,R30
(0946) loop=loop-bit *10;
057C E08A LDI R24,0xA
057D 2E00 MOV R0,R16
057E 9D80 MUL R24,R0
057F 810E LDD R16,Y+6
0580 811F LDD R17,Y+7
0581 1900 SUB R16,R0
0582 0911 SBC R17,R1
0583 831F STD Y+7,R17
0584 830E STD Y+6,R16
(0947) DispBuffer[4]=CharFont[loop];
0585 EE84 LDI R24,0xE4
0586 E091 LDI R25,1
0587 01F8 MOVW R30,R16
0588 0FE8 ADD R30,R24
0589 1FF9 ADC R31,R25
058A 91E4 LPM R30,0(Z)
058B 93E00077 STS 0x77,R30
(0948)
(0949) BLenghtCount=val_lenght;
058D 9020013
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -