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

📄 diy0206_4.lst

📁 双龙的积木式智能机器人C源程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
    03FD E284      LDI	R24,0x24
    03FE E093      LDI	R25,3
    03FF 90200060  LDS	R2,0x60
    0401 90300061  LDS	R3,0x61
    0403 0E28      ADD	R2,R24
    0404 1E39      ADC	R3,R25
    0405 2DE2      MOV	R30,R2
    0406 2DF3      MOV	R31,R3
    0407 95C8      LPM
    0408 92000073  STS	_temp1,R0
(0284)       	    break;
    040A C00E      RJMP	0x0419
(0285)           case 0x80:  // < D >
(0286)               turn_left();         //左转
    040B DDEA      RCALL	_turn_left
(0287) 			  temp1=sound_left[sound_add];
    040C E38C      LDI	R24,0x3C
    040D E093      LDI	R25,3
    040E 90200060  LDS	R2,0x60
    0410 90300061  LDS	R3,0x61
    0412 0E28      ADD	R2,R24
    0413 1E39      ADC	R3,R25
    0414 2DE2      MOV	R30,R2
    0415 2DF3      MOV	R31,R3
    0416 95C8      LPM
    0417 92000073  STS	_temp1,R0
(0288)       	    break;
(0289)       	}
(0290)       }
(0291)    }
(0292)  if(gzsl == 0x11)
    0419 91800067  LDS	R24,_gzsl
    041B 3181      CPI	R24,0x11
    041C F489      BNE	0x042E
(0293)    {
(0294) 	if(t0_times == delay_time1)  //delay_time1*25ms
    041D 9020007B  LDS	R2,_delay_time1
    041F 9030007C  LDS	R3,_delay_time1+1
    0421 90400066  LDS	R4,_t0_times
    0423 2455      CLR	R5
    0424 1442      CP	R4,R2
    0425 0453      CPC	R5,R3
    0426 F439      BNE	0x042E
(0295) 	  {
(0296) 	   t0_times = 0;
    0427 2422      CLR	R2
    0428 92200066  STS	_t0_times,R2
(0297) 	   gzsl = 0x22;
    042A E282      LDI	R24,0x22
    042B 93800067  STS	_gzsl,R24
(0298) 	   forward();
    042D DDDC      RCALL	_forward
(0299) 	  }
(0300)    } 
(0301)  if(gzsl == 0x22)
    042E 91800067  LDS	R24,_gzsl
    0430 3282      CPI	R24,0x22
    0431 F489      BNE	0x0443
(0302)    {
(0303) 	if(t0_times == delay_time2)  //delay_time2*25ms
    0432 90200079  LDS	R2,_delay_time2
    0434 9030007A  LDS	R3,_delay_time2+1
    0436 90400066  LDS	R4,_t0_times
    0438 2455      CLR	R5
    0439 1442      CP	R4,R2
    043A 0453      CPC	R5,R3
    043B F439      BNE	0x0443
(0304) 	  {
(0305) 	   t0_times = 0;
    043C 2422      CLR	R2
    043D 92200066  STS	_t0_times,R2
(0306) 	   gzsl = 0x11;
    043F E181      LDI	R24,0x11
    0440 93800067  STS	_gzsl,R24
(0307) 	   turn_right();
    0442 DDAE      RCALL	_turn_right
(0308) 	  }
(0309)    } 
(0310)  if(gzsl == 0x44)
    0443 91800067  LDS	R24,_gzsl
    0445 3484      CPI	R24,0x44
    0446 F009      BEQ	0x0448
    0447 C06A      RJMP	0x04B2
(0311)    {
(0312)     sw_touch();
    0448 DDCA      RCALL	_sw_touch
(0313) 	pc = PINC & 0xE0;
    0449 B383      IN	R24,P13
    044A 7E80      ANDI	R24,0xE0
    044B 93800070  STS	_pc,R24
(0314) 	if(pc == 0xE0)
    044D 3E80      CPI	R24,0xE0
    044E F491      BNE	0x0461
(0315) 	  {
(0316) 	   stop();
    044F DDBF      RCALL	_stop
(0317) 	   t0_times = 0;timers = 0x22;
    0450 2422      CLR	R2
    0451 92200066  STS	_t0_times,R2
    0453 E282      LDI	R24,0x22
    0454 9380006D  STS	_timers,R24
(0318) 	   temp1=EEPROMread((int)&sound[sound_add]);
    0456 E081      LDI	R24,1
    0457 E090      LDI	R25,0
    0458 91000060  LDS	R16,0x60
    045A 91100061  LDS	R17,0x61
    045C 0F08      ADD	R16,R24
    045D 1F19      ADC	R17,R25
    045E D4B6      RCALL	_EEPROMread
    045F 93000073  STS	_temp1,R16
(0319) 	  }
(0320) 	if(pc == 0x40 || pc == 0x80 || pc == 0x20 || pc == 0xc0 || pc == 0x60)
    0461 91800070  LDS	R24,_pc
    0463 3480      CPI	R24,0x40
    0464 F041      BEQ	0x046D
    0465 3880      CPI	R24,0x80
    0466 F031      BEQ	0x046D
    0467 3280      CPI	R24,0x20
    0468 F021      BEQ	0x046D
    0469 3C80      CPI	R24,0xC0
    046A F011      BEQ	0x046D
    046B 3680      CPI	R24,0x60
    046C F431      BNE	0x0473
(0321) 	  {
(0322) 	   timers=0x55;
    046D E585      LDI	R24,0x55
    046E 9380006D  STS	_timers,R24
(0323) 	   t0_times = 0;
    0470 2422      CLR	R2
    0471 92200066  STS	_t0_times,R2
(0324) 	  }
(0325) 	if(timers == 0x55)
    0473 9180006D  LDS	R24,_timers
    0475 3585      CPI	R24,0x55
    0476 F589      BNE	0x04A8
(0326) 	  {
(0327)        if(t0_times < 16)     //16*25ms=400ms
    0477 91800066  LDS	R24,_t0_times
    0479 3180      CPI	R24,0x10
    047A F470      BCC	0x0489
(0328)          {
(0329) 	      backward();
    047B DD89      RCALL	_backward
(0330) 	      temp1=sound_back[sound_add];
    047C E08C      LDI	R24,0xC
    047D E093      LDI	R25,3
    047E 90200060  LDS	R2,0x60
    0480 90300061  LDS	R3,0x61
    0482 0E28      ADD	R2,R24
    0483 1E39      ADC	R3,R25
    0484 2DE2      MOV	R30,R2
    0485 2DF3      MOV	R31,R3
    0486 95C8      LPM
    0487 92000073  STS	_temp1,R0
(0331)          }
(0332) 	   if(t0_times > 16 && t0_times < 24) //8*25ms=200ms
    0489 E180      LDI	R24,0x10
    048A 90200066  LDS	R2,_t0_times
    048C 1582      CP	R24,R2
    048D F488      BCC	0x049F
    048E 2D82      MOV	R24,R2
    048F 3188      CPI	R24,0x18
    0490 F470      BCC	0x049F
(0333) 	     {
(0334) 	      turn_left();
    0491 DD64      RCALL	_turn_left
(0335) 	      temp1=sound_back[sound_add]; 
    0492 E08C      LDI	R24,0xC
    0493 E093      LDI	R25,3
    0494 90200060  LDS	R2,0x60
    0496 90300061  LDS	R3,0x61
    0498 0E28      ADD	R2,R24
    0499 1E39      ADC	R3,R25
    049A 2DE2      MOV	R30,R2
    049B 2DF3      MOV	R31,R3
    049C 95C8      LPM
    049D 92000073  STS	_temp1,R0
(0336) 	     }
(0337) 	   if(t0_times == 24)
    049F 91800066  LDS	R24,_t0_times
    04A1 3188      CPI	R24,0x18
    04A2 F429      BNE	0x04A8
(0338) 	     {
(0339) 	      timers = 0;
    04A3 2422      CLR	R2
    04A4 9220006D  STS	_timers,R2
(0340) 		  t0_times = 0;
    04A6 92200066  STS	_t0_times,R2
(0341) 	     }
(0342) 	  }
(0343) 	if(timers != 0x55 && timers != 0x22)
    04A8 9180006D  LDS	R24,_timers
    04AA 3585      CPI	R24,0x55
    04AB F031      BEQ	0x04B2
    04AC 3282      CPI	R24,0x22
    04AD F021      BEQ	0x04B2
(0344) 	  {
(0345) 	   forward();
    04AE DD5B      RCALL	_forward
(0346) 	   temp1 = 0;
    04AF 2422      CLR	R2
    04B0 92200073  STS	_temp1,R2
(0347) 	  }  
(0348)    }
(0349)  if(gzsl == 0x55)
    04B2 91800067  LDS	R24,_gzsl
    04B4 3585      CPI	R24,0x55
    04B5 F009      BEQ	0x04B7
    04B6 C0A3      RJMP	0x055A
(0350)    {
(0351) 	if(t0_times == 4)     //4*25ms=100ms  扫描一次
    04B7 91800066  LDS	R24,_t0_times
    04B9 3084      CPI	R24,4
    04BA F009      BEQ	0x04BC
    04BB C09E      RJMP	0x055A
(0352)       {
(0353) 	   t0_times = 0;
    04BC 2422      CLR	R2
    04BD 92200066  STS	_t0_times,R2
(0354) 	   remote_in = PINB & 0xF0;
    04BF B386      IN	R24,P16
    04C0 7F80      ANDI	R24,0xF0
    04C1 9380006E  STS	_remote_in,R24
(0355) 	   switch (remote_in)
    04C3 2F48      MOV	R20,R24
    04C4 2755      CLR	R21
    04C5 3240      CPI	R20,0x20
    04C6 E0E0      LDI	R30,0
    04C7 075E      CPC	R21,R30
    04C8 F0B9      BEQ	0x04E0
    04C9 E280      LDI	R24,0x20
    04CA E090      LDI	R25,0
    04CB 1784      CP	R24,R20
    04CC 0795      CPC	R25,R21
    04CD F02C      BLT	0x04D3
    04CE 3140      CPI	R20,0x10
    04CF E0E0      LDI	R30,0
    04D0 075E      CPC	R21,R30
    04D1 F111      BEQ	0x04F4
    04D2 C034      RJMP	0x0507
    04D3 3440      CPI	R20,0x40
    04D4 E0E0      LDI	R30,0
    04D5 075E      CPC	R21,R30
    04D6 F099      BEQ	0x04EA
    04D7 3440      CPI	R20,0x40
    04D8 E0E0      LDI	R30,0
    04D9 075E      CPC	R21,R30
    04DA F164      BLT	0x0507
    04DB 3840      CPI	R20,0x80
    04DC E0E0      LDI	R30,0
    04DD 075E      CPC	R21,R30
    04DE F0F9      BEQ	0x04FE
    04DF C027      RJMP	0x0507
(0356)       	 {//检测遥控器是否有键按下
(0357)           case 0x20:  // < A >
(0358) 			  sound_add=0;
    04E0 2422      CLR	R2
    04E1 2433      CLR	R3
    04E2 92300061  STS	0x61,R3
    04E4 92200060  STS	0x60,R2
(0359) 			  sound_1 = 0x11;
    04E6 E181      LDI	R24,0x11
    04E7 93800065  STS	_sound_1,R24
(0360)       	    break;
    04E9 C01D      RJMP	0x0507
(0361)           case 0x40:  // < B >
(0362) 			  sound_add=0;
    04EA 2422      CLR	R2
    04EB 2433      CLR	R3
    04EC 92300061  STS	0x61,R3
    04EE 92200060  STS	0x60,R2
(0363) 			  sound_1 = 0x22;
    04F0 E282      LDI	R24,0x22
    04F1 93800065  STS	_sound_1,R24
(0364)       	    break;
    04F3 C013      RJMP	0x0507
(0365)           case 0x10:  // < C >
(0366) 			  sound_add=0;
    04F4 2422      CLR	R2
    04F5 2433      CLR	R3
    04F6 92300061  STS	0x61,R3
    04F8 92200060  STS	0x60,R2
(0367) 			  sound_1 = 0x33;
    04FA E383      LDI	R24,0x33
    04FB 93800065  STS	_sound_1,R24
(0368)       	    break;
    04FD C009      RJMP	0x0507
(0369)           case 0x80:  // < D >
(0370) 			  sound_add=0;
    04FE 2422      CLR	R2
    04FF 2433      CLR	R3
    0500 92300061  STS	0x61,R3
    0502 92200060  STS	0x60,R2
(0371) 			  sound_1 = 0x44;
    0504 E484      LDI	R24,0x44
    0505 93800065  STS	_sound_1,R24
(0372)       	    break;
(0373)       	 }
(0374)       if(sound_1 == 0x11)
    0507 91800065  LDS	R24,_sound_1
    0509 3181      CPI	R24,0x11
    050A F469      BNE	0x0518
(0375) 	    {
(0376) 		 temp1 = music_11[sound_add];
    050B EB86      LDI	R24,0xB6
    050C E090      LDI	R25,0
    050D 90200060  LDS	R2,0x60
    050F 90300061  LDS	R3,0x61
    0511 0E28      ADD	R2,R24
    0512 1E39      ADC	R3,R25
    0513 2DE2      MOV	R30,R2
    0514 2DF3      MOV	R31,R3
    0515 95C8      LPM
    0516 92000073  STS	_temp1,R0
(0377) 		}
(0378)       if(sound_1 == 0x22)
    0518 91800065  LDS	R24,_sound_1
    051A 3282      CPI	R24,0x22
    051B F469      BNE	0x0529
(0379) 	    {
(0380) 		 temp1 = music_22[sound_add];
    051C E588      LDI	R24,0x58
    051D E091      LDI	R25,1
    051E 90200060  LDS	R2,0x60
    0520 90300061  LDS	R3,0x61
    0522 0E28      ADD	R2,R24
    0523 1E39      ADC	R3,R25
    0524 2DE2      MOV	R30,R2
    0525 2DF3      MOV	R31,R3
    0526 95C8      LPM
    0527 92000073  STS	_temp1,R0
(0381) 		}
(0382)       if(sound_1 == 0x33)
    0529 91800065  LDS	R24,_sound_1
    052B 3383      CPI	R24,0x33
    052C F469      BNE	0x053A
(0383) 	    {
(0384) 		 temp1 = music_33[sound_add];
    052D EB88      LDI	R24,0xB8
    052E E091      LDI	R25,1
    052F 90200060  LDS	R2,0x60
    0531 90300061  LDS	R3,0x61
    0533 0E28      ADD	R2,R24
    0534 1E39      ADC	R3,R25
    0535 2DE2      MOV	R30,R2
    0536 2DF3      MOV	R31,R3
    0537 95C8      LPM
    0538 92000073  STS	_temp1,R0
(0385) 		}
(0386)       if(sound_1 == 0x44)
    053A 91800065  LDS	R24,_sound_1
    053C 3484      CPI	R24,0x44
    053D F469      BNE	0x054B
(0387) 	    {
(0388) 		 temp1 = music_44[sound_add];
    053E E48A      LDI	R24,0x4A
    053F E092      LDI	R25,2
    0540 90200060  LDS	R2,0x60
    0542 90300061  LDS	R3,0x61
    0544 0E28      ADD	R2,R24
    0545 1E39      ADC	R3,R25
    0546 2DE2      MOV	R30,R2
    0547 2DF3      MOV	R31,R3
    0548 95C8      LPM
    0549 92000073  STS	_temp1,R0
(0389) 		}
(0390)       if(sound_1 == 0x88)
    054B 91800065  LDS	R24,_sound_1
    054D 3888      CPI	R24,0x88
    054E F459      BNE	0x055A
(0391) 	    {
(0392) 		 temp1=EEPROMread((int)&sound[sound_add]);
    054F E081      LDI	R24,1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -