📄 sl3010_3.lis
字号:
0400 39DE rcall _backward
0402 .dbline 220
0402 0CE2 ldi R16,300
0404 11E0 ldi R17,1
0406 14DE rcall _delay_ms
0408 .dbline 221
0408 21DE rcall _turn_right
040A .dbline 222
040A 06E9 ldi R16,150
040C 10E0 ldi R17,0
040E 10DE rcall _delay_ms
0410 .dbline 223
0410 L89:
0410 .dbline 224
0410 83B3 in R24,0x13
0412 807E andi R24,224
0414 80930A00 sts _pc,R24
0418 .dbline 225
0418 8034 cpi R24,64
041A 41F4 brne L91
041C .dbline 226
041C .dbline 227
041C 2BDE rcall _backward
041E .dbline 228
041E 0CE2 ldi R16,300
0420 11E0 ldi R17,1
0422 06DE rcall _delay_ms
0424 .dbline 229
0424 13DE rcall _turn_right
0426 .dbline 230
0426 06E9 ldi R16,150
0428 10E0 ldi R17,0
042A 02DE rcall _delay_ms
042C .dbline 231
042C L91:
042C .dbline 232
042C 80910A00 lds R24,_pc
0430 8038 cpi R24,128
0432 41F4 brne L93
0434 .dbline 233
0434 .dbline 234
0434 1FDE rcall _backward
0436 .dbline 235
0436 0CE2 ldi R16,300
0438 11E0 ldi R17,1
043A FADD rcall _delay_ms
043C .dbline 236
043C 07DE rcall _turn_right
043E .dbline 237
043E 06E9 ldi R16,150
0440 10E0 ldi R17,0
0442 F6DD rcall _delay_ms
0444 .dbline 238
0444 L93:
0444 .dbline 239
0444 80910A00 lds R24,_pc
0448 8032 cpi R24,32
044A 41F4 brne L95
044C .dbline 240
044C .dbline 241
044C 13DE rcall _backward
044E .dbline 242
044E 0CE2 ldi R16,300
0450 11E0 ldi R17,1
0452 EEDD rcall _delay_ms
0454 .dbline 243
0454 FBDD rcall _turn_right
0456 .dbline 244
0456 06E9 ldi R16,150
0458 10E0 ldi R17,0
045A EADD rcall _delay_ms
045C .dbline 245
045C L95:
045C .dbline 246
045C 80910A00 lds R24,_pc
0460 803C cpi R24,192
0462 41F4 brne L97
0464 .dbline 247
0464 .dbline 248
0464 07DE rcall _backward
0466 .dbline 249
0466 0CE2 ldi R16,300
0468 11E0 ldi R17,1
046A E2DD rcall _delay_ms
046C .dbline 250
046C EFDD rcall _turn_right
046E .dbline 251
046E 06E9 ldi R16,150
0470 10E0 ldi R17,0
0472 DEDD rcall _delay_ms
0474 .dbline 252
0474 L97:
0474 .dbline 253
0474 80910A00 lds R24,_pc
0478 8036 cpi R24,96
047A 41F4 brne L99
047C .dbline 254
047C .dbline 255
047C FBDD rcall _backward
047E .dbline 256
047E 0CE2 ldi R16,300
0480 11E0 ldi R17,1
0482 D6DD rcall _delay_ms
0484 .dbline 257
0484 E3DD rcall _turn_right
0486 .dbline 258
0486 06E9 ldi R16,150
0488 10E0 ldi R17,0
048A D2DD rcall _delay_ms
048C .dbline 259
048C L99:
048C .dbline 260
048C 80910A00 lds R24,_pc
0490 803E cpi R24,224
0492 61F4 brne L101
0494 .dbline 261
0494 .dbline 263
0494 F9DD rcall _stop
0496 .dbline 264
0496 8CE3 ldi R24,60
0498 8BBB out 0x1b,R24
049A .dbline 265
049A 0CE2 ldi R16,300
049C 11E0 ldi R17,1
049E C8DD rcall _delay_ms
04A0 .dbline 266
04A0 83EC ldi R24,195
04A2 8BBB out 0x1b,R24
04A4 .dbline 267
04A4 0CE2 ldi R16,300
04A6 11E0 ldi R17,1
04A8 C3DD rcall _delay_ms
04AA .dbline 268
04AA 01C0 rjmp L102
04AC L101:
04AC .dbline 270
04AC .dbline 271
04AC E8DD rcall _forward
04AE .dbline 272
04AE L102:
04AE .dbline 273
04AE L87:
04AE .dbline 211
04AE A1CF rjmp L86
04B0 X8:
04B0 .dbline -2
04B0 .dbline 274
04B0 L85:
04B0 .dbline 0 ; func end
04B0 0895 ret
04B2 .dbend
04B2 .dbfunc e remote_car _remote_car fV
.even
04B2 _remote_car::
04B2 00D0 rcall push_gset1
04B4 .dbline -1
04B4 .dbline 277
04B4 .dbline 279
04B4 A5DD rcall _port_init
04B6 .dbline 281
04B6 80E6 ldi R24,96
04B8 80931800 sts _work_status,R24
04BC L104:
04BC .dbline 283
04BC ; remote_rst:
04BC ; PORTA = 0x0F;
04BC 8FE0 ldi R24,15
04BE 8BBB out 0x1b,R24
04C0 .dbline 284
04C0 ; mic_startup();//等待声控启动函数
04C0 4FDE rcall _mic_startup
04C2 40C0 rjmp L106
04C4 L105:
04C4 .dbline 287
04C4 ;
04C4 ; while(1)
04C4 ; {
04C4 .dbline 289
04C4 ;
04C4 ; sw_touch();//检测轻触开关
04C4 E5DD rcall _sw_touch
04C6 .dbline 291
04C6 ;
04C6 ; remote_in = PINB & 0x0F;
04C6 86B3 in R24,0x16
04C8 8F70 andi R24,15
04CA 80931600 sts _remote_in,R24
04CE .dbline 292
04CE ; switch (remote_in)
04CE 482F mov R20,R24
04D0 5527 clr R21
04D2 4030 cpi R20,0
04D4 4507 cpc R20,R21
04D6 89F0 breq L111
04D8 X9:
04D8 4130 cpi R20,1
04DA E0E0 ldi R30,0
04DC 5E07 cpc R21,R30
04DE 19F1 breq L115
04E0 4230 cpi R20,2
04E2 E0E0 ldi R30,0
04E4 5E07 cpc R21,R30
04E6 99F0 breq L113
04E8 4430 cpi R20,4
04EA E0E0 ldi R30,0
04EC 5E07 cpc R21,R30
04EE 51F0 breq L112
04F0 4830 cpi R20,8
04F2 E0E0 ldi R30,0
04F4 5E07 cpc R21,R30
04F6 81F0 breq L114
04F8 1AC0 rjmp L108
04FA X10:
04FA .dbline 293
04FA ; {//检测遥控器是否有键按下
04FA L111:
04FA .dbline 295
04FA ; case 0x00:
04FA ; forward(); //前行
04FA C1DD rcall _forward
04FC .dbline 296
04FC ; rst_time=0;
04FC 2224 clr R2
04FE 20920500 sts _rst_time,R2
0502 .dbline 297
0502 ; break;
0502 15C0 rjmp L109
0504 L112:
0504 .dbline 299
0504 ; case 0x04: // < A >
0504 ; turn_right(); //右转
0504 A3DD rcall _turn_right
0506 .dbline 300
0506 ; rst_time=0;
0506 2224 clr R2
0508 20920500 sts _rst_time,R2
050C .dbline 301
050C ; break;
050C 10C0 rjmp L109
050E L113:
050E .dbline 303
050E ; case 0x02: // < B >
050E ; backward(); //后退
050E B2DD rcall _backward
0510 .dbline 304
0510 ; rst_time=0;
0510 2224 clr R2
0512 20920500 sts _rst_time,R2
0516 .dbline 305
0516 ; break;
0516 0BC0 rjmp L109
0518 L114:
0518 .dbline 307
0518 ; case 0x08: // < C >
0518 ; stop(); //停止运动
0518 B7DD rcall _stop
051A .dbline 308
051A ; rst_time++;
051A 80910500 lds R24,_rst_time
051E 8F5F subi R24,255 ; addi 1
0520 80930500 sts _rst_time,R24
0524 .dbline 309
0524 ; break;
0524 04C0 rjmp L109
0526 L115:
0526 .dbline 311
0526 ; case 0x01: // < D >
0526 ; turn_left(); //左转
0526 97DD rcall _turn_left
0528 .dbline 312
0528 ; rst_time=0;
0528 2224 clr R2
052A 20920500 sts _rst_time,R2
052E .dbline 313
052E ; break;
052E L108:
052E L109:
052E .dbline 315
052E ; }
052E ; delay_ms(200);
052E 08EC ldi R16,200
0530 10E0 ldi R17,0
0532 7EDD rcall _delay_ms
0534 .dbline 316
0534 ; if(rst_time == 50)
0534 80910500 lds R24,_rst_time
0538 8233 cpi R24,50
053A 21F4 brne L116
053C .dbline 317
053C ; {//当按住< C > 键的持续时间超过10S,遥控机器人复位,等待声控重起运行
053C .dbline 318
053C ; rst_time=0;
053C 2224 clr R2
053E 20920500 sts _rst_time,R2
0542 .dbline 319
0542 ; goto remote_rst;
0542 BCCF rjmp L104
0544 L116:
0544 .dbline 321
0544 L106:
0544 .dbline 286
0544 BFCF rjmp L105
0546 X11:
0546 .dbline -2
0546 .dbline 322
0546 ; }
0546 ; }
0546 ; }
0546 L103:
0546 00D0 rcall pop_gset1
0548 .dbline 0 ; func end
0548 0895 ret
054A .dbend
054A .dbfunc e auto_car _auto_car fV
.even
054A _auto_car::
054A .dbline -1
054A .dbline 327
054A ;
054A ; //自走车 机器人走四方形路线,遥控器调节行走路线
054A ;
054A ; void auto_car()
054A ; {
054A .dbline 328
054A ; port_init();//PA,PB,PC,PD 初始化
054A 5ADD rcall _port_init
054C .dbline 330
054C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -