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

📄 con2.lst

📁 M8制作的舵机控制器
💻 LST
📖 第 1 页 / 共 2 页
字号:
    00FB DFE1      RCALL	_ReadADC
    00FC 871D      STD	Y+13,R17
    00FD 870C      STD	Y+12,R16
(0199) adc1=ReadADC (1);
    00FE E001      LDI	R16,1
    00FF DFDD      RCALL	_ReadADC
    0100 871F      STD	Y+15,R17
    0101 870E      STD	Y+14,R16
(0200) if((adc0>temp0+1)||(adc0<temp0-1))temp0=adc0;
    0102 8988      LDD	R24,Y+16
    0103 8999      LDD	R25,Y+17
    0104 9601      ADIW	R24,1
    0105 840C      LDD	R0,Y+12
    0106 841D      LDD	R1,Y+13
    0107 1580      CP	R24,R0
    0108 0591      CPC	R25,R1
    0109 F030      BCS	0x0110
    010A 8988      LDD	R24,Y+16
    010B 8999      LDD	R25,Y+17
    010C 9701      SBIW	R24,1
    010D 1608      CP	R0,R24
    010E 0619      CPC	R1,R25
    010F F420      BCC	0x0114
    0110 840C      LDD	R0,Y+12
    0111 841D      LDD	R1,Y+13
    0112 8A19      STD	Y+17,R1
    0113 8A08      STD	Y+16,R0
(0201) if((adc1>temp1+1)||(adc1<temp1-1))temp1=adc1;
    0114 898A      LDD	R24,Y+18
    0115 899B      LDD	R25,Y+19
    0116 9601      ADIW	R24,1
    0117 840E      LDD	R0,Y+14
    0118 841F      LDD	R1,Y+15
    0119 1580      CP	R24,R0
    011A 0591      CPC	R25,R1
    011B F030      BCS	0x0122
    011C 898A      LDD	R24,Y+18
    011D 899B      LDD	R25,Y+19
    011E 9701      SBIW	R24,1
    011F 1608      CP	R0,R24
    0120 0619      CPC	R1,R25
    0121 F420      BCC	0x0126
    0122 840E      LDD	R0,Y+14
    0123 841F      LDD	R1,Y+15
    0124 8A1B      STD	Y+19,R1
    0125 8A0A      STD	Y+18,R0
(0202) 
(0203) pos0=temp0>>2;
    0126 8828      LDD	R2,Y+16
    0127 8839      LDD	R3,Y+17
    0128 D13F      RCALL	0x0268
    0129 8639      STD	Y+9,R3
    012A 8628      STD	Y+8,R2
(0204) pos1=temp1>>2;
    012B 882A      LDD	R2,Y+18
    012C 883B      LDD	R3,Y+19
    012D D13A      RCALL	0x0268
    012E 863B      STD	Y+11,R3
    012F 862A      STD	Y+10,R2
(0205) 
(0206) switch(action0)
    0130 882C      LDD	R2,Y+20
    0131 2433      CLR	R3
    0132 823D      STD	Y+5,R3
    0133 822C      STD	Y+4,R2
    0134 01C1      MOVW	R24,R2
    0135 3081      CPI	R24,1
    0136 E0E0      LDI	R30,0
    0137 079E      CPC	R25,R30
    0138 F049      BEQ	0x0142
    0139 3082      CPI	R24,2
    013A E0E0      LDI	R30,0
    013B 079E      CPC	R25,R30
    013C F041      BEQ	0x0145
    013D 3083      CPI	R24,3
    013E E0E0      LDI	R30,0
    013F 079E      CPC	R25,R30
    0140 F039      BEQ	0x0148
    0141 C009      RJMP	0x014B
(0207) {
(0208) case 1:Forward0 break;
    0142 9AC0      SBI	0x18,0
    0143 98C1      CBI	0x18,1
    0144 C006      RJMP	0x014B
(0209) case 2:Backward0 break;
    0145 9AC1      SBI	0x18,1
    0146 98C0      CBI	0x18,0
    0147 C003      RJMP	0x014B
(0210) case 3:Stop0 break;
    0148 B388      IN	R24,0x18
    0149 6083      ORI	R24,3
    014A BB88      OUT	0x18,R24
(0211) }
(0212) 
(0213) action0=3;
    014B E083      LDI	R24,3
    014C 8B8C      STD	Y+20,R24
    014D D124      RCALL	0x0272
(0214) if(pos0>(time1+2))
    014E 9602      ADIW	R24,2
    014F 8408      LDD	R0,Y+8
    0150 8419      LDD	R1,Y+9
    0151 1580      CP	R24,R0
    0152 0591      CPC	R25,R1
    0153 F530      BCC	0x017A
(0215) {action0=1 ;dst0=pos0-time1;
    0154 2400      CLR	R0
    0155 9403      INC	R0
    0156 8A0C      STD	Y+20,R0
    0157 D10B      RCALL	0x0263
    0158 84C8      LDD	R12,Y+8
    0159 84D9      LDD	R13,Y+9
    015A 18C2      SUB	R12,R2
    015B 08D3      SBC	R13,R3
(0216) if(dst0<15) //爬行状态,运转-反向制动-普通制动
    015C 2D8C      MOV	R24,R12
    015D 308F      CPI	R24,0xF
    015E F4D0      BCC	0x0179
(0217)  {
(0218)  stopt0=dst0<<3;
    015F 2E28      MOV	R2,R24
    0160 2433      CLR	R3
    0161 D0DC      RCALL	<created procedures>
    0162 0C22      LSL	R2
    0163 1C33      ROL	R3
    0164 8239      STD	Y+1,R3
    0165 8228      STD	Y+0,R2
(0219)  if(!barke0)Delay (200+stopt0);//制动时正向马上关闭
    0166 2366      TST	R22
    0167 F421      BNE	0x016C
    0168 0181      MOVW	R16,R2
    0169 5308      SUBI	R16,0x38
    016A 4F1F      SBCI	R17,0xFF
    016B DEC9      RCALL	_Delay
(0220)  Backward0 
    016C 9AC1      SBI	0x18,1
    016D 98C0      CBI	0x18,0
(0221)   Delay (125-stopt0);//正常爬行的制动时间
    016E 8028      LDD	R2,Y+0
    016F 8039      LDD	R3,Y+1
    0170 D0DE      RCALL	0x024F
    0171 DEC3      RCALL	_Delay
(0222)  Stop0
    0172 B388      IN	R24,0x18
    0173 6083      ORI	R24,3
    0174 BB88      OUT	0x18,R24
(0223) if(barke0)barke0--;
    0175 2366      TST	R22
    0176 F019      BEQ	0x017A
    0177 956A      DEC	R22
(0224) 
(0225)  }
    0178 C001      RJMP	0x017A
(0226)  else barke0=100;
    0179 E664      LDI	R22,0x64
(0227) }
(0228) 
(0229) if(pos0<(time1-2))
    017A D0F7      RCALL	0x0272
    017B 9702      SBIW	R24,2
    017C 8408      LDD	R0,Y+8
    017D 8419      LDD	R1,Y+9
    017E 1608      CP	R0,R24
    017F 0619      CPC	R1,R25
    0180 F530      BCC	0x01A7
