📄 ytc01.lst
字号:
(0171) CRCT.TXCRC=0;
00BD 2433 CLR R3
00BE 92300064 STS _CRCT+1,R3
00C0 92200063 STS _CRCT,R2
(0172) for(i=0;i<12;i++)
00C2 2744 CLR R20
00C3 C013 RJMP 0x00D7
(0173) {
(0174) CRCT.TXCRC=CRCT.TXCRC+RXbuf[i];
00C4 E685 LDI R24,0x65
00C5 E090 LDI R25,0
00C6 2FE4 MOV R30,R20
00C7 27FF CLR R31
00C8 0FE8 ADD R30,R24
00C9 1FF9 ADC R31,R25
00CA 8020 LDD R2,Z+0
00CB 2433 CLR R3
00CC 90400063 LDS R4,_CRCT
00CE 90500064 LDS R5,_CRCT+1
00D0 0C42 ADD R4,R2
00D1 1C53 ADC R5,R3
00D2 92500064 STS _CRCT+1,R5
00D4 92400063 STS _CRCT,R4
00D6 9543 INC R20
00D7 304C CPI R20,0xC
00D8 F358 BCS 0x00C4
(0175) }//for(i=0;i<12;i++)
(0176)
(0177) if(CRCT.txCRC[0]==RXbuf[12] && CRCT.txCRC[1]==RXbuf[13])
00D9 90200071 LDS R2,0x71
00DB 90300063 LDS R3,_CRCT
00DD 1432 CP R3,R2
00DE F009 BEQ 0x00E0
00DF C031 RJMP 0x0111
00E0 90200072 LDS R2,0x72
00E2 90300064 LDS R3,_CRCT+1
00E4 1432 CP R3,R2
00E5 F559 BNE 0x0111
(0178) {
(0179) if(RXbuf[2]=='1')
00E6 91800067 LDS R24,_RXbuf+2
00E8 3381 CPI R24,0x31
00E9 F4B9 BNE 0x0101
(0180) {
(0181)
(0182) for(i=3;i<12;i++)
00EA E043 LDI R20,3
00EB C00F RJMP 0x00FB
(0183) {
(0184) OPDATA[i-3]=RXbuf[i];
00EC E685 LDI R24,0x65
00ED E090 LDI R25,0
00EE 2FE4 MOV R30,R20
00EF 27FF CLR R31
00F0 0FE8 ADD R30,R24
00F1 1FF9 ADC R31,R25
00F2 8020 LDD R2,Z+0
00F3 E886 LDI R24,0x86
00F4 E090 LDI R25,0
00F5 2FE4 MOV R30,R20
00F6 27FF CLR R31
00F7 0FE8 ADD R30,R24
00F8 1FF9 ADC R31,R25
00F9 8220 STD Z+0,R2
00FA 9543 INC R20
00FB 304C CPI R20,0xC
00FC F378 BCS 0x00EC
(0185) }//for(i=2;i<10;i++)
(0186)
(0187) PORTC=OPDATA[0];
00FD 90200089 LDS R2,_OPDATA
00FF BA25 OUT 0x15,R2
(0188) SPI_Tran();
0100 DF60 RCALL _SPI_Tran
(0189) }//if(RXbuf[2]=='1')
(0190)
(0191) //ANSWER
(0192) TXbufINIT();
0101 D019 RCALL _TXbufINIT
(0193) for (i=0;i<15;i++)
0102 2744 CLR R20
0103 C00B RJMP 0x010F
(0194) {
(0195) while(!(UCSRA & (1<<UDRE)))
0104 9B5D SBIS 0x0B,5
0105 CFFE RJMP 0x0104
(0196) ;
(0197) UDR=TXbuf[i]; //TX the data of rx
0106 E787 LDI R24,0x77
0107 E090 LDI R25,0
0108 2FE4 MOV R30,R20
0109 27FF CLR R31
010A 0FE8 ADD R30,R24
010B 1FF9 ADC R31,R25
010C 8020 LDD R2,Z+0
010D B82C OUT 0x0C,R2
010E 9543 INC R20
010F 304F CPI R20,0xF
0110 F398 BCS 0x0104
(0198) }//for (i=0;i<15;i++)
(0199)
(0200) }//if(CRCT.txCRC[0]==RXbuf[12] && CRCT.txCRC[1]==RXbuf[13])
(0201)
(0202)
(0203) }//if(RXbuf[1]==BOARDID && RXbuf[12]=='$')
(0204)
(0205) RXbuf[0]=0;
0111 2422 CLR R2
0112 92200065 STS _RXbuf,R2
(0206) RXbuf[1]=0;
0114 92200066 STS _RXbuf+1,R2
(0207) RXbuf[14]=0;
0116 92200073 STS 0x73,R2
(0208) } //if(RXstartFlag==1 && RXCR==13 && RXbuf[0]=='%')
0118 D06E RCALL pop_gset1
0119 D09B RCALL pop_lset
011A 9518 RETI
(0209)
(0210) } //void
(0211)
(0212)
(0213) void TXbufINIT(void)
(0214) {
(0215)
(0216) unsigned char i;
(0217) TXbuf[0]=37;
_TXbufINIT:
i --> R16
011B E285 LDI R24,0x25
011C 93800077 STS _TXbuf,R24
(0218) TXbuf[1]=49;
011E E381 LDI R24,0x31
011F 93800078 STS _TXbuf+1,R24
(0219) TXbuf[2]=49;
0121 93800079 STS _TXbuf+2,R24
(0220) TXbuf[14]=36;
0123 E284 LDI R24,0x24
0124 93800085 STS 0x85,R24
(0221) for(i=3;i<12;i++)
0126 E003 LDI R16,3
0127 C00F RJMP 0x0137
(0222) {
(0223) TXbuf[i]=OPDATA[i-3];
0128 E886 LDI R24,0x86
0129 E090 LDI R25,0
012A 2FE0 MOV R30,R16
012B 27FF CLR R31
012C 0FE8 ADD R30,R24
012D 1FF9 ADC R31,R25
012E 8020 LDD R2,Z+0
012F E787 LDI R24,0x77
0130 E090 LDI R25,0
0131 2FE0 MOV R30,R16
0132 27FF CLR R31
0133 0FE8 ADD R30,R24
0134 1FF9 ADC R31,R25
0135 8220 STD Z+0,R2
0136 9503 INC R16
0137 300C CPI R16,0xC
0138 F378 BCS 0x0128
(0224) }//for(i=2;i<10;i++)
(0225) CRCT.TXCRC=0;
0139 2422 CLR R2
013A 2433 CLR R3
013B 92300064 STS _CRCT+1,R3
013D 92200063 STS _CRCT,R2
(0226) for(i=0;i<12;i++)
013F 2700 CLR R16
0140 C013 RJMP 0x0154
(0227) {
(0228) CRCT.TXCRC=CRCT.TXCRC+TXbuf[i];
0141 E787 LDI R24,0x77
0142 E090 LDI R25,0
0143 2FE0 MOV R30,R16
0144 27FF CLR R31
0145 0FE8 ADD R30,R24
0146 1FF9 ADC R31,R25
0147 8020 LDD R2,Z+0
0148 2433 CLR R3
0149 90400063 LDS R4,_CRCT
014B 90500064 LDS R5,_CRCT+1
014D 0C42 ADD R4,R2
014E 1C53 ADC R5,R3
014F 92500064 STS _CRCT+1,R5
0151 92400063 STS _CRCT,R4
0153 9503 INC R16
0154 300C CPI R16,0xC
0155 F358 BCS 0x0141
(0229) }//f
(0230) TXbuf[12]=CRCT.txCRC[0];
0156 90200063 LDS R2,_CRCT
0158 92200083 STS 0x83,R2
(0231) TXbuf[13]=CRCT.txCRC[1];
015A 90200064 LDS R2,_CRCT+1
015C 92200084 STS 0x84,R2
015E 9508 RET
(0232) }
(0233)
(0234) void main()
(0235) {
(0236) unsigned char ia;
(0237) port_init();
_main:
ia --> R20
015F DEEE RCALL _port_init
(0238) SPI_MasterInit();
0160 DEFD RCALL _SPI_MasterInit
(0239) uart_init();
0161 DF10 RCALL _uart_init
(0240)
(0241)
(0242)
(0243) for(ia=0;ia<13;ia++)
0162 2744 CLR R20
0163 C009 RJMP 0x016D
(0244) {
(0245) OPDATA[ia]=0;
0164 E889 LDI R24,0x89
0165 E090 LDI R25,0
0166 2FE4 MOV R30,R20
0167 27FF CLR R31
0168 0FE8 ADD R30,R24
0169 1FF9 ADC R31,R25
016A 2422 CLR R2
016B 8220 STD Z+0,R2
016C 9543 INC R20
016D 304D CPI R20,0xD
016E F3A8 BCS 0x0164
(0246) }
(0247)
(0248)
(0249) CLRON;
016F 98C0 CBI 0x18,0
(0250) delayXms(100);
0170 E604 LDI R16,0x64
0171 E010 LDI R17,0
0172 DECE RCALL _delayXms
(0251) CLROFF;
0173 9AC0 SBI 0x18,0
(0252) PORTC=0xff;
0174 EF8F LDI R24,0xFF
0175 BB85 OUT 0x15,R24
(0253) delayXms(1000);
0176 EE08 LDI R16,0xE8
0177 E013 LDI R17,3
0178 DEC8 RCALL _delayXms
(0254) PORTC=0;
0179 2422 CLR R2
017A BA25 OUT 0x15,R2
(0255) SPI_Tran();
017B DEE5 RCALL _SPI_Tran
(0256) delayXms(500);
017C EF04 LDI R16,0xF4
017D E011 LDI R17,1
017E DEC2 RCALL _delayXms
(0257) SEI();
017F 9478 BSET 7
(0258) while(1)
FILE: <library>
0180 CFFF RJMP 0x0180
0181 9508 RET
pop_gset2:
0182 E0E2 LDI R30,2
0183 C004 RJMP pop
push_gset1:
0184 935A ST R21,-Y
0185 934A ST R20,-Y
0186 9508 RET
pop_gset1:
0187 E0E1 LDI R30,1
pop:
0188 9149 LD R20,Y+
0189 9159 LD R21,Y+
018A FDE0 SBRC R30,0
018B 9508 RET
018C 9169 LD R22,Y+
018D 9179 LD R23,Y+
018E FDE1 SBRC R30,1
018F 9508 RET
0190 90A9 LD R10,Y+
0191 90B9 LD R11,Y+
0192 FDE2 SBRC R30,2
0193 9508 RET
0194 90C9 LD R12,Y+
0195 90D9 LD R13,Y+
0196 FDE3 SBRC R30,3
0197 9508 RET
0198 90E9 LD R14,Y+
0199 90F9 LD R15,Y+
019A 9508 RET
push_gset2:
019B 937A ST R23,-Y
019C 936A ST R22,-Y
019D CFE6 RJMP push_gset1
push_lset:
019E 93FA ST R31,-Y
019F 93EA ST R30,-Y
01A0 93BA ST R27,-Y
01A1 93AA ST R26,-Y
01A2 939A ST R25,-Y
01A3 938A ST R24,-Y
01A4 933A ST R19,-Y
01A5 932A ST R18,-Y
01A6 931A ST R17,-Y
01A7 930A ST R16,-Y
01A8 929A ST R9,-Y
01A9 928A ST R8,-Y
01AA 927A ST R7,-Y
01AB 926A ST R6,-Y
01AC 925A ST R5,-Y
01AD 924A ST R4,-Y
01AE 923A ST R3,-Y
01AF 922A ST R2,-Y
01B0 921A ST R1,-Y
01B1 920A ST R0,-Y
01B2 B60F IN R0,0x3F
01B3 920A ST R0,-Y
01B4 9508 RET
pop_lset:
01B5 9009 LD R0,Y+
01B6 BE0F OUT 0x3F,R0
01B7 9009 LD R0,Y+
01B8 9019 LD R1,Y+
01B9 9029 LD R2,Y+
01BA 9039 LD R3,Y+
01BB 9049 LD R4,Y+
01BC 9059 LD R5,Y+
01BD 9069 LD R6,Y+
01BE 9079 LD R7,Y+
01BF 9089 LD R8,Y+
01C0 9099 LD R9,Y+
01C1 9109 LD R16,Y+
01C2 9119 LD R17,Y+
01C3 9129 LD R18,Y+
01C4 9139 LD R19,Y+
01C5 9189 LD R24,Y+
01C6 9199 LD R25,Y+
01C7 91A9 LD R26,Y+
01C8 91B9 LD R27,Y+
01C9 91E9 LD R30,Y+
01CA 91F9 LD R31,Y+
01CB 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -