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

📄 music_car.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 4 页
字号:
    03B9 E380      LDI	R24,0x30
    03BA 9380007F  STS	_work_status,R24
(0251) 
(0252) music_rst: 
(0253)  PORTA = 0x0F;
    03BC E08F      LDI	R24,0xF
    03BD BB8B      OUT	0x1B,R24
(0254) 
(0255)   gzsl=0x88;timers=0;t0_times=0;
    03BE E888      LDI	R24,0x88
    03BF 93800067  STS	_gzsl,R24
    03C1 2422      CLR	R2
    03C2 9220006D  STS	_timers,R2
    03C4 92200066  STS	_t0_times,R2
(0256)   CLI(); //disable all interrupts
    03C6 94F8      BCLR	7
(0257)   timer0_init();
    03C7 DEE7      RCALL	_timer0_init
(0258) 
(0259)   MCUCR = 0x00;
    03C8 2422      CLR	R2
    03C9 BE25      OUT	0x35,R2
(0260)   GIMSK = 0x00;
    03CA BE2B      OUT	0x3B,R2
(0261)   TIMSK|=(1<<TOIE0);
    03CB B789      IN	R24,0x39
    03CC 6082      ORI	R24,2
    03CD BF89      OUT	0x39,R24
(0262)   SEI(); //re-enable interrupts
    03CE 9478      BSET	7
(0263)  
(0264)  mic_startup();//等待声控启动函数
    03CF DE68      RCALL	_mic_startup
(0265) 
(0266)   gzsl=0x55;t0_times=0;sound_1 = 0x88;
    03D0 E585      LDI	R24,0x55
    03D1 93800067  STS	_gzsl,R24
    03D3 2422      CLR	R2
    03D4 92200066  STS	_t0_times,R2
    03D6 E888      LDI	R24,0x88
    03D7 93800065  STS	_sound_1,R24
(0267) 	  TCCR1A = 0x00;
    03D9 BC2F      OUT	0x2F,R2
(0268) 	  TCCR1B =(1<<CS11);//8分频
    03DA E082      LDI	R24,2
    03DB BD8E      OUT	0x2E,R24
(0269) n01:
(0270)   temp=temp1 = 0;
    03DC 2422      CLR	R2
    03DD 92200072  STS	_temp1,R2
    03DF 92200073  STS	_temp,R2
(0271)   sound_add = 0;	  
    03E1 2433      CLR	R3
    03E2 92300061  STS	0x61,R3
    03E4 92200060  STS	0x60,R2
    03E6 C095      RJMP	0x047C
(0272) 	  while(temp1!=0)
(0273)   	    {
(0274) 			temp=temp1; 
    03E7 90200072  LDS	R2,_temp1
    03E9 92200073  STS	_temp,R2
(0275) 			temp&=0x0f;
    03EB 2D82      MOV	R24,R2
    03EC 708F      ANDI	R24,0xF
    03ED 93800073  STS	_temp,R24
(0276) 						  //PA口为音乐灯
(0277) 			  if(temp==1 || temp==2 || temp==3 || temp==4){PORTA = 0xfe;}
    03EF 3081      CPI	R24,1
    03F0 F031      BEQ	0x03F7
    03F1 3082      CPI	R24,2
    03F2 F021      BEQ	0x03F7
    03F3 3083      CPI	R24,3
    03F4 F011      BEQ	0x03F7
    03F5 3084      CPI	R24,4
    03F6 F411      BNE	0x03F9
    03F7 EF8E      LDI	R24,0xFE
    03F8 BB8B      OUT	0x1B,R24
(0278)               if(temp==5 || temp==6){PORTA = 0xfc;}
    03F9 91800073  LDS	R24,_temp
    03FB 3085      CPI	R24,5
    03FC F011      BEQ	0x03FF
    03FD 3086      CPI	R24,6
    03FE F411      BNE	0x0401
    03FF EF8C      LDI	R24,0xFC
    0400 BB8B      OUT	0x1B,R24
(0279)               if(temp==7 || temp==8 ){PORTA = 0xf8;}
    0401 91800073  LDS	R24,_temp
    0403 3087      CPI	R24,7
    0404 F011      BEQ	0x0407
    0405 3088      CPI	R24,0x8
    0406 F411      BNE	0x0409
    0407 EF88      LDI	R24,0xF8
    0408 BB8B      OUT	0x1B,R24
(0280)               if(temp==9){PORTA = 0xf0;}
    0409 91800073  LDS	R24,_temp
    040B 3089      CPI	R24,0x9
    040C F411      BNE	0x040F
    040D EF80      LDI	R24,0xF0
    040E BB8B      OUT	0x1B,R24
(0281)               if(temp==10){PORTA = 0xe0;}
    040F 91800073  LDS	R24,_temp
    0411 308A      CPI	R24,0xA
    0412 F411      BNE	0x0415
    0413 EE80      LDI	R24,0xE0
    0414 BB8B      OUT	0x1B,R24
(0282)               if(temp==11){PORTA = 0xc0;}
    0415 91800073  LDS	R24,_temp
    0417 308B      CPI	R24,0xB
    0418 F411      BNE	0x041B
    0419 EC80      LDI	R24,0xC0
    041A BB8B      OUT	0x1B,R24
(0283) 			  if(temp==12){PORTA = 0x80;}
    041B 91800073  LDS	R24,_temp
    041D 308C      CPI	R24,0xC
    041E F411      BNE	0x0421
    041F E880      LDI	R24,0x80
    0420 BB8B      OUT	0x1B,R24
(0284)               if(temp==13||temp==14 || temp==15){PORTA = 0x00;}
    0421 91800073  LDS	R24,_temp
    0423 308D      CPI	R24,0xD
    0424 F021      BEQ	0x0429
    0425 308E      CPI	R24,0xE
    0426 F011      BEQ	0x0429
    0427 308F      CPI	R24,0xF
    0428 F411      BNE	0x042B
    0429 2422      CLR	R2
    042A BA2B      OUT	0x1B,R2
(0285) 
(0286) 			if(temp!=0)
    042B 90200073  LDS	R2,_temp
    042D 2022      TST	R2
    042E F0B9      BEQ	0x0446
(0287) 			  {
(0288) 			   TIMSK|=(1<<TOIE1);//根据SOUNDTABLE中数据的低四位选择音调频率
    042F B789      IN	R24,0x39
    0430 6880      ORI	R24,0x80
    0431 BF89      OUT	0x39,R24
(0289) 			   temp--;			   
    0432 2D82      MOV	R24,R2
    0433 5081      SUBI	R24,1
    0434 93800073  STS	_temp,R24
(0290)         	   toneconst=TONETABLE[temp];
    0436 E18A      LDI	R24,0x1A
    0437 E090      LDI	R25,0
    0438 91000073  LDS	R16,_temp
    043A 2711      CLR	R17
    043B 0F00      LSL	R16
    043C 1F11      ROL	R17
    043D 0F08      ADD	R16,R24
    043E 1F19      ADC	R17,R25
    043F D05E      RCALL	lpm16
    0440 93100077  STS	_toneconst+1,R17
    0442 93000076  STS	_toneconst,R16
(0291) 			   TCNT1=toneconst;
    0444 BD1D      OUT	0x2D,R17
    0445 BD0C      OUT	0x2C,R16
(0292)  			  }
(0293) 			temp=temp1;
    0446 90200072  LDS	R2,_temp1
    0448 92200073  STS	_temp,R2
(0294) 			temp>>=4;
    044A 2D82      MOV	R24,R2
    044B 9582      SWAP	R24
    044C 708F      ANDI	R24,0xF
    044D 93800073  STS	_temp,R24
(0295) 			temp&=0x0f;
    044F 708F      ANDI	R24,0xF
    0450 93800073  STS	_temp,R24
(0296) 			delay_ms(temp*129);//根据SOUNDTABLE中数据的高四位*5后,为音调持续时间
    0452 2F28      MOV	R18,R24
    0453 2733      CLR	R19
    0454 E801      LDI	R16,0x81
    0455 E010      LDI	R17,0
    0456 D083      RCALL	mpy16s
    0457 DD48      RCALL	_delay_ms
(0297) 			TIMSK&=~(1<<TOIE1);
    0458 B789      IN	R24,0x39
    0459 778F      ANDI	R24,0x7F
    045A BF89      OUT	0x39,R24
(0298) 			sound_add++;
    045B 91800060  LDS	R24,0x60
    045D 91900061  LDS	R25,0x61
    045F 9601      ADIW	R24,1
    0460 93900061  STS	0x61,R25
    0462 93800060  STS	0x60,R24
(0299) 
(0300) 	     if(rst_time > 40)
    0464 E288      LDI	R24,0x28
    0465 E090      LDI	R25,0
    0466 90200074  LDS	R2,_rst_time
    0468 90300075  LDS	R3,_rst_time+1
    046A 1582      CP	R24,R2
    046B 0593      CPC	R25,R3
    046C F478      BCC	0x047C
(0301) 	       {//当按住< C > 键的持续时间超过10S,遥控机器人复位,等待声控重起运行
(0302) 		    rst_time=0;
    046D 2422      CLR	R2
    046E 2433      CLR	R3
    046F 92300075  STS	_rst_time+1,R3
    0471 92200074  STS	_rst_time,R2
(0303) 			sound_1 = 0x55;
    0473 E585      LDI	R24,0x55
    0474 93800065  STS	_sound_1,R24
(0304) 			PORTA = 0x0f;
    0476 E08F      LDI	R24,0xF
    0477 BB8B      OUT	0x1B,R24
(0305) 			delay_ms(1000);
    0478 EE08      LDI	R16,0xE8
    0479 E013      LDI	R17,3
    047A DD25      RCALL	_delay_ms
(0306) 		    goto music_rst;
    047B CF40      RJMP	0x03BC
    047C 90200072  LDS	R2,_temp1
    047E 2022      TST	R2
    047F F009      BEQ	0x0481
    0480 CF66      RJMP	0x03E7
(0307) 	       }
(0308) 	   }
(0309) 	sound_1 = 0x88;   
    0481 E888      LDI	R24,0x88
    0482 93800065  STS	_sound_1,R24
(0310) 	goto n01;
    0484 CF57      RJMP	0x03DC
    0485 9508      RET
(0311) }
(0312) 
(0313) void main()
(0314) {
(0315)  music_car();
(0316) }
FILE: <library>
_main:
    0486 CF31      RJMP	_music_car
push_gset1:
    0487 935A      ST	R21,-Y
    0488 934A      ST	R20,-Y
    0489 9508      RET
pop_gset1:
    048A E0E1      LDI	R30,1
pop:
    048B 9149      LD	R20,Y+
    048C 9159      LD	R21,Y+
    048D FDE0      SBRC	R30,0
    048E 9508      RET
    048F 9169      LD	R22,Y+
    0490 9179      LD	R23,Y+
    0491 FDE1      SBRC	R30,1
    0492 9508      RET
    0493 90A9      LD	R10,Y+
    0494 90B9      LD	R11,Y+
    0495 FDE2      SBRC	R30,2
    0496 9508      RET
    0497 90C9      LD	R12,Y+
    0498 90D9      LD	R13,Y+
    0499 FDE3      SBRC	R30,3
    049A 9508      RET
    049B 90E9      LD	R14,Y+
    049C 90F9      LD	R15,Y+
    049D 9508      RET
lpm16:
    049E 93EA      ST	R30,-Y
    049F 93FA      ST	R31,-Y
    04A0 920A      ST	R0,-Y
    04A1 2FE0      MOV	R30,R16
    04A2 2FF1      MOV	R31,R17
    04A3 95C8      LPM
    04A4 2D00      MOV	R16,R0
    04A5 9631      ADIW	R30,1
    04A6 95C8      LPM
    04A7 2D10      MOV	R17,R0
    04A8 9009      LD	R0,Y+
    04A9 91F9      LD	R31,Y+
    04AA 91E9      LD	R30,Y+
    04AB 9508      RET
push_lset:
    04AC 93FA      ST	R31,-Y
    04AD 93EA      ST	R30,-Y
    04AE 93BA      ST	R27,-Y
    04AF 93AA      ST	R26,-Y
    04B0 939A      ST	R25,-Y
    04B1 938A      ST	R24,-Y
    04B2 933A      ST	R19,-Y
    04B3 932A      ST	R18,-Y
    04B4 931A      ST	R17,-Y
    04B5 930A      ST	R16,-Y
    04B6 929A      ST	R9,-Y
    04B7 928A      ST	R8,-Y
    04B8 927A      ST	R7,-Y
    04B9 926A      ST	R6,-Y
    04BA 925A      ST	R5,-Y
    04BB 924A      ST	R4,-Y
    04BC 923A      ST	R3,-Y
    04BD 922A      ST	R2,-Y
    04BE 921A      ST	R1,-Y
    04BF 920A      ST	R0,-Y
    04C0 B60F      IN	R0,0x3F
    04C1 920A      ST	R0,-Y
    04C2 9508      RET
pop_lset:
    04C3 9009      LD	R0,Y+
    04C4 BE0F      OUT	0x3F,R0
    04C5 9009      LD	R0,Y+
    04C6 9019      LD	R1,Y+
    04C7 9029      LD	R2,Y+
    04C8 9039      LD	R3,Y+
    04C9 9049      LD	R4,Y+
    04CA 9059      LD	R5,Y+
    04CB 9069      LD	R6,Y+
    04CC 9079      LD	R7,Y+
    04CD 9089      LD	R8,Y+
    04CE 9099      LD	R9,Y+
    04CF 9109      LD	R16,Y+
    04D0 9119      LD	R17,Y+
    04D1 9129      LD	R18,Y+
    04D2 9139      LD	R19,Y+
    04D3 9189      LD	R24,Y+
    04D4 9199      LD	R25,Y+
    04D5 91A9      LD	R26,Y+
    04D6 91B9      LD	R27,Y+
    04D7 91E9      LD	R30,Y+
    04D8 91F9      LD	R31,Y+
    04D9 9508      RET
mpy16s:
    04DA 920A      ST	R0,-Y
    04DB 921A      ST	R1,-Y
    04DC 2400      CLR	R0
    04DD 2411      CLR	R1
    04DE 3000      CPI	R16,0
    04DF 0701      CPC	R16,R17
    04E0 F041      BEQ	0x04E9
    04E1 9516      LSR	R17
    04E2 9507      ROR	R16
    04E3 F410      BCC	0x04E6
    04E4 0E02      ADD	R0,R18
    04E5 1E13      ADC	R1,R19
    04E6 0F22      LSL	R18
    04E7 1F33      ROL	R19
    04E8 CFF5      RJMP	0x04DE
    04E9 2D00      MOV	R16,R0
    04EA 2D11      MOV	R17,R1
    04EB 9019      LD	R1,Y+
    04EC 9009      LD	R0,Y+
    04ED 9508      RET
_EEPROMread:
    04EE 99E1      SBIC	0x1C,1
    04EF CFFE      RJMP	_EEPROMread
    04F0 BB0E      OUT	0x1E,R16
    04F1 BB1F      OUT	0x1F,R17
    04F2 9AE0      SBI	0x1C,0
    04F3 B30D      IN	R16,0x1D
    04F4 9508      RET

⌨️ 快捷键说明

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