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

📄 comm.lis

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 029A 90E0              ldi R25,>_act
 029C E0910200          lds R30,_txd_llc_job
 02A0 FF27              clr R31
 02A2 E80F              add R30,R24
 02A4 F91F              adc R31,R25
 02A6 2224              clr R2
 02A8 2082              std z+0,R2
 02AA                   .dbline 192
 02AA           ;          txd_frm[0]=txd_mesg_addr;
 02AA 20903400          lds R2,_txd_mesg_addr
 02AE 20926100          sts _txd_frm,R2
 02B2                   .dbline 193
 02B2           ;          txd_frm[1]=txd_mesg_len;
 02B2 20903300          lds R2,_txd_mesg_len
 02B6 20926200          sts _txd_frm+1,R2
 02BA                   .dbline 194
 02BA           ;          fcs=txd_frm[0]^txd_frm[1];
 02BA 00916100          lds R16,_txd_frm
 02BE 0225              eor R16,R2
 02C0                   .dbline 195
 02C0           ;          for(i=0;i<txd_mesg_len;i++)
 02C0 2227              clr R18
 02C2 15C0              xjmp L46
 02C4           L43:
 02C4                   .dbline 196
 02C4                   .dbline 196
 02C4 80E0              ldi R24,<_txd_mesg
 02C6 90E0              ldi R25,>_txd_mesg
 02C8 E22F              mov R30,R18
 02CA FF27              clr R31
 02CC E80F              add R30,R24
 02CE F91F              adc R31,R25
 02D0 2080              ldd R2,z+0
 02D2 80E0              ldi R24,<_txd_frm+2
 02D4 90E0              ldi R25,>_txd_frm+2
 02D6 E22F              mov R30,R18
 02D8 FF27              clr R31
 02DA E80F              add R30,R24
 02DC F91F              adc R31,R25
 02DE 2082              std z+0,R2
 02E0                   .dbline 197
 02E0 E22F              mov R30,R18
 02E2 FF27              clr R31
 02E4 E80F              add R30,R24
 02E6 F91F              adc R31,R25
 02E8 2080              ldd R2,z+0
 02EA 0225              eor R16,R2
 02EC                   .dbline 198
 02EC           L44:
 02EC                   .dbline 195
 02EC 2395              inc R18
 02EE           L46:
 02EE                   .dbline 195
 02EE 20903300          lds R2,_txd_mesg_len
 02F2 2215              cp R18,R2
 02F4 38F3              brlo L43
 02F6                   .dbline 199
 02F6           ;          { txd_frm[i+2]=txd_mesg[i];
 02F6           ;            fcs=fcs^txd_frm[i+2];
 02F6           ;          }
 02F6           ;          txd_frm_len=txd_mesg_len+3;
 02F6 822D              mov R24,R2
 02F8 8D5F              subi R24,253    ; addi 3
 02FA 80936000          sts _txd_frm_len,R24
 02FE                   .dbline 200
 02FE           ;          txd_frm[txd_frm_len-1]=fcs;
 02FE 80E0              ldi R24,<_txd_frm-1
 0300 90E0              ldi R25,>_txd_frm-1
 0302 E0916000          lds R30,_txd_frm_len
 0306 FF27              clr R31
 0308 E80F              add R30,R24
 030A F91F              adc R31,R25
 030C 0083              std z+0,R16
 030E                   .dbline 201
 030E           ;          txd_cnt=0;
 030E 2224              clr R2
 0310 20924E00          sts _txd_cnt,R2
 0314                   .dbline 202
 0314           ;          txd_ins_flag=0;
 0314 20924B00          sts _txd_ins_flag,R2
 0318                   .dbline 203
 0318           ;          tx485_busy=1;
 0318 81E0              ldi R24,1
 031A 80934F00          sts _tx485_busy,R24
 031E                   .dbline 204
 031E           ;          mac_txd_th=2;
 031E 82E0              ldi R24,2
 0320 80934800          sts _mac_txd_th,R24
 0324                   .dbline 205
 0324           ;          PORTC|=(1<<DE_485);
 0324 A89A              sbi 0x15,0
 0326                   .dbline 206
 0326           ;          UDR=0xe9;
 0326 89EE              ldi R24,233
 0328 8CB9              out 0xc,R24
 032A                   .dbline -2
 032A           L40:
 032A                   .dbline 0 ; func end
 032A 0895              ret
 032C                   .dbsym r fcs 16 c
 032C                   .dbsym r i 18 c
 032C                   .dbend
 032C                   .dbfunc e rs485_app_job1 _rs485_app_job1 fV
 032C           ;      flow_temp -> y+4
 032C           ;            fcs -> <dead>
 032C           ;              i -> <dead>
 032C           ;  rxd_mesg_temp -> y+0
 032C           ;           temp -> R10,R11
                        .even
 032C           _rs485_app_job1::
 032C 0E940000          xcall push_gset3
 0330 2897              sbiw R28,8
 0332                   .dbline -1
 0332                   .dbline 211
 0332           ;       }
 0332           ;       
 0332           ; /*********************************/
 0332           ; void rs485_app_job1(void)
 0332           ;     { 
 0332                   .dbline 216
 0332           ;       char i,fcs;
 0332           ;       unsigned int temp;
 0332           ;       unsigned long int flow_temp;
 0332           ;       unsigned long int rxd_mesg_temp;
 0332           ;       act[rs485_app_job]=0;
 0332 80E0              ldi R24,<_act
 0334 90E0              ldi R25,>_act
 0336 E0910100          lds R30,_rs485_app_job
 033A FF27              clr R31
 033C E80F              add R30,R24
 033E F91F              adc R31,R25
 0340 2224              clr R2
 0342 2082              std z+0,R2
 0344                   .dbline 218
 0344           ;       
 0344           ;          if((rxd_mesg_addr!=BROADCAST_ADDR)&&(rxd_mesg[0]=='R')&&(rxd_mesg[1]=='I')&&(rxd_mesg[2]=='D'))   /* 读取设备地址命令e9 01 03 52 49 44 5d */
 0344 80914500          lds R24,_rxd_mesg_addr
 0348 8F31              cpi R24,31
 034A 31F1              breq L51
 034C 80913500          lds R24,_rxd_mesg
 0350 8235              cpi R24,82
 0352 11F5              brne L51
 0354 80913600          lds R24,_rxd_mesg+1
 0358 8934              cpi R24,73
 035A F1F4              brne L51
 035C 80913700          lds R24,_rxd_mesg+2
 0360 8434              cpi R24,68
 0362 D1F4              brne L51
 0364                   .dbline 219
 0364           ;          { txd_mesg_addr=pump_tab;
 0364                   .dbline 219
 0364 20907000          lds R2,_pump_tab
 0368 20923400          sts _txd_mesg_addr,R2
 036C                   .dbline 220
 036C           ;            txd_mesg_len=3;
 036C 83E0              ldi R24,3
 036E 80933300          sts _txd_mesg_len,R24
 0372                   .dbline 221
 0372           ;                txd_mesg[0]='R';
 0372 82E5              ldi R24,82
 0374 80932400          sts _txd_mesg,R24
 0378                   .dbline 222
 0378           ;                txd_mesg[1]='I';
 0378 89E4              ldi R24,73
 037A 80932500          sts _txd_mesg+1,R24
 037E                   .dbline 223
 037E           ;                txd_mesg[2]='D';
 037E 84E4              ldi R24,68
 0380 80932600          sts _txd_mesg+2,R24
 0384                   .dbline 224
 0384           ;                act[txd_llc_job]=1;
 0384 80E0              ldi R24,<_act
 0386 90E0              ldi R25,>_act
 0388 E0910200          lds R30,_txd_llc_job
 038C FF27              clr R31
 038E E80F              add R30,R24
 0390 F91F              adc R31,R25
 0392 81E0              ldi R24,1
 0394 8083              std z+0,R24
 0396                   .dbline 225
 0396           ;                goto rs485_app_ret;
 0396 31C1              xjmp L57
 0398           L51:
 0398                   .dbline 228
 0398           ;          }
 0398           ;          
 0398           ;          if((rxd_mesg[0]=='W')&&(rxd_mesg[1]=='I')&&(rxd_mesg[2]=='D'))   /* 设置设备地址命令e9 1f 04 57 49 44 01 40 */
 0398 80913500          lds R24,_rxd_mesg
 039C 8735              cpi R24,87
 039E B1F5              brne L58
 03A0 80913600          lds R24,_rxd_mesg+1
 03A4 8934              cpi R24,73
 03A6 91F5              brne L58
 03A8 80913700          lds R24,_rxd_mesg+2
 03AC 8434              cpi R24,68
 03AE 71F5              brne L58
 03B0                   .dbline 229
 03B0           ;          { pump_tab=rxd_mesg[3];
 03B0                   .dbline 229
 03B0 20903800          lds R2,_rxd_mesg+3
 03B4 20927000          sts _pump_tab,R2
 03B8           L63:
 03B8                   .dbline 230
 03B8           ;                do {temp=EEPROMwrite(pump_tab_romaddr,pump_tab);}
 03B8                   .dbline 230
 03B8 20917000          lds R18,_pump_tab
 03BC 06E0              ldi R16,6
 03BE 10E0              ldi R17,0
 03C0 0E940000          xcall _EEPROMwrite
 03C4 5801              movw R10,R16
 03C6                   .dbline 230
 03C6           L64:
 03C6                   .dbline 231
 03C6           ;            while(temp>0);
 03C6 AA20              tst R10
 03C8 B9F7              brne L63
 03CA BB20              tst R11
 03CC A9F7              brne L63
 03CE           X3:
 03CE                   .dbline 232
 03CE           ;                if(rxd_mesg_addr!=BROADCAST_ADDR)
 03CE 80914500          lds R24,_rxd_mesg_addr
 03D2 8F31              cpi R24,31
 03D4 09F4              brne X6
 03D6 11C1              xjmp L57
 03D8           X6:
 03D8                   .dbline 233
 03D8           ;                { txd_mesg_addr=pump_tab;
 03D8                   .dbline 233
 03D8 20907000          lds R2,_pump_tab
 03DC 20923400          sts _txd_mesg_addr,R2
 03E0                   .dbline 234
 03E0           ;                  txd_mesg_len=3;
 03E0 83E0              ldi R24,3
 03E2 80933300          sts _txd_mesg_len,R24
 03E6                   .dbline 235
 03E6           ;                  txd_mesg[0]='W';
 03E6 87E5              ldi R24,87
 03E8 80932400          sts _txd_mesg,R24
 03EC                   .dbline 236
 03EC           ;                  txd_mesg[1]='I';
 03EC 89E4              ldi R24,73
 03EE 80932500          sts _txd_mesg+1,R24
 03F2                   .dbline 237
 03F2           ;                  txd_mesg[2]='D';
 03F2 84E4              ldi R24,68
 03F4 80932600          sts _txd_mesg+2,R24
 03F8                   .dbline 238
 03F8           ;                  act[txd_llc_job]=1;
 03F8 80E0              ldi R24,<_act
 03FA 90E0              ldi R25,>_act
 03FC E0910200          lds R30,_txd_llc_job
 0400 FF27              clr R31
 0402 E80F              add R30,R24
 0404 F91F              adc R31,R25
 0406 81E0              ldi R24,1
 0408 8083              std z+0,R24
 040A                   .dbline 239
 040A           ;                }
 040A                   .dbline 240
 040A           ;                goto rs485_app_ret;
 040A F7C0              xjmp L57
 040C           L58:
 040C                   .dbline 243
 040C           ;          }
 040C           ; 
 040C           ;          if((rxd_mesg_addr!=BROADCAST_ADDR)&&(rxd_mesg[0]=='R')&&(rxd_mesg[1]=='J'))   // 读取运行参数命令e9 01 2 52 47 16 
 040C 80914500          lds R24,_rxd_mesg_addr
 0410 8F31              cpi R24,31
 0412 09F4              brne X7
 0414 53C0              xjmp L70
 0416           X7:
 0416 80913500          lds R24,_rxd_mesg
 041A 8235              cpi R24,82
 041C 09F0              breq X8
 041E 4EC0              xjmp L70
 0420           X8:
 0420 80913600          lds R24,_rxd_mesg+1
 0424 8A34              cpi R24,74
 0426 09F0              breq X9
 0428 49C0              xjmp L70
 042A           X9:
 042A                   .dbline 244
 042A           ;          { //if(in_out_number<2)
 042A                   .dbline 246
 042A           ;            //{ 
 042A           ;                  txd_mesg_addr=pump_tab;
 042A 20907000          lds R2,_pump_tab
 042E 20923400          sts _txd_mesg_addr,R2
 0432                   .dbline 247
 0432           ;                  txd_mesg_len=6;
 0432 86E0              ldi R24,6
 0434 80933300          sts _txd_mesg_len,R24
 0438                   .dbline 248
 0438           ;                  txd_mesg[0]='R';
 0438 82E5              ldi R24,82
 043A 80932400          sts _txd_mesg,R24
 043E                   .dbline 249
 043E           ;                  txd_mesg[1]='J';
 043E 8AE4              ldi R24,74
 0440 80932500          sts _txd_mesg+1,R24
 0444                   .dbline 250
 0444           ;                  txd_mesg[2]=(speed>>8);
 0444 20900000          lds R2,_speed
 0448 30900100          lds R3,_speed+1
 044C 232C              mov R2,R3
 044E 3324              clr R3
 0450 20922600          sts _txd_mesg+2,R2
 0454                   .dbline 251
 0454           ;                  txd_mesg[3]=speed;
 0454 20900000          lds R2,_speed
 0458 30900100          lds R3,_speed+1
 045C 20922700          sts _txd_mesg+3,R2
 0460                   .dbline 252
 0460           ;                  txd_mesg[4]=0;
 0460 2224              clr R2
 0462 20922800          sts _txd_mesg+4,R2
 0466                   .dbline 253
 0466           ;                  if (state&(1<<RUN_STOP))
 0466 20900000          lds R2,_state
 046A 23FE              sbrs R2,3
 046C 06C0              rjmp L77
 046E                   .dbline 254
 046E           ;                    {txd_mesg[4]|=0b00000001;}

⌨️ 快捷键说明

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