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

📄 jidong.lst

📁 基于m16的寻迹寻光小车程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
     44C 9230 0084 STS	count_2+1,R3
     44E 9220 0083 STS	count_2,R2
     450 9250 0086 STS	count_2+3,R5
     452 9240 0085 STS	count_2+2,R4
     454 EF8A      LDI	R24,0xFA
     455 E090      LDI	R25,0
     456 E0A0      LDI	R26,0
     457 E0B0      LDI	R27,0
     458 1628      CP	R2,R24
     459 0639      CPC	R3,R25
     45A 064A      CPC	R4,R26
     45B 065B      CPC	R5,R27
     45C F1DC      BLT	0x0498
(0317)                 {
(0318)                     turn_l();
     45D DC1D      RCALL	_turn_l
(0319)                     if( ++count_2 >= 350 )
     45E E081      LDI	R24,1
     45F E090      LDI	R25,0
     460 E0A0      LDI	R26,0
     461 E0B0      LDI	R27,0
     462 9040 0085 LDS	R4,count_2+2
     464 9050 0086 LDS	R5,count_2+3
     466 9020 0083 LDS	R2,count_2
     468 9030 0084 LDS	R3,count_2+1
     46A 0E28      ADD	R2,R24
     46B 1E39      ADC	R3,R25
     46C 1E4A      ADC	R4,R26
     46D 1E5B      ADC	R5,R27
     46E 8628      STD	Y+8,R2
     46F 8639      STD	Y+9,R3
     470 864A      STD	Y+10,R4
     471 865B      STD	Y+11,R5
     472 8428      LDD	R2,Y+8
     473 8439      LDD	R3,Y+9
     474 844A      LDD	R4,Y+10
     475 845B      LDD	R5,Y+11
     476 9230 0084 STS	count_2+1,R3
     478 9220 0083 STS	count_2,R2
     47A 9250 0086 STS	count_2+3,R5
     47C 9240 0085 STS	count_2+2,R4
     47E E58E      LDI	R24,0x5E
     47F E091      LDI	R25,1
     480 E0A0      LDI	R26,0
     481 E0B0      LDI	R27,0
     482 1628      CP	R2,R24
     483 0639      CPC	R3,R25
     484 064A      CPC	R4,R26
     485 065B      CPC	R5,R27
     486 F08C      BLT	0x0498
(0320)                     {
(0321)                         model = 0;
     487 2422      CLR	R2
     488 9220 007D STS	model,R2
(0322)                         count_2 = 0;
     48A E080      LDI	R24,0
     48B E090      LDI	R25,0
     48C E0A0      LDI	R26,0
     48D E0B0      LDI	R27,0
     48E 9390 0084 STS	count_2+1,R25
     490 9380 0083 STS	count_2,R24
     492 93B0 0086 STS	count_2+3,R27
     494 93A0 0085 STS	count_2+2,R26
(0323)                         flag_zhangai = 0;
     496 9220 008B STS	flag_zhangai,R2
(0324)                     }
(0325)                 }
(0326)             }	
(0327)         }
(0328)     }
(0329) 
(0330)     if( model == 3 )                 //右边有障碍
     498 9180 007D LDS	R24,model
     49A 3083      CPI	R24,3
     49B F009      BEQ	0x049D
     49C C09B      RJMP	0x0538
(0331)     {
(0332) 		model_a = model;
     49D 2E28      MOV	R2,R24
     49E 9220 007E STS	model_a,R2
(0333) 	    flag_zhangai = 1;
     4A0 E081      LDI	R24,1
     4A1 9380 008B STS	flag_zhangai,R24
(0334) 	    turn_l();
     4A3 DBD7      RCALL	_turn_l
(0335) 	    if( int_scan() == 0 )
     4A4 DE6A      RCALL	_int_scan
     4A5 2EA0      MOV	R10,R16
     4A6 2300      TST	R16
     4A7 F009      BEQ	0x04A9
     4A8 C08F      RJMP	0x0538
(0336) 	    {
(0337)             if( ++count_3 >= 100 )
     4A9 E081      LDI	R24,1
     4AA E090      LDI	R25,0
     4AB E0A0      LDI	R26,0
     4AC E0B0      LDI	R27,0
     4AD 9040 0089 LDS	R4,count_3+2
     4AF 9050 008A LDS	R5,count_3+3
     4B1 9020 0087 LDS	R2,count_3
     4B3 9030 0088 LDS	R3,count_3+1
     4B5 0E28      ADD	R2,R24
     4B6 1E39      ADC	R3,R25
     4B7 1E4A      ADC	R4,R26
     4B8 1E5B      ADC	R5,R27
     4B9 8228      STD	Y+0,R2
     4BA 8239      STD	Y+1,R3
     4BB 824A      STD	Y+2,R4
     4BC 825B      STD	Y+3,R5
     4BD 8028      LDD	R2,Y+0
     4BE 8039      LDD	R3,Y+1
     4BF 804A      LDD	R4,Y+2
     4C0 805B      LDD	R5,Y+3
     4C1 9230 0088 STS	count_3+1,R3
     4C3 9220 0087 STS	count_3,R2
     4C5 9250 008A STS	count_3+3,R5
     4C7 9240 0089 STS	count_3+2,R4
     4C9 E684      LDI	R24,0x64
     4CA E090      LDI	R25,0
     4CB E0A0      LDI	R26,0
     4CC E0B0      LDI	R27,0
     4CD 1628      CP	R2,R24
     4CE 0639      CPC	R3,R25
     4CF 064A      CPC	R4,R26
     4D0 065B      CPC	R5,R27
     4D1 F40C      BGE	0x04D3
     4D2 C065      RJMP	0x0538
(0338)             {
(0339)                 go_ahead();
     4D3 DB99      RCALL	_go_ahead
(0340)                 if( ++count_3 >= 250 )
     4D4 E081      LDI	R24,1
     4D5 E090      LDI	R25,0
     4D6 E0A0      LDI	R26,0
     4D7 E0B0      LDI	R27,0
     4D8 9040 0089 LDS	R4,count_3+2
     4DA 9050 008A LDS	R5,count_3+3
     4DC 9020 0087 LDS	R2,count_3
     4DE 9030 0088 LDS	R3,count_3+1
     4E0 0E28      ADD	R2,R24
     4E1 1E39      ADC	R3,R25
     4E2 1E4A      ADC	R4,R26
     4E3 1E5B      ADC	R5,R27
     4E4 822C      STD	Y+4,R2
     4E5 823D      STD	Y+5,R3
     4E6 824E      STD	Y+6,R4
     4E7 825F      STD	Y+7,R5
     4E8 802C      LDD	R2,Y+4
     4E9 803D      LDD	R3,Y+5
     4EA 804E      LDD	R4,Y+6
     4EB 805F      LDD	R5,Y+7
     4EC 9230 0088 STS	count_3+1,R3
     4EE 9220 0087 STS	count_3,R2
     4F0 9250 008A STS	count_3+3,R5
     4F2 9240 0089 STS	count_3+2,R4
     4F4 EF8A      LDI	R24,0xFA
     4F5 E090      LDI	R25,0
     4F6 E0A0      LDI	R26,0
     4F7 E0B0      LDI	R27,0
     4F8 1628      CP	R2,R24
     4F9 0639      CPC	R3,R25
     4FA 064A      CPC	R4,R26
     4FB 065B      CPC	R5,R27
     4FC F1DC      BLT	0x0538
(0341)                 {
(0342)                     turn_r();
     4FD DB84      RCALL	_turn_r
(0343)                     if( ++count_3 >= 350 )
     4FE E081      LDI	R24,1
     4FF E090      LDI	R25,0
     500 E0A0      LDI	R26,0
     501 E0B0      LDI	R27,0
     502 9040 0089 LDS	R4,count_3+2
     504 9050 008A LDS	R5,count_3+3
     506 9020 0087 LDS	R2,count_3
     508 9030 0088 LDS	R3,count_3+1
     50A 0E28      ADD	R2,R24
     50B 1E39      ADC	R3,R25
     50C 1E4A      ADC	R4,R26
     50D 1E5B      ADC	R5,R27
     50E 8628      STD	Y+8,R2
     50F 8639      STD	Y+9,R3
     510 864A      STD	Y+10,R4
     511 865B      STD	Y+11,R5
     512 8428      LDD	R2,Y+8
     513 8439      LDD	R3,Y+9
     514 844A      LDD	R4,Y+10
     515 845B      LDD	R5,Y+11
     516 9230 0088 STS	count_3+1,R3
     518 9220 0087 STS	count_3,R2
     51A 9250 008A STS	count_3+3,R5
     51C 9240 0089 STS	count_3+2,R4
     51E E58E      LDI	R24,0x5E
     51F E091      LDI	R25,1
     520 E0A0      LDI	R26,0
     521 E0B0      LDI	R27,0
     522 1628      CP	R2,R24
     523 0639      CPC	R3,R25
     524 064A      CPC	R4,R26
     525 065B      CPC	R5,R27
     526 F08C      BLT	0x0538
(0344)                     {
(0345)                         model = 0;
     527 2422      CLR	R2
     528 9220 007D STS	model,R2
(0346)                         count_3 = 0;
     52A E080      LDI	R24,0
     52B E090      LDI	R25,0
     52C E0A0      LDI	R26,0
     52D E0B0      LDI	R27,0
     52E 9390 0088 STS	count_3+1,R25
     530 9380 0087 STS	count_3,R24
     532 93B0 008A STS	count_3+3,R27
     534 93A0 0089 STS	count_3+2,R26
(0347)                         flag_zhangai = 0;
     536 9220 008B STS	flag_zhangai,R2
(0348)                     }
(0349)                 }
(0350)             }	
(0351)         }
(0352)     }
     538 962C      ADIW	R28,0xC
     539 90B9      LD	R11,Y+
     53A 90A9      LD	R10,Y+
     53B 9009      LD	R0,Y+
     53C BE0F      OUT	0x3F,R0
     53D 91F9      LD	R31,Y+
     53E 91E9      LD	R30,Y+
     53F 91B9      LD	R27,Y+
     540 91A9      LD	R26,Y+
     541 9199      LD	R25,Y+
     542 9189      LD	R24,Y+
     543 9139      LD	R19,Y+
     544 9129      LD	R18,Y+
     545 9119      LD	R17,Y+
     546 9109      LD	R16,Y+
     547 9099      LD	R9,Y+
     548 9089      LD	R8,Y+
     549 9079      LD	R7,Y+
     54A 9069      LD	R6,Y+
     54B 9059      LD	R5,Y+
     54C 9049      LD	R4,Y+
     54D 9039      LD	R3,Y+
     54E 9029      LD	R2,Y+
     54F 9019      LD	R1,Y+
     550 9009      LD	R0,Y+
     551 9518      RETI
(0353) 	
(0354) 	//time_on();
(0355) 	
(0356) 	//SEI();		   	        	
(0357) }
(0358) 
(0359) 
(0360) //***************避障部分结束*******************
(0361) 
(0362) //call this routine to initialize all peripherals
(0363) void init_devices(void)
(0364) {
(0365)  //stop errant interrupts until set up
(0366)  CLI(); //disable all interrupts
_init_devices:
     552 94F8      BCLR	7
(0367)  
(0368)  //LCD_init();
(0369)  L298_port_init();       //L298端口初始化
     553 DB15      RCALL	_L298_port_init
(0370)  hw_port_init();         //红外感应端口初始化
     554 DDB5      RCALL	_hw_port_init
(0371)  timer0_init();          //定时器0初始化
     555 DDAB      RCALL	_timer0_init
(0372)  
(0373)  ADC_REG_init();
     556 DC84      RCALL	_ADC_REG_init
(0374)  ADC_port_init();
     557 DC6E      RCALL	_ADC_port_init
(0375)  
(0376)  DDRD &=~ ( 1 << PD2 );   //int0中断初始化 用于充电
     558 988A      CBI	0x11,2
(0377)  PORTD |= ( 1 << PD2 );
     559 9A92      SBI	0x12,2
(0378) 
(0379)  MCUCR = 0x00;
     55A 2422      CLR	R2
     55B BE25      OUT	0x35,R2
(0380)  GICR  = 0x40;            //INT0开启
     55C E480      LDI	R24,0x40
     55D BF8B      OUT	0x3B,R24
(0381)  TIMSK = 0x02; //timer interrupt sources
     55E E082      LDI	R24,2
     55F BF89      OUT	0x39,R24
(0382)  //LCD_write_string( 1, 2, "car test...." );
(0383)  SEI(); //re-enable interrupts
     560 9478      BSET	7
     561 9508      RET
_int0_isr:
     562 920A      ST	R0,-Y
     563 921A      ST	R1,-Y
     564 922A      ST	R2,-Y
     565 923A      ST	R3,-Y
     566 924A      ST	R4,-Y
     567 925A      ST	R5,-Y
     568 926A      ST	R6,-Y
     569 927A      ST	R7,-Y
     56A 928A      ST	R8,-Y
     56B 929A      ST	R9,-Y
     56C 930A      ST	R16,-Y
     56D 931A      ST	R17,-Y
     56E 932A      ST	R18,-Y
     56F 933A      ST	R19,-Y
     570 938A      ST	R24,-Y
     571 939A      ST	R25,-Y
     572 93AA      ST	R26,-Y
     573 93BA      ST	R27,-Y
     574 93EA      ST	R30,-Y
     575 93FA      ST	R31,-Y
     576 B60F      IN	R0,0x3F
     577 920A      ST	R0,-Y
(0384)  //all peripherals are now initialized
(0385) }
(0386) ////////////////////////////////////////////
(0387) //取电中断
(0388) #pragma interrupt_handler int0_isr:iv_INT0
(0389) void int0_isr(void)
(0390) {
(0391)  //external interupt on INT0
(0392)  CLI();
     578 94F8      BCLR	7
(0393)  car_stop();
     579 DB0F      RCALL	_car_stop
(0394)  delay_ns( 20 );
     57A E104      LDI	R16,0x14
     57B 940E 05D2 CALL	_delay_ns
(0395)  go_back();
     57D DAF6      RCALL	_go_back
(0396)  delay_ns( 10 );
     57E E00A      LDI	R16,0xA
     57F 940E 05D2 CALL	_delay_ns
(0397)  SEI();
     581 9478      BSET	7
     582 9009      LD	R0,Y+
     583 BE0F      OUT	0x3F,R0
     584 91F9      LD	R31,Y+
     585 91E9      LD	R30,Y+
     586 91B9      LD	R27,Y+
     587 91A9      LD	R26,Y+
     588 9199      LD	R25,Y+
     589 9189      LD	R24,Y+
     58A 9139      LD	R19,Y+
     58B 9129      LD	R18,Y+
     58C 9119      LD	R17,Y+
     58D 9109      LD	R16,Y+
     58E 9099      LD	R9,Y+
     58F 9089      LD	R8,Y+
     590 9079      LD	R7,Y+
     591 9069      LD	R6,Y+
     592 9059      LD	R5,Y+
     593 9049      LD	R4,Y+
     594 9039      LD	R3,Y+
     595 9029      LD	R2,Y+
     596 9019      LD	R1,Y+
     597 9009      LD	R0,Y+
     598 9518      RETI
(0398) }
(0399) 
(0400) void main( void )
(0401) {
(0402)     init_devices();
_main:
     599 DFB8      RCALL	_init_devices
     59A C003      RJMP	0x059E
(0403) 	
(0404)     while( 1 )
(0405)     {
(0406)         model = int_scan();
     59B DD73      RCALL	_int_scan
     59C 9300 007D STS	model,R16
     59E CFFC      RJMP	0x059B
     59F 9508      RET
FILE: C:\DOCUME~1\Administrator\桌面\自动充电小车\自动充电小车\298\delay.c
(0001) #define _DELAY_C_
(0002) #include "DELAY.H" //用户自己定义的头文件
(0003) 
(0004) //1us延时函数
(0005) void delay_1us( void )
(0006) {
(0007)    uint i = 1;
_delay_1us:
  i                    --> R16
     5A0 E001      LDI	R16,1
     5A1 E010      LDI	R17,0
     5A2 C001      RJMP	0x05A4
(0008)    while( i-- )
(0009)    {
(0010)       asm("nop");
     5A3 0000      NOP
     5A4 0118      MOVW	R2,R16
     5A5 5001      SUBI	R16,1
     5A6 4010      SBCI	R17,0
     5A7 2022      TST	R2
     5A8 F7D1      BNE	0x05A3
     5A9 2033      TST	R3
     5AA F7C1      BNE	0x05A3
     5AB 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R10
     5AC 940E 090A CALL	push_xgset300C
     5AE 0158      MOVW	R10,R16
(0011)    }
(0012) }
(0013) 
(0014) //nus延时函数

⌨️ 快捷键说明

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