?? motor.lis
字號:
0080 .dbline -2
0080 L30:
0080 .dbline 0 ; func end
0080 0895 ret
0082 .dbend
0082 .dbfunc e motor_right_quick_stop _motor_right_quick_stop fV
.even
0082 _motor_right_quick_stop::
0082 .dbline -1
0082 .dbline 108
0082 ; }
0082 ;
0082 ; //右電機急停
0082 ; void motor_right_quick_stop(void)
0082 ; {
0082 .dbline 109
0082 ; motor_en1;
0082 C49A sbi 0x18,4
0084 .dbline 110
0084 ; motor_en2;
0084 C59A sbi 0x18,5
0086 .dbline 111
0086 ; T2_UEN;
0086 89B7 in R24,0x39
0088 8F77 andi R24,127
008A 89BF out 0x39,R24
008C .dbline -2
008C L31:
008C .dbline 0 ; func end
008C 0895 ret
008E .dbend
008E .dbfunc e straight _straight fV
.even
008E _straight::
008E .dbline -1
008E .dbline 117
008E ; }
008E ;
008E ; /**********************小車動作*****************************/
008E ;
008E ; void straight(void) //直行
008E ; {//motor_right_quick_stop();
008E .dbline 118
008E ; motor_left_forward(0xfe);
008E 0EEF ldi R16,254
0090 B7DF xcall _motor_left_forward
0092 .dbline 119
0092 ; motor_right_forward(0xfe);
0092 0EEF ldi R16,254
0094 D7DF xcall _motor_right_forward
0096 .dbline -2
0096 L32:
0096 .dbline 0 ; func end
0096 0895 ret
0098 .dbend
0098 .dbfunc e turn_left _turn_left fV
.even
0098 _turn_left::
0098 .dbline -1
0098 .dbline 124
0098 ;
0098 ; }
0098 ;
0098 ; void turn_left(void) //左轉
0098 ; {
0098 .dbline 125
0098 ; motor_left_forward(0xfe);
0098 0EEF ldi R16,254
009A B2DF xcall _motor_left_forward
009C .dbline 126
009C ; motor_right_forward(0x50);
009C 00E5 ldi R16,80
009E D2DF xcall _motor_right_forward
00A0 .dbline -2
00A0 L33:
00A0 .dbline 0 ; func end
00A0 0895 ret
00A2 .dbend
00A2 .dbfunc e turn_right _turn_right fV
.even
00A2 _turn_right::
00A2 .dbline -1
00A2 .dbline 130
00A2 ; }
00A2 ;
00A2 ; void turn_right(void) //右轉
00A2 ; {
00A2 .dbline 131
00A2 ; motor_left_forward(0xfe);
00A2 0EEF ldi R16,254
00A4 ADDF xcall _motor_left_forward
00A6 .dbline 132
00A6 ; motor_right_backward(0x50);
00A6 00E5 ldi R16,80
00A8 D6DF xcall _motor_right_backward
00AA .dbline -2
00AA L34:
00AA .dbline 0 ; func end
00AA 0895 ret
00AC .dbend
00AC .dbfunc e straight_back _straight_back fV
.even
00AC _straight_back::
00AC .dbline -1
00AC .dbline 136
00AC ; }
00AC ;
00AC ; void straight_back(void) //直回
00AC ; {//motor_right_quick_stop();
00AC .dbline 137
00AC ; motor_left_backward(0xfe);
00AC 0EEF ldi R16,254
00AE B1DF xcall _motor_left_backward
00B0 .dbline 138
00B0 ; motor_right_backward(0xfe);
00B0 0EEF ldi R16,254
00B2 D1DF xcall _motor_right_backward
00B4 .dbline -2
00B4 L35:
00B4 .dbline 0 ; func end
00B4 0895 ret
00B6 .dbend
00B6 .dbfunc e stop _stop fV
.even
00B6 _stop::
00B6 .dbline -1
00B6 .dbline 142
00B6 ; }
00B6 ;
00B6 ; void stop(void) //急停
00B6 ; {
00B6 .dbline 143
00B6 ; motor_left_quick_stop();
00B6 C0DF xcall _motor_left_quick_stop
00B8 .dbline 144
00B8 ; motor_right_quick_stop();
00B8 E4DF xcall _motor_right_quick_stop
00BA .dbline -2
00BA L36:
00BA .dbline 0 ; func end
00BA 0895 ret
00BC .dbend
00BC .dbfunc e mic_turn_right _mic_turn_right fV
.even
00BC _mic_turn_right::
00BC .dbline -1
00BC .dbline 148
00BC ; }
00BC ;
00BC ; void mic_turn_right(void) //向右微調
00BC ; {
00BC .dbline 149
00BC ; motor_left_forward(0xa0);
00BC 00EA ldi R16,160
00BE A0DF xcall _motor_left_forward
00C0 .dbline 150
00C0 ; motor_right_backward(0x30);
00C0 00E3 ldi R16,48
00C2 C9DF xcall _motor_right_backward
00C4 .dbline -2
00C4 L37:
00C4 .dbline 0 ; func end
00C4 0895 ret
00C6 .dbend
00C6 .dbfunc e mic_turn_left _mic_turn_left fV
.even
00C6 _mic_turn_left::
00C6 .dbline -1
00C6 .dbline 154
00C6 ; }
00C6 ;
00C6 ; void mic_turn_left(void) //向左微調
00C6 ; {
00C6 .dbline 155
00C6 ; motor_left_forward(0xa0);
00C6 00EA ldi R16,160
00C8 9BDF xcall _motor_left_forward
00CA .dbline 156
00CA ; motor_right_forward(0x30);
00CA 00E3 ldi R16,48
00CC BBDF xcall _motor_right_forward
00CE .dbline -2
00CE L38:
00CE .dbline 0 ; func end
00CE 0895 ret
00D0 .dbend
00D0 .dbfunc e flag_test _flag_test fV
.area func_lit(rom, con, rel)
0000 L49:
0000 9800 .word `L48
0002 8800 .word `L44
0004 8C00 .word `L45
0006 9400 .word `L47
0008 8C00 .word `L45
000A 8C00 .word `L45
000C 8800 .word `L44
000E 8800 .word `L44
0010 8800 .word `L44
0012 8C00 .word `L45
0014 8800 .word `L44
0016 8C00 .word `L45
0018 9000 .word `L46
001A 8C00 .word `L45
001C 8800 .word `L44
001E 8400 .word `L43
.area text(rom, con, rel)
00D0 .dbfile C:\DOCUME~1\Administrator\桌面\小車尋跡\motor.c
00D0 ; temp -> R20
.even
00D0 _flag_test::
00D0 0E940000 xcall push_gset1
00D4 .dbline -1
00D4 .dbline 160
00D4 ; }
00D4 ;
00D4 ; void flag_test(void) //測試小車狀態(tài)
00D4 ; {
00D4 .dbline 162
00D4 ; uint8 temp;
00D4 ; temp = PINA&0x0f; //PINA的低四位
00D4 49B3 in R20,0x19
00D6 4F70 andi R20,15
00D8 .dbline 163
00D8 ; switch(temp)
00D8 5527 clr R21
00DA 4030 cpi R20,0
00DC E0E0 ldi R30,0
00DE 5E07 cpc R21,R30
00E0 54F1 brlt L41
00E2 8FE0 ldi R24,15
00E4 90E0 ldi R25,0
00E6 8417 cp R24,R20
00E8 9507 cpc R25,R21
00EA 2CF1 brlt L41
00EC 02E0 ldi R16,2
00EE 10E0 ldi R17,0
00F0 9A01 movw R18,R20
00F2 0E940000 xcall empy16s
00F6 F801 movw R30,R16
00F8 80E0 ldi R24,<L49
00FA 90E0 ldi R25,>L49
00FC E80F add R30,R24
00FE F91F adc R31,R25
0100 0590 lpm R0,Z+
0102 1490 lpm R1,Z
0104 F001 movw R30,R0
0106 0994 ijmp
0108 X0:
0108 .dbline 164
0108 ; {
0108 L43:
0108 .dbline 166
0108 ; case 0x0f:
0108 ; flag = 0; //未偏
0108 2224 clr R2
010A 20920000 sts _flag,R2
010E .dbline 167
010E ; break;
010E 13C0 xjmp L41
0110 L44:
0110 .dbline 174
0110 ; case 0x01:
0110 ; case 0x06:
0110 ; case 0x07:
0110 ; case 0x08:
0110 ; case 0x0a:
0110 ; case 0x0e:
0110 ; flag = 1; //左偏
0110 81E0 ldi R24,1
0112 80930000 sts _flag,R24
0116 .dbline 175
0116 ; break;
0116 0FC0 xjmp L41
0118 L45:
0118 .dbline 182
0118 ; case 0x02:
0118 ; case 0x04:
0118 ; case 0x05:
0118 ; case 0x09:
0118 ; case 0x0b:
0118 ; case 0x0d:
0118 ; flag = 2; //右偏
0118 82E0 ldi R24,2
011A 80930000 sts _flag,R24
011E .dbline 183
011E ; break;
011E 0BC0 xjmp L41
0120 L46:
0120 .dbline 185
0120 ; case 0x0c:
0120 ; flag = 3; //前兩出線
0120 83E0 ldi R24,3
0122 80930000 sts _flag,R24
0126 .dbline 186
0126 ; break;
0126 07C0 xjmp L41
0128 L47:
0128 .dbline 188
0128 ; case 0x03:
0128 ; flag = 4; //后兩出線
0128 84E0 ldi R24,4
012A 80930000 sts _flag,R24
012E .dbline 189
012E ; break;
012E 03C0 xjmp L41
0130 L48:
0130 .dbline 191
0130 85E0 ldi R24,5
0132 80930000 sts _flag,R24
0136 .dbline 192
0136 .dbline 194
0136 L41:
0136 .dbline -2
0136 L39:
0136 0E940000 xcall pop_gset1
013A .dbline 0 ; func end
013A 0895 ret
013C .dbsym r temp 20 c
013C .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -