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

📄 comm.lis

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 046E                   .dbline 254
 046E 80912800          lds R24,_txd_mesg+4
 0472 8160              ori R24,1
 0474 80932800          sts _txd_mesg+4,R24
 0478                   .dbline 254
 0478 05C0              xjmp L78
 047A           L77:
 047A                   .dbline 256
 047A           ;                  else
 047A           ;                    {txd_mesg[4]&=0b11111110;}
 047A                   .dbline 256
 047A 80912800          lds R24,_txd_mesg+4
 047E 8E7F              andi R24,254
 0480 80932800          sts _txd_mesg+4,R24
 0484                   .dbline 256
 0484           L78:
 0484                   .dbline 257
 0484           ;                  txd_mesg[5]=0;
 0484 2224              clr R2
 0486 20922900          sts _txd_mesg+5,R2
 048A                   .dbline 258
 048A           ;                  if (state&(1<<CW_CCW))
 048A 20900000          lds R2,_state
 048E 20FE              sbrs R2,0
 0490 06C0              rjmp L82
 0492                   .dbline 259
 0492           ;                    {txd_mesg[5]&=0b11111110;}
 0492                   .dbline 259
 0492 80912900          lds R24,_txd_mesg+5
 0496 8E7F              andi R24,254
 0498 80932900          sts _txd_mesg+5,R24
 049C                   .dbline 259
 049C 05C0              xjmp L83
 049E           L82:
 049E                   .dbline 261
 049E           ;                  else
 049E           ;                    {txd_mesg[5]|=0b00000001;}          
 049E                   .dbline 261
 049E 80912900          lds R24,_txd_mesg+5
 04A2 8160              ori R24,1
 04A4 80932900          sts _txd_mesg+5,R24
 04A8                   .dbline 261
 04A8           L83:
 04A8                   .dbline 262
 04A8           ;                  act[txd_llc_job]=1;
 04A8 80E0              ldi R24,<_act
 04AA 90E0              ldi R25,>_act
 04AC E0910200          lds R30,_txd_llc_job
 04B0 FF27              clr R31
 04B2 E80F              add R30,R24
 04B4 F91F              adc R31,R25
 04B6 81E0              ldi R24,1
 04B8 8083              std z+0,R24
 04BA                   .dbline 266
 04BA           ;                //}
 04BA           ;                //else
 04BA           ;                //{ act[rs485_app_job]=1;}
 04BA           ;                goto rs485_app_ret;
 04BA 9FC0              xjmp L57
 04BC           L70:
 04BC                   .dbline 269
 04BC           ;          }
 04BC           ;        
 04BC           ;          if((rxd_mesg[0]=='W')&&(rxd_mesg[1]=='J'))   // 设置运行参数命令 
 04BC 80913500          lds R24,_rxd_mesg
 04C0 8735              cpi R24,87
 04C2 09F0              breq X10
 04C4 9AC0              xjmp L86
 04C6           X10:
 04C6 80913600          lds R24,_rxd_mesg+1
 04CA 8A34              cpi R24,74
 04CC 09F0              breq X11
 04CE 95C0              xjmp L86
 04D0           X11:
 04D0                   .dbline 270
 04D0           ;          { if(in_out_number<2)  //内控控制
 04D0                   .dbline 270
 04D0 80910000          lds R24,_in_out_number
 04D4 8230              cpi R24,2
 04D6 08F0              brlo X12
 04D8 90C0              xjmp L57
 04DA           X12:
 04DA                   .dbline 271
 04DA           ;            { //delay_cortrol_job();      
 04DA                   .dbline 272
 04DA           ;            all_stop();//停止所有运行 
 04DA 0E940000          xcall _all_stop
 04DE                   .dbline 273
 04DE           ;                  rxd_mesg_temp=rxd_mesg[2];//必须如此,rxd_mesg[4]进行常整运算时有错
 04DE 20903700          lds R2,_rxd_mesg+2
 04E2 3324              clr R3
 04E4 4424              clr R4
 04E6 5524              clr R5
 04E8 FE01              movw R30,R28
 04EA 2082              std z+0,R2
 04EC 3182              std z+1,R3
 04EE 4282              std z+2,R4
 04F0 5382              std z+3,R5
 04F2                   .dbline 274
 04F2           ;                  speed=rxd_mesg_temp*256+rxd_mesg[3];
 04F2 FE01              movw R30,R28
 04F4 2080              ldd R2,z+0
 04F6 3180              ldd R3,z+1
 04F8 4280              ldd R4,z+2
 04FA 5380              ldd R5,z+3
 04FC 40E0              ldi R20,0
 04FE 51E0              ldi R21,1
 0500 60E0              ldi R22,0
 0502 70E0              ldi R23,0
 0504 5A92              st -y,R5
 0506 4A92              st -y,R4
 0508 3A92              st -y,R3
 050A 2A92              st -y,R2
 050C 8A01              movw R16,R20
 050E 9B01              movw R18,R22
 0510 0E940000          xcall empy32u
 0514 1801              movw R2,R16
 0516 2901              movw R4,R18
 0518 60903800          lds R6,_rxd_mesg+3
 051C 7724              clr R7
 051E 8824              clr R8
 0520 9924              clr R9
 0522 260C              add R2,R6
 0524 371C              adc R3,R7
 0526 481C              adc R4,R8
 0528 591C              adc R5,R9
 052A 30920100          sts _speed+1,R3
 052E 20920000          sts _speed,R2
 0532                   .dbline 275
 0532           ;                  if ((speed==0)||(speed>600))
 0532 2220              tst R2
 0534 11F4              brne X4
 0536 3320              tst R3
 0538 49F0              breq L95
 053A           X4:
 053A 88E5              ldi R24,600
 053C 92E0              ldi R25,2
 053E 20900000          lds R2,_speed
 0542 30900100          lds R3,_speed+1
 0546 8215              cp R24,R2
 0548 9305              cpc R25,R3
 054A 30F4              brsh L93
 054C           L95:
 054C                   .dbline 276
 054C           ;                    {speed=1;}
 054C                   .dbline 276
 054C 81E0              ldi R24,1
 054E 90E0              ldi R25,0
 0550 90930100          sts _speed+1,R25
 0554 80930000          sts _speed,R24
 0558                   .dbline 276
 0558           L93:
 0558                   .dbline 277
 0558           ;                  cal_timer1(speed);
 0558 00910000          lds R16,_speed
 055C 10910100          lds R17,_speed+1
 0560 0E940000          xcall _cal_timer1
 0564                   .dbline 278
 0564           ;                  EEPROMWriteWord(speed_romaddr,&speed);
 0564 20E0              ldi R18,<_speed
 0566 30E0              ldi R19,>_speed
 0568 03E0              ldi R16,3
 056A 10E0              ldi R17,0
 056C 0E940000          xcall _EEPROMWriteWord
 0570                   .dbline 279
 0570           ;                  if (rxd_mesg[4]&0b00000001)
 0570 20903900          lds R2,_rxd_mesg+4
 0574 20FE              sbrs R2,0
 0576 06C0              rjmp L96
 0578                   .dbline 280
 0578           ;                    {state|=(1<<RUN_STOP);}
 0578                   .dbline 280
 0578 80910000          lds R24,_state
 057C 8860              ori R24,8
 057E 80930000          sts _state,R24
 0582                   .dbline 280
 0582 05C0              xjmp L97
 0584           L96:
 0584                   .dbline 282
 0584           ;                  else
 0584           ;                    {state&=~(1<<RUN_STOP);} 
 0584                   .dbline 282
 0584 80910000          lds R24,_state
 0588 877F              andi R24,247
 058A 80930000          sts _state,R24
 058E                   .dbline 282
 058E           L97:
 058E                   .dbline 283
 058E           ;                  if (rxd_mesg[5]&0b00000001)
 058E 20903A00          lds R2,_rxd_mesg+5
 0592 20FE              sbrs R2,0
 0594 06C0              rjmp L99
 0596                   .dbline 284
 0596           ;                    {state&=~(1<<CW_CCW);}
 0596                   .dbline 284
 0596 80910000          lds R24,_state
 059A 8E7F              andi R24,254
 059C 80930000          sts _state,R24
 05A0                   .dbline 284
 05A0 05C0              xjmp L100
 05A2           L99:
 05A2                   .dbline 286
 05A2           ;                  else
 05A2           ;                    {state|=(1<<CW_CCW);}
 05A2                   .dbline 286
 05A2 80910000          lds R24,_state
 05A6 8160              ori R24,1
 05A8 80930000          sts _state,R24
 05AC                   .dbline 286
 05AC           L100:
 05AC           L102:
 05AC                   .dbline 287
 05AC           ;                  do {temp=EEPROMwrite(state_romaddr,state);}
 05AC                   .dbline 287
 05AC 20910000          lds R18,_state
 05B0 05E0              ldi R16,5
 05B2 10E0              ldi R17,0
 05B4 0E940000          xcall _EEPROMwrite
 05B8 5801              movw R10,R16
 05BA                   .dbline 287
 05BA           L103:
 05BA                   .dbline 288
 05BA           ;                  while(temp>0);           
 05BA AA20              tst R10
 05BC B9F7              brne L102
 05BE BB20              tst R11
 05C0 A9F7              brne L102
 05C2           X5:
 05C2                   .dbline 289
 05C2           ;                  state_init();
 05C2 0E940000          xcall _state_init
 05C6                   .dbline 291
 05C6           ;                  
 05C6           ;                  if(rxd_mesg_addr!=BROADCAST_ADDR)
 05C6 80914500          lds R24,_rxd_mesg_addr
 05CA 8F31              cpi R24,31
 05CC B1F0              breq L57
 05CE                   .dbline 292
 05CE           ;                  { txd_mesg_addr=pump_tab;
 05CE                   .dbline 292
 05CE 20907000          lds R2,_pump_tab
 05D2 20923400          sts _txd_mesg_addr,R2
 05D6                   .dbline 293
 05D6           ;                    txd_mesg_len=2;
 05D6 82E0              ldi R24,2
 05D8 80933300          sts _txd_mesg_len,R24
 05DC                   .dbline 294
 05DC           ;                        txd_mesg[0]='W';
 05DC 87E5              ldi R24,87
 05DE 80932400          sts _txd_mesg,R24
 05E2                   .dbline 295
 05E2           ;                        txd_mesg[1]='J';
 05E2 8AE4              ldi R24,74
 05E4 80932500          sts _txd_mesg+1,R24
 05E8                   .dbline 296
 05E8           ;                        act[txd_llc_job]=1;
 05E8 80E0              ldi R24,<_act
 05EA 90E0              ldi R25,>_act
 05EC E0910200          lds R30,_txd_llc_job
 05F0 FF27              clr R31
 05F2 E80F              add R30,R24
 05F4 F91F              adc R31,R25
 05F6 81E0              ldi R24,1
 05F8 8083              std z+0,R24
 05FA                   .dbline 297
 05FA           ;                  }
 05FA                   .dbline 298
 05FA           ;                }
 05FA                   .dbline 299
 05FA           ;                goto rs485_app_ret;
 05FA           L86:
 05FA           L57:
 05FA                   .dbline 301
 05FA           ;          }        
 05FA           ; rs485_app_ret:;
 05FA                   .dbline -2
 05FA           L50:
 05FA 2896              adiw R28,8
 05FC 0E940000          xcall pop_gset3
 0600                   .dbline 0 ; func end
 0600 0895              ret
 0602                   .dbsym l flow_temp 4 l
 0602                   .dbsym l fcs 1 c
 0602                   .dbsym l i 1 c
 0602                   .dbsym l rxd_mesg_temp 0 l
 0602                   .dbsym r temp 10 i
 0602                   .dbend
 0602                   .dbfunc e job_att _job_att fV
 0602           ;        crrt_jn -> R20
 0602           ;              i -> R22
 0602           ;           step -> R20
                        .even
 0602           _job_att::
 0602 0E940000          xcall push_gset3
 0606 402F              mov R20,R16
 0608                   .dbline -1
 0608                   .dbline 307
 0608           ;       }
 0608           ; /*********************************/
 0608           ; 
 0608           ; /* 主调度任务程序模块 */
 0608           ; void job_att(char step)
 0608           ;       {
 0608                   .dbline 309
 0608           ;       char i,crrt_jn;
 0608           ;          if(step==0) 
 0608 4423              tst R20
 060A 09F0              breq X14
 060C 3DC0              xjmp L109
 060E           X14:
 060E                   .dbline 310
 060E           ;          { for(i=1;i<=31;i++)
 060E                   .dbline 310
 060E 61E0              ldi R22,1
 0610 10C0              xjmp L114
 0612           L111:
 0612                   .dbline 311
 0612                   .dbline 311
 0612 80E0              ldi R24,<_pri
 0614 90E0              ldi R25,>_pri
 0616 E62F              mov R30,R22
 0618 FF27              clr R31
 061A E80F              add R30,R24
 061C F91F              adc R31,R25

⌨️ 快捷键说明

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