📄 结点2.lst
字号:
12F C005 RJMP 0x0135
(0186) {
(0187) case 0:
(0188) CS2_OFF();
130 9A46 SBI 0x08,6
(0189) CS1_ON();
131 9847 CBI 0x08,7
(0190) break;
132 C002 RJMP 0x0135
(0191) case 1:
(0192) CS1_OFF();
133 9A47 SBI 0x08,7
(0193) CS2_ON();
134 9846 CBI 0x08,6
(0194) break;
(0195) }
(0196) PORTA = ~ExChange(DISPLAY_CODE(CS));
135 9100 0100 LDS R16,CS
137 940E 030A CALL _DISPLAY_CODE
139 DF7E RCALL _ExChange
13A 2E20 MOV R2,R16
13B 9420 COM R2
13C B822 OUT 0x02,R2
13D 9159 LD R21,Y+
13E 9149 LD R20,Y+
13F 9009 LD R0,Y+
140 BE0F OUT 0x3F,R0
141 91F9 LD R31,Y+
142 91E9 LD R30,Y+
143 91B9 LD R27,Y+
144 91A9 LD R26,Y+
145 9199 LD R25,Y+
146 9189 LD R24,Y+
147 9139 LD R19,Y+
148 9129 LD R18,Y+
149 9119 LD R17,Y+
14A 9109 LD R16,Y+
14B 9099 LD R9,Y+
14C 9089 LD R8,Y+
14D 9079 LD R7,Y+
14E 9069 LD R6,Y+
14F 9059 LD R5,Y+
150 9049 LD R4,Y+
151 9039 LD R3,Y+
152 9029 LD R2,Y+
153 9019 LD R1,Y+
154 9009 LD R0,Y+
155 9518 RETI
_TIMER2_COMP_ISR:
156 922A ST R2,-Y
157 923A ST R3,-Y
158 938A ST R24,-Y
159 939A ST R25,-Y
15A 93AA ST R26,-Y
15B 93EA ST R30,-Y
15C B62F IN R2,0x3F
15D 922A ST R2,-Y
(0197) }
(0198)
(0199)
(0200) #pragma interrupt_handler TIMER2_COMP_ISR:iv_TIMER2_COMP
(0201) void TIMER2_COMP_ISR(void)
(0202) {
(0203) if (!send_mark)
15E 9020 0108 LDS R2,send_mark
160 2022 TST R2
161 F4B1 BNE 0x0178
(0204) {
(0205) send_time++;
162 9180 010A LDS R24,send_time
164 9190 010B LDS R25,send_time+1
166 9601 ADIW R24,1
167 9390 010B STS send_time+1,R25
169 9380 010A STS send_time,R24
(0206) if (send_time >= 100)
16B 3684 CPI R24,0x64
16C E0E0 LDI R30,0
16D 079E CPC R25,R30
16E F048 BCS 0x0178
(0207) {
(0208) send_mark = TRUE;
16F E081 LDI R24,1
170 9380 0108 STS send_mark,R24
(0209) send_time = 0;
172 2422 CLR R2
173 2433 CLR R3
174 9230 010B STS send_time+1,R3
176 9220 010A STS send_time,R2
(0210) }
(0211) }
(0212) if (!display_mark)
178 9020 0109 LDS R2,display_mark
17A 2022 TST R2
17B F4B1 BNE 0x0192
(0213) {
(0214) display_time++;
17C 9180 010C LDS R24,display_time
17E 9190 010D LDS R25,display_time+1
180 9601 ADIW R24,1
181 9390 010D STS display_time+1,R25
183 9380 010C STS display_time,R24
(0215) if (display_time >= 25)
185 3189 CPI R24,0x19
186 E0E0 LDI R30,0
187 079E CPC R25,R30
188 F048 BCS 0x0192
(0216) {
(0217) display_time = 0;
189 2422 CLR R2
18A 2433 CLR R3
18B 9230 010D STS display_time+1,R3
18D 9220 010C STS display_time,R2
(0218) display_mark = TRUE;
18F E081 LDI R24,1
190 9380 0109 STS display_mark,R24
(0219) }
(0220) }
192 9029 LD R2,Y+
193 BE2F OUT 0x3F,R2
194 91E9 LD R30,Y+
195 91A9 LD R26,Y+
196 9199 LD R25,Y+
197 9189 LD R24,Y+
198 9039 LD R3,Y+
199 9029 LD R2,Y+
19A 9518 RETI
(0221) }
(0222)
(0223)
(0224) void CHA_Init(void)
(0225) {
(0226) CHA++;
_CHA_Init:
19B 9180 0101 LDS R24,CHA
19D 5F8F SUBI R24,0xFF
19E 9380 0101 STS CHA,R24
(0227) if (CHA >= 100)
1A0 9180 0101 LDS R24,CHA
1A2 3684 CPI R24,0x64
1A3 F018 BCS 0x01A7
(0228) CHA = 0;
1A4 2422 CLR R2
1A5 9220 0101 STS CHA,R2
1A7 9508 RET
(0229) }
(0230)
(0231) void main(void)
(0232) {
(0233) uint8 i;
(0234)
(0235) CLI();
_main:
i --> R20
1A8 94F8 BCLR 7
(0236) PORT_Init();
1A9 DED3 RCALL _PORT_Init
(0237) TIMER0_Init();
1AA DEEA RCALL _TIMER0_Init
(0238) TIMER2_Init();
1AB DEF7 RCALL _TIMER2_Init
(0239) // USART1_Init();
(0240) TJA1040_DISABLE();
1AC 9A5C SBI 0x0B,4
(0241) NOP();
1AD 0000 NOP
(0242) NOP();
1AE 0000 NOP
(0243) TJA1040_ENABLE();
1AF 985C CBI 0x0B,4
(0244) NOP();
1B0 0000 NOP
(0245) NOP();
1B1 0000 NOP
(0246) CAN_Init();
1B2 940E 0298 CALL _CAN_Init
(0247) Watchdog_Init();
1B4 DEFE RCALL _Watchdog_Init
(0248) SEI();
1B5 9478 BSET 7
1B6 C0B7 RJMP 0x026E
(0249) while (1)
(0250) {
(0251) /*
(0252) 00000000: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
(0253) 00000010: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
(0254) 00000020: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
(0255) 00000030: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
(0256) 00000040: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
(0257) 00000050: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
(0258) 00000060: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
(0259) 00000070: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
(0260) 00000080: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
(0261) 00000090: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
(0262) 000000A0: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
(0263) 000000B0: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
(0264) 000000C0: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
(0265) 000000D0: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
(0266) 000000E0: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
(0267) 000000F0: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
(0268) 00000100: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
(0269) 00000110: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
(0270) 00000120: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
(0271) 00000130: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
(0272) 00000140: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
(0273) 00000150: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
(0274) 00000160: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
(0275) 00000170: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
(0276) 00000180: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
(0277) 00000190: 02 42 00 03 03 03 00 00 00 00 00 00 00 00 00 00 .B..............
(0278) 000001A0: 02 43 00 04 04 04 04 00 00 00 00 00 00 00 00 00 .C..............
(0279) 000001B0: 02 44 00 05 05 05 05 05 00 00 00 00 00 00 00 00 .D..............
(0280) 000001C0: 02 45 00 06 06 06 06 06 06 00 00 00 00 00 00 00 .E..............
(0281) 000001D0: 02 46 00 07 07 07 07 07 07 07 00 00 00 00 00 00 .F..............
(0282) 000001E0: 02 47 00 08 08 08 08 08 08 08 08 00 00 00 00 00 .G..............
(0283) 000001F0: 02 48 00 01 00 00 00 00 00 00 00 00 00 00 00 00 .H..............
(0284) 00000200: 02 41 00 02 02 00 00 00 00 00 00 00 00 00 00 00 .A..............
(0285)
(0286) */
(0287) if (send_mark)
1B7 9020 0108 LDS R2,send_mark
1B9 2022 TST R2
1BA F409 BNE 0x01BC
1BB C0A0 RJMP 0x025C
(0288) {
(0289) send_mark = FALSE;
1BC 2422 CLR R2
1BD 9220 0108 STS send_mark,R2
(0290) if (!(CANGSTA & (1 << TXBSY)))
1BF 9020 00D9 LDS R2,0x00D9
1C1 FC24 SBRC R2,4
1C2 C099 RJMP 0x025C
(0291) {
(0292) CANPAGE = 0x00;
1C3 2422 CLR R2
1C4 9220 00ED STS 0x00ED,R2
(0293) if (CANSTMOB & BIT(TXOK))
1C6 9020 00EE LDS R2,0x00EE
1C8 FE26 SBRS R2,6
1C9 C092 RJMP 0x025C
(0294) {
(0295) CANSTMOB &= ~ BIT(TXOK);
1CA 9180 00EE LDS R24,0x00EE
1CC 7B8F ANDI R24,0xBF
1CD 9380 00EE STS 0x00EE,R24
(0296) me_DLC++;
1CF 9180 0102 LDS R24,me_DLC
1D1 5F8F SUBI R24,0xFF
1D2 9380 0102 STS me_DLC,R24
(0297) if (me_DLC >= 9)
1D4 3089 CPI R24,0x9
1D5 F018 BCS 0x01D9
(0298) me_DLC = 1;
1D6 E081 LDI R24,1
1D7 9380 0102 STS me_DLC,R24
(0299) switch (me_DLC)
1D9 9140 0102 LDS R20,me_DLC
1DB 2755 CLR R21
1DC 3041 CPI R20,1
1DD E0E0 LDI R30,0
1DE 075E CPC R21,R30
1DF F111 BEQ 0x0202
1E0 3042 CPI R20,2
1E1 E0E0 LDI R30,0
1E2 075E CPC R21,R30
1E3 F129 BEQ 0x0209
1E4 3043 CPI R20,3
1E5 E0E0 LDI R30,0
1E6 075E CPC R21,R30
1E7 F169 BEQ 0x0215
1E8 3044 CPI R20,4
1E9 E0E0 LDI R30,0
1EA 075E CPC R21,R30
1EB F409 BNE 0x01ED
1EC C034 RJMP 0x0221
1ED 3045 CPI R20,5
1EE E0E0 LDI R30,0
1EF 075E CPC R21,R30
1F0 F409 BNE 0x01F2
1F1 C03B RJMP 0x022D
1F2 3046 CPI R20,6
1F3 E0E0 LDI R30,0
1F4 075E CPC R21,R30
1F5 F409 BNE 0x01F7
1F6 C042 RJMP 0x0239
1F7 3047 CPI R20,7
1F8 E0E0 LDI R30,0
1F9 075E CPC R21,R30
1FA F409 BNE 0x01FC
1FB C049 RJMP 0x0245
1FC 3048 CPI R20,0x8
1FD E0E0 LDI R30,0
1FE 075E CPC R21,R30
1FF F409 BNE 0x0201
200 C050 RJMP 0x0251
201 C05A RJMP 0x025C
(0300) {
(0301) case 1:
(0302) CANMSG = 1;
202 E081 LDI R24,1
203 9380 00FA STS 0x00FA,R24
(0303) CANCDMOB = 0x41;
205 E481 LDI R24,0x41
206 9380 00EF STS 0x00EF,R24
(0304) break;
208 C053 RJMP 0x025C
(0305) case 2:
(0306) for (i = 0 ; i < 2 ; i++)
209 2744 CLR R20
20A C004 RJMP 0x020F
(0307) CANMSG = 2;
20B E082 LDI R24,2
20C 9380 00FA STS 0x00FA,R24
20E 9543 INC R20
20F 3042 CPI R20,2
210 F3D0 BCS 0x020B
(0308) CANCDMOB = 0x42;
211 E482 LDI R24,0x42
212 9380 00EF STS 0x00EF,R24
(0309) break;
214 C047 RJMP 0x025C
(0310) case 3:
(0311) for (i = 0 ; i < 3 ; i++)
215 2744 CLR R20
216 C004 RJMP 0x021B
(0312) CANMSG = 3;
217 E083 LDI R24,3
218 9380 00FA STS 0x00FA,R24
21A 9543 INC R20
21B 3043 CPI R20,3
21C F3D0 BCS 0x0217
(0313) CANCDMOB = 0x43;
21D E483 LDI R24,0x43
21E 9380 00EF STS 0x00EF,R24
(0314) break;
220 C03B RJMP 0x025C
(0315) case 4:
(0316) for (i = 0 ; i < 4 ; i++)
221 2744 CLR R20
222 C004 RJMP 0x0227
(0317) CANMSG = 4;
223 E084 LDI R24,4
224 9380 00FA STS 0x00FA,R24
226 9543 INC R20
227 3044 CPI R20,4
228 F3D0 BCS 0x0223
(0318) CANCDMOB = 0x44;
229 E484 LDI R24,0x44
22A 9380 00EF STS 0x00EF,R24
(0319) break;
22C C02F RJMP 0x025C
(0320) case 5:
(0321) for (i = 0 ; i < 5 ; i++)
22D 2744 CLR R20
22E C004 RJMP 0x0233
(0322) CANMSG = 5;
22F E085 LDI R24,5
230 9380 00FA STS 0x00FA,R24
232 9543 INC R20
233 3045 CPI R20,5
234 F3D0 BCS 0x022F
(0323) CANCDMOB = 0x45;
235 E485 LDI R24,0x45
236 9380 00EF STS 0x00EF,R24
(0324) break;
238 C023 RJMP 0x025C
(0325) case 6:
(0326) for (i = 0 ; i < 6 ; i++)
239 2744 CLR R20
23A C004 RJMP 0x023F
(0327) CANMSG = 6;
23B E086 LDI R24,6
23C 9380 00FA STS 0x00FA,R24
23E 9543 INC R20
23F 3046 CPI R20,6
240 F3D0 BCS 0x023B
(0328) CANCDMOB = 0x46;
241 E486 LDI R24,0x46
242 9380 00EF STS 0x00EF,R24
(0329) break;
244 C017 RJMP 0x025C
(0330) case 7:
(0331) for (i = 0 ; i < 7 ; i++)
245 2744 CLR R20
246 C004 RJMP 0x024B
(0332) CANMSG = 7;
247 E087 LDI R24,7
248 9380 00FA STS 0x00FA,R24
24A 9543 INC R20
24B 3047 CPI R20,7
24C F3D0 BCS 0x0247
(0333) CANCDMOB = 0x47;
24D E487 LDI R24,0x47
24E 9380 00EF STS 0x00EF,R24
(0334) break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -