⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scon2.lis

📁 M8制作的舵机控制器
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -