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

📄 send_485.lis

📁 基于ATmega8开发的关于医疗康复的机器人
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 010E           ;                       case 0x1e:                              //节点1
 010E           ;                               while(RS_j<6){  
 010E                   .dbline 78
 010E           ;                                       get[0+RS_j]=getchar[RS_j];
 010E 80E0              ldi R24,<_getchar
 0110 90E0              ldi R25,>_getchar
 0112 E02F              mov R30,R16
 0114 FF27              clr R31
 0116 E80F              add R30,R24
 0118 F91F              adc R31,R25
 011A 2080              ldd R2,z+0
 011C 80E0              ldi R24,<_get
 011E 90E0              ldi R25,>_get
 0120 E02F              mov R30,R16
 0122 FF27              clr R31
 0124 E80F              add R30,R24
 0126 F91F              adc R31,R25
 0128 2082              std z+0,R2
 012A                   .dbline 79
 012A           ;                               RS_j++;
 012A 0395              inc R16
 012C                   .dbline 80
 012C           ;                               }
 012C           L26:
 012C                   .dbline 77
 012C 0630              cpi R16,6
 012E 78F3              brlo L25
 0130           X11:
 0130                   .dbline 81
 0130           ;                               break;
 0130 35C0              rjmp L21
 0132           L29:
 0132                   .dbline 83
 0132           ;                       case 0x2d:                              //节点2
 0132           ;                               while(RS_j<6){  
 0132                   .dbline 84
 0132           ;                                       get[6+RS_j]=getchar[RS_j];
 0132 80E0              ldi R24,<_getchar
 0134 90E0              ldi R25,>_getchar
 0136 E02F              mov R30,R16
 0138 FF27              clr R31
 013A E80F              add R30,R24
 013C F91F              adc R31,R25
 013E 2080              ldd R2,z+0
 0140 80E0              ldi R24,<_get+6
 0142 90E0              ldi R25,>_get+6
 0144 E02F              mov R30,R16
 0146 FF27              clr R31
 0148 E80F              add R30,R24
 014A F91F              adc R31,R25
 014C 2082              std z+0,R2
 014E                   .dbline 85
 014E           ;                               RS_j++;
 014E 0395              inc R16
 0150                   .dbline 86
 0150           ;                               }
 0150           L30:
 0150                   .dbline 83
 0150 0630              cpi R16,6
 0152 78F3              brlo L29
 0154           X12:
 0154                   .dbline 87
 0154           ;                               break;
 0154 23C0              rjmp L21
 0156           L34:
 0156                   .dbline 89
 0156           ;                       case 0x3c:                              //节点3
 0156           ;                               while(RS_j<6){  
 0156                   .dbline 90
 0156           ;                                       get[12+RS_j]=getchar[RS_j];
 0156 80E0              ldi R24,<_getchar
 0158 90E0              ldi R25,>_getchar
 015A E02F              mov R30,R16
 015C FF27              clr R31
 015E E80F              add R30,R24
 0160 F91F              adc R31,R25
 0162 2080              ldd R2,z+0
 0164 80E0              ldi R24,<_get+12
 0166 90E0              ldi R25,>_get+12
 0168 E02F              mov R30,R16
 016A FF27              clr R31
 016C E80F              add R30,R24
 016E F91F              adc R31,R25
 0170 2082              std z+0,R2
 0172                   .dbline 91
 0172           ;                               RS_j++; 
 0172 0395              inc R16
 0174                   .dbline 92
 0174           ;                               }
 0174           L35:
 0174                   .dbline 89
 0174 0630              cpi R16,6
 0176 78F3              brlo L34
 0178           X13:
 0178                   .dbline 93
 0178           ;                               break;
 0178 11C0              rjmp L21
 017A           L39:
 017A                   .dbline 95
 017A           ;                       case 0x4b:                              //节点4
 017A           ;                               while(RS_j<6){  
 017A                   .dbline 96
 017A           ;                                       get[18+RS_j]=getchar[RS_j];
 017A 80E0              ldi R24,<_getchar
 017C 90E0              ldi R25,>_getchar
 017E E02F              mov R30,R16
 0180 FF27              clr R31
 0182 E80F              add R30,R24
 0184 F91F              adc R31,R25
 0186 2080              ldd R2,z+0
 0188 80E0              ldi R24,<_get+18
 018A 90E0              ldi R25,>_get+18
 018C E02F              mov R30,R16
 018E FF27              clr R31
 0190 E80F              add R30,R24
 0192 F91F              adc R31,R25
 0194 2082              std z+0,R2
 0196                   .dbline 97
 0196           ;                               RS_j++;    
 0196 0395              inc R16
 0198                   .dbline 98
 0198           ;                       }//end while
 0198           L40:
 0198                   .dbline 95
 0198 0630              cpi R16,6
 019A 78F3              brlo L39
 019C           X14:
 019C                   .dbline 99
 019C           ;                               break;
 019C           L20:
 019C           L21:
 019C                   .dbline 101
 019C           ;               }//end switch
 019C           ;       }//end if
 019C           L18:
 019C                   .dbline -2
 019C           L17:
 019C                   .dbline 0 ; func end
 019C 0895              ret
 019E                   .dbsym r RS_j 16 c
 019E                   .dbend
 019E                   .dbfunc e moto_stop _moto_stop fV
                        .even
 019E           _moto_stop::
 019E                   .dbline -1
 019E                   .dbline 106
 019E           ; }
 019E           ; 
 019E           ; /***************************各电机停止函数,相关变量清零***********/
 019E           ; void moto_stop(void)
 019E           ; {
 019E                   .dbline 107
 019E           ;       moto1[2]=0xb4;      //向各节点停止命令
 019E 84EB              ldi R24,180
 01A0 80930200          sts _moto1+2,R24
 01A4                   .dbline 108
 01A4           ;       moto2[2]=0xb4;     
 01A4 80930200          sts _moto2+2,R24
 01A8                   .dbline 109
 01A8           ;       moto3[2]=0xb4;          
 01A8 80930200          sts _moto3+2,R24
 01AC                   .dbline 110
 01AC           ;       moto4[2]=0xb4;            
 01AC 80930200          sts _moto4+2,R24
 01B0                   .dbline 112
 01B0           ;     
 01B0           ;       get[2]=0x00;            //接收控制指令数组清零
 01B0 2224              clr R2
 01B2 20920200          sts _get+2,R2
 01B6                   .dbline 113
 01B6           ;       get[8]=0x00;
 01B6 20920800          sts _get+8,R2
 01BA                   .dbline 114
 01BA           ;       get[14]=0x00;
 01BA 20920E00          sts _get+14,R2
 01BE                   .dbline 115
 01BE           ;       get[20]=0x00;
 01BE 20921400          sts _get+20,R2
 01C2                   .dbline 117
 01C2           ;    
 01C2           ;       status[2]=0;            //状态数组之时间清0
 01C2 3324              clr R3
 01C4 30920500          sts _status+4+1,R3
 01C8 20920400          sts _status+4,R2
 01CC                   .dbline 118
 01CC           ;       TIMSK=0x00;             //定时器关闭    
 01CC 29BE              out 0x39,R2
 01CE                   .dbline 119
 01CE           ;       page=4;                 //显示第四页停止页面 
 01CE 84E0              ldi R24,4
 01D0 80930000          sts _page,R24
 01D4                   .dbline 120
 01D4           ;       flag=2;                         //flag标志清零
 01D4 82E0              ldi R24,2
 01D6 80930000          sts _flag,R24
 01DA                   .dbline -2
 01DA           L46:
 01DA                   .dbline 0 ; func end
 01DA 0895              ret
 01DC                   .dbend
 01DC                   .dbfunc e step_for _step_for fV
                        .even
 01DC           _step_for::
 01DC                   .dbline -1
 01DC                   .dbline 124
 01DC           ; }
 01DC           ;  /**************运动到达指定循环步数之前***********/
 01DC           ; void step_for(void)
 01DC           ; {
 01DC                   .dbline 125
 01DC           ;       moto1[4]=p[++i];        //存储各节点的运动速度(时间)
 01DC 80910000          lds R24,_i
 01E0 8F5F              subi R24,255    ; addi 1
 01E2 482E              mov R4,R24
 01E4 40920000          sts _i,R4
 01E8 20900000          lds R2,_p
 01EC 30900100          lds R3,_p+1
 01F0 E82F              mov R30,R24
 01F2 FF27              clr R31
 01F4 E20D              add R30,R2
 01F6 F31D              adc R31,R3
 01F8 2080              ldd R2,z+0
 01FA 20920400          sts _moto1+4,R2
 01FE                   .dbline 126
 01FE           ;       moto2[4]=p[i];
 01FE 20900000          lds R2,_p
 0202 30900100          lds R3,_p+1
 0206 E82F              mov R30,R24
 0208 FF27              clr R31
 020A E20D              add R30,R2
 020C F31D              adc R31,R3
 020E 2080              ldd R2,z+0
 0210 20920400          sts _moto2+4,R2
 0214                   .dbline 127
 0214           ;       moto3[4]=p[i];
 0214 20900000          lds R2,_p
 0218 30900100          lds R3,_p+1
 021C E82F              mov R30,R24
 021E FF27              clr R31
 0220 E20D              add R30,R2
 0222 F31D              adc R31,R3
 0224 2080              ldd R2,z+0
 0226 20920400          sts _moto3+4,R2
 022A                   .dbline 128
 022A           ;       moto4[4]=p[i];   
 022A 20900000          lds R2,_p
 022E 30900100          lds R3,_p+1
 0232 E82F              mov R30,R24
 0234 FF27              clr R31
 0236 E20D              add R30,R2
 0238 F31D              adc R31,R3
 023A 2080              ldd R2,z+0
 023C 20920400          sts _moto4+4,R2
 0240                   .dbline 129
 0240           ;       i++;
 0240 8F5F              subi R24,255    ; addi 1
 0242 80930000          sts _i,R24
 0246                   .dbline 130
 0246           ;       moto1[3]=p[i++];        //存储各节点的运动位置
 0246 282E              mov R2,R24
 0248 3324              clr R3
 024A 2101              movw R4,R2
 024C 8F5F              subi R24,255    ; addi 1
 024E 80930000          sts _i,R24
 0252 20900000          lds R2,_p
 0256 30900100          lds R3,_p+1
 025A E42D              mov R30,R4
 025C FF27              clr R31
 025E E20D              add R30,R2
 0260 F31D              adc R31,R3
 0262 2080              ldd R2,z+0
 0264 20920300          sts _moto1+3,R2
 0268                   .dbline 131
 0268           ;       moto2[3]=p[i++];
 0268 082F              mov R16,R24
 026A 1127              clr R17
 026C 8F5F              subi R24,255    ; addi 1
 026E 80930000          sts _i,R24
 0272 20900000          lds R2,_p
 0276 30900100          lds R3,_p+1
 027A E02F              mov R30,R16
 027C FF27              clr R31
 027E E20D              add R30,R2
 0280 F31D              adc R31,R3
 0282 2080              ldd R2,z+0
 0284 20920300          sts _moto2+3,R2
 0288                   .dbline 132
 0288           ;       moto3[3]=p[i++];
 0288 082F              mov R16,R24
 028A 1127              clr R17
 028C 8F5F              subi R24,255    ; addi 1
 028E 80930000          sts _i,R24
 0292 20900000          lds R2,_p
 0296 30900100          lds R3,_p+1
 029A E02F              mov R30,R16
 029C FF27              clr R31
 029E E20D              add R30,R2
 02A0 F31D              adc R31,R3
 02A2 2080              ldd R2,z+0
 02A4 20920300          sts _moto3+3,R2
 02A8                   .dbline 133
 02A8           ;       moto4[3]=p[i];
 02A8 20900000          lds R2,_p
 02AC 30900100          lds R3,_p+1
 02B0 E82F              mov R30,R24
 02B2 FF27              clr R31
 02B4 E20D              add R30,R2
 02B6 F31D              adc R31,R3
 02B8 2080              ldd R2,z+0
 02BA 20920300          sts _moto4+3,R2
 02BE                   .dbline 134
 02BE           ;       flag=2;                         //主函数flag标志置数
 02BE 82E0              ldi R24,2
 02C0 80930000          sts _flag,R24
 02C4                   .dbline -2
 02C4           L56:
 02C4                   .dbline 0 ; func end
 02C4 0895              ret
 02C6                   .dbend
 02C6                   .dbfunc e step_back _step_back fV
                        .even
 02C6           _step_back::
 02C6 4A93              st -y,R20
 02C8 5A93              st -y,R21
 02CA                   .dbline -1
 02CA                   .dbline 138
 02CA           ; }
 02CA           ; /***************运动到达指定循环步数之后***********/
 02CA           ; void step_back(void)
 02CA           ; {
 02CA                   .dbline 139
 02CA           ;       moto1[4]=p[i];                                  //存储各节点运动速度(时间)
 02CA 20900000          lds R2,_p
 02CE 30900100          lds R3,_p+1
 02D2 E0910000          lds R30,_i
 02D6 FF27              clr R31
 02D8 E20D              add R30,R2

⌨️ 快捷键说明

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