📄 双足机器人.lis
字号:
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 + -