(0230) {action0=2 ;dst0=time1-pos0;
    0181 E082      LDI	R24,2
    0182 8B8C      STD	Y+20,R24
    0183 90C00060  LDS	R12,time1
    0185 8408      LDD	R0,Y+8
    0186 8419      LDD	R1,Y+9
    0187 18C0      SUB	R12,R0
    0188 08D1      SBC	R13,R1
(0231) if(dst0<15)  //爬行状态,运转-反向制动-普通制动
    0189 2D8C      MOV	R24,R12
    018A 308F      CPI	R24,0xF
    018B F4D0      BCC	0x01A6
(0232)  {
(0233)  stopt0=dst0<<3;
    018C 2E28      MOV	R2,R24
    018D 2433      CLR	R3
    018E D0AF      RCALL	<created procedures>
    018F 0C22      LSL	R2
    0190 1C33      ROL	R3
    0191 8239      STD	Y+1,R3
    0192 8228      STD	Y+0,R2
(0234)  if(!barke0)Delay (200+stopt0);
    0193 2366      TST	R22
    0194 F421      BNE	0x0199
    0195 0181      MOVW	R16,R2
    0196 5308      SUBI	R16,0x38
    0197 4F1F      SBCI	R17,0xFF
    0198 DE9C      RCALL	_Delay
(0235)  Forward0  
    0199 9AC0      SBI	0x18,0
    019A 98C1      CBI	0x18,1
(0236)   Delay (125-stopt0);//正常爬行的制动时间        
    019B 8028      LDD	R2,Y+0
    019C 8039      LDD	R3,Y+1
    019D D0B1      RCALL	0x024F
    019E DE96      RCALL	_Delay
(0237)  Stop0
    019F B388      IN	R24,0x18
    01A0 6083      ORI	R24,3
    01A1 BB88      OUT	0x18,R24
(0238)  if(barke0)barke0--;
    01A2 2366      TST	R22
    01A3 F019      BEQ	0x01A7
    01A4 956A      DEC	R22
(0239)  }
    01A5 C001      RJMP	0x01A7
(0240)  else barke0=100;
    01A6 E664      LDI	R22,0x64
(0241) }
(0242) 
(0243) ///////////////////////////////////////////////////////////////////
(0244) switch(action1)
    01A7 2C2E      MOV	R2,R14
    01A8 2433      CLR	R3
    01A9 823F      STD	Y+7,R3
    01AA 822E      STD	Y+6,R2
    01AB 01C1      MOVW	R24,R2
    01AC 3081      CPI	R24,1
    01AD E0E0      LDI	R30,0
    01AE 079E      CPC	R25,R30
    01AF F049      BEQ	0x01B9
    01B0 3082      CPI	R24,2
    01B1 E0E0      LDI	R30,0
    01B2 079E      CPC	R25,R30
    01B3 F041      BEQ	0x01BC
    01B4 3083      CPI	R24,3
    01B5 E0E0      LDI	R30,0
    01B6 079E      CPC	R25,R30
    01B7 F039      BEQ	0x01BF
    01B8 C009      RJMP	0x01C2
(0245) {
(0246) case 1:Forward1 break;
    01B9 9AAC      SBI	0x15,4
    01BA 98AD      CBI	0x15,5
    01BB C006      RJMP	0x01C2
(0247) case 2:Backward1 break;
    01BC 9AAD      SBI	0x15,5
    01BD 98AC      CBI	0x15,4
    01BE C003      RJMP	0x01C2
(0248) case 3:Stop1 break;
    01BF B385      IN	R24,0x15
    01C0 6380      ORI	R24,0x30
    01C1 BB85      OUT	0x15,R24
(0249) }
(0250) 
(0251) action1=3;
    01C2 E083      LDI	R24,3
    01C3 2EE8      MOV	R14,R24
    01C4 D08F      RCALL	0x0254
(0252) if(pos1>(time2+2))
    01C5 9602      ADIW	R24,2
    01C6 840A      LDD	R0,Y+10
    01C7 841B      LDD	R1,Y+11
    01C8 1580      CP	R24,R0
    01C9 0591      CPC	R25,R1
    01CA F520      BCC	0x01EF
(0253) {action1=1 ;dst1=pos1-time2;
    01CB 24EE      CLR	R14
    01CC 94E3      INC	R14
    01CD D09F      RCALL	0x026D
    01CE 0150      MOVW	R10,R0
    01CF 18A2      SUB	R10,R2
    01D0 08B3      SBC	R11,R3
(0254) if(dst1<15) //爬行状态,运转-反向制动-普通制动
    01D1 2D8A      MOV	R24,R10
    01D2 308F      CPI	R24,0xF
    01D3 F4D0      BCC	0x01EE
(0255)  {
(0256)  stopt1=dst1<<3;
    01D4 2E28      MOV	R2,R24
    01D5 2433      CLR	R3
    01D6 0C22      LSL	R2
    01D7 1C33      ROL	R3
    01D8 D065      RCALL	<created procedures>
    01D9 823B      STD	Y+3,R3
    01DA 822A      STD	Y+2,R2
(0257)  if(!barke1)Delay (200+stopt1);//制动时正向马上关闭
    01DB 2344      TST	R20
    01DC F421      BNE	0x01E1
    01DD 0181      MOVW	R16,R2
    01DE 5308      SUBI	R16,0x38
    01DF 4F1F      SBCI	R17,0xFF
    01E0 DE54      RCALL	_Delay
(0258)  Backward1 
    01E1 9AAD      SBI	0x15,5
    01E2 98AC      CBI	0x15,4
(0259)   Delay (125-stopt1);//正常爬行的制动时间
    01E3 802A      LDD	R2,Y+2
    01E4 803B      LDD	R3,Y+3
    01E5 D069      RCALL	0x024F
    01E6 DE4E      RCALL	_Delay
(0260)  Stop1
    01E7 B385      IN	R24,0x15
    01E8 6380      ORI	R24,0x30
    01E9 BB85      OUT	0x15,R24
(0261) if(barke1)barke1--;
    01EA 2344      TST	R20
    01EB F019      BEQ	0x01EF
    01EC 954A      DEC	R20
(0262) 
(0263)  }
    01ED C001      RJMP	0x01EF
(0264)  else barke1=100;
    01EE E644      LDI	R20,0x64
(0265) }
(0266) 
(0267) if(pos1<(time2-2))
    01EF D064      RCALL	0x0254
    01F0 9702      SBIW	R24,2
    01F1 840A      LDD	R0,Y+10
    01F2 841B      LDD	R1,Y+11
    01F3 1608      CP	R0,R24
    01F4 0619      CPC	R1,R25
    01F5 F520      BCC	0x021A
(0268) {action1=2 ;dst1=time2-pos1;
    01F6 E082      LDI	R24,2
    01F7 2EE8      MOV	R14,R24
    01F8 90A00062  LDS	R10,time2
    01FA 18A0      SUB	R10,R0
    01FB 08B1      SBC	R11,R1
(0269) if(dst1<15)  //爬行状态,运转-反向制动-普通制动
    01FC 2D8A      MOV	R24,R10
    01FD 308F      CPI	R24,0xF
    01FE F4D0      BCC	0x0219
(0270)  {
(0271)  stopt1=dst1<<3;
    01FF 2E28      MOV	R2,R24
    0200 2433      CLR	R3
    0201 0C22      LSL	R2
    0202 1C33      ROL	R3
    0203 D03A      RCALL	<created procedures>
    0204 823B      STD	Y+3,R3
    0205 822A      STD	Y+2,R2
(0272)  if(!barke1)Delay (200+stopt1);
    0206 2344      TST	R20
    0207 F421      BNE	0x020C
    0208 0181      MOVW	R16,R2
    0209 5308      SUBI	R16,0x38
    020A 4F1F      SBCI	R17,0xFF
    020B DE29      RCALL	_Delay
(0273)  Forward1  
    020C 9AAC      SBI	0x15,4
    020D 98AD      CBI	0x15,5
(0274)   Delay (125-stopt1);//正常爬行的制动时间        
    020E 802A      LDD	R2,Y+2
    020F 803B      LDD	R3,Y+3
    0210 D03E      RCALL	0x024F
    0211 DE23      RCALL	_Delay
(0275)  Stop1
    0212 B385      IN	R24,0x15
    0213 6380      ORI	R24,0x30
    0214 BB85      OUT	0x15,R24
(0276)  if(barke1)barke1--;
    0215 2344      TST	R20
    0216 F019      BEQ	0x021A
    0217 954A      DEC	R20
(0277)  }
    0218 C001      RJMP	0x021A
(0278)  else barke1=100;
FILE: <library>
    0219 E644      LDI	R20,0x64
    021A CEDF      RJMP	0x00FA
    021B 9665      ADIW	R28,0x15
    021C 9508      RET
pop_gset2:
    021D E0E2      LDI	R30,2
    021E C00C      RJMP	pop
push_gset5:
    021F 92FA      ST	R15,-Y
    0220 92EA      ST	R14,-Y
push_gset4:
    0221 92DA      ST	R13,-Y
    0222 92CA      ST	R12,-Y
push_gset3:
    0223 92BA      ST	R11,-Y
    0224 92AA      ST	R10,-Y
push_gset2:
    0225 937A      ST	R23,-Y
    0226 936A      ST	R22,-Y
push_gset1:
    0227 935A      ST	R21,-Y
    0228 934A      ST	R20,-Y
    0229 9508      RET
pop_gset1:
    022A E0E1      LDI	R30,1
pop:
    022B 9149      LD	R20,Y+
    022C 9159      LD	R21,Y+
    022D FDE0      SBRC	R30,0
    022E 9508      RET
    022F 9169      LD	R22,Y+
    0230 9179      LD	R23,Y+
    0231 FDE1      SBRC	R30,1
    0232 9508      RET
    0233 90A9      LD	R10,Y+
    0234 90B9      LD	R11,Y+
    0235 FDE2      SBRC	R30,2
    0236 9508      RET
    0237 90C9      LD	R12,Y+
    0238 90D9      LD	R13,Y+
    0239 FDE3      SBRC	R30,3
    023A 9508      RET
    023B 90E9      LD	R14,Y+
    023C 90F9      LD	R15,Y+
    023D 9508      RET
<created procedures>:
    023E 0C22      LSL	R2
    023F 1C33      ROL	R3
    0240 0C22      LSL	R2
    0241 1C33      ROL	R3
    0242 9508      RET
    0243 922A      ST	R2,-Y
    0244 923A      ST	R3,-Y
    0245 930A      ST	R16,-Y
    0246 931A      ST	R17,-Y
    0247 938A      ST	R24,-Y
    0248 939A      ST	R25,-Y
    0249 93EA      ST	R30,-Y
    024A B62F      IN	R2,0x3F
    024B 922A      ST	R2,-Y
    024C B300      IN	R16,0x10
    024D 2711      CLR	R17
    024E 9508      RET
    024F E70D      LDI	R16,0x7D
    0250 E010      LDI	R17,0
    0251 1902      SUB	R16,R2
    0252 0913      SBC	R17,R3
    0253 9508      RET
    0254 91800062  LDS	R24,time2
    0256 91900063  LDS	R25,time2+1
    0258 9508      RET
    0259 93900063  STS	time2+1,R25
    025B 93800062  STS	time2,R24
    025D 9508      RET
    025E 93900061  STS	time1+1,R25
    0260 93800060  STS	time1,R24
    0262 9508      RET
    0263 90200060  LDS	R2,time1
    0265 90300061  LDS	R3,time1+1
    0267 9508      RET
    0268 9436      LSR	R3
    0269 9427      ROR	R2
    026A 9436      LSR	R3
    026B 9427      ROR	R2
    026C 9508      RET
    026D 90200062  LDS	R2,time2
    026F 90300063  LDS	R3,time2+1
    0271 9508      RET
    0272 91800060  LDS	R24,time1
    0274 91900061  LDS	R25,time1+1
    0276 9508      RET

⌨️ 快捷键说明

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