📄 bianma.lis
字号:
0094 84BB out 0x14,R24
0096 .dbline 163
0096 8FEF ldi R24,255
0098 85BB out 0x15,R24
009A .dbline 164
009A ; }
009A 80E8 ldi R24,128
009C 87BB out 0x17,R24
009E .dbline 164
009E 8FEF ldi R24,255
00A0 88BB out 0x18,R24
00A2 .dbline 166
00A2 ; if(pc==0x60)
00A2 ; {
00A2 43B3 in R20,0x13
00A4 4071 andi R20,16
00A6 .dbline 167
00A6 ; stop();
00A6 C9F4 brne L18
00A8 .dbline 168
00A8 ; //后退,往右转弯
00A8 .dbline 169
00A8 ; PORTD = 0x50;
00A8 E5DF rcall _backward
00AA .dbline 170
00AA ; PORTA=0x3C;//后退
00AA 0AEF ldi R16,250
00AC 10E0 ldi R17,0
00AE C0DF rcall _delay_ms
00B0 .dbline 172
00B0 ; delay_ms(delaytime);
00B0 ; PORTD = 0x60;//右转
00B0 80910C00 lds R24,_work_status
00B4 8037 cpi R24,112
00B6 69F4 brne L20
00B8 .dbline 173
00B8 ; PORTA=0xCC;
00B8 .dbline 174
00B8 ; delay_ms(delaytime);
00B8 E7DF rcall _stop
00BA 0AC0 rjmp L23
00BC L22:
00BC .dbline 176
00BC .dbline 177
00BC 85E5 ldi R24,85
00BE 8BBB out 0x1b,R24
00C0 .dbline 178
00C0 0AEF ldi R16,250
00C2 10E0 ldi R17,0
00C4 B5DF rcall _delay_ms
00C6 .dbline 179
00C6 8AEA ldi R24,170
00C8 8BBB out 0x1b,R24
00CA .dbline 180
00CA 0AEF ldi R16,250
00CC 10E0 ldi R17,0
00CE B0DF rcall _delay_ms
00D0 .dbline 181
00D0 L23:
00D0 .dbline 175
00D0 ; }
00D0 F5CF rjmp L22
00D2 X1:
00D2 .dbline 182
00D2 ; if(pc==0xE0)
00D2 ; {
00D2 ; //刹车
00D2 ; PORTD = 0xF0;
00D2 ; PORTA = 0xFF;
00D2 ; }
00D2 ; else
00D2 L20:
00D2 .dbline 184
00D2 ; {
00D2 ; PORTD = 0xA0;//前行
00D2 C1DF rcall _turn_left
00D4 .dbline 185
00D4 ; PORTA=0xC3;
00D4 0AEF ldi R16,250
00D6 10E0 ldi R17,0
00D8 ABDF rcall _delay_ms
00DA .dbline 186
00DA ; }
00DA L18:
00DA .dbline 188
00DA ; }
00DA ; }
00DA 46B3 in R20,0x16
00DC 4077 andi R20,112
00DE .dbline 189
00DE ;
00DE 4035 cpi R20,80
00E0 41F4 brne L25
00E2 .dbline 190
00E2 ; void music_car()
00E2 .dbline 191
00E2 ; {
00E2 CDDF rcall _forward
00E4 .dbline 192
00E4 ; DDRA = 0xFF; PORTA = 0xFF;
00E4 0AEF ldi R16,250
00E6 10E0 ldi R17,0
00E8 A3DF rcall _delay_ms
00EA .dbline 194
00EA ; PORTA = 0xCC;
00EA ; while (1)
00EA B5DF rcall _turn_left
00EC .dbline 195
00EC ; ;
00EC 0AEF ldi R16,250
00EE 10E0 ldi R17,0
00F0 9FDF rcall _delay_ms
00F2 .dbline 196
00F2 ; }
00F2 L25:
00F2 .dbline 197
00F2 ;
00F2 4033 cpi R20,48
00F4 41F4 brne L27
00F6 .dbline 198
00F6 ; void led_car()
00F6 .dbline 199
00F6 ; {
00F6 BEDF rcall _backward
00F8 .dbline 200
00F8 ; DDRA = 0xFF; PORTA = 0xFF;
00F8 0AEF ldi R16,250
00FA 10E0 ldi R17,0
00FC 99DF rcall _delay_ms
00FE .dbline 202
00FE ; PORTA = 0x0F;
00FE ; while (1)
00FE ABDF rcall _turn_left
0100 .dbline 203
0100 ; ;
0100 0AEF ldi R16,250
0102 10E0 ldi R17,0
0104 95DF rcall _delay_ms
0106 .dbline 204
0106 ; }
0106 L27:
0106 .dbline 205
0106 ;
0106 4036 cpi R20,96
0108 41F4 brne L29
010A .dbline 206
010A ; void main(void)
010A .dbline 207
010A ; {
010A B4DF rcall _backward
010C .dbline 208
010C ; unsigned temp;
010C 0AEF ldi R16,250
010E 10E0 ldi R17,0
0110 8FDF rcall _delay_ms
0112 .dbline 210
0112 ;
0112 ; port_init(); //PA,PB,PC,PD 初始化
0112 A1DF rcall _turn_left
0114 .dbline 211
0114 ;
0114 0AEF ldi R16,250
0116 10E0 ldi R17,0
0118 8BDF rcall _delay_ms
011A .dbline 212
011A ; loop:
011A L29:
011A .dbline 213
011A ;
011A 4032 cpi R20,32
011C C1F4 brne L31
011E .dbline 214
011E ; PORTA = 0x00;delay_ms(500);
011E .dbline 215
011E ; PORTA = 0xff;delay_ms(500);
011E B4DF rcall _stop
0120 .dbline 216
0120 ; bianma = 0x0000;
0120 08EE ldi R16,1000
0122 13E0 ldi R17,3
0124 85DF rcall _delay_ms
0126 12C0 rjmp L34
0128 L33:
0128 .dbline 218
0128 ;
0128 ; while(1)
0128 .dbline 219
0128 ; {
0128 43B3 in R20,0x13
012A 4071 andi R20,16
012C .dbline 220
012C ; remote = PINB & 0x0f;
012C 09F4 brne L36
012E .dbline 221
012E ; PORTA = ~remote;
012E .dbline 221
012E 0FC0 rjmp L35
0130 L36:
0130 .dbline 222
0130 ; switch (remote)
0130 85E5 ldi R24,85
0132 8BBB out 0x1b,R24
0134 .dbline 223
0134 ; {//按键检查
0134 0AEF ldi R16,250
0136 10E0 ldi R17,0
0138 7BDF rcall _delay_ms
013A .dbline 224
013A ; case 0x04 :
013A 8AEA ldi R24,170
013C 8BBB out 0x1b,R24
013E .dbline 225
013E ; {
013E 0AEF ldi R16,250
0140 10E0 ldi R17,0
0142 76DF rcall _delay_ms
0144 .dbline 226
0144 ; bianma=bianma | 0xA000;
0144 66B3 in R22,0x16
0146 6F70 andi R22,15
0148 .dbline 227
0148 ; bianma_count = bianma_count+1;
0148 09F0 breq L38
014A .dbline 228
014A ; }
014A .dbline 228
014A 01C0 rjmp L35
014C L38:
014C .dbline 229
014C L34:
014C .dbline 217
014C EDCF rjmp L33
014E L35:
014E .dbline 230
014E L31:
014E .dbline -2
014E .dbline 231
014E ; break;
014E ; case 0x02 :
014E ; {
014E L17:
014E 00D0 rcall pop_gset2
0150 .dbline 0 ; func end
0150 0895 ret
0152 .dbsym r remote_in 22 c
0152 .dbsym r sw_in 20 c
0152 .dbend
0152 .dbfunc e mic_startup _mic_startup fV
0152 ; mic_in -> R20
.even
0152 _mic_startup::
0152 00D0 rcall push_gset1
0154 .dbline -1
0154 .dbline 234
0154 ; bianma=bianma | 0x0B00;
0154 ; bianma_count = bianma_count+1;
0154 ; }
0154 .dbline 236
0154 ; break;
0154 ; case 0x08 :
0154 81E0 ldi R24,1
0156 84BB out 0x14,R24
0158 .dbline 236
0158 8FEF ldi R24,255
015A 85BB out 0x15,R24
015C .dbline 237
015C ; {
015C 01E0 ldi R16,1
015E 10E0 ldi R17,0
0160 5FDF rcall _delay_us
0162 04C0 rjmp L42
0164 L41:
0164 .dbline 239
0164 ; bianma=bianma | 0x00C0;
0164 ; bianma_count = bianma_count+1;
0164 .dbline 240
0164 ; }
0164 43B3 in R20,0x13
0166 4870 andi R20,8
0168 .dbline 241
0168 ; break;
0168 09F4 brne L44
016A .dbline 241
016A .dbline 241
016A 01C0 rjmp L43
016C L44:
016C .dbline 242
016C L42:
016C .dbline 238
016C FBCF rjmp L41
016E L43:
016E .dbline -2
016E .dbline 243
016E ; case 0x01 :
016E ; {
016E L40:
016E 00D0 rcall pop_gset1
0170 .dbline 0 ; func end
0170 0895 ret
0172 .dbsym r mic_in 20 c
0172 .dbend
0172 .dbfunc e remote_auto_time _remote_auto_time fV
0172 ; remote_in -> R16
.even
0172 _remote_auto_time::
0172 .dbline -1
0172 .dbline 260
0172 ; bianma=bianma | 0x000D;
0172 ; bianma_count = bianma_count+1;
0172 ; }
0172 ; break;
0172 ; }
0172 ; while(1)
0172 ; {//释键检查
0172 ; temp = PINB & 0x0f;
0172 ; if(temp != remote)
0172 ; {break;}
0172 ; }
0172 ; if(bianma_count == 4)
0172 ; {//按键四次,认为 一次有效输入结束
0172 ; bianma_count=0;break;
0172 ; }
0172 ; }
0172 ; delay_ms(200);
0172 .dbline 262
0172 ; PORTA = 0xaa;delay_ms(500);
0172 ; PORTA = 0x55;delay_ms(500);
0172 06B3 in R16,0x16
0174 0F70 andi R16,15
0176 .dbline 263
0176 ; if(bianma == 0xa000)
0176 1127 clr R17
0178 0030 cpi R16,0
017A 0107 cpc R16,R17
017C 09F4 brne X4
017E 62C0 rjmp L48
0180 X4:
0180 X2:
0180 0130 cpi R16,1
0182 E0E0 ldi R30,0
0184 1E07 cpc R17,R30
0186 09F4 brne X5
0188 4AC0 rjmp L59
018A X5:
018A 0230 cpi R16,2
018C E0E0 ldi R30,0
018E 1E07 cpc R17,R30
0190 F1F0 breq L53
0192 0430 cpi R16,4
0194 E0E0 ldi R30,0
0196 1E07 cpc R17,R30
0198 29F0 breq L50
019A 0830 cpi R16,8
019C E0E0 ldi R30,0
019E 1E07 cpc R17,R30
01A0 51F1 breq L56
01A2 50C0 rjmp L47
01A4 X3:
01A4 .dbline 264
01A4 ; {xuanya_car();}
01A4 L50:
01A4 .dbline 266
01A4 ; if(bianma == 0x0b00)
01A4 ; {remote_car();}
01A4 80910800 lds R24,_delay_time2
01A8 90910900 lds R25,_delay_time2+1
01AC C297 sbiw R24,50
01AE 90930900 sts _delay_time2+1,R25
01B2 80930800 sts _delay_time2,R24
01B6 .dbline 267
01B6 ; if(bianma == 0x00c0)
01B6 8233 cpi R24,50
01B8 E0E0 ldi R30,0
01BA 9E07 cpc R25,R30
01BC 09F0 breq X6
01BE 42C0 rjmp L48
01C0 X6:
01C0 .dbline 268
01C0 ; {music_car();}
01C0 .dbline 268
01C0 84E6 ldi R24,100
01C2 90E0 ldi R25,0
01C4 90930900 sts _delay_time2+1,R25
01C8 80930800 sts _delay_time2,R24
01CC .dbline 268
01CC .dbline 269
01CC ; if(bianma == 0x000d)
01CC 3BC0 rjmp L48
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -