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

📄 ex_support.lis

📁 一个直流电机的闭环控制源代码程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0226           ;                         if (ABS(nTempDistance) <= ABS(g_cSpeed))
 0226 C601              movw R24,R12
 0228 8030              cpi R24,0
 022A E0E0              ldi R30,0
 022C 9E07              cpc R25,R30
 022E 34F4              brge L32
 0230           X13:
 0230 8095              com R24
 0232 9095              com R25
 0234 8F5F              subi R24,0xFF
 0236 9F4F              sbci R25,0xFF
 0238 5C01              movw R10,R24
 023A 01C0              rjmp L33
 023C           L32:
 023C 5601              movw R10,R12
 023E           L33:
 023E 80910000          lds R24,_g_cSpeed
 0242 8030              cpi R24,0
 0244 4CF4              brge L34
 0246           X14:
 0246 9927              clr R25
 0248 87FD              sbrc R24,7
 024A 9095              com R25
 024C 8095              com R24
 024E 9095              com R25
 0250 8F5F              subi R24,0xFF
 0252 9F4F              sbci R25,0xFF
 0254 7C01              movw R14,R24
 0256 05C0              rjmp L35
 0258           L34:
 0258 E0900000          lds R14,_g_cSpeed
 025C FF24              clr R15
 025E E7FC              sbrc R14,7
 0260 F094              com R15
 0262           L35:
 0262 EA14              cp R14,R10
 0264 FB04              cpc R15,R11
 0266 A4F0              brlt L30
 0268           X15:
 0268                   .dbline 219
 0268           ;                         {
 0268                   .dbline 221
 0268           ;                             //完成动作
 0268           ;                             g_dAimMotorPosition = g_dGoDistance;
 0268 40900E00          lds R4,_g_dGoDistance+2
 026C 50900F00          lds R5,_g_dGoDistance+2+1
 0270 20900C00          lds R2,_g_dGoDistance
 0274 30900D00          lds R3,_g_dGoDistance+1
 0278 30920900          sts _g_dAimMotorPosition+1,R3
 027C 20920800          sts _g_dAimMotorPosition,R2
 0280 50920B00          sts _g_dAimMotorPosition+2+1,R5
 0284 40920A00          sts _g_dAimMotorPosition+2,R4
 0288                   .dbline 223
 0288           ;                             //需要发送完成信号
 0288           ;                             s_bIfSendSuccess = FALSE;
 0288 2224              clr R2
 028A 20921100          sts L7,R2
 028E                   .dbline 224
 028E           ;                         }
 028E 85C0              rjmp L27
 0290           L30:
 0290                   .dbline 226
 0290           ;                         else
 0290           ;                         {
 0290                   .dbline 227
 0290           ;                             g_dAimMotorPosition += g_cSpeed;
 0290 20900000          lds R2,_g_cSpeed
 0294 3324              clr R3
 0296 27FC              sbrc R2,7
 0298 3094              com R3
 029A 4424              clr R4
 029C 37FC              sbrc R3,7
 029E 4094              com R4
 02A0 5524              clr R5
 02A2 47FC              sbrc R4,7
 02A4 5094              com R5
 02A6 80900A00          lds R8,_g_dAimMotorPosition+2
 02AA 90900B00          lds R9,_g_dAimMotorPosition+2+1
 02AE 60900800          lds R6,_g_dAimMotorPosition
 02B2 70900900          lds R7,_g_dAimMotorPosition+1
 02B6 620C              add R6,R2
 02B8 731C              adc R7,R3
 02BA 841C              adc R8,R4
 02BC 951C              adc R9,R5
 02BE 70920900          sts _g_dAimMotorPosition+1,R7
 02C2 60920800          sts _g_dAimMotorPosition,R6
 02C6 90920B00          sts _g_dAimMotorPosition+2+1,R9
 02CA 80920A00          sts _g_dAimMotorPosition+2,R8
 02CE                   .dbline 228
 02CE           ;                         }
 02CE                   .dbline 229
 02CE           ;                     }
 02CE                   .dbline 238
 02CE           ;                     /*
 02CE           ;                     else
 02CE           ;                     {
 02CE           ;                         //非法速度
 02CE           ;                         //g_dGoDistance = 0;
 02CE           ;                         //g_bIfMarkDistance = FALSE;
 02CE           ;                     }
 02CE           ;                     */
 02CE           ;                 }
 02CE 65C0              rjmp L27
 02D0           L26:
 02D0                   .dbline 239
 02D0           ;                 else if (nTempDistance > 0)
 02D0 2224              clr R2
 02D2 3324              clr R3
 02D4 2C14              cp R2,R12
 02D6 3D04              cpc R3,R13
 02D8 0CF0              brlt X29
 02DA 5FC0              rjmp L36
 02DC           X29:
 02DC           X16:
 02DC                   .dbline 240
 02DC           ;                 {
 02DC                   .dbline 242
 02DC           ;                     
 02DC           ;                     if (g_cSpeed <= 0)
 02DC 30900000          lds R3,_g_cSpeed
 02E0 2314              cp R2,R3
 02E2 0CF0              brlt L38
 02E4           X17:
 02E4                   .dbline 243
 02E4           ;                     {
 02E4                   .dbline 248
 02E4           ;                         //非法数据
 02E4           ;                         //g_dGoDistance = 0;
 02E4           ;                         //g_bIfMarkDistance = FALSE;
 02E4           ;                         
 02E4           ;                     }
 02E4 5AC0              rjmp L39
 02E6           L38:
 02E6                   .dbline 249
 02E6           ;                     else if (g_cSpeed > 0)
 02E6 2224              clr R2
 02E8 30900000          lds R3,_g_cSpeed
 02EC 2314              cp R2,R3
 02EE 0CF0              brlt X30
 02F0 54C0              rjmp L40
 02F2           X30:
 02F2           X18:
 02F2                   .dbline 250
 02F2           ;                     {
 02F2                   .dbline 252
 02F2           ;                         //合法速度
 02F2           ;                         if (ABS(nTempDistance) <= ABS(g_cSpeed))
 02F2 C601              movw R24,R12
 02F4 8030              cpi R24,0
 02F6 E0E0              ldi R30,0
 02F8 9E07              cpc R25,R30
 02FA 34F4              brge L44
 02FC           X19:
 02FC 8095              com R24
 02FE 9095              com R25
 0300 8F5F              subi R24,0xFF
 0302 9F4F              sbci R25,0xFF
 0304 5C01              movw R10,R24
 0306 01C0              rjmp L45
 0308           L44:
 0308 5601              movw R10,R12
 030A           L45:
 030A 80910000          lds R24,_g_cSpeed
 030E 8030              cpi R24,0
 0310 4CF4              brge L46
 0312           X20:
 0312 9927              clr R25
 0314 87FD              sbrc R24,7
 0316 9095              com R25
 0318 8095              com R24
 031A 9095              com R25
 031C 8F5F              subi R24,0xFF
 031E 9F4F              sbci R25,0xFF
 0320 6C01              movw R12,R24
 0322 05C0              rjmp L47
 0324           L46:
 0324 C0900000          lds R12,_g_cSpeed
 0328 DD24              clr R13
 032A C7FC              sbrc R12,7
 032C D094              com R13
 032E           L47:
 032E CA14              cp R12,R10
 0330 DB04              cpc R13,R11
 0332 A4F0              brlt L42
 0334           X21:
 0334                   .dbline 253
 0334           ;                         {
 0334                   .dbline 255
 0334           ;                             //完成动作
 0334           ;                             g_dAimMotorPosition = g_dGoDistance;
 0334 40900E00          lds R4,_g_dGoDistance+2
 0338 50900F00          lds R5,_g_dGoDistance+2+1
 033C 20900C00          lds R2,_g_dGoDistance
 0340 30900D00          lds R3,_g_dGoDistance+1
 0344 30920900          sts _g_dAimMotorPosition+1,R3
 0348 20920800          sts _g_dAimMotorPosition,R2
 034C 50920B00          sts _g_dAimMotorPosition+2+1,R5
 0350 40920A00          sts _g_dAimMotorPosition+2,R4
 0354                   .dbline 257
 0354           ;                             //需要发送完成信号
 0354           ;                             s_bIfSendSuccess = FALSE;
 0354 2224              clr R2
 0356 20921100          sts L7,R2
 035A                   .dbline 258
 035A           ;                         }
 035A 1FC0              rjmp L43
 035C           L42:
 035C                   .dbline 260
 035C           ;                         else
 035C           ;                         {
 035C                   .dbline 261
 035C           ;                             g_dAimMotorPosition += g_cSpeed;
 035C 20900000          lds R2,_g_cSpeed
 0360 3324              clr R3
 0362 27FC              sbrc R2,7
 0364 3094              com R3
 0366 4424              clr R4
 0368 37FC              sbrc R3,7
 036A 4094              com R4
 036C 5524              clr R5
 036E 47FC              sbrc R4,7
 0370 5094              com R5
 0372 80900A00          lds R8,_g_dAimMotorPosition+2
 0376 90900B00          lds R9,_g_dAimMotorPosition+2+1
 037A 60900800          lds R6,_g_dAimMotorPosition
 037E 70900900          lds R7,_g_dAimMotorPosition+1
 0382 620C              add R6,R2
 0384 731C              adc R7,R3
 0386 841C              adc R8,R4
 0388 951C              adc R9,R5
 038A 70920900          sts _g_dAimMotorPosition+1,R7
 038E 60920800          sts _g_dAimMotorPosition,R6
 0392 90920B00          sts _g_dAimMotorPosition+2+1,R9
 0396 80920A00          sts _g_dAimMotorPosition+2,R8
 039A                   .dbline 262
 039A           ;                         }
 039A           L43:
 039A                   .dbline 263
 039A           ;                     }
 039A           L40:
 039A           L39:
 039A                   .dbline 264
 039A           ;                 }
 039A           L36:
 039A           L27:
 039A                   .dbline 266
 039A           ;                 
 039A           ;                 if (!s_bIfSendSuccess)
 039A 20901100          lds R2,L7
 039E 2220              tst R2
 03A0 29F4              brne L48
 03A2           X22:
 03A2                   .dbline 267
 03A2           ;                 {
 03A2                   .dbline 268
 03A2           ;                     s_bIfSendSuccess = TRUE;
 03A2 81E0              ldi R24,1
 03A4 80931100          sts L7,R24
 03A8                   .dbline 269
 03A8           ;                     SERIAL_OUT(0xAC);
 03A8 0CEA              ldi R16,172
 03AA 00D0              rcall _UARTaddDataToTxBuff
 03AC                   .dbline 269
 03AC                   .dbline 270
 03AC           ;                 }
 03AC           L48:
 03AC                   .dbline 271
 03AC           ;             }
 03AC           L22:
 03AC                   .dbline 272
 03AC           ;         }
 03AC           L17:
 03AC                   .dbline 273
 03AC           ;     }
 03AC           L14:
 03AC                   .dbline -2
 03AC           L6:
 03AC                   .dbline 0 ; func end
 03AC 00C0              rjmp pop_xgsetF0FC
 03AE                   .dbsym r nTempDistance1 12 I
 03AE                   .dbend
                        .area lit(rom, con, rel)
 0000           L25:
 0000 8E4DA041          .word 0x4d8e,0x41a0
 0004           ;     
 0004           ;     
 0004           ; }

⌨️ 快捷键说明

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