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

📄 sl3010_4.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0542 2628      EOR	R2,R24
    0543 BA25      OUT	0x15,R2
(0424) 	 }	 	 
    0544 9029      LD	R2,Y+
    0545 BE2F      OUT	0x3F,R2
    0546 9189      LD	R24,Y+
    0547 9039      LD	R3,Y+
    0548 9029      LD	R2,Y+
    0549 9518      RETI
(0425) 
(0426) void music_car(void)
(0427)  	 {
(0428) 	  TCCR1A = 0x00;
_music_car:
    054A 2422      CLR	R2
    054B BC2F      OUT	0x2F,R2
(0429) 	  TCCR1B =(1<<CS11);//8分频
    054C E082      LDI	R24,2
    054D BD8E      OUT	0x2E,R24
(0430) 	  temp1=EEPROMread((int)&sound[sound_add]);
    054E E081      LDI	R24,1
    054F E090      LDI	R25,0
    0550 91000060  LDS	R16,0x60
    0552 91100061  LDS	R17,0x61
    0554 0F08      ADD	R16,R24
    0555 1F19      ADC	R17,R25
    0556 D380      RCALL	_EEPROMread
    0557 93000072  STS	_temp1,R16
    0559 C04B      RJMP	0x05A5
(0431) 	  while(temp1!=0)
(0432)  	  		{
(0433) 			temp=temp1; 
    055A 90200072  LDS	R2,_temp1
    055C 92200073  STS	_temp,R2
(0434) 			temp&=0x0f;
    055E 2D82      MOV	R24,R2
    055F 708F      ANDI	R24,0xF
    0560 93800073  STS	_temp,R24
(0435) 			if(temp!=0)
    0562 2E28      MOV	R2,R24
    0563 2388      TST	R24
    0564 F0B9      BEQ	0x057C
(0436) 			  {
(0437) 			   TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
    0565 B789      IN	R24,0x39
    0566 6880      ORI	R24,0x80
    0567 BF89      OUT	0x39,R24
(0438) 			   temp--;			   
    0568 2D82      MOV	R24,R2
    0569 5081      SUBI	R24,1
    056A 93800073  STS	_temp,R24
(0439)         	   toneconst=TONETABLE[temp];
    056C E18A      LDI	R24,0x1A
    056D E090      LDI	R25,0
    056E 91000073  LDS	R16,_temp
    0570 2711      CLR	R17
    0571 0F00      LSL	R16
    0572 1F11      ROL	R17
    0573 0F08      ADD	R16,R24
    0574 1F19      ADC	R17,R25
    0575 D311      RCALL	lpm16
    0576 93100077  STS	_toneconst+1,R17
    0578 93000076  STS	_toneconst,R16
(0440) 			   TCNT1=toneconst;
    057A BD1D      OUT	0x2D,R17
    057B BD0C      OUT	0x2C,R16
(0441)  			  }
(0442) 			temp=temp1;
    057C 90200072  LDS	R2,_temp1
    057E 92200073  STS	_temp,R2
(0443) 			temp>>=4;
    0580 2D82      MOV	R24,R2
    0581 9582      SWAP	R24
    0582 708F      ANDI	R24,0xF
    0583 93800073  STS	_temp,R24
(0444) 			temp&=0x0f;
    0585 708F      ANDI	R24,0xF
    0586 93800073  STS	_temp,R24
(0445) 			delay_ms(temp*129);//根据SOUNDTABLE中数据的高四位*5后,为音调持续时间
    0588 2F28      MOV	R18,R24
    0589 2733      CLR	R19
    058A E801      LDI	R16,0x81
    058B E010      LDI	R17,0
    058C D336      RCALL	mpy16s
    058D DC52      RCALL	_delay_ms
(0446) 			TIMSK&=~(1<<TOIE1);
    058E B789      IN	R24,0x39
    058F 778F      ANDI	R24,0x7F
    0590 BF89      OUT	0x39,R24
(0447) 			sound_add++;
    0591 91800060  LDS	R24,0x60
    0593 91900061  LDS	R25,0x61
    0595 9601      ADIW	R24,1
    0596 93900061  STS	0x61,R25
    0598 93800060  STS	0x60,R24
(0448) 			temp1=EEPROMread((int)&sound[sound_add]); 
    059A E081      LDI	R24,1
    059B E090      LDI	R25,0
    059C 91000060  LDS	R16,0x60
    059E 91100061  LDS	R17,0x61
    05A0 0F08      ADD	R16,R24
    05A1 1F19      ADC	R17,R25
    05A2 D334      RCALL	_EEPROMread
    05A3 93000072  STS	_temp1,R16
    05A5 90200072  LDS	R2,_temp1
    05A7 2022      TST	R2
    05A8 F009      BEQ	0x05AA
    05A9 CFB0      RJMP	0x055A
(0449) 			}
(0450) 		delay_ms(1000);	                                         	
    05AA EE08      LDI	R16,0xE8
    05AB E013      LDI	R17,3
(0451) 	 }	 	 	 	 
    05AC CC33      RJMP	_delay_ms
(0452) 	  
(0453) //     电机驱动信号                           led灯指示电机状态 
(0454) //PORTD = 0xA0;//前行//1010 0000        //PORTA = 0xC3;//1100,0011
(0455) //PORTD = 0x90;//左转//1001 0000快速左转//PORTA = 0x33;//0011,0011
(0456) //PORTD = 0x80;//左转//1000 0000慢速左转//PORTA = 0xF3;//1111,0011
(0457) //PORTD = 0x60;//右转//0110 0000快速右转//PORTA = 0xCC;//1100,1100
(0458) //PORTD = 0x20;//右转//0010 0000慢速右转//PORTA = 0xCF;//1100,1111
(0459) //PORTD = 0x50;//后退//0101 0000        //PORTA = 0x3C;//0011,1100
(0460) 
(0461) //PC3声控启动
(0462) //  用PD7~PD4来作为电机驱动端
(0463) void xuanya_car(void)
(0464) {
(0465)  port_init();         //PA,PB,PC,PD 初始化
_xuanya_car:
    05AD DC1A      RCALL	_port_init
(0466)  PORTA = 0xa5;//1010,0101
    05AE EA85      LDI	R24,0xA5
    05AF BB8B      OUT	0x1B,R24
(0467)  delay_ms(1000);
    05B0 EE08      LDI	R16,0xE8
    05B1 E013      LDI	R17,3
    05B2 DC2D      RCALL	_delay_ms
(0468)  work_status = 0x20;//置对应的工作状态标志
    05B3 E280      LDI	R24,0x20
    05B4 9380007F  STS	_work_status,R24
(0469) 
(0470) 
(0471)   gzsl=0x88;timers=0;t0_times=0;
    05B6 E888      LDI	R24,0x88
    05B7 93800067  STS	_gzsl,R24
    05B9 2422      CLR	R2
    05BA 9220006D  STS	_timers,R2
    05BC 92200066  STS	_t0_times,R2
(0472)   CLI(); //disable all interrupts
    05BE 94F8      BCLR	7
(0473)   timer0_init();
    05BF DD33      RCALL	_timer0_init
(0474) 
(0475)   MCUCR = 0x00;
    05C0 2422      CLR	R2
    05C1 BE25      OUT	0x35,R2
(0476)   GIMSK = 0x00;
    05C2 BE2B      OUT	0x3B,R2
(0477)   TIMSK|=(1<<TOIE0);
    05C3 B789      IN	R24,0x39
    05C4 6082      ORI	R24,2
    05C5 BF89      OUT	0x39,R24
(0478)   SEI(); //re-enable interrupts
    05C6 9478      BSET	7
(0479)  
(0480)  mic_startup();//等待声控启动函数
    05C7 DCB0      RCALL	_mic_startup
(0481) 
(0482)   	  gzsl=0x44;t0_times=0;
    05C8 E484      LDI	R24,0x44
    05C9 93800067  STS	_gzsl,R24
    05CB 2422      CLR	R2
    05CC 92200066  STS	_t0_times,R2
(0483) 	  TCCR1A = 0x00;
    05CE BC2F      OUT	0x2F,R2
(0484) 	  TCCR1B =(1<<CS11);//8分频
    05CF E082      LDI	R24,2
    05D0 BD8E      OUT	0x2E,R24
(0485) xuanya_car_rst: 
(0486)     temp=temp1 = 0;
    05D1 2422      CLR	R2
    05D2 92200072  STS	_temp1,R2
    05D4 92200073  STS	_temp,R2
(0487)     sound_add = 0;	  
    05D6 2433      CLR	R3
    05D7 92300061  STS	0x61,R3
    05D9 92200060  STS	0x60,R2
    05DB C040      RJMP	0x061C
(0488) 	  while(temp1!=0)
(0489)   	    {
(0490) 			temp=temp1; 
    05DC 90200072  LDS	R2,_temp1
    05DE 92200073  STS	_temp,R2
(0491) 			temp&=0x0f;
    05E0 2D82      MOV	R24,R2
    05E1 708F      ANDI	R24,0xF
    05E2 93800073  STS	_temp,R24
(0492) 			if(temp!=0)
    05E4 2E28      MOV	R2,R24
    05E5 2388      TST	R24
    05E6 F0B9      BEQ	0x05FE
(0493) 			  {
(0494) 			   TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
    05E7 B789      IN	R24,0x39
    05E8 6880      ORI	R24,0x80
    05E9 BF89      OUT	0x39,R24
(0495) 			   temp--;			   
    05EA 2D82      MOV	R24,R2
    05EB 5081      SUBI	R24,1
    05EC 93800073  STS	_temp,R24
(0496)         	   toneconst=TONETABLE[temp];
    05EE E18A      LDI	R24,0x1A
    05EF E090      LDI	R25,0
    05F0 91000073  LDS	R16,_temp
    05F2 2711      CLR	R17
    05F3 0F00      LSL	R16
    05F4 1F11      ROL	R17
    05F5 0F08      ADD	R16,R24
    05F6 1F19      ADC	R17,R25
    05F7 D28F      RCALL	lpm16
    05F8 93100077  STS	_toneconst+1,R17
    05FA 93000076  STS	_toneconst,R16
(0497) 			   TCNT1=toneconst;
    05FC BD1D      OUT	0x2D,R17
    05FD BD0C      OUT	0x2C,R16
(0498)  			  }
(0499) 			temp=temp1;
    05FE 90200072  LDS	R2,_temp1
    0600 92200073  STS	_temp,R2
(0500) 			temp>>=4;
    0602 2D82      MOV	R24,R2
    0603 9582      SWAP	R24
    0604 708F      ANDI	R24,0xF
    0605 93800073  STS	_temp,R24
(0501) 			temp&=0x0f;
    0607 708F      ANDI	R24,0xF
    0608 93800073  STS	_temp,R24
(0502) 			delay_ms(temp*129);//根据SOUNDTABLE中数据的高四位*5后,为音调持续时间
    060A 2F28      MOV	R18,R24
    060B 2733      CLR	R19
    060C E801      LDI	R16,0x81
    060D E010      LDI	R17,0
    060E D2B4      RCALL	mpy16s
    060F DBD0      RCALL	_delay_ms
(0503) 			TIMSK&=~(1<<TOIE1);
    0610 B789      IN	R24,0x39
    0611 778F      ANDI	R24,0x7F
    0612 BF89      OUT	0x39,R24
(0504) 			sound_add++;
    0613 91800060  LDS	R24,0x60
    0615 91900061  LDS	R25,0x61
    0617 9601      ADIW	R24,1
    0618 93900061  STS	0x61,R25
    061A 93800060  STS	0x60,R24
    061C 90200072  LDS	R2,_temp1
    061E 2022      TST	R2
    061F F009      BEQ	0x0621
    0620 CFBB      RJMP	0x05DC
(0505) 		}
(0506) 	goto xuanya_car_rst;
    0621 CFAF      RJMP	0x05D1
    0622 9508      RET
(0507) }
(0508) 
(0509) void remote_car()
(0510) {//遥控车程序
(0511)  
(0512)  port_init();//调用端口初始化函数
_remote_car:
    0623 DBA4      RCALL	_port_init
(0513)  
(0514)  work_status = 0x60;//置对应的工作状态标志
    0624 E680      LDI	R24,0x60
    0625 9380007F  STS	_work_status,R24
(0515) 
(0516) remote_rst: 
(0517)  PORTA = 0x0F;
    0627 E08F      LDI	R24,0xF
    0628 BB8B      OUT	0x1B,R24
(0518)  delay_ms(1000);
    0629 EE08      LDI	R16,0xE8
    062A E013      LDI	R17,3
    062B DBB4      RCALL	_delay_ms
(0519) 
(0520)   gzsl=0x88;timers=0;t0_times=0;
    062C E888      LDI	R24,0x88
    062D 93800067  STS	_gzsl,R24
    062F 2422      CLR	R2
    0630 9220006D  STS	_timers,R2
    0632 92200066  STS	_t0_times,R2
(0521)   CLI(); //disable all interrupts
    0634 94F8      BCLR	7
(0522)   timer0_init();
    0635 DCBD      RCALL	_timer0_init
(0523) 
(0524)   MCUCR = 0x00;
    0636 2422      CLR	R2
    0637 BE25      OUT	0x35,R2
(0525)   GIMSK = 0x00;
    0638 BE2B      OUT	0x3B,R2
(0526)   TIMSK|=(1<<TOIE0);
    0639 B789      IN	R24,0x39
    063A 6082      ORI	R24,2
    063B BF89      OUT	0x39,R24
(0527)   SEI(); //re-enable interrupts
    063C 9478      BSET	7
(0528)  
(0529)  mic_startup();//等待声控启动函数
    063D DC3A      RCALL	_mic_startup
(0530) 
(0531)   gzsl=0x33;t0_times=0;
    063E E383      LDI	R24,0x33
    063F 93800067  STS	_gzsl,R24
    0641 2422      CLR	R2
    0642 92200066  STS	_t0_times,R2
(0532) 	  TCCR1A = 0x00;
    0644 BC2F      OUT	0x2F,R2
(0533) 	  TCCR1B =(1<<CS11);//8分频
    0645 E082      LDI	R24,2
    0646 BD8E      OUT	0x2E,R24
(0534) n01:
(0535)   temp=temp1 = 0;
    0647 2422      CLR	R2
    0648 92200072  STS	_temp1,R2
    064A 92200073  STS	_temp,R2
(0536)   sound_add = 0;	  
    064C 2433      CLR	R3
    064D 92300061  STS	0x61,R3
    064F 92200060  STS	0x60,R2
    0651 C040      RJMP	0x0692
(0537) 	  while(temp1!=0)
(0538)   	    {
(0539) 			temp=temp1; 
    0652 90200072  LDS	R2,_temp1
    0654 92200073  STS	_temp,R2
(0540) 			temp&=0x0f;
    0656 2D82      MOV	R24,R2
    0657 708F      ANDI	R24,0xF
    0658 93800073  STS	_temp,R24
(0541) 			if(temp!=0)
    065A 2E28      MOV	R2,R24
    065B 2388      TST	R24
    065C F0B9      BEQ	0x0674
(0542) 			  {
(0543) 			   TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
    065D B789      IN	R24,0x39
    065E 6880      ORI	R24,0x80
    065F BF89      OUT	0x39,R24
(0544) 			   temp--;			   
    0660 2D82      MOV	R24,R2
    0661 5081      SUBI	R24,1
    0662 93800073  STS	_temp,R24
(0545)         	   toneconst=TONETABLE[temp];
    0664 E18A      LDI	R24,0x1A
    0665 E090      LDI	R25,0
    0666 91000073  LDS	R16,_temp
    0668 2711      CLR	R17
    0669 0F00      LSL	R16
    066A 1F11      ROL	R17
    066B 0F08      ADD	R16,R24
    066C 1F19      ADC	R17,R25
    066D D219      RCALL	lpm16
    066E 93100077  STS	_toneconst+1,R17
    0670 93000076  STS	_toneconst,R16
(0546) 			   TCNT1=toneconst;
    0672 BD1D      OUT	0x2D,R17
    0673 BD0C      OUT	0x2C,R16
(0547)  			  }
(0548) 			temp=temp1;
    0674 90200072  LDS	R2,_temp1
    0676 92200073  S

⌨️ 快捷键说明

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