📄 scon2.lis
字号:
02C4 ; if(dst0<15) //爬行状态,运转-反向制动-普通制动
02C4 8C2D mov R24,R12
02C6 8F30 cpi R24,15
02C8 00F5 brsh L52
02CA .dbline 217
02CA ; {
02CA .dbline 218
02CA ; stopt0=dst0<<3;
02CA 282E mov R2,R24
02CC 3324 clr R3
02CE 220C lsl R2
02D0 331C rol R3
02D2 220C lsl R2
02D4 331C rol R3
02D6 220C lsl R2
02D8 331C rol R3
02DA 3982 std y+1,R3
02DC 2882 std y+0,R2
02DE .dbline 219
02DE ; if(!barke0)Delay (200+stopt0);//制动时正向马上关闭
02DE 6623 tst R22
02E0 21F4 brne L54
02E2 .dbline 219
02E2 8101 movw R16,R2
02E4 0853 subi R16,56 ; offset = 200
02E6 1F4F sbci R17,255
02E8 8BDE rcall _Delay
02EA L54:
02EA .dbline 220
02EA ; Backward0
02EA C19A sbi 0x18,1
02EC .dbline 220
02EC C098 cbi 0x18,0
02EE .dbline 221
02EE ; Delay (125-stopt0);//正常爬行的制动时间
02EE 2880 ldd R2,y+0
02F0 3980 ldd R3,y+1
02F2 0DE7 ldi R16,125
02F4 10E0 ldi R17,0
02F6 0219 sub R16,R2
02F8 1309 sbc R17,R3
02FA 82DE rcall _Delay
02FC .dbline 222
02FC ; Stop0
02FC 88B3 in R24,0x18
02FE 8360 ori R24,3
0300 88BB out 0x18,R24
0302 .dbline 223
0302 ; if(barke0)barke0--;
0302 6623 tst R22
0304 19F0 breq L53
0306 .dbline 223
0306 6A95 dec R22
0308 .dbline 225
0308 ;
0308 ; }
0308 01C0 rjmp L53
030A L52:
030A .dbline 226
030A ; else barke0=100;
030A 64E6 ldi R22,100
030C L53:
030C .dbline 227
030C ; }
030C L50:
030C .dbline 229
030C ;
030C ; if(pos0<(time1-2))
030C 80910000 lds R24,_time1
0310 90910100 lds R25,_time1+1
0314 0297 sbiw R24,2
0316 0884 ldd R0,y+8
0318 1984 ldd R1,y+9
031A 0816 cp R0,R24
031C 1906 cpc R1,R25
031E 60F5 brsh L58
0320 .dbline 230
0320 ; {action0=2 ;dst0=time1-pos0;
0320 .dbline 230
0320 82E0 ldi R24,2
0322 8C8B std y+20,R24
0324 .dbline 230
0324 C0900000 lds R12,_time1
0328 0884 ldd R0,y+8
032A 1984 ldd R1,y+9
032C C018 sub R12,R0
032E D108 sbc R13,R1
0330 .dbline 231
0330 ; if(dst0<15) //爬行状态,运转-反向制动-普通制动
0330 8C2D mov R24,R12
0332 8F30 cpi R24,15
0334 00F5 brsh L60
0336 .dbline 232
0336 ; {
0336 .dbline 233
0336 ; stopt0=dst0<<3;
0336 282E mov R2,R24
0338 3324 clr R3
033A 220C lsl R2
033C 331C rol R3
033E 220C lsl R2
0340 331C rol R3
0342 220C lsl R2
0344 331C rol R3
0346 3982 std y+1,R3
0348 2882 std y+0,R2
034A .dbline 234
034A ; if(!barke0)Delay (200+stopt0);
034A 6623 tst R22
034C 21F4 brne L62
034E .dbline 234
034E 8101 movw R16,R2
0350 0853 subi R16,56 ; offset = 200
0352 1F4F sbci R17,255
0354 55DE rcall _Delay
0356 L62:
0356 .dbline 235
0356 ; Forward0
0356 C09A sbi 0x18,0
0358 .dbline 235
0358 C198 cbi 0x18,1
035A .dbline 236
035A ; Delay (125-stopt0);//正常爬行的制动时间
035A 2880 ldd R2,y+0
035C 3980 ldd R3,y+1
035E 0DE7 ldi R16,125
0360 10E0 ldi R17,0
0362 0219 sub R16,R2
0364 1309 sbc R17,R3
0366 4CDE rcall _Delay
0368 .dbline 237
0368 ; Stop0
0368 88B3 in R24,0x18
036A 8360 ori R24,3
036C 88BB out 0x18,R24
036E .dbline 238
036E ; if(barke0)barke0--;
036E 6623 tst R22
0370 19F0 breq L61
0372 .dbline 238
0372 6A95 dec R22
0374 .dbline 239
0374 ; }
0374 01C0 rjmp L61
0376 L60:
0376 .dbline 240
0376 ; else barke0=100;
0376 64E6 ldi R22,100
0378 L61:
0378 .dbline 241
0378 ; }
0378 L58:
0378 .dbline 244
0378 ;
0378 ; ///////////////////////////////////////////////////////////////////
0378 ; switch(action1)
0378 2E2C mov R2,R14
037A 3324 clr R3
037C 3F82 std y+7,R3
037E 2E82 std y+6,R2
0380 C101 movw R24,R2
0382 8130 cpi R24,1
0384 E0E0 ldi R30,0
0386 9E07 cpc R25,R30
0388 49F0 breq L69
038A 8230 cpi R24,2
038C E0E0 ldi R30,0
038E 9E07 cpc R25,R30
0390 41F0 breq L70
0392 8330 cpi R24,3
0394 E0E0 ldi R30,0
0396 9E07 cpc R25,R30
0398 39F0 breq L71
039A 09C0 rjmp L66
039C X6:
039C .dbline 245
039C ; {
039C L69:
039C .dbline 246
039C ; case 1:Forward1 break;
039C AC9A sbi 0x15,4
039E .dbline 246
039E AD98 cbi 0x15,5
03A0 .dbline 246
03A0 06C0 rjmp L67
03A2 L70:
03A2 .dbline 247
03A2 ; case 2:Backward1 break;
03A2 AD9A sbi 0x15,5
03A4 .dbline 247
03A4 AC98 cbi 0x15,4
03A6 .dbline 247
03A6 03C0 rjmp L67
03A8 L71:
03A8 .dbline 248
03A8 ; case 3:Stop1 break;
03A8 85B3 in R24,0x15
03AA 8063 ori R24,48
03AC 85BB out 0x15,R24
03AE .dbline 248
03AE L66:
03AE L67:
03AE .dbline 251
03AE ; }
03AE ;
03AE ; action1=3;
03AE 83E0 ldi R24,3
03B0 E82E mov R14,R24
03B2 .dbline 252
03B2 ; if(pos1>(time2+2))
03B2 80910200 lds R24,_time2
03B6 90910300 lds R25,_time2+1
03BA 0296 adiw R24,2
03BC 0A84 ldd R0,y+10
03BE 1B84 ldd R1,y+11
03C0 8015 cp R24,R0
03C2 9105 cpc R25,R1
03C4 68F5 brsh L72
03C6 .dbline 253
03C6 ; {action1=1 ;dst1=pos1-time2;
03C6 .dbline 253
03C6 EE24 clr R14
03C8 E394 inc R14
03CA .dbline 253
03CA 20900200 lds R2,_time2
03CE 30900300 lds R3,_time2+1
03D2 5001 movw R10,R0
03D4 A218 sub R10,R2
03D6 B308 sbc R11,R3
03D8 .dbline 254
03D8 ; if(dst1<15) //爬行状态,运转-反向制动-普通制动
03D8 8A2D mov R24,R10
03DA 8F30 cpi R24,15
03DC 00F5 brsh L74
03DE .dbline 255
03DE ; {
03DE .dbline 256
03DE ; stopt1=dst1<<3;
03DE 282E mov R2,R24
03E0 3324 clr R3
03E2 220C lsl R2
03E4 331C rol R3
03E6 220C lsl R2
03E8 331C rol R3
03EA 220C lsl R2
03EC 331C rol R3
03EE 3B82 std y+3,R3
03F0 2A82 std y+2,R2
03F2 .dbline 257
03F2 ; if(!barke1)Delay (200+stopt1);//制动时正向马上关闭
03F2 4423 tst R20
03F4 21F4 brne L76
03F6 .dbline 257
03F6 8101 movw R16,R2
03F8 0853 subi R16,56 ; offset = 200
03FA 1F4F sbci R17,255
03FC 01DE rcall _Delay
03FE L76:
03FE .dbline 258
03FE ; Backward1
03FE AD9A sbi 0x15,5
0400 .dbline 258
0400 AC98 cbi 0x15,4
0402 .dbline 259
0402 ; Delay (125-stopt1);//正常爬行的制动时间
0402 2A80 ldd R2,y+2
0404 3B80 ldd R3,y+3
0406 0DE7 ldi R16,125
0408 10E0 ldi R17,0
040A 0219 sub R16,R2
040C 1309 sbc R17,R3
040E F8DD rcall _Delay
0410 .dbline 260
0410 ; Stop1
0410 85B3 in R24,0x15
0412 8063 ori R24,48
0414 85BB out 0x15,R24
0416 .dbline 261
0416 ; if(barke1)barke1--;
0416 4423 tst R20
0418 19F0 breq L75
041A .dbline 261
041A 4A95 dec R20
041C .dbline 263
041C ;
041C ; }
041C 01C0 rjmp L75
041E L74:
041E .dbline 264
041E ; else barke1=100;
041E 44E6 ldi R20,100
0420 L75:
0420 .dbline 265
0420 ; }
0420 L72:
0420 .dbline 267
0420 ;
0420 ; if(pos1<(time2-2))
0420 80910200 lds R24,_time2
0424 90910300 lds R25,_time2+1
0428 0297 sbiw R24,2
042A 0A84 ldd R0,y+10
042C 1B84 ldd R1,y+11
042E 0816 cp R0,R24
0430 1906 cpc R1,R25
0432 50F5 brsh L80
0434 .dbline 268
0434 ; {action1=2 ;dst1=time2-pos1;
0434 .dbline 268
0434 82E0 ldi R24,2
0436 E82E mov R14,R24
0438 .dbline 268
0438 A0900200 lds R10,_time2
043C A018 sub R10,R0
043E B108 sbc R11,R1
0440 .dbline 269
0440 ; if(dst1<15) //爬行状态,运转-反向制动-普通制动
0440 8A2D mov R24,R10
0442 8F30 cpi R24,15
0444 00F5 brsh L82
0446 .dbline 270
0446 ; {
0446 .dbline 271
0446 ; stopt1=dst1<<3;
0446 282E mov R2,R24
0448 3324 clr R3
044A 220C lsl R2
044C 331C rol R3
044E 220C lsl R2
0450 331C rol R3
0452 220C lsl R2
0454 331C rol R3
0456 3B82 std y+3,R3
0458 2A82 std y+2,R2
045A .dbline 272
045A ; if(!barke1)Delay (200+stopt1);
045A 4423 tst R20
045C 21F4 brne L84
045E .dbline 272
045E 8101 movw R16,R2
0460 0853 subi R16,56 ; offset = 200
0462 1F4F sbci R17,255
0464 CDDD rcall _Delay
0466 L84:
0466 .dbline 273
0466 ; Forward1
0466 AC9A sbi 0x15,4
0468 .dbline 273
0468 AD98 cbi 0x15,5
046A .dbline 274
046A ; Delay (125-stopt1);//正常爬行的制动时间
046A 2A80 ldd R2,y+2
046C 3B80 ldd R3,y+3
046E 0DE7 ldi R16,125
0470 10E0 ldi R17,0
0472 0219 sub R16,R2
0474 1309 sbc R17,R3
0476 C4DD rcall _Delay
0478 .dbline 275
0478 ; Stop1
0478 85B3 in R24,0x15
047A 8063 ori R24,48
047C 85BB out 0x15,R24
047E .dbline 276
047E ; if(barke1)barke1--;
047E 4423 tst R20
0480 19F0 breq L83
0482 .dbline 276
0482 4A95 dec R20
0484 .dbline 277
0484 ; }
0484 01C0 rjmp L83
0486 L82:
0486 .dbline 278
0486 ; else barke1=100;
0486 44E6 ldi R20,100
0488 L83:
0488 .dbline 279
0488 ; }
0488 L80:
0488 .dbline 281
0488 L36:
0488 .dbline 196
0488 AFCE rjmp L35
048A X7:
048A .dbline -2
048A L34:
048A 6596 adiw R28,21
048C .dbline 0 ; func end
048C 0895 ret
048E .dbsym l stopt1 2 i
048E .dbsym l stopt0 0 i
048E .dbsym r barke1 20 c
048E .dbsym r barke0 22 c
048E .dbsym r dst1 10 c
048E .dbsym r dst0 12 c
048E .dbsym r action1 14 c
048E .dbsym l action0 20 c
048E .dbsym l temp1 18 i
048E .dbsym l temp0 16 i
048E .dbsym l adc1 14 i
048E .dbsym l adc0 12 i
048E .dbsym l pos1 10 i
048E .dbsym l pos0 8 i
048E .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -