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

📄 music_car.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0193)        delay_ms(touch_time);
    01FA EF0A      LDI	R16,0xFA
    01FB E010      LDI	R17,0
    01FC DFA3      RCALL	_delay_ms
(0194)    }
(0195)  if(sw_in == 0x30)// 0b 0011,0000  右侧开关接触
    01FD 9180007E  LDS	R24,_sw_in
    01FF 3380      CPI	R24,0x30
    0200 F441      BNE	0x0209
(0196)    {//后退,左转
(0197)        backward();          //后退
    0201 DFC0      RCALL	_backward
(0198)        delay_ms(touch_time);
    0202 EF0A      LDI	R16,0xFA
    0203 E010      LDI	R17,0
    0204 DF9B      RCALL	_delay_ms
(0199)        
(0200) 	   turn_left();         //左转
    0205 DFAD      RCALL	_turn_left
(0201)        delay_ms(touch_time);
    0206 EF0A      LDI	R16,0xFA
    0207 E010      LDI	R17,0
    0208 DF97      RCALL	_delay_ms
(0202)    }  
(0203)  if(sw_in == 0x60)// 0b 0110,0000  左侧开关接触
    0209 9180007E  LDS	R24,_sw_in
    020B 3680      CPI	R24,0x60
    020C F441      BNE	0x0215
(0204)    {//后退,左转
(0205)        backward();          //后退
    020D DFB4      RCALL	_backward
(0206)        delay_ms(touch_time);
    020E EF0A      LDI	R16,0xFA
    020F E010      LDI	R17,0
    0210 DF8F      RCALL	_delay_ms
(0207)        
(0208) 	   turn_left();         //左转
    0211 DFA1      RCALL	_turn_left
(0209)        delay_ms(touch_time);
    0212 EF0A      LDI	R16,0xFA
    0213 E010      LDI	R17,0
    0214 DF8B      RCALL	_delay_ms
(0210)    }
(0211)  if(sw_in == 0x20)// 0b 0010,0000  两侧开关同时接触,停止运动
    0215 9180007E  LDS	R24,_sw_in
    0217 3280      CPI	R24,0x20
    0218 F4F1      BNE	0x0237
(0212)    {
(0213) 	stop();       //停止运动,熄灭指示灯
    0219 DFB2      RCALL	_stop
(0214)     delay_ms(touch_time*4);
    021A EE08      LDI	R16,0xE8
    021B E013      LDI	R17,3
    021C DF83      RCALL	_delay_ms
    021D C018      RJMP	0x0236
(0215) 	while(1)
(0216) 	     {
(0217) 		  sw_in = PINC & 0x10;
    021E B383      IN	R24,0x13
    021F 7180      ANDI	R24,0x10
    0220 9380007E  STS	_sw_in,R24
(0218) 		  if(sw_in == 0x00)
    0222 2388      TST	R24
    0223 F409      BNE	0x0225
(0219) 		    {break;}
    0224 C012      RJMP	0x0237
(0220) 		  PORTA = 0x55;
    0225 E585      LDI	R24,0x55
    0226 BB8B      OUT	0x1B,R24
(0221) 		  delay_ms(250);
    0227 EF0A      LDI	R16,0xFA
    0228 E010      LDI	R17,0
    0229 DF76      RCALL	_delay_ms
(0222) 		  PORTA = 0xAA;
    022A EA8A      LDI	R24,0xAA
    022B BB8B      OUT	0x1B,R24
(0223) 		  delay_ms(250);
    022C EF0A      LDI	R16,0xFA
    022D E010      LDI	R17,0
    022E DF71      RCALL	_delay_ms
(0224) 		  remote_in = PINB & 0x0f;
    022F B386      IN	R24,0x16
    0230 708F      ANDI	R24,0xF
    0231 9380007D  STS	_remote_in,R24
(0225) 		  if(remote_in != 0x00)
    0233 2388      TST	R24
    0234 F009      BEQ	0x0236
(0226) 		    {break;}
    0235 C001      RJMP	0x0237
    0236 CFE7      RJMP	0x021E
(0227) 		 }
(0228)    }   
(0229) }
    0237 9508      RET
(0230) 
(0231) void mic_startup()
(0232) {//声控启动程序运行
_mic_startup:
    0238 C007      RJMP	0x0240
(0233) 
(0234)  while(1)//等待pc3(声控键)按键按下	
(0235)  {	  //无键按下等待
(0236)   mic_in = PINC & 0x08;     //pc2=0
    0239 B383      IN	R24,0x13
    023A 7088      ANDI	R24,0x8
    023B 9380007C  STS	_mic_in,R24
(0237)   if(mic_in == 0){break;}
    023D 2388      TST	R24
    023E F409      BNE	0x0240
    023F C001      RJMP	0x0241
    0240 CFF8      RJMP	0x0239
(0238)  }//有键按下运行下面的程序
(0239) }
    0241 9508      RET
(0240) 
(0241) //                #       
(0242) //                #
(0243) //                #
(0244) //                #
(0245) //                #    //  delay_time1  转弯时间
(0246) //        # # # # #    //  delay_time2  直行时间
(0247) //      # X       #    //<A>  0x04  delay_time2-50
(0248) //      #   B  C  #    //<B>  0x02  delay_time1+50
(0249) //      #  D  A   #    //<C>  0x08  delay_time1-50
(0250) //      #         #    //<D>  0x01  delay_time2+50
(0251) //        # # # #      // max: 2000   min: 200 
(0252) 
(0253) void remote_auto_time()
(0254) {
(0255)  	  remote_in = PINB & 0x0F;
_remote_auto_time:
    0242 B386      IN	R24,0x16
    0243 708F      ANDI	R24,0xF
    0244 9380007D  STS	_remote_in,R24
(0256)       switch (remote_in)
    0246 2F08      MOV	R16,R24
    0247 2711      CLR	R17
    0248 3000      CPI	R16,0
    0249 0701      CPC	R16,R17
    024A F409      BNE	0x024C
    024B C062      RJMP	0x02AE
    024C 3001      CPI	R16,1
    024D E0E0      LDI	R30,0
    024E 071E      CPC	R17,R30
    024F F409      BNE	0x0251
    0250 C04A      RJMP	0x029B
    0251 3002      CPI	R16,2
    0252 E0E0      LDI	R30,0
    0253 071E      CPC	R17,R30
    0254 F0F1      BEQ	0x0273
    0255 3004      CPI	R16,4
    0256 E0E0      LDI	R30,0
    0257 071E      CPC	R17,R30
    0258 F029      BEQ	0x025E
    0259 3008      CPI	R16,0x8
    025A E0E0      LDI	R30,0
    025B 071E      CPC	R17,R30
    025C F151      BEQ	0x0287
    025D C050      RJMP	0x02AE
(0257)       	{//检测遥控器是否有键按下
(0258)       case 0x04:  // < A >
(0259) 		 delay_time2 = delay_time2 - 50;
    025E 91800078  LDS	R24,_delay_time2
    0260 91900079  LDS	R25,_delay_time2+1
    0262 97C2      SBIW	R24,0x32
    0263 93900079  STS	_delay_time2+1,R25
    0265 93800078  STS	_delay_time2,R24
(0260) 	     if(delay_time2 == 50)
    0267 3382      CPI	R24,0x32
    0268 E0E0      LDI	R30,0
    0269 079E      CPC	R25,R30
    026A F009      BEQ	0x026C
    026B C042      RJMP	0x02AE
(0261) 		   {delay_time2 = 100;}	 
    026C E684      LDI	R24,0x64
    026D E090      LDI	R25,0
    026E 93900079  STS	_delay_time2+1,R25
    0270 93800078  STS	_delay_time2,R24
(0262)       	break;
    0272 C03B      RJMP	0x02AE
(0263)       case 0x02:  // < B >
(0264) 		 delay_time1 = delay_time1 + 50;
    0273 9180007A  LDS	R24,_delay_time1
    0275 9190007B  LDS	R25,_delay_time1+1
    0277 96C2      ADIW	R24,0x32
    0278 9390007B  STS	_delay_time1+1,R25
    027A 9380007A  STS	_delay_time1,R24
(0265) 	     if(delay_time1 == 2050)
    027C 3082      CPI	R24,2
    027D E0E8      LDI	R30,0x8
    027E 079E      CPC	R25,R30
    027F F571      BNE	0x02AE
(0266) 		   {delay_time1 = 2000;}	 
    0280 ED80      LDI	R24,0xD0
    0281 E097      LDI	R25,7
    0282 9390007B  STS	_delay_time1+1,R25
    0284 9380007A  STS	_delay_time1,R24
(0267)       	break;
    0286 C027      RJMP	0x02AE
(0268)       case 0x08:  // < C >
(0269) 		 delay_time1 = delay_time1 - 50;
    0287 9180007A  LDS	R24,_delay_time1
    0289 9190007B  LDS	R25,_delay_time1+1
    028B 97C2      SBIW	R24,0x32
    028C 9390007B  STS	_delay_time1+1,R25
    028E 9380007A  STS	_delay_time1,R24
(0270) 	     if(delay_time1 == 50)
    0290 3382      CPI	R24,0x32
    0291 E0E0      LDI	R30,0
    0292 079E      CPC	R25,R30
    0293 F4D1      BNE	0x02AE
(0271) 		   {delay_time1 = 100;}	 
    0294 E684      LDI	R24,0x64
    0295 E090      LDI	R25,0
    0296 9390007B  STS	_delay_time1+1,R25
    0298 9380007A  STS	_delay_time1,R24
(0272)       	break;
    029A C013      RJMP	0x02AE
(0273)       case 0x01:  // < D >
(0274)          delay_time2 = delay_time2 + 50;
    029B 91800078  LDS	R24,_delay_time2
    029D 91900079  LDS	R25,_delay_time2+1
    029F 96C2      ADIW	R24,0x32
    02A0 93900079  STS	_delay_time2+1,R25
    02A2 93800078  STS	_delay_time2,R24
(0275) 	     if(delay_time2 == 2050)
    02A4 3082      CPI	R24,2
    02A5 E0E8      LDI	R30,0x8
    02A6 079E      CPC	R25,R30
    02A7 F431      BNE	0x02AE
(0276) 		   {delay_time2 = 2000;}	 
    02A8 ED80      LDI	R24,0xD0
    02A9 E097      LDI	R25,7
    02AA 93900079  STS	_delay_time2+1,R25
    02AC 93800078  STS	_delay_time2,R24
(0277)       	break;
(0278)       case 0x00:  // 无按键
(0279) 	     break;
(0280) 		} 
(0281) }
    02AE 9508      RET
FILE: E:\icc\iccavr\sl3010\music_car\music_car.c
(0001) /*******************************************/
(0002) /*            广州天河双龙电子公司         */
(0003) /*            http://www.sl.com.cn         */
(0004) /*              电子音乐演示程序           */
(0005) /*******************************************/
(0006) // 在 icc avr 所在目录的 <include>文件夹中有 "sl3010.c" 文件
(0007) //使用说明:音乐输出端口:PORTC.0,音乐数据存放
(0008) //于AT90S8515 的EEPROM存贮器中。
(0009) // 可以用并口下载软件写入新的音乐文件
(0010) 
(0011) //PA口为音乐灯,当不同的音乐节奏,点亮不同的灯。
(0012) //声控起动音乐机器人程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
(0013) //声控起动后,机器人开始演奏音乐,同时PA口LED灯根据音乐节拍闪烁
(0014) //按遥控器上不同的键后可改变机器人演奏的乐曲。
(0015) //连续 按住 < C > 键时间超过 10s,音乐声停止,等待声控重新起动演奏
(0016) 
(0017) #include <io8515v.h>
(0018) #include <macros.h>
(0019) #include <eeprom.h>
(0020) #include <sl3010.c>
(0021) 
(0022) /* 		  音乐数据  	  */
(0023) /* 四分之一拍为0x10, 二分之一拍为0x20, 一拍为0x40 */
(0024) /* 低1-1 2-2 3-3 4-4 5-5 6-6 7-7 */
(0025) /* 中1-8 2-9 3-A 4-B 5-C 6-D 7-E */
(0026) /* 高1-F */								  	
(0027) #pragma data:eeprom
(0028) unsigned char sound[]={ //乐曲数据表
(0029) //情非得以 
(0030) 0x20,0x1c,0x1d,0x4c,0x4c,0x4c,0x4c,0x20,0x2d,0x19,0x1a,0x19,0x18,0x48,0x48,0x48,
(0031) 0x48,0x47,0x47,0x46,0x46,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
(0032) 
(0033) 0x23,0x24,0x25,0x44,0x45,0x24,0x23,0x22,0x42,0x40,0x40,0x23,0x22,0x21,0x41,0x28,
(0034) 0x48,0x23,0x25,0x45,0x40,0x40,0x21,0x21,0x42,0x21,0x21,0x41,0x20,0x28,0x47,0x26,
(0035) 0x17,0x16,0x15,0x45,0x40,0x31,0x11,0x21,0x21,0x21,0x22,0x42,0x40,0x20,0x23,0x23,
(0036) 0x24,0x25,0x24,0x23,0x24,0x25,0x26,0x23,0x23,0x42,0x42,0x40,0x23,0x22,0x21,0x41,
(0037) 0x28,0x28,0x28,0x23,0x25,0x45,0x45,0x40,0x20,0x25,0x46,0x28,0x28,0x48,0x20,0x29,
(0038) 0x47,0x26,0x17,0x16,0x15,0x45,0x25,0x25,0x26,0x28,0x18,0x16,0x26,0x28,0x26,0x28,
(0039) 0x19,0x19,0x49,0x49,0x20,0x25,0x2a,0x18,0x19,0x29,0x28,0x16,0x17,0x16,0x15,0x25,
(0040) 0x25,0x28,0x29,0x2a,0x29,0x48,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,0x2c,0x1c,0x1a,
(0041) 0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,0x28,0x26,0x48,
(0042) 0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x21,0x18,0x16,0x26,0x28,0x26,0x28,0x29,
(0043) 0x49,0x49,0x20,0x25,0x28,0x29,0x2a,0x29,0x49,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,
(0044) 0x2c,0x15,0x1a,0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,
(0045) 0x28,0x26,0x28,0x28,0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x28,0x28,0x26,0x2a,
(0046) 0x19,0x18,0x28,0x18,0x19,0x48,0x48,0x40,0x40,0x40,0x40,0x28,0x48,0x29,0x28,0x28,
(0047) 0x2a,0x1a,0x1a,0x1a,0x18,0x40,0x20,0x26,0x28,0x28,0x28,0x26,0x28,0x48,0x26,0x25,
(0048) 0x45,0x45,0x40,0x40,0x40,0x28,0x48,0x28,0x28,0x1c,0x1d,0x2d,0x2c,0x28,0x28,0x28,
(0049) 0x20,0x26,0x19,0x1a,0x29,0x19,0x18,0x28,0x28,0x26,0x21,0x29,0x49,0x49,0x40,0x20,
(0050) 0x28,0x29,0x2a,0x4a,0x4a,0x20,0x25,0x28,0x29,0x48,0x48,0x48,0x25,0x25,0x26,0x28,
(0051) 0x28,0x26,0x2a,0x19,0x18,0x28,0x18,0x19,0x49,0x49,0x40,0x40,
(0052) 
(0053) 		0x00,0x00
(0054) 						};
(0055) #pragma data:data						
(0056) /*	  		    音阶表				*/	
(0057) const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
(0058) 			    	 	RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
(0059) /*			  音阶重装常数			*/						
(0060) unsigned int toneconst;								  							   						 				 	 	 
(0061) unsigned int sound_add=0;
(0062) unsigned int rst_time,delay_time1,delay_time2,led_delayms=600;
(0063) unsigned char temp,temp1;
(0064) unsigned char pa,pb,pc,pd,remote_in,timers,cny_in,cny_times,cds,pd_select,remote_select;
(0065) unsigned char gzsl,t0_times;
(0066) unsigned char sound_1,sound_2;
(0067) 
(0068) const unsigned char led_data[]=
(0069)     {//设置LED广告灯数据表
(0070)      0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
(0071)      0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
(0072)      0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
(0073)      0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
(0074)      0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
(0075)      0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
(0076)      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
(0077)      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
(0078)      0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
(0079)      0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
(0080)      0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,
(0081) 	 
(0082)      0x0a,0x0a
(0083)     };
(0084) 
(0085) const unsigned char music_11[]=
(0086) {//七子之歌
(0087)     0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,0x45,0x41,
(0088)     0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,0x25,0x25,
(0089)     0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,0x45,0x41,
(0090)     0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,0x41,0x41,
(0091)     0x41,0x41,0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,
(0092)     0x45,0x41,0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,
(0093)     0x25,0x25,0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,
(0094)     0x45,0x41,0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,
(0095)     0x41,0x41,0x41,0x20,0x25,0x4a,0x29,0x28,0x26,0x25,0x45,0x26,
(0096)     0x46,0x25,0x36,0x18,0x2a,0x28,0x49,0x49,0x49,0x20,0x25,0x4a,
(0097)     0x39,0x18,0x26,0x25,0x45,0x26,0x46,0x25,0x46,0x2a,0x29,0x49,
(0098)     0x49,0x49,0x49,0x4a,0x39,0x18,0x26,0x25,0x45,0x48,0x26,0x25,
(0099)     0x23,0x22,0x41,0x40,0x22,0x23,0x45,0x45,0x45,0x45,0x40,0x25,
(0100) 	0x26,0x48,0x48,0x48,
(0101) 	0x00,0x00
(0102) };
(0103) const unsigned char music_22[]=
(0104) {//走进新时代
(0105) 0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
(0106) 0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x45,0x68,
(0107) 0x29,0x29,0x28,0x26,0x25,0x46,0x46,0x46,0x25,0x26,
(0108) 0x29,0x43,0x25,0x22,0x23,0x22,0x21,0x42,0x42,0x42,0x42,0x63,
(0109) 0x25,0x26,0x25,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x23,0x25,
(0110) 0x28,0x28,0x28,0x28,0x29,0x2a,0x2a,0x29,0x46,0x46,0x46,0x46,

⌨️ 快捷键说明

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