📄 diy0206_4.lst
字号:
03F9 E18C LDI R24,0x1C
03FA E093 LDI R25,3
03FB 90200060 LDS R2,0x60
03FD 90300061 LDS R3,0x61
03FF 0E28 ADD R2,R24
0400 1E39 ADC R3,R25
0401 2DE2 MOV R30,R2
0402 2DF3 MOV R31,R3
0403 95C8 LPM
0404 92000073 STS _temp1,R0
(0284) break;
0406 C00E RJMP 0x0415
(0285) case 0x80: // < D >
(0286) turn_left(); //左转
0407 DDEA RCALL _turn_left
(0287) temp1=sound_left[sound_add];
0408 E384 LDI R24,0x34
0409 E093 LDI R25,3
040A 90200060 LDS R2,0x60
040C 90300061 LDS R3,0x61
040E 0E28 ADD R2,R24
040F 1E39 ADC R3,R25
0410 2DE2 MOV R30,R2
0411 2DF3 MOV R31,R3
0412 95C8 LPM
0413 92000073 STS _temp1,R0
(0288) break;
(0289) }
(0290) }
(0291) }
(0292) if(gzsl == 0x11)
0415 91800067 LDS R24,_gzsl
0417 3181 CPI R24,0x11
0418 F489 BNE 0x042A
(0293) {
(0294) if(t0_times == delay_time1) //delay_time1*25ms
0419 9020007B LDS R2,_delay_time1
041B 9030007C LDS R3,_delay_time1+1
041D 90400066 LDS R4,_t0_times
041F 2455 CLR R5
0420 1442 CP R4,R2
0421 0453 CPC R5,R3
0422 F439 BNE 0x042A
(0295) {
(0296) t0_times = 0;
0423 2422 CLR R2
0424 92200066 STS _t0_times,R2
(0297) gzsl = 0x22;
0426 E282 LDI R24,0x22
0427 93800067 STS _gzsl,R24
(0298) forward();
0429 DDDC RCALL _forward
(0299) }
(0300) }
(0301) if(gzsl == 0x22)
042A 91800067 LDS R24,_gzsl
042C 3282 CPI R24,0x22
042D F489 BNE 0x043F
(0302) {
(0303) if(t0_times == delay_time2) //delay_time2*25ms
042E 90200079 LDS R2,_delay_time2
0430 9030007A LDS R3,_delay_time2+1
0432 90400066 LDS R4,_t0_times
0434 2455 CLR R5
0435 1442 CP R4,R2
0436 0453 CPC R5,R3
0437 F439 BNE 0x043F
(0304) {
(0305) t0_times = 0;
0438 2422 CLR R2
0439 92200066 STS _t0_times,R2
(0306) gzsl = 0x11;
043B E181 LDI R24,0x11
043C 93800067 STS _gzsl,R24
(0307) turn_right();
043E DDAE RCALL _turn_right
(0308) }
(0309) }
(0310) if(gzsl == 0x44)
043F 91800067 LDS R24,_gzsl
0441 3484 CPI R24,0x44
0442 F009 BEQ 0x0444
0443 C06A RJMP 0x04AE
(0311) {
(0312) sw_touch();
0444 DDCA RCALL _sw_touch
(0313) pc = PINC & 0xE0;
0445 B383 IN R24,P13
0446 7E80 ANDI R24,0xE0
0447 93800070 STS _pc,R24
(0314) if(pc == 0xE0)
0449 3E80 CPI R24,0xE0
044A F491 BNE 0x045D
(0315) {
(0316) stop();
044B DDBF RCALL _stop
(0317) t0_times = 0;timers = 0x22;
044C 2422 CLR R2
044D 92200066 STS _t0_times,R2
044F E282 LDI R24,0x22
0450 9380006D STS _timers,R24
(0318) temp1=EEPROMread((int)&sound[sound_add]);
0452 E081 LDI R24,1
0453 E090 LDI R25,0
0454 91000060 LDS R16,0x60
0456 91100061 LDS R17,0x61
0458 0F08 ADD R16,R24
0459 1F19 ADC R17,R25
045A D4B6 RCALL _EEPROMread
045B 93000073 STS _temp1,R16
(0319) }
(0320) if(pc == 0x40 || pc == 0x80 || pc == 0x20 || pc == 0xc0 || pc == 0x60)
045D 91800070 LDS R24,_pc
045F 3480 CPI R24,0x40
0460 F041 BEQ 0x0469
0461 3880 CPI R24,0x80
0462 F031 BEQ 0x0469
0463 3280 CPI R24,0x20
0464 F021 BEQ 0x0469
0465 3C80 CPI R24,0xC0
0466 F011 BEQ 0x0469
0467 3680 CPI R24,0x60
0468 F431 BNE 0x046F
(0321) {
(0322) timers=0x55;
0469 E585 LDI R24,0x55
046A 9380006D STS _timers,R24
(0323) t0_times = 0;
046C 2422 CLR R2
046D 92200066 STS _t0_times,R2
(0324) }
(0325) if(timers == 0x55)
046F 9180006D LDS R24,_timers
0471 3585 CPI R24,0x55
0472 F589 BNE 0x04A4
(0326) {
(0327) if(t0_times < 16) //16*25ms=400ms
0473 91800066 LDS R24,_t0_times
0475 3180 CPI R24,0x10
0476 F470 BCC 0x0485
(0328) {
(0329) backward();
0477 DD89 RCALL _backward
(0330) temp1=sound_back[sound_add];
0478 E084 LDI R24,4
0479 E093 LDI R25,3
047A 90200060 LDS R2,0x60
047C 90300061 LDS R3,0x61
047E 0E28 ADD R2,R24
047F 1E39 ADC R3,R25
0480 2DE2 MOV R30,R2
0481 2DF3 MOV R31,R3
0482 95C8 LPM
0483 92000073 STS _temp1,R0
(0331) }
(0332) if(t0_times > 16 && t0_times < 24) //8*25ms=200ms
0485 E180 LDI R24,0x10
0486 90200066 LDS R2,_t0_times
0488 1582 CP R24,R2
0489 F488 BCC 0x049B
048A 2D82 MOV R24,R2
048B 3188 CPI R24,0x18
048C F470 BCC 0x049B
(0333) {
(0334) turn_left();
048D DD64 RCALL _turn_left
(0335) temp1=sound_back[sound_add];
048E E084 LDI R24,4
048F E093 LDI R25,3
0490 90200060 LDS R2,0x60
0492 90300061 LDS R3,0x61
0494 0E28 ADD R2,R24
0495 1E39 ADC R3,R25
0496 2DE2 MOV R30,R2
0497 2DF3 MOV R31,R3
0498 95C8 LPM
0499 92000073 STS _temp1,R0
(0336) }
(0337) if(t0_times == 24)
049B 91800066 LDS R24,_t0_times
049D 3188 CPI R24,0x18
049E F429 BNE 0x04A4
(0338) {
(0339) timers = 0;
049F 2422 CLR R2
04A0 9220006D STS _timers,R2
(0340) t0_times = 0;
04A2 92200066 STS _t0_times,R2
(0341) }
(0342) }
(0343) if(timers != 0x55 && timers != 0x22)
04A4 9180006D LDS R24,_timers
04A6 3585 CPI R24,0x55
04A7 F031 BEQ 0x04AE
04A8 3282 CPI R24,0x22
04A9 F021 BEQ 0x04AE
(0344) {
(0345) forward();
04AA DD5B RCALL _forward
(0346) temp1 = 0;
04AB 2422 CLR R2
04AC 92200073 STS _temp1,R2
(0347) }
(0348) }
(0349) if(gzsl == 0x55)
04AE 91800067 LDS R24,_gzsl
04B0 3585 CPI R24,0x55
04B1 F009 BEQ 0x04B3
04B2 C0A3 RJMP 0x0556
(0350) {
(0351) if(t0_times == 4) //4*25ms=100ms 扫描一次
04B3 91800066 LDS R24,_t0_times
04B5 3084 CPI R24,4
04B6 F009 BEQ 0x04B8
04B7 C09E RJMP 0x0556
(0352) {
(0353) t0_times = 0;
04B8 2422 CLR R2
04B9 92200066 STS _t0_times,R2
(0354) remote_in = PINB & 0xF0;
04BB B386 IN R24,P16
04BC 7F80 ANDI R24,0xF0
04BD 9380006E STS _remote_in,R24
(0355) switch (remote_in)
04BF 2F48 MOV R20,R24
04C0 2755 CLR R21
04C1 3240 CPI R20,0x20
04C2 E0E0 LDI R30,0
04C3 075E CPC R21,R30
04C4 F0B9 BEQ 0x04DC
04C5 E280 LDI R24,0x20
04C6 E090 LDI R25,0
04C7 1784 CP R24,R20
04C8 0795 CPC R25,R21
04C9 F02C BLT 0x04CF
04CA 3140 CPI R20,0x10
04CB E0E0 LDI R30,0
04CC 075E CPC R21,R30
04CD F111 BEQ 0x04F0
04CE C034 RJMP 0x0503
04CF 3440 CPI R20,0x40
04D0 E0E0 LDI R30,0
04D1 075E CPC R21,R30
04D2 F099 BEQ 0x04E6
04D3 3440 CPI R20,0x40
04D4 E0E0 LDI R30,0
04D5 075E CPC R21,R30
04D6 F164 BLT 0x0503
04D7 3840 CPI R20,0x80
04D8 E0E0 LDI R30,0
04D9 075E CPC R21,R30
04DA F0F9 BEQ 0x04FA
04DB C027 RJMP 0x0503
(0356) {//检测遥控器是否有键按下
(0357) case 0x20: // < A >
(0358) sound_add=0;
04DC 2422 CLR R2
04DD 2433 CLR R3
04DE 92300061 STS 0x61,R3
04E0 92200060 STS 0x60,R2
(0359) sound_1 = 0x11;
04E2 E181 LDI R24,0x11
04E3 93800065 STS _sound_1,R24
(0360) break;
04E5 C01D RJMP 0x0503
(0361) case 0x40: // < B >
(0362) sound_add=0;
04E6 2422 CLR R2
04E7 2433 CLR R3
04E8 92300061 STS 0x61,R3
04EA 92200060 STS 0x60,R2
(0363) sound_1 = 0x22;
04EC E282 LDI R24,0x22
04ED 93800065 STS _sound_1,R24
(0364) break;
04EF C013 RJMP 0x0503
(0365) case 0x10: // < C >
(0366) sound_add=0;
04F0 2422 CLR R2
04F1 2433 CLR R3
04F2 92300061 STS 0x61,R3
04F4 92200060 STS 0x60,R2
(0367) sound_1 = 0x33;
04F6 E383 LDI R24,0x33
04F7 93800065 STS _sound_1,R24
(0368) break;
04F9 C009 RJMP 0x0503
(0369) case 0x80: // < D >
(0370) sound_add=0;
04FA 2422 CLR R2
04FB 2433 CLR R3
04FC 92300061 STS 0x61,R3
04FE 92200060 STS 0x60,R2
(0371) sound_1 = 0x44;
0500 E484 LDI R24,0x44
0501 93800065 STS _sound_1,R24
(0372) break;
(0373) }
(0374) if(sound_1 == 0x11)
0503 91800065 LDS R24,_sound_1
0505 3181 CPI R24,0x11
0506 F469 BNE 0x0514
(0375) {
(0376) temp1 = music_11[sound_add];
0507 EA8E LDI R24,0xAE
0508 E090 LDI R25,0
0509 90200060 LDS R2,0x60
050B 90300061 LDS R3,0x61
050D 0E28 ADD R2,R24
050E 1E39 ADC R3,R25
050F 2DE2 MOV R30,R2
0510 2DF3 MOV R31,R3
0511 95C8 LPM
0512 92000073 STS _temp1,R0
(0377) }
(0378) if(sound_1 == 0x22)
0514 91800065 LDS R24,_sound_1
0516 3282 CPI R24,0x22
0517 F469 BNE 0x0525
(0379) {
(0380) temp1 = music_22[sound_add];
0518 E580 LDI R24,0x50
0519 E091 LDI R25,1
051A 90200060 LDS R2,0x60
051C 90300061 LDS R3,0x61
051E 0E28 ADD R2,R24
051F 1E39 ADC R3,R25
0520 2DE2 MOV R30,R2
0521 2DF3 MOV R31,R3
0522 95C8 LPM
0523 92000073 STS _temp1,R0
(0381) }
(0382) if(sound_1 == 0x33)
0525 91800065 LDS R24,_sound_1
0527 3383 CPI R24,0x33
0528 F469 BNE 0x0536
(0383) {
(0384) temp1 = music_33[sound_add];
0529 EB80 LDI R24,0xB0
052A E091 LDI R25,1
052B 90200060 LDS R2,0x60
052D 90300061 LDS R3,0x61
052F 0E28 ADD R2,R24
0530 1E39 ADC R3,R25
0531 2DE2 MOV R30,R2
0532 2DF3 MOV R31,R3
0533 95C8 LPM
0534 92000073 STS _temp1,R0
(0385) }
(0386) if(sound_1 == 0x44)
0536 91800065 LDS R24,_sound_1
0538 3484 CPI R24,0x44
0539 F469 BNE 0x0547
(0387) {
(0388) temp1 = music_44[sound_add];
053A E482 LDI R24,0x42
053B E092 LDI R25,2
053C 90200060 LDS R2,0x60
053E 90300061 LDS R3,0x61
0540 0E28 ADD R2,R24
0541 1E39 ADC R3,R25
0542 2DE2 MOV R30,R2
0543 2DF3 MOV R31,R3
0544 95C8 LPM
0545 92000073 STS _temp1,R0
(0389) }
(0390) if(sound_1 == 0x88)
0547 91800065 LDS R24,_sound_1
0549 3888 CPI R24,0x88
054A F459 BNE 0x0556
(0391) {
(0392) temp1=EEPROMread((int)&sound[sound_add]);
054B E081 LDI R24,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -