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

📄 smart.lst

📁 基于MEAG16的电机PID控制程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0657) 					if(speeda > 1020)
    02BD EF8C      LDI	R24,0xFC
    02BE E093      LDI	R25,3
    02BF 1780      CP	R24,R16
    02C0 0791      CPC	R25,R17
    02C1 F408      BCC	0x02C3
(0658) 					    speeda = 1020;
    02C2 015C      MOVW	R10,R24
(0659) 					motor_a(1,speeda);
    02C3 0195      MOVW	R18,R10
    02C4 E001      LDI	R16,1
    02C5 DDAC      RCALL	_motor_a
(0660) 				}
(0661) 			}
    02C6 C020      RJMP	0x02E7
(0662) 		    else
(0663) 			{
(0664) 				speeda = sj1-sj0;
    02C7 0157      MOVW	R10,R14
    02C8 A00B      LDD	R0,Y+35
    02C9 A01C      LDD	R1,Y+36
    02CA 18A0      SUB	R10,R0
    02CB 08B1      SBC	R11,R1
(0665) 				if(speeda<50)
    02CC 01C5      MOVW	R24,R10
    02CD 3382      CPI	R24,0x32
    02CE E0E0      LDI	R30,0
    02CF 079E      CPC	R25,R30
    02D0 F428      BCC	0x02D6
(0666) 				    motor_a(0,0);
    02D1 2722      CLR	R18
    02D2 2733      CLR	R19
    02D3 2700      CLR	R16
    02D4 DD9D      RCALL	_motor_a
    02D5 C011      RJMP	0x02E7
(0667) 				else
(0668) 				{
(0669) 					speeda = 5*(speeda-50);
    02D6 0195      MOVW	R18,R10
    02D7 5322      SUBI	R18,0x32
    02D8 4030      SBCI	R19,0
    02D9 E005      LDI	R16,5
    02DA E010      LDI	R17,0
    02DB 940E03DE  CALL	empy16s
    02DD 0158      MOVW	R10,R16
(0670) 					if(speeda > 1020)
    02DE EF8C      LDI	R24,0xFC
    02DF E093      LDI	R25,3
    02E0 1780      CP	R24,R16
    02E1 0791      CPC	R25,R17
    02E2 F408      BCC	0x02E4
(0671) 					    speeda = 1020;
    02E3 015C      MOVW	R10,R24
(0672) 					motor_a(0,speeda);
    02E4 0195      MOVW	R18,R10
    02E5 2700      CLR	R16
    02E6 DD8B      RCALL	_motor_a
(0673) 				}
(0674) 			}
(0675) 		    if(sj2>sj3)
    02E7 154C      CP	R20,R12
    02E8 055D      CPC	R21,R13
    02E9 F4F8      BCC	0x0309
(0676) 			{
(0677) 		        speedb = sj2-sj3;
    02EA 01B6      MOVW	R22,R12
    02EB 1B64      SUB	R22,R20
    02EC 0B75      SBC	R23,R21
(0678) 				if(speedb<50)
    02ED 3362      CPI	R22,0x32
    02EE E0E0      LDI	R30,0
    02EF 077E      CPC	R23,R30
    02F0 F428      BCC	0x02F6
(0679) 				    motor_b(1,0);
    02F1 2722      CLR	R18
    02F2 2733      CLR	R19
    02F3 E001      LDI	R16,1
    02F4 DD87      RCALL	_motor_b
    02F5 C03A      RJMP	0x0330
(0680) 				else
(0681) 				{
(0682) 				    speedb = 5*(speedb-50);
    02F6 019B      MOVW	R18,R22
    02F7 5322      SUBI	R18,0x32
    02F8 4030      SBCI	R19,0
    02F9 E005      LDI	R16,5
    02FA E010      LDI	R17,0
    02FB 940E03DE  CALL	empy16s
    02FD 01B8      MOVW	R22,R16
(0683) 					if(speedb > 1020)
    02FE EF8C      LDI	R24,0xFC
    02FF E093      LDI	R25,3
    0300 1780      CP	R24,R16
    0301 0791      CPC	R25,R17
    0302 F410      BCC	0x0305
(0684) 					    speedb = 1020;
    0303 EF6C      LDI	R22,0xFC
    0304 E073      LDI	R23,3
(0685) 					motor_b(1,speedb);
    0305 019B      MOVW	R18,R22
    0306 E001      LDI	R16,1
    0307 DD74      RCALL	_motor_b
(0686) 				}
(0687) 			}
    0308 C027      RJMP	0x0330
