📄 handle.lst
字号:
005A2 2033 TST R3
005A3 F031 BEQ 0x05AA
(0346) Cal.OutM--;
005A4 01C1 MOVW R24,R2
005A5 9701 SBIW R24,1
005A6 9390 0080 STS Cal+3,R25
005A8 9380 007F STS Cal+2,R24
(0347) OCR1B=Cal.OutM;
005AA 9020 007F LDS R2,Cal+2
005AC 9030 0080 LDS R3,Cal+3
005AE BC39 OUT 0x29,R3
005AF BC28 OUT 0x28,R2
(0348) Delay(10000);
005B0 E100 LDI R16,0x10
005B1 E217 LDI R17,0x27
005B2 E020 LDI R18,0
005B3 E030 LDI R19,0
005B4 D346 RCALL _Delay
(0349) }
(0350)
(0351) }
(0352) if(CalTemp!=Cal.OutM)
005B5 9020 007F LDS R2,Cal+2
005B7 9030 0080 LDS R3,Cal+3
005B9 9040 007B LDS R4,CalTemp
005BB 9050 007C LDS R5,CalTemp+1
005BD 1442 CP R4,R2
005BE 0453 CPC R5,R3
005BF F409 BNE 0x05C1
005C0 C039 RJMP 0x05FA
(0353) {
(0354) disbuff4=Table[(Cal.OutM>>12)&0xf];
005C1 E02C LDI R18,0xC
005C2 E030 LDI R19,0
005C3 0181 MOVW R16,R2
005C4 D493 RCALL lsr16
005C5 01F8 MOVW R30,R16
005C6 70EF ANDI R30,0xF
005C7 70F0 ANDI R31,0
005C8 E680 LDI R24,0x60
005C9 E090 LDI R25,0
005CA 0FE8 ADD R30,R24
005CB 1FF9 ADC R31,R25
005CC 8020 LD R2,Z
005CD 9220 008D STS disbuff+3,R2
(0355) disbuff5=Table[(Cal.OutM>>8)&0xf];
005CF 91E0 007F LDS R30,Cal+2
005D1 91F0 0080 LDS R31,Cal+3
005D3 2FEF MOV R30,R31
005D4 27FF CLR R31
005D5 70EF ANDI R30,0xF
005D6 70F0 ANDI R31,0
005D7 0FE8 ADD R30,R24
005D8 1FF9 ADC R31,R25
005D9 8020 LD R2,Z
005DA 9220 008C STS disbuff+2,R2
(0356) disbuff6=Table[(Cal.OutM>>4)&0xf];
005DC 91E0 007F LDS R30,Cal+2
005DE 91F0 0080 LDS R31,Cal+3
005E0 95F6 LSR R31
005E1 95E7 ROR R30
005E2 95F6 LSR R31
005E3 95E7 ROR R30
005E4 95F6 LSR R31
005E5 95E7 ROR R30
005E6 95F6 LSR R31
005E7 95E7 ROR R30
005E8 70EF ANDI R30,0xF
005E9 70F0 ANDI R31,0
005EA 0FE8 ADD R30,R24
005EB 1FF9 ADC R31,R25
005EC 8020 LD R2,Z
005ED 9220 008B STS disbuff+1,R2
(0357) disbuff7=Table[Cal.OutM &0xf];
005EF 91E0 007F LDS R30,Cal+2
005F1 91F0 0080 LDS R31,Cal+3
005F3 70EF ANDI R30,0xF
005F4 70F0 ANDI R31,0
005F5 0FE8 ADD R30,R24
005F6 1FF9 ADC R31,R25
005F7 8020 LD R2,Z
005F8 9220 008A STS disbuff,R2
(0358) }
(0359) CalTemp=Cal.OutM;
005FA 9020 007F LDS R2,Cal+2
005FC 9030 0080 LDS R3,Cal+3
005FE 9230 007C STS CalTemp+1,R3
00600 9220 007B STS CalTemp,R2
(0360) return GOTO_SET_OUTM;
00602 E003 LDI R16,3
00603 9622 ADIW R28,2
00604 9508 RET
_Set_OutL:
00605 9723 SBIW R28,3
(0361) }//-------------------------------------------------------------
(0362) u8 Set_OutL(void)
(0363) {
(0364)
(0365) if(SetKey==0)
00606 99B0 SBIC 0x16,0
00607 C064 RJMP 0x066C
(0366) {
(0367) Delay(10);
00608 E00A LDI R16,0xA
00609 E010 LDI R17,0
0060A E020 LDI R18,0
0060B E030 LDI R19,0
0060C D2EE RCALL _Delay
(0368) if(SetKey==0)
0060D 99B0 SBIC 0x16,0
0060E C05D RJMP 0x066C
(0369) {
(0370) EEPROMWriteBytes(0,(u8 *)(& Cal),12);
0060F E08C LDI R24,0xC
00610 E090 LDI R25,0
00611 8399 STD Y+1,R25
00612 8388 ST Y,R24
00613 E72D LDI R18,0x7D
00614 E030 LDI R19,0
00615 2700 CLR R16
00616 2711 CLR R17
00617 D489 RCALL _EEPROMWriteBytes
(0371) Clr_RST();
00618 B382 IN R24,0x12
00619 7F87 ANDI R24,0xF7
0061A BB82 OUT 0x12,R24
(0372) Delay(4000);
0061B EA00 LDI R16,0xA0
0061C E01F LDI R17,0xF
0061D E020 LDI R18,0
0061E E030 LDI R19,0
0061F D2DB RCALL _Delay
(0373) Set_RST();
00620 9A93 SBI 0x12,3
(0374) CS5460a_Write(SYNC1,SYNC1,SYNC1,SYNC0);
00621 EF8E LDI R24,0xFE
00622 838A STD Y+2,R24
00623 EF8F LDI R24,0xFF
00624 8388 ST Y,R24
00625 EF2F LDI R18,0xFF
00626 EF0F LDI R16,0xFF
00627 DA30 RCALL _CS5460a_Write
(0375) CS5460A_REG_WR(0,0x00,0x00,0x11);
00628 E181 LDI R24,0x11
00629 838A STD Y+2,R24
0062A 2422 CLR R2
0062B 8228 ST Y,R2
0062C 2722 CLR R18
0062D 2700 CLR R16
0062E DA37 RCALL _CS5460A_REG_WR
(0376) CS5460A_REG_WR(28,0,0x00,0x04);//控制寄存器
0062F E084 LDI R24,4
00630 838A STD Y+2,R24
00631 2422 CLR R2
00632 8228 ST Y,R2
00633 2722 CLR R18
00634 E10C LDI R16,0x1C
00635 DA30 RCALL _CS5460A_REG_WR
(0377) CS5460A_REG_WR(15,0xff,0xff,0xff);
00636 EF8F LDI R24,0xFF
00637 838A STD Y+2,R24
00638 8388 ST Y,R24
00639 EF2F LDI R18,0xFF
0063A E00F LDI R16,0xF
0063B DA2A RCALL _CS5460A_REG_WR
(0378) CS5460A_REG_WR(26,0x80,0x00,0x00);
0063C 2422 CLR R2
0063D 822A STD Y+2,R2
0063E 8228 ST Y,R2
0063F E820 LDI R18,0x80
00640 E10A LDI R16,0x1A
00641 DA24 RCALL _CS5460A_REG_WR
(0379) Delay(4000);
00642 EA00 LDI R16,0xA0
00643 E01F LDI R17,0xF
00644 E020 LDI R18,0
00645 E030 LDI R19,0
00646 D2B4 RCALL _Delay
(0380) CS5460a_Write_Byte(0xC9);
00647 EC09 LDI R16,0xC9
00648 DA05 RCALL _CS5460a_Write_Byte
(0381) disbuff0=Table[12];
00649 9020 006C LDS R2,Table+12
0064B 9220 0091 STS disbuff+7,R2
(0382) disbuff1=Table[10];
0064D 9020 006A LDS R2,Table+10
0064F 9220 0090 STS disbuff+6,R2
(0383) disbuff2=Table[17];
00651 9020 0071 LDS R2,Table+17
00653 9220 008F STS disbuff+5,R2
(0384) disbuff3=Table[11];
00655 9020 006B LDS R2,Table+11
00657 9220 008E STS disbuff+4,R2
(0385) disbuff4=Table[17];
00659 9020 0071 LDS R2,Table+17
0065B 9220 008D STS disbuff+3,R2
(0386) disbuff5=Table[17];
0065D 9220 008C STS disbuff+2,R2
(0387) disbuff6=Table[17];
0065F 9220 008B STS disbuff+1,R2
(0388) disbuff7=Table[17];
00661 9220 008A STS disbuff,R2
(0389) Delay(50000);
00663 E500 LDI R16,0x50
00664 EC13 LDI R17,0xC3
00665 E020 LDI R18,0
00666 E030 LDI R19,0
00667 D293 RCALL _Delay
(0390) while(SetKey==0);
00668 9BB0 SBIS 0x16,0
00669 CFFE RJMP 0x0668
(0391) return GOTO_CAL_IB;
0066A E005 LDI R16,5
0066B C08F RJMP 0x06FB
(0392) }
(0393)
(0394) }
(0395)
(0396) if(AddKey==0)
0066C 9980 SBIC 0x10,0
0066D C01F RJMP 0x068D
(0397) {
(0398) Delay(10);
0066E E00A LDI R16,0xA
0066F E010 LDI R17,0
00670 E020 LDI R18,0
00671 E030 LDI R19,0
00672 D288 RCALL _Delay
(0399) if(AddKey==0)
00673 9980 SBIC 0x10,0
00674 C018 RJMP 0x068D
(0400) {
(0401) if(Cal.OutL<0x3E7F)
00675 9180 007D LDS R24,Cal
00677 9190 007E LDS R25,Cal+1
00679 378F CPI R24,0x7F
0067A E3EE LDI R30,0x3E
0067B 079E CPC R25,R30
0067C F428 BCC 0x0682
(0402) Cal.OutL++;
0067D 9601 ADIW R24,1
0067E 9390 007E STS Cal+1,R25
00680 9380 007D STS Cal,R24
(0403) OCR1B=Cal.OutL;
00682 9020 007D LDS R2,Cal
00684 9030 007E LDS R3,Cal+1
00686 BC39 OUT 0x29,R3
00687 BC28 OUT 0x28,R2
(0404) Delay(10000);
00688 E100 LDI R16,0x10
00689 E217 LDI R17,0x27
0068A E020 LDI R18,0
0068B E030 LDI R19,0
0068C D26E RCALL _Delay
(0405)
(0406) }
(0407) }
(0408) if(SubbKey==0)
0068D 9981 SBIC 0x10,1
0068E C020 RJMP 0x06AF
(0409) {
(0410) Delay(10);
0068F E00A LDI R16,0xA
00690 E010 LDI R17,0
00691 E020 LDI R18,0
00692 E030 LDI R19,0
00693 D267 RCALL _Delay
(0411) if(SubbKey==0)
00694 9981 SBIC 0x10,1
00695 C019 RJMP 0x06AF
(0412) {
(0413) if(Cal.OutL)
00696 9020 007D LDS R2,Cal
00698 9030 007E LDS R3,Cal+1
0069A 2022 TST R2
0069B F411 BNE 0x069E
0069C 2033 TST R3
0069D F031 BEQ 0x06A4
(0414) Cal.OutL--;
0069E 01C1 MOVW R24,R2
0069F 9701 SBIW R24,1
006A0 9390 007E STS Cal+1,R25
006A2 9380 007D STS Cal,R24
(0415) OCR1B=Cal.OutL;
006A4 9020 007D LDS R2,Cal
006A6 9030 007E LDS R3,Cal+1
006A8 BC39 OUT 0x29,R3
006A9 BC28 OUT 0x28,R2
(0416) Delay(10000);
006AA E100 LDI R16,0x10
006AB E217 LDI R17,0x27
006AC E020 LDI R18,0
006AD E030 LDI R19,0
006AE D24C RCALL _Delay
(0417) }
(0418)
(0419) }
(0420) if(CalTemp!=Cal.OutL)
006AF 9020 007D LDS R2,Cal
006B1 9030 007E LDS R3,Cal+1
006B3 9040 007B LDS R4,CalTemp
006B5 9050 007C LDS R5,CalTemp+1
006B7 1442 CP R4,R2
006B8 0453 CPC R5,R3
006B9 F409 BNE 0x06BB
006BA C039 RJMP 0x06F4
(0421) {
(0422) disbuff4=Table[(Cal.OutL>>12)&0xf];
006BB E02C LDI R18,0xC
006BC E030 LDI R19,0
006BD 0181 MOVW R16,R2
006BE D399 RCALL lsr16
006BF 01F8 MOVW R30,R16
006C0 70EF ANDI R30,0xF
006C1 70F0 ANDI R31,0
006C2 E680 LDI R24,0x60
006C3 E090 LDI R25,0
006C4 0FE8 ADD R30,R24
006C5 1FF9 ADC R31,R25
006C6 8020 LD R2,Z
006C7 9220 008D STS disbuff+3,R2
(0423) disbuff5=Table[(Cal.OutL>>8)&0xf];
006C9 91E0 007D LDS R30,Cal
006CB 91F0 007E LDS R31,Cal+1
006CD 2FEF MOV R30,R31
006CE 27FF CLR R31
006CF 70EF ANDI R30,0xF
006D0 70F0 ANDI R31,0
006D1 0FE8 ADD R30,R24
006D2 1FF9 ADC R31,R25
006D3 8020 LD R2,Z
006D4 9220 008C STS disbuff+2,R2
(0424) disbuff6=Table[(Cal.OutL>>4)&0xf];
006D6 91E0 007D LDS R30,Cal
006D8 91F0 007E LDS R31,Cal+1
006DA 95F6 LSR R31
006DB 95E7 ROR R30
006DC 95F6 LSR R31
006DD 95E7 ROR R30
006DE 95F6 LSR R31
006DF 95E7 ROR R30
006E0 95F6 LSR R31
006E1 95E7 ROR R30
006E2 70EF ANDI R30,0xF
006E3 70F0 ANDI R31,0
006E4 0FE8 ADD R30,R24
006E5 1FF9 ADC R31,R25
006E6 8020 LD R2,Z
006E7 9220 008B STS disbuff+1,R2
(0425) disbuff7=Table[Cal.OutL&0xf];
006E9 91E0 007D LDS R30,Cal
006EB 91F0 007E LDS R31,Cal+1
006ED 70EF ANDI R30,0xF
006EE 70F0 ANDI R31,0
006EF 0FE8 ADD R30,R24
006F0 1FF9 ADC R31,R25
006F1 8020 LD R2,Z
006F2 9220 008A STS disbuff,R2
(0426) }
(0427) CalTemp=0;
006F4 2422 CLR R2
006F5 2433 CLR R3
006F6 9230 007C STS CalTemp+1,R3
006F8 9220 007B STS CalTemp,R2
(0428) return GOTO_SET_OUTL;
006FA E002 LDI R16,2
006FB 9623 ADIW R28,3
006FC 9508 RET
_Cal_IB:
temp --> Y,+3
006FD 9727 SBIW R28,7
(0429) }
(0430) //-------------------------------------------------------------
(0431) u8 Cal_IB(void)
(0432) {
(0433) unsigned long temp;
(0434) if(SetKey==0)
006FE 99B0 SBIC 0x16,0
006FF C0AD RJMP 0x07AD
(0435) {
(0436) Delay(10);
00700 E00A LDI R16,0xA
00701 E010 LDI R17,0
00702 E020 LDI R18,0
00703 E030 LDI R19,0
00704 D1F6 RCALL _Delay
(0437) if(SetKey==0)
00705 99B0 SBIC 0x16,0
00706 C0A6 RJMP 0x07AD
(0438) {
(0439) temp= CS5460a_Read(1);
00707 E001 LDI R16,1
00708 D970 RCALL _CS5460a_Read
00709 830B STD Y+3,R16
0070A 831C STD Y+4,R17
0070B 832D STD Y+5,R18
0070C 833E STD Y+6,R19
(0440) Cal.IB_L=temp & 0xff;
0070D EF8F LDI R24,0xFF
0070E E090 LDI R25,0
0070F E0A0 LDI R26,0
00710 E0B0 LDI R27,0
00711 802B LDD R2,Y+3
00712 803C LDD R3,Y+4
00713 804D LDD R4,Y+5
00714 805E LDD R5,Y+6
00715 2228 AND R2,R24
00716 2239 AND R3,R25
00717 224A AND R4,R26
00718 225B AND R5,R27
00719 9220 0085 STS Cal+8,R2
(0441) temp>>=8;
0071B E088 LDI R24,0x8
0071C E090 LDI R25,0
0071D 810B LDD R16,Y+3
0071E 811C LDD R17,Y+4
0071F 812D LDD R18,Y+5
00720 813E LDD R19,Y+6
00721 938A ST
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -