⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diy0206_4.lst

📁 双龙的积木式智能机器人C源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    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 + -