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

📄 sl3010_3.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 4 页
字号:
    037C 5F8F      SUBI	R24,0xFF
    037D 9380006A  STS	_cny_times,R24
(0393) 		  delay_ms(10);
    037F E00A      LDI	R16,0xA
    0380 E010      LDI	R17,0
    0381 DD0F      RCALL	_delay_ms
(0394) 		  if(cny_times == 0x64)
    0382 9180006A  LDS	R24,_cny_times
    0384 3684      CPI	R24,0x64
    0385 F411      BNE	0x0388
(0395) 			{
(0396) 			 stop();   //停止运动//熄灭指示灯   
    0386 DD36      RCALL	_stop
(0397)              goto cny_car_start;
    0387 CFC2      RJMP	0x034A
    0388 CFC3      RJMP	0x034C
(0398) 			}
(0399) 		 }
(0400) 	  }
(0401) }
    0389 9508      RET
(0402) 
(0403) void main()
(0404) {
(0405)   port_init();         //PA,PB,PC,PD 初始化
_main:
    038A DCEE      RCALL	_port_init
(0406)   
(0407)   work_status = 0x67;  //置对应的工作状态标志
    038B E687      LDI	R24,0x67
    038C 9380007C  STS	_work_status,R24
(0408)   
(0409)   gzsl=0x88;timers=0;
    038E E888      LDI	R24,0x88
    038F 93800065  STS	_gzsl,R24
    0391 2422      CLR	R2
    0392 9220006C  STS	_timers,R2
(0410)   PORTA = 0x7e;
    0394 E78E      LDI	R24,0x7E
    0395 BB8B      OUT	0x1B,R24
(0411)   CLI(); //disable all interrupts
    0396 94F8      BCLR	7
(0412)   timer0_init();
    0397 DE08      RCALL	_timer0_init
(0413) 
(0414)   MCUCR = 0x00;
    0398 2422      CLR	R2
    0399 BE25      OUT	0x35,R2
(0415)   GIMSK = 0x00;
    039A BE2B      OUT	0x3B,R2
(0416)   TIMSK|=(1<<TOIE0);
    039B B789      IN	R24,0x39
    039C 6082      ORI	R24,2
    039D BF89      OUT	0x39,R24
(0417)   SEI(); //re-enable interrupts
    039E 9478      BSET	7
    039F C0AA      RJMP	0x044A
(0418)   
(0419)   while(1)
(0420)    {
(0421)    	 gzsl=0x88;
    03A0 E888      LDI	R24,0x88
    03A1 93800065  STS	_gzsl,R24
(0422) 	 pa = led_data[timers];
    03A3 E388      LDI	R24,0x38
    03A4 E090      LDI	R25,0
    03A5 9020006C  LDS	R2,_timers
    03A7 2433      CLR	R3
    03A8 0E28      ADD	R2,R24
    03A9 1E39      ADC	R3,R25
    03AA 2DE2      MOV	R30,R2
    03AB 2DF3      MOV	R31,R3
    03AC 95C8      LPM
    03AD 92000070  STS	_pa,R0
(0423) 	 if(pa==0x0a){timers=0;}
    03AF 2D80      MOV	R24,R0
    03B0 308A      CPI	R24,0xA
    03B1 F419      BNE	0x03B5
    03B2 2422      CLR	R2
    03B3 9220006C  STS	_timers,R2
(0424) 	 PORTA = pa;
    03B5 90200070  LDS	R2,_pa
    03B7 BA2B      OUT	0x1B,R2
(0425) 
(0426) /******************************************************/         
(0427) 	pd_select = PIND & 0x01;
    03B8 B380      IN	R24,0x10
    03B9 7081      ANDI	R24,1
    03BA 93800067  STS	_pd_select,R24
(0428)     if(pd_select == 0x00)//pd0=0,其它为高电平
    03BC 2388      TST	R24
    03BD F469      BNE	0x03CB
(0429)       {
    03BE C00B      RJMP	0x03CA
(0430)        while(1)
(0431) 	     {
(0432) 	      delay_ms(500);//消除抖动
    03BF EF04      LDI	R16,0xF4
    03C0 E011      LDI	R17,1
    03C1 DCCF      RCALL	_delay_ms
(0433) 		  pd_select = PIND & 0x0f;
    03C2 B380      IN	R24,0x10
    03C3 708F      ANDI	R24,0xF
    03C4 93800067  STS	_pd_select,R24
(0434) 		  if(pd_select == 0x0e)//pd0=0,其它为高电平
    03C6 308E      CPI	R24,0xE
    03C7 F419      BNE	0x03CB
(0435) 		    {
(0436) 			 stop_timer0();
    03C8 DE22      RCALL	_stop_timer0
(0437) 			 remote_car();//运行遥控车程序
    03C9 DF08      RCALL	_remote_car
    03CA CFF4      RJMP	0x03BF
(0438) 			}
(0439) 		  else
(0440) 		    break;
(0441) 	     }
(0442)       }
(0443) 	pd_select = PIND & 0x02;
    03CB B380      IN	R24,0x10
    03CC 7082      ANDI	R24,2
    03CD 93800067  STS	_pd_select,R24
(0444)     if(pd_select == 0x00)//pd1=0,其它为高电平
    03CF 2388      TST	R24
    03D0 F469      BNE	0x03DE
(0445)       {
    03D1 C00B      RJMP	0x03DD
(0446)        while(1)
(0447) 	     {
(0448) 	      delay_ms(500);//消除抖动
    03D2 EF04      LDI	R16,0xF4
    03D3 E011      LDI	R17,1
    03D4 DCBC      RCALL	_delay_ms
(0449) 		  pd_select = PIND & 0x0f;
    03D5 B380      IN	R24,0x10
    03D6 708F      ANDI	R24,0xF
    03D7 93800067  STS	_pd_select,R24
(0450) 		  if(pd_select == 0x0d)//pd1=0,其它为高电平
    03D9 308D      CPI	R24,0xD
    03DA F419      BNE	0x03DE
(0451) 		    {
(0452) 			 stop_timer0();
    03DB DE0F      RCALL	_stop_timer0
(0453) 			 cny_car();//寻迹机器人,探测白底黑线,沿黑线行进
    03DC DF6A      RCALL	_cny_car
    03DD CFF4      RJMP	0x03D2
(0454) 			}
(0455) 		  else
(0456) 		    break;
(0457) 	     }
(0458)       }
(0459)     pd_select = PIND & 0x04;
    03DE B380      IN	R24,0x10
    03DF 7084      ANDI	R24,4
    03E0 93800067  STS	_pd_select,R24
(0460) 	if(pd_select == 0x00)//pd2=0,其它为高电平
    03E2 2388      TST	R24
    03E3 F469      BNE	0x03F1
(0461)       {
    03E4 C00B      RJMP	0x03F0
(0462)        while(1)
(0463) 	     {
(0464) 	      delay_ms(500);//消除抖动
    03E5 EF04      LDI	R16,0xF4
    03E6 E011      LDI	R17,1
    03E7 DCA9      RCALL	_delay_ms
(0465) 		  pd_select = PIND & 0x0f;
    03E8 B380      IN	R24,0x10
    03E9 708F      ANDI	R24,0xF
    03EA 93800067  STS	_pd_select,R24
(0466) 		  if(pd_select == 0x0b)//pd2=0,其它为高电平
    03EC 308B      CPI	R24,0xB
    03ED F419      BNE	0x03F1
(0467) 		    {
(0468) 			 stop_timer0();
    03EE DDFC      RCALL	_stop_timer0
(0469) 			 xuanya_car();//机器人避障碍、避悬崖行进
    03EF DE7B      RCALL	_xuanya_car
    03F0 CFF4      RJMP	0x03E5
(0470) 			}
(0471) 		  else
(0472) 		    break;
(0473) 	     }
(0474)       }
(0475)     pd_select = PIND & 0x08;
    03F1 B380      IN	R24,0x10
    03F2 7088      ANDI	R24,0x8
    03F3 93800067  STS	_pd_select,R24
(0476) 	if(pd_select == 0x00)//pd3=0,其它为高电平
    03F5 2388      TST	R24
    03F6 F469      BNE	0x0404
(0477)       {
    03F7 C00B      RJMP	0x0403
(0478)        while(1)
(0479) 	     {
(0480) 	      delay_ms(500);//消除抖动
    03F8 EF04      LDI	R16,0xF4
    03F9 E011      LDI	R17,1
    03FA DC96      RCALL	_delay_ms
(0481) 		  pd_select = PIND & 0x0f;
    03FB B380      IN	R24,0x10
    03FC 708F      ANDI	R24,0xF
    03FD 93800067  STS	_pd_select,R24
(0482) 		  if(pd_select == 0x07)//pd3=0,其它为高电平
    03FF 3087      CPI	R24,7
    0400 F419      BNE	0x0404
(0483) 		    {
(0484) 			 stop_timer0();
    0401 DDE9      RCALL	_stop_timer0
(0485) 			 auto_car();  //机器人按程序设定路线行走
    0402 DF1B      RCALL	_auto_car
    0403 CFF4      RJMP	0x03F8
(0486) 			}
(0487) 		  else
(0488) 		    break;
(0489) 	     }
(0490)       }
(0491) /********************************************************/
(0492)     remote_select = PINB & 0x0f;//检测遥控器是否有键按下
    0404 B386      IN	R24,0x16
    0405 708F      ANDI	R24,0xF
    0406 93800066  STS	_remote_select,R24
(0493)     if(remote_select == 0x04)// A
    0408 3084      CPI	R24,4
    0409 F469      BNE	0x0417
(0494)       {
    040A C00B      RJMP	0x0416
(0495)        while(1)
(0496) 	     {
(0497) 	      delay_ms(500);//消除抖动
    040B EF04      LDI	R16,0xF4
    040C E011      LDI	R17,1
    040D DC83      RCALL	_delay_ms
(0498) 		  remote_select = PINB & 0x0f;
    040E B386      IN	R24,0x16
    040F 708F      ANDI	R24,0xF
    0410 93800066  STS	_remote_select,R24
(0499) 		  if(remote_select == 0x04)// A
    0412 3084      CPI	R24,4
    0413 F419      BNE	0x0417
(0500) 		    {
(0501) 			 stop_timer0();
    0414 DDD6      RCALL	_stop_timer0
(0502) 			 remote_car();//运行遥控车程序
    0415 DEBC      RCALL	_remote_car
    0416 CFF4      RJMP	0x040B
(0503) 			}
(0504) 		  else
(0505) 		    break;
(0506) 	     }
(0507)       }
(0508)     if(remote_select == 0x02)// B
    0417 91800066  LDS	R24,_remote_select
    0419 3082      CPI	R24,2
    041A F469      BNE	0x0428
(0509)       {
    041B C00B      RJMP	0x0427
(0510)        while(1)
(0511) 	     {
(0512) 	      delay_ms(500);//消除抖动
    041C EF04      LDI	R16,0xF4
    041D E011      LDI	R17,1
    041E DC72      RCALL	_delay_ms
(0513) 		  remote_select = PINB & 0x0f;
    041F B386      IN	R24,0x16
    0420 708F      ANDI	R24,0xF
    0421 93800066  STS	_remote_select,R24
(0514) 		  if(remote_select == 0x02)// B
    0423 3082      CPI	R24,2
    0424 F419      BNE	0x0428
(0515) 		    {
(0516) 			 stop_timer0();
    0425 DDC5      RCALL	_stop_timer0
(0517) 			 cny_car();//寻迹机器人,探测白底黑线,沿黑线行进
    0426 DF20      RCALL	_cny_car
    0427 CFF4      RJMP	0x041C
(0518) 			}
(0519) 		  else
(0520) 		    break;
(0521) 	     }
(0522)       }
(0523)     if(remote_select == 0x08)// C
    0428 91800066  LDS	R24,_remote_select
    042A 3088      CPI	R24,0x8
    042B F469      BNE	0x0439
(0524)       {
    042C C00B      RJMP	0x0438
(0525)        while(1)
(0526) 	     {
(0527) 	      delay_ms(500);//消除抖动
    042D EF04      LDI	R16,0xF4
    042E E011      LDI	R17,1
    042F DC61      RCALL	_delay_ms
(0528) 		  remote_select = PINB & 0x0f;
    0430 B386      IN	R24,0x16
    0431 708F      ANDI	R24,0xF
    0432 93800066  STS	_remote_select,R24
(0529) 		  if(remote_select == 0x08)// C
    0434 3088      CPI	R24,0x8
    0435 F419      BNE	0x0439
(0530) 		    {
(0531) 			 stop_timer0();
    0436 DDB4      RCALL	_stop_timer0
(0532) 			 xuanya_car();//机器人避障碍、避悬崖行进
    0437 DE33      RCALL	_xuanya_car
    0438 CFF4      RJMP	0x042D
(0533) 			}
(0534) 		  else
(0535) 		    break;
(0536) 	     }
(0537)       }
(0538)     if(remote_select == 0x01)// D
    0439 91800066  LDS	R24,_remote_select
    043B 3081      CPI	R24,1
    043C F469      BNE	0x044A
(0539)       {
    043D C00B      RJMP	0x0449
(0540)        while(1)
(0541) 	     {
(0542) 	      delay_ms(500);//消除抖动
    043E EF04      LDI	R16,0xF4
    043F E011      LDI	R17,1
    0440 DC50      RCALL	_delay_ms
(0543) 		  remote_select = PINB & 0x0f;
    0441 B386      IN	R24,0x16
    0442 708F      ANDI	R24,0xF
    0443 93800066  STS	_remote_select,R24
(0544) 		  if(remote_select == 0x01)// D
    0445 3081      CPI	R24,1
    0446 F419      BNE	0x044A
(0545) 		    {
(0546) 			 stop_timer0();
    0447 DDA3      RCALL	_stop_timer0
(0547) 			 auto_car();//机器人按程序设定路线行走
    0448 DED5      RCALL	_auto_car
    0449 CFF4      RJMP	0x043E
    044A CF55      RJMP	0x03A0
(0548) 			}
(0549) 		  else
(0550) 		    break;
(0551) 	     }
(0552)       }
(0553)    }  
(0554) }
FILE: <library>
    044B 9508      RET
push_gset1:
    044C 935A      ST	R21,-Y
    044D 934A      ST	R20,-Y
    044E 9508      RET
pop_gset1:
    044F E0E1      LDI	R30,1
pop:
    0450 9149      LD	R20,Y+
    0451 9159      LD	R21,Y+
    0452 FDE0      SBRC	R30,0
    0453 9508      RET
    0454 9169      LD	R22,Y+
    0455 9179      LD	R23,Y+
    0456 FDE1      SBRC	R30,1
    0457 9508      RET
    0458 90A9      LD	R10,Y+
    0459 90B9      LD	R11,Y+
    045A FDE2      SBRC	R30,2
    045B 9508      RET
    045C 90C9      LD	R12,Y+
    045D 90D9      LD	R13,Y+
    045E FDE3      SBRC	R30,3
    045F 9508      RET
    0460 90E9      LD	R14,Y+
    0461 90F9      LD	R15,Y+
    0462 9508      RET
lpm16:
    0463 93EA      ST	R30,-Y
    0464 93FA      ST	R31,-Y
    0465 920A      ST	R0,-Y
    0466 2FE0      MOV	R30,R16
    0467 2FF1      MOV	R31,R17
    0468 95C8      LPM
    0469 2D00      MOV	R16,R0
    046A 9631      ADIW	R30,1
    046B 95C8      LPM
    046C 2D10      MOV	R17,R0
    046D 9009      LD	R0,Y+
    046E 91F9      LD	R31,Y+
    046F 91E9      LD	R30,Y+
    0470 9508      RET
push_lset:
    0471 93FA      ST	R31,-Y
    0472 93EA      ST	R30,-Y
    0473 93BA      ST	R27,-Y
    0474 93AA      ST	R26,-Y
    0475 939A      ST	R25,-Y
    0476 938A      ST	R24,-Y
    0477 933A      ST	R19,-Y
    0478 932A      ST	R18,-Y
    0479 931A      ST	R17,-Y
    047A 930A      ST	R16,-Y
    047B 929A      ST	R9,-Y
    047C 928A      ST	R8,-Y
    047D 927A      ST	R7,-Y
    047E 926A      ST	R6,-Y
    047F 925A      ST	R5,-Y
    0480 924A      ST	R4,-Y
    0481 923A      ST	R3,-Y
    0482 922A      ST	R2,-Y
    0483 921A      ST	R1,-Y
    0484 920A      ST	R0,-Y
    0485 B60F      IN	R0,0x3F
    0486 920A      ST	R0,-Y
    0487 9508      RET
pop_lset:
    0488 9009      LD	R0,Y+
    0489 BE0F      OUT	0x3F,R0
    048A 9009      LD	R0,Y+
    048B 9019      LD	R1,Y+
    048C 9029      LD	R2,Y+
    048D 9039      LD	R3,Y+
    048E 9049      LD	R4,Y+
    048F 9059      LD	R5,Y+
    0490 9069      LD	R6,Y+
    0491 9079      LD	R7,Y+
    0492 9089      LD	R8,Y+
    0493 9099      LD	R9,Y+
    0494 9109      LD	R16,Y+
    0495 9119      LD	R17,Y+
    0496 9129      LD	R18,Y+
    0497 9139      LD	R19,Y+
    0498 9189      LD	R24,Y+
    0499 9199      LD	R25,Y+
    049A 91A9      LD	R26,Y+
    049B 91B9      LD	R27,Y+
    049C 91E9      LD	R30,Y+
    049D 91F9      LD	R31,Y+
    049E 9508      RET
mpy16s:
    049F 920A      ST	R0,-Y
    04A0 921A      ST	R1,-Y
    04A1 2400      CLR	R0
    04A2 2411      CLR	R1
    04A3 3000      CPI	R16,0
    04A4 0701      CPC	R16,R17
    04A5 F041      BEQ	0x04AE
    04A6 9516      LSR	R17
    04A7 9507      ROR	R16
    04A8 F410      BCC	0x04AB
    04A9 0E02      ADD	R0,R18
    04AA 1E13      ADC	R1,R19
    04AB 0F22      LSL	R18
    04AC 1F33      ROL	R19
    04AD CFF5      RJMP	0x04A3
    04AE 2D00      MOV	R16,R0
    04AF 2D11      MOV	R17,R1
    04B0 9019      LD	R1,Y+
    04B1 9009      LD	R0,Y+
    04B2 9508      RET
_EEPROMread:
    04B3 99E1      SBIC	0x1C,1
    04B4 CFFE      RJMP	_EEPROMread
    04B5 BB0E      OUT	0x1E,R16
    04B6 BB1F      OUT	0x1F,R17
    04B7 9AE0      SBI	0x1C,0
    04B8 B30D      IN	R16,0x1D
    04B9 9508      RET

⌨️ 快捷键说明

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