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

📄 双足机器人.lis

📁 这段源代码是基于atmel公司mega16单片机做的双足机器人控制程序
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0458                   .dbline 328
 0458           ;           ADMUX=0x60;
 0458 80E6              ldi R24,96
 045A 87B9              out 0x7,R24
 045C 07C0              xjmp L100
 045E           L99:
 045E                   .dbline 329
 045E           ;               else if(adc==1)
 045E 4130              cpi R20,1
 0460 19F4              brne L101
 0462                   .dbline 330
 0462           ;                ADMUX=0x61;
 0462 81E6              ldi R24,97
 0464 87B9              out 0x7,R24
 0466 02C0              xjmp L102
 0468           L101:
 0468                   .dbline 332
 0468           ;                            else 
 0468           ;                     ADMUX=0x62;
 0468 82E6              ldi R24,98
 046A 87B9              out 0x7,R24
 046C           L102:
 046C           L100:
 046C                   .dbline 333
 046C           ;    delay_us(10);
 046C 0AE0              ldi R16,10
 046E 10E0              ldi R17,0
 0470 C7DD              xcall _delay_us
 0472                   .dbline 334
 0472           ;     ADCSRA|=0x40;
 0472 369A              sbi 0x6,6
 0474                   .dbline 335
 0474           ;    delay_ms(100);
 0474 04E6              ldi R16,100
 0476 10E0              ldi R17,0
 0478 CBDD              xcall _delay_ms
 047A                   .dbline 336
 047A           ;    switch(adc)
 047A 642F              mov R22,R20
 047C 7727              clr R23
 047E 6030              cpi R22,0
 0480 6707              cpc R22,R23
 0482 49F0              breq L106
 0484           X1:
 0484 6130              cpi R22,1
 0486 E0E0              ldi R30,0
 0488 7E07              cpc R23,R30
 048A 81F0              breq L107
 048C 6230              cpi R22,2
 048E E0E0              ldi R30,0
 0490 7E07              cpc R23,R30
 0492 B9F0              breq L108
 0494 20C0              xjmp L104
 0496           X2:
 0496                   .dbline 337
 0496           ;        {
 0496           L106:
 0496                   .dbline 338
 0496           ;         case 0: left=(ADC>>6);break;
 0496 26E0              ldi R18,6
 0498 30E0              ldi R19,0
 049A 04B1              in R16,0x4
 049C 15B1              in R17,0x5
 049E 0E940000          xcall lsr16
 04A2 10930700          sts _left+1,R17
 04A6 00930600          sts _left,R16
 04AA                   .dbline 338
 04AA 15C0              xjmp L104
 04AC           L107:
 04AC                   .dbline 339
 04AC           ;           case 1: right=(ADC>>6);break;
 04AC 26E0              ldi R18,6
 04AE 30E0              ldi R19,0
 04B0 04B1              in R16,0x4
 04B2 15B1              in R17,0x5
 04B4 0E940000          xcall lsr16
 04B8 10930500          sts _right+1,R17
 04BC 00930400          sts _right,R16
 04C0                   .dbline 339
 04C0 0AC0              xjmp L104
 04C2           L108:
 04C2                   .dbline 340
 04C2           ;               case 2: interval=(ADC>>6);break;
 04C2 26E0              ldi R18,6
 04C4 30E0              ldi R19,0
 04C6 04B1              in R16,0x4
 04C8 15B1              in R17,0x5
 04CA 0E940000          xcall lsr16
 04CE 10930100          sts _interval+1,R17
 04D2 00930000          sts _interval,R16
 04D6                   .dbline 340
 04D6                   .dbline 341
 04D6           ;               default:  break;
 04D6           L104:
 04D6                   .dbline 343
 04D6           L96:
 04D6                   .dbline 325
 04D6 4395              inc R20
 04D8           L98:
 04D8                   .dbline 325
 04D8 4330              cpi R20,3
 04DA 08F4              brsh X4
 04DC BBCF              xjmp L95
 04DE           X4:
 04DE                   .dbline 344
 04DE           ;         }
 04DE           ;     }
 04DE           ;   zhong=right-left;
 04DE 20900600          lds R2,_left
 04E2 30900700          lds R3,_left+1
 04E6 40900400          lds R4,_right
 04EA 50900500          lds R5,_right+1
 04EE 4218              sub R4,R2
 04F0 5308              sbc R5,R3
 04F2 50920300          sts _zhong+1,R5
 04F6 40920200          sts _zhong,R4
 04FA                   .dbline 345
 04FA           ;   right=1024-right;
 04FA 20900400          lds R2,_right
 04FE 30900500          lds R3,_right+1
 0502 80E0              ldi R24,1024
 0504 94E0              ldi R25,4
 0506 8219              sub R24,R2
 0508 9309              sbc R25,R3
 050A 90930500          sts _right+1,R25
 050E 80930400          sts _right,R24
 0512                   .dbline 346
 0512           ;   if(interval<420)
 0512 80910000          lds R24,_interval
 0516 90910100          lds R25,_interval+1
 051A 843A              cpi R24,164
 051C E1E0              ldi R30,1
 051E 9E07              cpc R25,R30
 0520 28F4              brsh L109
 0522                   .dbline 347
 0522           ;    {
 0522                   .dbline 348
 0522           ;       TIMSK&=0xbf;//停止计时
 0522 89B7              in R24,0x39
 0524 8F7B              andi R24,191
 0526 89BF              out 0x39,R24
 0528                   .dbline 349
 0528           ;              for(;;)
 0528           L111:
 0528                   .dbline 350
 0528           ;                   stop();
 0528 D0DD              xcall _stop
 052A                   .dbline 349
 052A                   .dbline 349
 052A FECF              xjmp L111
 052C           L109:
 052C                   .dbline 352
 052C           ;               }               
 052C           ;    else if((interval>419)&&(zhong<left)&&(zhong<right)&&((left<(right+10))|(right<(left+10))))
 052C 83EA              ldi R24,419
 052E 91E0              ldi R25,1
 0530 20900000          lds R2,_interval
 0534 30900100          lds R3,_interval+1
 0538 8215              cp R24,R2
 053A 9305              cpc R25,R3
 053C 08F0              brlo X5
 053E 3AC0              xjmp L115
 0540           X5:
 0540 20900600          lds R2,_left
 0544 30900700          lds R3,_left+1
 0548 40900200          lds R4,_zhong
 054C 50900300          lds R5,_zhong+1
 0550 4214              cp R4,R2
 0552 5304              cpc R5,R3
 0554 78F5              brsh L115
 0556 20900400          lds R2,_right
 055A 30900500          lds R3,_right+1
 055E 4214              cp R4,R2
 0560 5304              cpc R5,R3
 0562 40F5              brsh L115
 0564 C101              movw R24,R2
 0566 0A96              adiw R24,10
 0568 20900600          lds R2,_left
 056C 30900700          lds R3,_left+1
 0570 2816              cp R2,R24
 0572 3906              cpc R3,R25
 0574 18F4              brsh L117
 0576 61E0              ldi R22,1
 0578 70E0              ldi R23,0
 057A 02C0              xjmp L118
 057C           L117:
 057C 6627              clr R22
 057E 7727              clr R23
 0580           L118:
 0580 80910600          lds R24,_left
 0584 90910700          lds R25,_left+1
 0588 0A96              adiw R24,10
 058A 20900400          lds R2,_right
 058E 30900500          lds R3,_right+1
 0592 2816              cp R2,R24
 0594 3906              cpc R3,R25
 0596 18F4              brsh L119
 0598 41E0              ldi R20,1
 059A 50E0              ldi R21,0
 059C 02C0              xjmp L120
 059E           L119:
 059E 4427              clr R20
 05A0 5527              clr R21
 05A2           L120:
 05A2 1B01              movw R2,R22
 05A4 242A              or R2,R20
 05A6 352A              or R3,R21
 05A8 2220              tst R2
 05AA 11F4              brne X3
 05AC 3320              tst R3
 05AE 11F0              breq L115
 05B0           X3:
 05B0                   .dbline 353
 05B0           ;               {run();}
 05B0                   .dbline 353
 05B0 95DD              xcall _run
 05B2                   .dbline 353
 05B2 80C0              xjmp L116
 05B4           L115:
 05B4                   .dbline 354
 05B4           ;             else if((interval>419)&&(zhong<left)&&(zhong<right)&&(left>(right+10)))
 05B4 83EA              ldi R24,419
 05B6 91E0              ldi R25,1
 05B8 20900000          lds R2,_interval
 05BC 30900100          lds R3,_interval+1
 05C0 8215              cp R24,R2
 05C2 9305              cpc R25,R3
 05C4 E8F4              brsh L121
 05C6 20900600          lds R2,_left
 05CA 30900700          lds R3,_left+1
 05CE 40900200          lds R4,_zhong
 05D2 50900300          lds R5,_zhong+1
 05D6 4214              cp R4,R2
 05D8 5304              cpc R5,R3
 05DA 90F4              brsh L121
 05DC 20900400          lds R2,_right
 05E0 30900500          lds R3,_right+1
 05E4 4214              cp R4,R2
 05E6 5304              cpc R5,R3
 05E8 58F4              brsh L121
 05EA C101              movw R24,R2
 05EC 0A96              adiw R24,10
 05EE 20900600          lds R2,_left
 05F2 30900700          lds R3,_left+1
 05F6 8215              cp R24,R2
 05F8 9305              cpc R25,R3
 05FA 10F4              brsh L121
 05FC                   .dbline 355
 05FC           ;                      {turn_left();}
 05FC                   .dbline 355
 05FC 8FDD              xcall _turn_left
 05FE                   .dbline 355
 05FE 5AC0              xjmp L122
 0600           L121:
 0600                   .dbline 356
 0600           ;                  else if((interval>419)&&(zhong<left)&&(zhong<right)&&(right>(left+10)))
 0600 83EA              ldi R24,419
 0602 91E0              ldi R25,1
 0604 20900000          lds R2,_interval
 0608 30900100          lds R3,_interval+1
 060C 8215              cp R24,R2
 060E 9305              cpc R25,R3
 0610 E0F4              brsh L123
 0612 20900600          lds R2,_left
 0616 30900700          lds R3,_left+1
 061A 40900200          lds R4,_zhong
 061E 50900300          lds R5,_zhong+1
 0622 4214              cp R4,R2
 0624 5304              cpc R5,R3
 0626 88F4              brsh L123
 0628 20900400          lds R2,_right
 062C 30900500          lds R3,_right+1
 0630 4214              cp R4,R2
 0632 5304              cpc R5,R3
 0634 50F4              brsh L123
 0636 80910600          lds R24,_left
 063A 90910700          lds R25,_left+1
 063E 0A96              adiw R24,10
 0640 8215              cp R24,R2
 0642 9305              cpc R25,R3
 0644 10F4              brsh L123
 0646                   .dbline 357
 0646           ;                          {turn_right();}
 0646                   .dbline 357
 0646 74DD              xcall _turn_right
 0648                   .dbline 357
 0648 35C0              xjmp L124
 064A           L123:
 064A                   .dbline 358
 064A           ;                   else  if((interval>419)&&(left<zhong)&&(left<right))
 064A 83EA              ldi R24,419
 064C 91E0              ldi R25,1
 064E 20900000          lds R2,_interval
 0652 30900100          lds R3,_interval+1
 0656 8215              cp R24,R2
 0658 9305              cpc R25,R3
 065A A0F4              brsh L125
 065C 20900200          lds R2,_zhong
 0660 30900300          lds R3,_zhong+1
 0664 40900600          lds R4,_left
 0668 50900700          lds R5,_left+1
 066C 4214              cp R4,R2
 066E 5304              cpc R5,R3
 0670 48F4              brsh L125
 0672 20900400          lds R2,_right
 0676 30900500          lds R3,_right+1
 067A 4214              cp R4,R2
 067C 5304              cpc R5,R3
 067E 10F4              brsh L125
 0680                   .dbline 359
 0680           ;                       {turn_right();}
 0680                   .dbline 359
 0680 57DD              xcall _turn_right
 0682                   .dbline 359
 0682 18C0              xjmp L126
 0684           L125:
 0684                   .dbline 360
 0684           ;                           else if((interval>419)&&(right<left)&&(right<left))
 0684 83EA              ldi R24,419
 0686 91E0              ldi R25,1
 0688 20900000          lds R2,_interval
 068C 30900100          lds R3,_interval+1
 0690 8215              cp R24,R2
 0692 9305              cpc R25,R3
 0694 78F4              brsh L127
 0696 20900600          lds R2,_left
 069A 30900700          lds R3,_left+1
 069E 40900400          lds R4,_right
 06A2 50900500          lds R5,_right+1
 06A6 4214              cp R4,R2
 06A8 5304              cpc R5,R3
 06AA 20F4              brsh L127
 06AC 4214              cp R4,R2
 06AE 5304              cpc R5,R3
 06B0 08F4              brsh L127
 06B2                   .dbline 361
 06B2           ;                                 {turn_left();} 
 06B2                   .dbline 361
 06B2 34DD              xcall _turn_left
 06B4                   .dbline 361
 06B4           L127:
 06B4           L126:
 06B4           L124:
 06B4           L122:
 06B4           L116:
 06B4                   .dbline 362
 06B4           ; delay_ms(100);
 06B4 04E6              ldi R16,100
 06B6 10E0              ldi R17,0
 06B8 ABDC              xcall _delay_ms
 06BA                   .dbline -2

⌨️ 快捷键说明

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