(0688) 		    else
(0689) 			{
(0690) 				speedb = sj1-sj0;
    0309 01B7      MOVW	R22,R14
    030A A00B      LDD	R0,Y+35
    030B A01C      LDD	R1,Y+36
    030C 1960      SUB	R22,R0
    030D 0971      SBC	R23,R1
(0691) 				if(speedb<50)
    030E 3362      CPI	R22,0x32
    030F E0E0      LDI	R30,0
    0310 077E      CPC	R23,R30
    0311 F428      BCC	0x0317
(0692) 				    motor_b(0,0);
    0312 2722      CLR	R18
    0313 2733      CLR	R19
    0314 2700      CLR	R16
    0315 DD66      RCALL	_motor_b
    0316 C019      RJMP	0x0330
(0693) 				else
(0694) 				{	
(0695) 					speedb = 5*(speedb-50);
    0317 019B      MOVW	R18,R22
    0318 5322      SUBI	R18,0x32
    0319 4030      SBCI	R19,0
    031A E005      LDI	R16,5
    031B E010      LDI	R17,0
    031C 940E03DE  CALL	empy16s
    031E 01B8      MOVW	R22,R16
(0696) 					if(speedb > 1020)
    031F EF8C      LDI	R24,0xFC
    0320 E093      LDI	R25,3
    0321 1780      CP	R24,R16
    0322 0791      CPC	R25,R17
    0323 F410      BCC	0x0326
(0697) 					    speedb = 1020;
    0324 EF6C      LDI	R22,0xFC
    0325 E073      LDI	R23,3
(0698) 					motor_b(0,5*(speedb-50));
FILE: <library>
    0326 019B      MOVW	R18,R22
    0327 5322      SUBI	R18,0x32
    0328 4030      SBCI	R19,0
    0329 E005      LDI	R16,5
    032A E010      LDI	R17,0
    032B 940E03DE  CALL	empy16s
    032D 0198      MOVW	R18,R16
    032E 2700      CLR	R16
    032F DD4C      RCALL	_motor_b
    0330 CF32      RJMP	0x0263
    0331 96A5      ADIW	R28,0x25
    0332 9508      RET
mod16s:
    0333 9468      BSET	6
    0334 92DA      ST	R13,-Y
    0335 2ED1      MOV	R13,R17
    0336 C004      RJMP	0x033B
div16s:
    0337 94E8      BCLR	6
    0338 92DA      ST	R13,-Y
    0339 2ED1      MOV	R13,R17
    033A 26D3      EOR	R13,R19
    033B FF17      SBRS	R17,7
    033C C004      RJMP	0x0341
    033D 9510      COM	R17
    033E 9500      COM	R16
    033F 5F0F      SUBI	R16,0xFF
    0340 4F1F      SBCI	R17,0xFF
    0341 FF37      SBRS	R19,7
    0342 C004      RJMP	0x0347
    0343 9530      COM	R19
    0344 9520      COM	R18
    0345 5F2F      SUBI	R18,0xFF
    0346 4F3F      SBCI	R19,0xFF
    0347 940E0354  CALL	xdiv16u
    0349 FED7      SBRS	R13,7
    034A C004      RJMP	0x034F
    034B 9510      COM	R17
    034C 9500      COM	R16
    034D 5F0F      SUBI	R16,0xFF
    034E 4F1F      SBCI	R17,0xFF
    034F 90D9      LD	R13,Y+
    0350 9508      RET
mod16u:
    0351 9468      BSET	6
    0352 C001      RJMP	xdiv16u
div16u:
    0353 94E8      BCLR	6
xdiv16u:
    0354 92EA      ST	R14,-Y
    0355 92FA      ST	R15,-Y
    0356 938A      ST	R24,-Y
    0357 24EE      CLR	R14
    0358 24FF      CLR	R15
    0359 E180      LDI	R24,0x10
    035A 0F00      LSL	R16
    035B 1F11      ROL	R17
    035C 1CEE      ROL	R14
    035D 1CFF      ROL	R15
    035E 16E2      CP	R14,R18
    035F 06F3      CPC	R15,R19
    0360 F018      BCS	0x0364
    0361 1AE2      SUB	R14,R18
    0362 0AF3      SBC	R15,R19
    0363 9503      INC	R16
    0364 958A      DEC	R24
    0365 F7A1      BNE	0x035A
    0366 F416      BRTC	0x0369
    0367 2D0E      MOV	R16,R14
    0368 2D1F      MOV	R17,R15
    0369 9189      LD	R24,Y+
    036A 90F9      LD	R15,Y+
    036B 90E9      LD	R14,Y+
    036C 9508      RET
div32u:
    036D 94E8      BCLR	6
    036E C001      RJMP	0x0370
mod32u:
    036F 9468      BSET	6
    0370 D02F      RCALL	long_div_prolog
    0371 24CC      CLR	R12
    0372 C008      RJMP	0x037B
div32s:
    0373 94E8      BCLR	6
    0374 C001      RJMP	0x0376
mod32s:
    0375 9468      BSET	6
    0376 D029      RCALL	long_div_prolog
    0377 FD37      SBRC	R19,7
    0378 D053      RCALL	neg_R16_R19
    0379 FDB7      SBRC	R27,7
    037A D05A      RCALL	neg_R24_R27
    037B 2477      CLR	R7
    037C 2488      CLR	R8
    037D 2499      CLR	R9
    037E 24AA      CLR	R10
    037F 24BB      CLR	R11
    0380 D041      RCALL	tst_R16_R19
    0381 F0C1      BEQ	0x039A
    0382 D044      RCALL	tst_R24_R27
    0383 F0B1      BEQ	0x039A
    0384 E2E8      LDI	R30,0x28
    0385 0F00      LSL	R16
    0386 1F11      ROL	R17
    0387 1F22      ROL	R18
    0388 1F33      ROL	R19
    0389 1C77      ROL	R7
    038A 1C88      ROL	R8
    038B 1C99      ROL	R9
    038C 1CAA      ROL	R10
    038D 1CBB      ROL	R11
    038E 1688      CP	R8,R24
    038F 0699      CPC	R9,R25
    0390 06AA      CPC	R10,R26
    0391 06BB      CPC	R11,R27
    0392 F028      BCS	0x0398
    0393 1A88      SUB	R8,R24
    0394 0A99      SBC	R9,R25
    0395 0AAA      SBC	R10,R26
    0396 0ABB      SBC	R11,R27
    0397 9503      INC	R16
    0398 95EA      DEC	R30
    0399 F759      BNE	0x0385
    039A F426      BRTC	0x039F
    039B 2D08      MOV	R16,R8
    039C 2D19      MOV	R17,R9
    039D 2D2A      MOV	R18,R10
    039E 2D3B      MOV	R19,R11
    039F C013      RJMP	long_div_epilog
long_div_prolog:
    03A0 927A      ST	R7,-Y
    03A1 928A      ST	R8,-Y
    03A2 929A      ST	R9,-Y
    03A3 92AA      ST	R10,-Y
    03A4 92BA      ST	R11,-Y
    03A5 92CA      ST	R12,-Y
    03A6 93EA      ST	R30,-Y
    03A7 938A      ST	R24,-Y
    03A8 939A      ST	R25,-Y
    03A9 93AA      ST	R26,-Y
    03AA 93BA      ST	R27,-Y
    03AB 858B      LDD	R24,Y+11
    03AC 859C      LDD	R25,Y+12
    03AD 85AD      LDD	R26,Y+13
    03AE 85BE      LDD	R27,Y+14
    03AF 2EC3      MOV	R12,R19
    03B0 F00E      BRTS	0x03B2
    03B1 26CB      EOR	R12,R27
    03B2 9508      RET
long_div_epilog:
    03B3 FCC7      SBRC	R12,7
    03B4 D017      RCALL	neg_R16_R19
    03B5 91B9      LD	R27,Y+
    03B6 91A9      LD	R26,Y+
    03B7 9199      LD	R25,Y+
    03B8 9189      LD	R24,Y+
    03B9 91E9      LD	R30,Y+
    03BA 90C9      LD	R12,Y+
    03BB 90B9      LD	R11,Y+
    03BC 90A9      LD	R10,Y+
    03BD 9099      LD	R9,Y+
    03BE 9089      LD	R8,Y+
    03BF 9079      LD	R7,Y+
    03C0 9624      ADIW	R28,4
    03C1 9508      RET
tst_R16_R19:
    03C2 2FE0      MOV	R30,R16
    03C3 2BE1      OR	R30,R17
    03C4 2BE2      OR	R30,R18
    03C5 2BE3      OR	R30,R19
    03C6 9508      RET
tst_R24_R27:
    03C7 2FE8      MOV	R30,R24
    03C8 2BE9      OR	R30,R25
    03C9 2BEA      OR	R30,R26
    03CA 2BEB      OR	R30,R27
    03CB 9508      RET
neg_R16_R19:
    03CC 9500      COM	R16
    03CD 9510      COM	R17
    03CE 9520      COM	R18
    03CF 9530      COM	R19
    03D0 5F0F      SUBI	R16,0xFF
    03D1 4F1F      SBCI	R17,0xFF
    03D2 4F2F      SBCI	R18,0xFF
    03D3 4F3F      SBCI	R19,0xFF
    03D4 9508      RET
neg_R24_R27:
    03D5 9580      COM	R24
    03D6 9590      COM	R25
    03D7 95A0      COM	R26
    03D8 95B0      COM	R27
    03D9 5F8F      SUBI	R24,0xFF
    03DA 4F9F      SBCI	R25,0xFF
    03DB 4FAF      SBCI	R26,0xFF
    03DC 4FBF      SBCI	R27,0xFF
    03DD 9508      RET
empy16s:
    03DE 920A      ST	R0,-Y
    03DF 921A      ST	R1,-Y
    03E0 938A      ST	R24,-Y
    03E1 939A      ST	R25,-Y
    03E2 9F02      MUL	R16,R18
    03E3 01C0      MOVW	R24,R0
    03E4 9F12      MUL	R17,R18
    03E5 0D90      ADD	R25,R0
    03E6 9F03      MUL	R16,R19
    03E7 0D90      ADD	R25,R0
    03E8 018C      MOVW	R16,R24
    03E9 9199      LD	R25,Y+
    03EA 9189      LD	R24,Y+
    03EB 9019      LD	R1,Y+
    03EC 9009      LD	R0,Y+
    03ED 9508      RET
pop_gset2:
    03EE E0E2      LDI	R30,2
    03EF 940C0400  JMP	pop
pop_gset3:
    03F1 E0E4      LDI	R30,4
    03F2 940C0400  JMP	pop
push_gset5:
    03F4 92FA      ST	R15,-Y
    03F5 92EA      ST	R14,-Y
push_gset4:
    03F6 92DA      ST	R13,-Y
    03F7 92CA      ST	R12,-Y
push_gset3:
    03F8 92BA      ST	R11,-Y
    03F9 92AA      ST	R10,-Y
push_gset2:
    03FA 937A      ST	R23,-Y
    03FB 936A      ST	R22,-Y
push_gset1:
    03FC 935A      ST	R21,-Y
    03FD 934A      ST	R20,-Y
    03FE 9508      RET
pop_gset1:
    03FF E0E1      LDI	R30,1
pop:
    0400 9149      LD	R20,Y+
    0401 9159      LD	R21,Y+
    0402 FDE0      SBRC	R30,0
    0403 9508      RET
    0404 9169      LD	R22,Y+
    0405 9179      LD	R23,Y+
    0406 FDE1      SBRC	R30,1
    0407 9508      RET
    0408 90A9      LD	R10,Y+
    0409 90B9      LD	R11,Y+
    040A FDE2      SBRC	R30,2
    040B 9508      RET
    040C 90C9      LD	R12,Y+
    040D 90D9      LD	R13,Y+
    040E FDE3      SBRC	R30,3
    040F 9508      RET
    0410 90E9      LD	R14,Y+
    0411 90F9      LD	R15,Y+
    0412 9508      RET
asgncblk:
    0413 93AA      ST	R26,-Y
    0414 93BA      ST	R27,-Y
    0415 93EA      ST	R30,-Y
    0416 93FA      ST	R31,-Y
    0417 920A      ST	R0,-Y
    0418 81AF      LDD	R26,Y+7
    0419 85B8      LDD	R27,Y+8
    041A 81ED      LDD	R30,Y+5
    041B 81FE      LDD	R31,Y+6
    041C 3000      CPI	R16,0
    041D 0701      CPC	R16,R17
    041E F031      BEQ	0x0425
    041F 95C8      LPM
    0420 920D      ST	R0,X+
    0421 9631      ADIW	R30,1
    0422 5001      SUBI	R16,1
    0423 4010      SBCI	R17,0
    0424 CFF7      RJMP	0x041C
    0425 9009      LD	R0,Y+
    0426 91F9      LD	R31,Y+
    0427 91E9      LD	R30,Y+
    0428 91B9      LD	R27,Y+
    0429 91A9      LD	R26,Y+
    042A 9624      ADIW	R28,4
    042B 9508      RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -