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

📄 music_car.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0111) 0x46,0x29,0x2a,0x28,0x28,0x26,0x25,0x26,0x26,0x25,0x43,0x43,
(0112) 0x22,0x42,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x41,
(0113) 0x00,0x00
(0114) };
(0115) const unsigned char music_33[]=
(0116) {
(0117) //星语心愿
(0118) 0x36,0x18,0x27,0x26,0x25,0x26,0x43,0x43,0x43,0x26,0x25,0x36,0x18,0x27,0x18,0x17,
(0119) 0x26,0x27,0x48,0x48,0x48,0x28,0x29,0x2a,0x2a,0x2a,0x2a,0x49,0x49,0x28,0x27,0x26,
(0120) 0x27,0x45,0x45,0x46,0x48,0x47,0x26,0x25,0x46,0x46,0x46,0x40,0x40,0x40,0x40,0x40,
(0121) 0x36,0x18,0x27,0x26,0x25,0x26,0x26,0x26,0x46,0x46,0x26,0x25,0x36,0x18,0x27,0x18,
(0122) 0x17,0x26,0x27,0x48,0x48,0x48,0x28,0x29,0x2a,0x2a,0x2a,0x2a,0x49,0x49,0x28,0x27,
(0123) 0x26,0x27,0x45,0x45,0x46,0x26,0x28,0x47,0x45,0x40,0x26,0x28,0x47,0x45,0x46,0x46,
(0124) 0x46,0x46,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,0x28,0x48,0x48,0x48,
(0125) 0x28,0x27,0x36,0x16,0x45,0x47,0x46,0x46,0x46,0x23,0x25,0x46,0x4a,0x39,0x18,0x27,
(0126) 0x28,0x48,0x48,0x28,0x27,0x36,0x16,0x45,0x27,0x26,0x46,0x46,0x46,0x46,0x46,0x46,
(0127) 0x00,0x00
(0128) };
(0129) const unsigned char music_44[]=
(0130) {
(0131) //上海滩
(0132) 0x2a,0x2c,0x4d,0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,
(0133) 0x2d,0x4f,0x2d,0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,
(0134) 0x4c,0x4c,0x4c,0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,
(0135) 0x39,0x1a,0x29,0x27,0x26,0x28,0x45,0x45,0x45,0x2a,0x2c,0x4d,
(0136) 0x4d,0x4d,0x2a,0x2c,0x49,0x49,0x49,0x2a,0x2c,0x2d,0x4f,0x2d,
(0137) 0x4c,0x1d,0x18,0x2a,0x49,0x49,0x49,0x29,0x2a,0x4c,0x4c,0x4c,
(0138) 0x29,0x2a,0x29,0x26,0x4d,0x4d,0x4d,0x26,0x28,0x39,0x1a,0x29,
(0139) 0x27,0x26,0x25,0x48,0x48,0x20,0x2f,0x2f,0x2d,0x4f,0x4f,0x20,
(0140) 0x2d,0x2f,0x2d,0x4c,0x4c,0x4c,0x2c,0x2a,0x6d,0x2c,0x48,0x19,
(0141) 0x18,0x28,0x4a,0x4a,0x20,0x2a,0x2a,0x29,0x4a,0x4a,0x20,0x2f,
(0142) 0x2f,0x2e,0x4d,0x4d,0x4d,0x2a,0x2a,0x69,0x2a,0x2f,0x2e,0x2d,
(0143) 0x2a,0x4c,0x4c,0x4c,
(0144) 0x00,0x00
(0145) };
(0146) 
(0147) //TIMER0 initialisation - prescale:1024
(0148) // desired value: 25mSec
(0149) // actual value: 24.960mSec (0.2%)
(0150) void timer0_init(void)
(0151) {
(0152)  TCCR0 = 0x00; //stop timer
_timer0_init:
    02AF 2422      CLR	R2
    02B0 BE23      OUT	0x33,R2
(0153)  TCNT0 = 0x3D; //set count value
    02B1 E38D      LDI	R24,0x3D
    02B2 BF82      OUT	0x32,R24
(0154)  TCCR0 = 0x05; //start timer
    02B3 E085      LDI	R24,5
    02B4 BF83      OUT	0x33,R24
(0155) }
    02B5 9508      RET
_timer0_ovf_isr:
    02B6 D1F5      RCALL	push_lset
    02B7 D1CF      RCALL	push_gset1
(0156) 
(0157) #pragma interrupt_handler timer0_ovf_isr:iv_TIMER0_OVF
(0158) void timer0_ovf_isr(void)
(0159) {
(0160)  TCNT0 = 0x3D; //reload counter value
    02B8 E38D      LDI	R24,0x3D
    02B9 BF82      OUT	0x32,R24
(0161)  t0_times++;
    02BA 91800066  LDS	R24,_t0_times
    02BC 5F8F      SUBI	R24,0xFF
    02BD 93800066  STS	_t0_times,R24
(0162)  if(gzsl == 0x88)
    02BF 91800067  LDS	R24,_gzsl
    02C1 3888      CPI	R24,0x88
    02C2 F509      BNE	0x02E4
(0163)    {
(0164)     if(t0_times == 10)
    02C3 91800066  LDS	R24,_t0_times
    02C5 308A      CPI	R24,0xA
    02C6 F4E9      BNE	0x02E4
(0165)       {
(0166) 	   timers++;
    02C7 9180006D  LDS	R24,_timers
    02C9 5F8F      SUBI	R24,0xFF
    02CA 9380006D  STS	_timers,R24
(0167) 	   t0_times = 0;
    02CC 2422      CLR	R2
    02CD 92200066  STS	_t0_times,R2
(0168) 	   pa = led_data[timers];
    02CF E388      LDI	R24,0x38
    02D0 E090      LDI	R25,0
    02D1 9020006D  LDS	R2,_timers
    02D3 2433      CLR	R3
    02D4 0E28      ADD	R2,R24
    02D5 1E39      ADC	R3,R25
    02D6 2DE2      MOV	R30,R2
    02D7 2DF3      MOV	R31,R3
    02D8 95C8      LPM
    02D9 92000071  STS	_pa,R0
(0169) 	   if(pa==0x0a){timers=0;}
    02DB 2D80      MOV	R24,R0
    02DC 308A      CPI	R24,0xA
    02DD F419      BNE	0x02E1
    02DE 2422      CLR	R2
    02DF 9220006D  STS	_timers,R2
(0170) 	   PORTA = pa;	   
    02E1 90200071  LDS	R2,_pa
    02E3 BA2B      OUT	0x1B,R2
(0171)       }
(0172)    }
(0173)  if(gzsl == 0x55)
    02E4 91800067  LDS	R24,_gzsl
    02E6 3585      CPI	R24,0x55
    02E7 F009      BEQ	0x02E9
    02E8 C0AF      RJMP	0x0398
(0174)    {
(0175) 	if(t0_times == 4)     //4*25ms=100ms  扫描一次
    02E9 91800066  LDS	R24,_t0_times
    02EB 3084      CPI	R24,4
    02EC F009      BEQ	0x02EE
    02ED C0AA      RJMP	0x0398
(0176)       {
(0177) 	   t0_times = 0;
    02EE 2422      CLR	R2
    02EF 92200066  STS	_t0_times,R2
(0178) 	   remote_in = PINB & 0x0F;
    02F1 B386      IN	R24,0x16
    02F2 708F      ANDI	R24,0xF
    02F3 9380007D  STS	_remote_in,R24
(0179) 	   switch (remote_in)
    02F5 2F48      MOV	R20,R24
    02F6 2755      CLR	R21
    02F7 3041      CPI	R20,1
    02F8 E0E0      LDI	R30,0
    02F9 075E      CPC	R21,R30
    02FA F409      BNE	0x02FC
    02FB C03C      RJMP	0x0338
    02FC 3042      CPI	R20,2
    02FD E0E0      LDI	R30,0
    02FE 075E      CPC	R21,R30
    02FF F0B9      BEQ	0x0317
    0300 3044      CPI	R20,4
    0301 E0E0      LDI	R30,0
    0302 075E      CPC	R21,R30
    0303 F029      BEQ	0x0309
    0304 3048      CPI	R20,0x8
    0305 E0E0      LDI	R30,0
    0306 075E      CPC	R21,R30
    0307 F0E9      BEQ	0x0325
    0308 C03C      RJMP	0x0345
(0180)       	 {//检测遥控器是否有键按下
(0181)           case 0x04:  // < A >
(0182) 			  rst_time=0;
    0309 2422      CLR	R2
    030A 2433      CLR	R3
    030B 92300075  STS	_rst_time+1,R3
    030D 92200074  STS	_rst_time,R2
(0183) 			  sound_add=0;
    030F 92300061  STS	0x61,R3
    0311 92200060  STS	0x60,R2
(0184) 			  sound_1 = 0x11;
    0313 E181      LDI	R24,0x11
    0314 93800065  STS	_sound_1,R24
(0185)       	    break;
    0316 C02E      RJMP	0x0345
(0186)           case 0x02:  // < B >
(0187) 		      rst_time=0;
    0317 2422      CLR	R2
    0318 2433      CLR	R3
    0319 92300075  STS	_rst_time+1,R3
    031B 92200074  STS	_rst_time,R2
(0188) 			  sound_add=0;
    031D 92300061  STS	0x61,R3
    031F 92200060  STS	0x60,R2
(0189) 			  sound_1 = 0x22;
    0321 E282      LDI	R24,0x22
    0322 93800065  STS	_sound_1,R24
(0190)       	    break;
    0324 C020      RJMP	0x0345
(0191)           case 0x08:  // < C >
(0192) 		      rst_time++;
    0325 91800074  LDS	R24,_rst_time
    0327 91900075  LDS	R25,_rst_time+1
    0329 9601      ADIW	R24,1
    032A 93900075  STS	_rst_time+1,R25
    032C 93800074  STS	_rst_time,R24
(0193) 			  sound_add=0;
    032E 2422      CLR	R2
    032F 2433      CLR	R3
    0330 92300061  STS	0x61,R3
    0332 92200060  STS	0x60,R2
(0194) 			  sound_1 = 0x33;
    0334 E383      LDI	R24,0x33
    0335 93800065  STS	_sound_1,R24
(0195)       	    break;
    0337 C00D      RJMP	0x0345
(0196)           case 0x01:  // < D >
(0197)               rst_time=0;
    0338 2422      CLR	R2
    0339 2433      CLR	R3
    033A 92300075  STS	_rst_time+1,R3
    033C 92200074  STS	_rst_time,R2
(0198) 			  sound_add=0;
    033E 92300061  STS	0x61,R3
    0340 92200060  STS	0x60,R2
(0199) 			  sound_1 = 0x44;
    0342 E484      LDI	R24,0x44
    0343 93800065  STS	_sound_1,R24
(0200)       	    break;
(0201)       	 }
(0202)       if(sound_1 == 0x11)
    0345 91800065  LDS	R24,_sound_1
    0347 3181      CPI	R24,0x11
    0348 F469      BNE	0x0356
(0203) 	    {
(0204) 		 temp1 = music_11[sound_add];
    0349 EA8E      LDI	R24,0xAE
    034A E090      LDI	R25,0
    034B 90200060  LDS	R2,0x60
    034D 90300061  LDS	R3,0x61
    034F 0E28      ADD	R2,R24
    0350 1E39      ADC	R3,R25
    0351 2DE2      MOV	R30,R2
    0352 2DF3      MOV	R31,R3
    0353 95C8      LPM
    0354 92000072  STS	_temp1,R0
(0205) 		}
(0206)       if(sound_1 == 0x22)
    0356 91800065  LDS	R24,_sound_1
    0358 3282      CPI	R24,0x22
    0359 F469      BNE	0x0367
(0207) 	    {
(0208) 		 temp1 = music_22[sound_add];
    035A E580      LDI	R24,0x50
    035B E091      LDI	R25,1
    035C 90200060  LDS	R2,0x60
    035E 90300061  LDS	R3,0x61
    0360 0E28      ADD	R2,R24
    0361 1E39      ADC	R3,R25
    0362 2DE2      MOV	R30,R2
    0363 2DF3      MOV	R31,R3
    0364 95C8      LPM
    0365 92000072  STS	_temp1,R0
(0209) 		}
(0210)       if(sound_1 == 0x33)
    0367 91800065  LDS	R24,_sound_1
    0369 3383      CPI	R24,0x33
    036A F469      BNE	0x0378
(0211) 	    {
(0212) 		 temp1 = music_33[sound_add];
    036B EB80      LDI	R24,0xB0
    036C E091      LDI	R25,1
    036D 90200060  LDS	R2,0x60
    036F 90300061  LDS	R3,0x61
    0371 0E28      ADD	R2,R24
    0372 1E39      ADC	R3,R25
    0373 2DE2      MOV	R30,R2
    0374 2DF3      MOV	R31,R3
    0375 95C8      LPM
    0376 92000072  STS	_temp1,R0
(0213) 		}
(0214)       if(sound_1 == 0x44)
    0378 91800065  LDS	R24,_sound_1
    037A 3484      CPI	R24,0x44
    037B F469      BNE	0x0389
(0215) 	    {
(0216) 		 temp1 = music_44[sound_add];
    037C E482      LDI	R24,0x42
    037D E092      LDI	R25,2
    037E 90200060  LDS	R2,0x60
    0380 90300061  LDS	R3,0x61
    0382 0E28      ADD	R2,R24
    0383 1E39      ADC	R3,R25
    0384 2DE2      MOV	R30,R2
    0385 2DF3      MOV	R31,R3
    0386 95C8      LPM
    0387 92000072  STS	_temp1,R0
(0217) 		}
(0218)       if(sound_1 == 0x88)
    0389 91800065  LDS	R24,_sound_1
    038B 3888      CPI	R24,0x88
    038C F459      BNE	0x0398
(0219) 	    {
(0220) 		 temp1=EEPROMread((int)&sound[sound_add]);
    038D E081      LDI	R24,1
    038E E090      LDI	R25,0
    038F 91000060  LDS	R16,0x60
    0391 91100061  LDS	R17,0x61
    0393 0F08      ADD	R16,R24
    0394 1F19      ADC	R17,R25
    0395 D158      RCALL	_EEPROMread
    0396 93000072  STS	_temp1,R16
(0221) 		}
(0222)       }
(0223)    }
(0224) }
    0398 D0F1      RCALL	pop_gset1
    0399 D129      RCALL	pop_lset
    039A 9518      RETI
(0225) 
(0226) void stop_timer0()
(0227) {
(0228) 	CLI();
_stop_timer0:
    039B 94F8      BCLR	7
(0229) 	TCCR0 = 0x00;//停止timer0
    039C 2422      CLR	R2
    039D BE23      OUT	0x33,R2
(0230) 	MCUCR = 0x00;
    039E BE25      OUT	0x35,R2
(0231)     GIMSK = 0x00;
    039F BE2B      OUT	0x3B,R2
(0232)     TIMSK = 0x00;
    03A0 BE29      OUT	0x39,R2
(0233)     SEI();
    03A1 9478      BSET	7
(0234) }
    03A2 9508      RET
_timer1_ovf_isr:
    03A3 922A      ST	R2,-Y
    03A4 923A      ST	R3,-Y
    03A5 938A      ST	R24,-Y
    03A6 B62F      IN	R2,0x3F
    03A7 922A      ST	R2,-Y
(0235) 
(0236) #pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVF
(0237) void timer1_ovf_isr(void)
(0238) 	 {
(0239) 	    {
(0240) 		 TCNT1=toneconst;
    03A8 90200076  LDS	R2,_toneconst
    03AA 90300077  LDS	R3,_toneconst+1
    03AC BC3D      OUT	0x2D,R3
    03AD BC2C      OUT	0x2C,R2
(0241) 	     PORTC^=1;
    03AE E081      LDI	R24,1
    03AF B225      IN	R2,0x15
    03B0 2628      EOR	R2,R24
    03B1 BA25      OUT	0x15,R2
(0242) 		}
(0243) 	 }	 	 
    03B2 9029      LD	R2,Y+
    03B3 BE2F      OUT	0x3F,R2
    03B4 9189      LD	R24,Y+
    03B5 9039      LD	R3,Y+
    03B6 9029      LD	R2,Y+
    03B7 9518      RETI
(0244) 	 
(0245) void music_car()
(0246) {//音乐机器人程序
(0247)  
(0248)  port_init();//调用端口初始化函数
_music_car:
    03B8 DDCF      RCALL	_port_init
(0249)  
(0250)  work_status = 0x30;//置对应的工作状态标志

⌨️ 快捷键说明

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