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

📄 xunxiandongzuo8.lis

📁 mega8 对电机控制。采用mega8对电机控制。然后再用mega16 来控制mega8
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0190           ;       unsigned int temp_int = 0x0000;
 0190 FE01              movw R30,R28
 0192 2480              ldd R2,z+4
 0194 3580              ldd R3,z+5
 0196 F501              movw R30,R10
 0198 3786              std z+15,R3
 019A 2686              std z+14,R2
 019C                   .dbline 108
 019C           ;       unsigned char temp_char = 0x00;
 019C           ;       
 019C 48E0              ldi R20,8
 019E 50E0              ldi R21,0
 01A0 60E0              ldi R22,0
 01A2 70E0              ldi R23,0
 01A4 FE01              movw R30,R28
 01A6 2080              ldd R2,z+0
 01A8 3180              ldd R3,z+1
 01AA 4280              ldd R4,z+2
 01AC 5380              ldd R5,z+3
 01AE 2416              cp R2,R20
 01B0 3506              cpc R3,R21
 01B2 4606              cpc R4,R22
 01B4 5706              cpc R5,R23
 01B6 7CF4              brge L19
 01B8 48EF              ldi R20,248
 01BA 5FEF              ldi R21,255
 01BC 6FEF              ldi R22,255
 01BE 7FEF              ldi R23,255
 01C0 FE01              movw R30,R28
 01C2 2080              ldd R2,z+0
 01C4 3180              ldd R3,z+1
 01C6 4280              ldd R4,z+2
 01C8 5380              ldd R5,z+3
 01CA 4215              cp R20,R2
 01CC 5305              cpc R21,R3
 01CE 6405              cpc R22,R4
 01D0 7505              cpc R23,R5
 01D2 0CF4              brge L19
 01D4                   .dbline 109
 01D4           ;       temp_char = TCNT0;              //读取脉冲计数低字节
 01D4                   .dbline 110
 01D4           ;       TCNT0=0;
 01D4 5BC0              rjmp L20
 01D6           L19:
 01D6                   .dbline 112
 01D6           ;       
 01D6           ;       temp_int = num_H;               //读取脉冲计数高字节
 01D6 C501              movw R24,R10
 01D8 8896              adiw R24,40
 01DA 1C01              movw R2,R24
 01DC FE01              movw R30,R28
 01DE 4080              ldd R4,z+0
 01E0 5180              ldd R5,z+1
 01E2 6280              ldd R6,z+2
 01E4 7380              ldd R7,z+3
 01E6 F501              movw R30,R10
 01E8 428D              ldd R20,z+26
 01EA 538D              ldd R21,z+27
 01EC 6627              clr R22
 01EE 57FD              sbrc R21,7
 01F0 6095              com R22
 01F2 7727              clr R23
 01F4 67FD              sbrc R22,7
 01F6 7095              com R23
 01F8 7A92              st -y,R7
 01FA 6A92              st -y,R6
 01FC 5A92              st -y,R5
 01FE 4A92              st -y,R4
 0200 8A01              movw R16,R20
 0202 9B01              movw R18,R22
 0204 00D0              rcall empy32s
 0206 2801              movw R4,R16
 0208 3901              movw R6,R18
 020A FE01              movw R30,R28
 020C 4481              ldd R20,z+4
 020E 5581              ldd R21,z+5
 0210 6681              ldd R22,z+6
 0212 7781              ldd R23,z+7
 0214 F501              movw R30,R10
 0216 808D              ldd R24,z+24
 0218 918D              ldd R25,z+25
 021A AA27              clr R26
 021C 97FD              sbrc R25,7
 021E A095              com R26
 0220 BB27              clr R27
 0222 A7FD              sbrc R26,7
 0224 B095              com R27
 0226 7A93              st -y,R23
 0228 6A93              st -y,R22
 022A 5A93              st -y,R21
 022C 4A93              st -y,R20
 022E 8C01              movw R16,R24
 0230 9D01              movw R18,R26
 0232 00D0              rcall empy32s
 0234 A801              movw R20,R16
 0236 B901              movw R22,R18
 0238 440D              add R20,R4
 023A 551D              adc R21,R5
 023C 661D              adc R22,R6
 023E 771D              adc R23,R7
 0240 FE01              movw R30,R28
 0242 4084              ldd R4,z+8
 0244 5184              ldd R5,z+9
 0246 6284              ldd R6,z+10
 0248 7384              ldd R7,z+11
 024A F501              movw R30,R10
 024C 848D              ldd R24,z+28
 024E 958D              ldd R25,z+29
 0250 AA27              clr R26
 0252 97FD              sbrc R25,7
 0254 A095              com R26
 0256 BB27              clr R27
 0258 A7FD              sbrc R26,7
 025A B095              com R27
 025C 7A92              st -y,R7
 025E 6A92              st -y,R6
 0260 5A92              st -y,R5
 0262 4A92              st -y,R4
 0264 8C01              movw R16,R24
 0266 9D01              movw R18,R26
 0268 00D0              rcall empy32s
 026A 400F              add R20,R16
 026C 511F              adc R21,R17
 026E 621F              adc R22,R18
 0270 731F              adc R23,R19
 0272 F101              movw R30,R2
 0274 4080              ldd R4,z+0
 0276 5180              ldd R5,z+1
 0278 6280              ldd R6,z+2
 027A 7380              ldd R7,z+3
 027C 440E              add R4,R20
 027E 551E              adc R5,R21
 0280 661E              adc R6,R22
 0282 771E              adc R7,R23
 0284 4082              std z+0,R4
 0286 5182              std z+1,R5
 0288 6282              std z+2,R6
 028A 7382              std z+3,R7
 028C           L20:
 028C                   .dbline 114
 028C           ;       num_H = 0;
 028C           ;       
 028C 40E0              ldi R20,0
 028E 5CEF              ldi R21,252
 0290 6FE0              ldi R22,15
 0292 70E0              ldi R23,0
 0294 F501              movw R30,R10
 0296 20A4              ldd R2,z+40
 0298 31A4              ldd R3,z+41
 029A 42A4              ldd R4,z+42
 029C 53A4              ldd R5,z+43
 029E 2416              cp R2,R20
 02A0 3506              cpc R3,R21
 02A2 4606              cpc R4,R22
 02A4 5706              cpc R5,R23
 02A6 54F0              brlt L21
 02A8                   .dbline 115
 02A8           ;       temp_int <<=8;                  //计算脉冲数
 02A8 40E0              ldi R20,0
 02AA 5CEF              ldi R21,252
 02AC 6FE0              ldi R22,15
 02AE 70E0              ldi R23,0
 02B0 F501              movw R30,R10
 02B2 40A7              std z+40,R20
 02B4 51A7              std z+41,R21
 02B6 62A7              std z+42,R22
 02B8 73A7              std z+43,R23
 02BA 17C0              rjmp L22
 02BC           L21:
 02BC                   .dbline 117
 02BC           ;       temp_int += temp_char;
 02BC           ;       
 02BC 40E0              ldi R20,0
 02BE 54E0              ldi R21,4
 02C0 60EF              ldi R22,240
 02C2 7FEF              ldi R23,255
 02C4 F501              movw R30,R10
 02C6 20A4              ldd R2,z+40
 02C8 31A4              ldd R3,z+41
 02CA 42A4              ldd R4,z+42
 02CC 53A4              ldd R5,z+43
 02CE 4215              cp R20,R2
 02D0 5305              cpc R21,R3
 02D2 6405              cpc R22,R4
 02D4 7505              cpc R23,R5
 02D6 4CF0              brlt L23
 02D8                   .dbline 118
 02D8           ;       Num_Speed -= temp_int;          //累计脉冲数    
 02D8 40E0              ldi R20,0
 02DA 54E0              ldi R21,4
 02DC 60EF              ldi R22,240
 02DE 7FEF              ldi R23,255
 02E0 F501              movw R30,R10
 02E2 40A7              std z+40,R20
 02E4 51A7              std z+41,R21
 02E6 62A7              std z+42,R22
 02E8 73A7              std z+43,R23
 02EA           L23:
 02EA           L22:
 02EA                   .dbline 120
 02EA           ; }
 02EA           ; 
 02EA 8AE0              ldi R24,10
 02EC 90E0              ldi R25,0
 02EE F501              movw R30,R10
 02F0 20A4              ldd R2,z+40
 02F2 31A4              ldd R3,z+41
 02F4 42A4              ldd R4,z+42
 02F6 53A4              ldd R5,z+43
 02F8 8A93              st -y,R24
 02FA 8101              movw R16,R2
 02FC 9201              movw R18,R4
 02FE 00D0              rcall asr32
 0300                   .dbline -2
 0300           L18:
 0300 2C96              adiw R28,12
 0302 00D0              rcall pop_gset3
 0304                   .dbline 0 ; func end
 0304 0895              ret
 0306                   .dbsym l dd_error 8 L
 0306                   .dbsym l d_error 4 L
 0306                   .dbsym l error 0 L
 0306                   .dbsym r pp 10 pX
 0306                   .dbend
                        .area data(ram, con, rel)
 0006                   .dbfile E:\李斐机器人\xunxianjiadongzuo\8/L_PID.c
 0006           L26:
 0006                   .blkb 1
                        .area idata
 0006 00                .byte 0
                        .area data(ram, con, rel)
 0007                   .dbfile E:\李斐机器人\xunxianjiadongzuo\8/L_PID.c
                        .area text(rom, con, rel)
 0306                   .dbfile E:\李斐机器人\xunxianjiadongzuo\8/L_PID.c
 0306                   .dbfunc e s_PIDCalc _s_PIDCalc fI
 0306                   .dbsym s flag L26 c
 0306           ;      temp_comp -> y+8
 0306           ;        d_error -> y+4
 0306           ;          error -> y+0
 0306           ;             pp -> R10,R11
                        .even
 0306           _s_PIDCalc::
 0306 00D0              rcall push_gset3
 0308 5801              movw R10,R16
 030A 2C97              sbiw R28,12
 030C                   .dbline -1
 030C                   .dbline 128
 030C           ; 
 030C           ; //TIMER2 initialize - prescale:1024
 030C           ; // WGM: Normal
 030C           ; // desired value: 20mSec
 030C           ; // actual value: 19.968mSec (0.2%)
 030C           ; void timer2_init(void)
 030C           ; {
 030C           ;  TCCR2 = 0x00; //stop
 030C                   .dbline 133
 030C           ;  TCNT2 = 0x64; //setup
 030C           ;  
 030C           ;  TCCR2 = 0x07; //start
 030C           ; }
 030C           ; 
 030C C501              movw R24,R10
 030E 0896              adiw R24,8
 0310 F501              movw R30,R10
 0312 4280              ldd R4,z+2
 0314 5380              ldd R5,z+3
 0316 6624              clr R6
 0318 57FC              sbrc R5,7
 031A 6094              com R6
 031C 7724              clr R7
 031E 67FC              sbrc R6,7
 0320 7094              com R7
 0322 FC01              movw R30,R24
 0324 4081              ldd R20,z+0
 0326 5181              ldd R21,z+1
 0328 6281              ldd R22,z+2
 032A 7381              ldd R23,z+3
 032C 440D              add R20,R4
 032E 551D              adc R21,R5
 0330 661D              adc R22,R6
 0332 771D              adc R23,R7
 0334 4083              std z+0,R20
 0336 5183              std z+1,R21
 0338 6283              std z+2,R22
 033A 7383              std z+3,R23
 033C                   .dbline 134
 033C           ; /*                                            定时进行PID运算                         */
 033C                   .dbline 136
 033C           ; #define Dir ( (PIND)&(1<<2) )         //方向输入,“非零”为GO_AHEAD,“0”为GO_BACK
 033C           ; 
 033C F501              movw R30,R10
 033E 2084              ldd R2,z+8
 0340 3184              ldd R3,z+9
 0342 4284              ldd R4,z+10
 0344 5384              ldd R5,z+11
 0346 F501              movw R30,R10
 0348 6480              ldd R6,z+4
 034A 7580              ldd R7,z+5
 034C 8680              ldd R8,z+6
 034E 9780              ldd R9,z+7
 0350 6218              sub R6,R2
 0352 7308              sbc R7,R3
 0354 8408              sbc R8,R4
 0356 9508              sbc R9,R5
 0358 FE01              movw R30,R28
 035A 6082              std z+0,R6
 035C 7182              std z+1,R7
 035E 8282              std z+2,R8
 0360 9382              std z+3,R9
 0362 40E0              ldi R20,0
 0364 50E0              ldi R21,0
 0366 60E0              ldi R22,0
 0368 70E0              ldi R23,0
 036A FE01              movw R30,R28
 036C 2080              ldd R2,z+0
 036E 3180              ldd R3,z+1
 0370 4280              ldd R4,z+2
 0372 5380              ldd R5,z+3
 0374 2416              cp R2,R20
 0376 3506              cpc R3,R21
 0378 4606              cpc R4,R22
 037A 5706              cpc R5,R23
 037C 7CF4              brge L27
 037E 40E0              ldi R20,0
 0380 50E0              ldi R21,0
 0382 60E0              ldi R22,0
 0384 70E0              ldi R23,0
 0386 FE01              movw R30,R28
 0388 2080              ldd R2,z+0
 038A 3180              ldd R3,z+1
 038C 4280              ldd R4,z+2
 038E 5380              ldd R5,z+3
 0390 4215              cp R20,R2
 0392 5305              cpc R21,R3
 0394 6405              cpc R22,R4
 0396 7505              cpc R23,R5
 0398 0CF4              brge L27
 039A                   .dbline 137
 039A           ; #pragma interrupt_handler timer2_ovf_isr:5
 039A                   .dbline 139
 039A           ; void timer2_ovf_isr(void)
 039A           ; {

⌨️ 快捷键说明

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