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

📄 sl3010_4.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0247 E010      LDI	R17,0
    0248 DF97      RCALL	_delay_ms
(0202)    }  
(0203)  if(sw_in == 0x60)// 0b 0110,0000  左侧开关接触
    0249 9180007E  LDS	R24,_sw_in
    024B 3680      CPI	R24,0x60
    024C F441      BNE	0x0255
(0204)    {//后退,左转
(0205)        backward();          //后退
    024D DFB4      RCALL	_backward
(0206)        delay_ms(touch_time);
    024E EF0A      LDI	R16,0xFA
    024F E010      LDI	R17,0
    0250 DF8F      RCALL	_delay_ms
(0207)        
(0208) 	   turn_left();         //左转
    0251 DFA1      RCALL	_turn_left
(0209)        delay_ms(touch_time);
    0252 EF0A      LDI	R16,0xFA
    0253 E010      LDI	R17,0
    0254 DF8B      RCALL	_delay_ms
(0210)    }
(0211)  if(sw_in == 0x20)// 0b 0010,0000  两侧开关同时接触,停止运动
    0255 9180007E  LDS	R24,_sw_in
    0257 3280      CPI	R24,0x20
    0258 F4F1      BNE	0x0277
(0212)    {
(0213) 	stop();       //停止运动,熄灭指示灯
    0259 DFB2      RCALL	_stop
(0214)     delay_ms(touch_time*4);
    025A EE08      LDI	R16,0xE8
    025B E013      LDI	R17,3
    025C DF83      RCALL	_delay_ms
    025D C018      RJMP	0x0276
(0215) 	while(1)
(0216) 	     {
(0217) 		  sw_in = PINC & 0x10;
    025E B383      IN	R24,0x13
    025F 7180      ANDI	R24,0x10
    0260 9380007E  STS	_sw_in,R24
(0218) 		  if(sw_in == 0x00)
    0262 2388      TST	R24
    0263 F409      BNE	0x0265
(0219) 		    {break;}
    0264 C012      RJMP	0x0277
(0220) 		  PORTA = 0x55;
    0265 E585      LDI	R24,0x55
    0266 BB8B      OUT	0x1B,R24
(0221) 		  delay_ms(250);
    0267 EF0A      LDI	R16,0xFA
    0268 E010      LDI	R17,0
    0269 DF76      RCALL	_delay_ms
(0222) 		  PORTA = 0xAA;
    026A EA8A      LDI	R24,0xAA
    026B BB8B      OUT	0x1B,R24
(0223) 		  delay_ms(250);
    026C EF0A      LDI	R16,0xFA
    026D E010      LDI	R17,0
    026E DF71      RCALL	_delay_ms
(0224) 		  remote_in = PINB & 0x0f;
    026F B386      IN	R24,0x16
    0270 708F      ANDI	R24,0xF
    0271 9380007D  STS	_remote_in,R24
(0225) 		  if(remote_in != 0x00)
    0273 2388      TST	R24
    0274 F009      BEQ	0x0276
(0226) 		    {break;}
    0275 C001      RJMP	0x0277
    0276 CFE7      RJMP	0x025E
(0227) 		 }
(0228)    }   
(0229) }
    0277 9508      RET
(0230) 
(0231) void mic_startup()
(0232) {//声控启动程序运行
_mic_startup:
    0278 C007      RJMP	0x0280
(0233) 
(0234)  while(1)//等待pc3(声控键)按键按下	
(0235)  {	  //无键按下等待
(0236)   mic_in = PINC & 0x08;     //pc2=0
    0279 B383      IN	R24,0x13
    027A 7088      ANDI	R24,0x8
    027B 9380007C  STS	_mic_in,R24
(0237)   if(mic_in == 0){break;}
    027D 2388      TST	R24
    027E F409      BNE	0x0280
    027F C001      RJMP	0x0281
    0280 CFF8      RJMP	0x0279
(0238)  }//有键按下运行下面的程序
(0239) }
    0281 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:
    0282 B386      IN	R24,0x16
    0283 708F      ANDI	R24,0xF
    0284 9380007D  STS	_remote_in,R24
(0256)       switch (remote_in)
    0286 2F08      MOV	R16,R24
    0287 2711      CLR	R17
    0288 3000      CPI	R16,0
    0289 0701      CPC	R16,R17
    028A F409      BNE	0x028C
    028B C062      RJMP	0x02EE
    028C 3001      CPI	R16,1
    028D E0E0      LDI	R30,0
    028E 071E      CPC	R17,R30
    028F F409      BNE	0x0291
    0290 C04A      RJMP	0x02DB
    0291 3002      CPI	R16,2
    0292 E0E0      LDI	R30,0
    0293 071E      CPC	R17,R30
    0294 F0F1      BEQ	0x02B3
    0295 3004      CPI	R16,4
    0296 E0E0      LDI	R30,0
    0297 071E      CPC	R17,R30
    0298 F029      BEQ	0x029E
    0299 3008      CPI	R16,0x8
    029A E0E0      LDI	R30,0
    029B 071E      CPC	R17,R30
    029C F151      BEQ	0x02C7
    029D C050      RJMP	0x02EE
(0257)       	{//检测遥控器是否有键按下
(0258)       case 0x04:  // < A >
(0259) 		 delay_time2 = delay_time2 - 50;
    029E 91800078  LDS	R24,_delay_time2
    02A0 91900079  LDS	R25,_delay_time2+1
    02A2 97C2      SBIW	R24,0x32
    02A3 93900079  STS	_delay_time2+1,R25
    02A5 93800078  STS	_delay_time2,R24
(0260) 	     if(delay_time2 == 50)
    02A7 3382      CPI	R24,0x32
    02A8 E0E0      LDI	R30,0
    02A9 079E      CPC	R25,R30
    02AA F009      BEQ	0x02AC
    02AB C042      RJMP	0x02EE
(0261) 		   {delay_time2 = 100;}	 
    02AC E684      LDI	R24,0x64
    02AD E090      LDI	R25,0
    02AE 93900079  STS	_delay_time2+1,R25
    02B0 93800078  STS	_delay_time2,R24
(0262)       	break;
    02B2 C03B      RJMP	0x02EE
(0263)       case 0x02:  // < B >
(0264) 		 delay_time1 = delay_time1 + 50;
    02B3 9180007A  LDS	R24,_delay_time1
    02B5 9190007B  LDS	R25,_delay_time1+1
    02B7 96C2      ADIW	R24,0x32
    02B8 9390007B  STS	_delay_time1+1,R25
    02BA 9380007A  STS	_delay_time1,R24
(0265) 	     if(delay_time1 == 2050)
    02BC 3082      CPI	R24,2
    02BD E0E8      LDI	R30,0x8
    02BE 079E      CPC	R25,R30
    02BF F571      BNE	0x02EE
(0266) 		   {delay_time1 = 2000;}	 
    02C0 ED80      LDI	R24,0xD0
    02C1 E097      LDI	R25,7
    02C2 9390007B  STS	_delay_time1+1,R25
    02C4 9380007A  STS	_delay_time1,R24
(0267)       	break;
    02C6 C027      RJMP	0x02EE
(0268)       case 0x08:  // < C >
(0269) 		 delay_time1 = delay_time1 - 50;
    02C7 9180007A  LDS	R24,_delay_time1
    02C9 9190007B  LDS	R25,_delay_time1+1
    02CB 97C2      SBIW	R24,0x32
    02CC 9390007B  STS	_delay_time1+1,R25
    02CE 9380007A  STS	_delay_time1,R24
(0270) 	     if(delay_time1 == 50)
    02D0 3382      CPI	R24,0x32
    02D1 E0E0      LDI	R30,0
    02D2 079E      CPC	R25,R30
    02D3 F4D1      BNE	0x02EE
(0271) 		   {delay_time1 = 100;}	 
    02D4 E684      LDI	R24,0x64
    02D5 E090      LDI	R25,0
    02D6 9390007B  STS	_delay_time1+1,R25
    02D8 9380007A  STS	_delay_time1,R24
(0272)       	break;
    02DA C013      RJMP	0x02EE
(0273)       case 0x01:  // < D >
(0274)          delay_time2 = delay_time2 + 50;
    02DB 91800078  LDS	R24,_delay_time2
    02DD 91900079  LDS	R25,_delay_time2+1
    02DF 96C2      ADIW	R24,0x32
    02E0 93900079  STS	_delay_time2+1,R25
    02E2 93800078  STS	_delay_time2,R24
(0275) 	     if(delay_time2 == 2050)
    02E4 3082      CPI	R24,2
    02E5 E0E8      LDI	R30,0x8
    02E6 079E      CPC	R25,R30
    02E7 F431      BNE	0x02EE
(0276) 		   {delay_time2 = 2000;}	 
    02E8 ED80      LDI	R24,0xD0
    02E9 E097      LDI	R25,7
    02EA 93900079  STS	_delay_time2+1,R25
    02EC 93800078  STS	_delay_time2,R24
(0277)       	break;
(0278)       case 0x00:  // 无按键
(0279) 	     break;
(0280) 		} 
(0281) }
    02EE 9508      RET
FILE: E:\icc\iccavr\sl3010\sl3010_4\sl3010_4.c
(0001) /*******************************************/
(0002) /*            广州天河双龙电子公司         */
(0003) /*            http://www.sl.com.cn         */
(0004) /*     020-85510191,87578852,87578872      */
(0005) /*              nikko@sl.com.cn            */
(0006) /*******************************************/
(0007) 
(0008) //遥控器没有按键或者 pd3,pd2,pd1,pd0 短路块全部不接上,全为高电平
(0009) //机器人运行音乐机器人程序。     
(0010) 	//PA口为音乐灯,当不同的音乐节奏,点亮不同的灯。
(0011)     //声控起动音乐机器人程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
(0012)     //声控起动后,机器人开始演奏音乐,同时PA口LED灯根据音乐节拍闪烁
(0013)     //按遥控器上不同的键后可改变机器人演奏的乐曲。
(0014) 
(0015) //将 pd0 接低电平,pd3,pd2,pd1 保持高电平,只连接pd0的短路块
(0016) //       或按下遥控器<A>(保持 0.5s)        进入遥控机器人运行环境 
(0017)          //声控起动遥控车程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
(0018)          //声控起动后,机器人开始动作
(0019)          //遥控器无按键,机器人直行
(0020)          //按住 < A > 键,机器人右转,同时演奏右转指示音乐;
(0021)          //按住 < B > 键,机器人后退,同时演奏后退指示音乐;
(0022)          //按住 < C > 键,机器人停止,同时演奏停止指示音乐;
(0023)          //按住 < D > 键,机器人左转,同时演奏左转指示音乐;
(0024)          //释放遥控器按键,音乐停止
(0025) 
(0026) //将 pd1 接低电平,pd3,pd2,pd0 保持高电平,只连接pd1的短路块
(0027) //       或按下遥控器<B>(保持 0.5s)        寻迹机器人,探测白底黑线,沿黑线行进 
(0028)          //声控起动寻迹机器人程序,未起动时,PA口的 8 LED 呈广告灯效果(霓虹灯)
(0029)          //声控起动后,机器人开始动作,PA口的 8 LED 指示运动状态
(0030) 
(0031) //将 pd2 接低电平,pd3,pd1,pd0 保持高电平,只连接pd2的短路块
(0032) //       或按下遥控器<C>(保持 0.5s)        机器人避障碍、避悬崖行进 
(0033)          //声控起动避悬崖,壁障碍运行程序,未起动时,PA口的8 LED 呈广告灯效果(霓虹灯)
(0034)          //声控起动后,机器人开始动作,PA口的 8 LED 指示运动状态
(0035)          //探测到边缘,后退、转弯,并以伴有音乐提示。
(0036) 
(0037) //将 pd3 接低电平,pd2,pd1,pd0 保持高电平,只连接pd3的短路块
(0038) //       或按下遥控器<D>(保持 0.5s)        机器人按程序设定路线行走,走四方形,同时演奏音乐 
(0039)          //自走车   机器人走四方形路线,遥控器调节行走路线
(0040)          //声控起动机器人按设定路线行走,未起动时,PA口的 8 LED 呈广告灯效果(霓虹灯)
(0041)          //声控起动后,机器人开始动作,PA口的 8 LED 指示运动状态
(0042) 
(0043) //程序等待声控起动运行,未启动运行时机器人运行霓虹车程序。
(0044) //连续按住遥控器 < C > 键超过 10s 起动看门狗,再过 1s 系统复位
(0045) 
(0046) //将 sl3010.c 文件拷贝到 icc avr 安装目录的<include>文件夹
(0047) //sl3010.c 是sl3010机器人板的子函数库
(0048) //程序中调用此文件后 #include <sl3010.c>
(0049) //可直接调用里面的函数和变量
(0050) 
(0051) //  最后更新:2003.04.17
(0052) 
(0053) #include <io8515v.h>
(0054) #include <macros.h>
(0055) #include <sl3010.c>
(0056) #include <eeprom.h>
(0057) 
(0058) #define xuanya_delayms  300
(0059) #define cny_delayms 50
(0060) #define light_delay 100
(0061) 
(0062) /* 		  音乐数据  	  */
(0063) /* 四分之一拍为0x10, 二分之一拍为0x20, 一拍为0x40 */
(0064) /* 低1-1 2-2 3-3 4-4 5-5 6-6 7-7 */
(0065) /* 中1-8 2-9 3-A 4-B 5-C 6-D 7-E */
(0066) /* 高1-F */								  	
(0067) #pragma data:eeprom
(0068) unsigned char sound[]={ //乐曲数据表
(0069) //情非得以 
(0070) 0x20,0x1c,0x1d,0x4c,0x4c,0x4c,0x4c,0x20,0x2d,0x19,0x1a,0x19,0x18,0x48,0x48,0x48,
(0071) 0x48,0x47,0x47,0x46,0x46,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,0x45,
(0072) 
(0073) 0x23,0x24,0x25,0x44,0x45,0x24,0x23,0x22,0x42,0x40,0x40,0x23,0x22,0x21,0x41,0x28,
(0074) 0x48,0x23,0x25,0x45,0x40,0x40,0x21,0x21,0x42,0x21,0x21,0x41,0x20,0x28,0x47,0x26,
(0075) 0x17,0x16,0x15,0x45,0x40,0x31,0x11,0x21,0x21,0x21,0x22,0x42,0x40,0x20,0x23,0x23,
(0076) 0x24,0x25,0x24,0x23,0x24,0x25,0x26,0x23,0x23,0x42,0x42,0x40,0x23,0x22,0x21,0x41,
(0077) 0x28,0x28,0x28,0x23,0x25,0x45,0x45,0x40,0x20,0x25,0x46,0x28,0x28,0x48,0x20,0x29,
(0078) 0x47,0x26,0x17,0x16,0x15,0x45,0x25,0x25,0x26,0x28,0x18,0x16,0x26,0x28,0x26,0x28,
(0079) 0x19,0x19,0x49,0x49,0x20,0x25,0x2a,0x18,0x19,0x29,0x28,0x16,0x17,0x16,0x15,0x25,
(0080) 0x25,0x28,0x29,0x2a,0x29,0x48,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,0x2c,0x1c,0x1a,
(0081) 0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,0x28,0x26,0x48,
(0082) 0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x21,0x18,0x16,0x26,0x28,0x26,0x28,0x29,
(0083) 0x49,0x49,0x20,0x25,0x28,0x29,0x2a,0x29,0x49,0x28,0x48,0x2c,0x4c,0x4c,0x40,0x2a,
(0084) 0x2c,0x15,0x1a,0x2a,0x2a,0x29,0x4a,0x2b,0x2a,0x4a,0x4a,0x40,0x2a,0x29,0x29,0x28,
(0085) 0x28,0x26,0x28,0x28,0x29,0x26,0x45,0x45,0x40,0x25,0x25,0x26,0x28,0x28,0x26,0x2a,
(0086) 0x19,0x18,0x28,0x18,0x19,0x48,0x48,0x40,0x40,0x40,0x40,0x28,0x48,0x29,0x28,0x28,
(0087) 0x2a,0x1a,0x1a,0x1a,0x18,0x40,0x20,0x26,0x28,0x28,0x28,0x26,0x28,0x48,0x26,0x25,
(0088) 0x45,0x45,0x40,0x40,0x40,0x28,0x48,0x28,0x28,0x1c,0x1d,0x2d,0x2c,0x28,0x28,0x28,
(0089) 0x20,0x26,0x19,0x1a,0x29,0x19,0x18,0x28,0x28,0x26,0x21,0x29,0x49,0x49,0x40,0x20,
(0090) 0x28,0x29,0x2a,0x4a,0x4a,0x20,0x25,0x28,0x29,0x48,0x48,0x48,0x25,0x25,0x26,0x28,
(0091) 0x28,0x26,0x2a,0x19,0x18,0x28,0x18,0x19,0x49,0x49,0x40,0x40,
(0092) 
(0093) 		0x00,0x00
(0094) 						};
(0095) #pragma data:data						
(0096) /*	  		    音阶表				*/	
(0097) const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
(0098) 			    	 	RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
(0099) /*			  音阶重装常数			*/						
(0100) unsigned int toneconst;								  							   						 				 	 	 
(0101) unsigned int sound_add=0;
(0102) unsigned int rst_time,delay_time1,delay_time2,led_delayms=600;
(0103) unsigned char temp,temp1;
(0104) unsigned char pa,pb,pc,pd,remote_in,timers,cny_in,cny_times,cds,pd_select,remote_select;
(0105) unsigned char gzsl,t0_times;
(0106) unsigned char sound_1,sound_2;
(0107) 
(0108) const unsigned char led_data[]=
(0109)     {//设置LED广告灯数据表
(0110)      0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
(0111)      0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,
(0112)      0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
(0113)      0x00,0x18,0x3c,0x7e,0xff,0x7e,0x3c,0x18,
(0114)      0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
(0115)      0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x8f,0xc7,0xe3,0xf1,
(0116)      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
(0117)      0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,
(0118)      0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
(0119)      0xff,0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,
(0120)      0xff,0x00,0xff,0x00,0xff,0x00,0xff,0x00,
(0121) 	 
(0122)      0x0a,0x0a
(0123)     };
(0124) 
(0125) const unsigned char music_11[]=
(0126) {//七子之歌
(0127)     0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,0x45,0x41,
(0128)     0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,0x25,0x25,
(0129)     0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,0x45,0x41,
(0130)     0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,0x41,0x41,
(0131)     0x41,0x41,0x45,0x23,0x25,0x23,0x65,0x26,0x25,0x23,0x26,0x45,
(0132)     0x45,0x41,0x21,0x22,0x43,0x25,0x23,0x42,0x20,0x23,0x45,0x45,
(0133)     0x25,0x25,0x26,0x25,0x23,0x45,0x25,0x26,0x25,0x28,0x26,0x45,
(0134)     0x45,0x41,0x25,0x23,0x22,0x21,0x42,0x23,0x65,0x25,0x22,0x43,
(0135)     0x41,0x41,0x41,0x20,0x25,0x4a,0x29,0x28,0x26,0x25,0x45,0x26,
(0136)     0x46,0x25,0x36,0x18,0x2a,0x28,0x49,0x49,0x49,0x20,0x25,0x4a,
(0137)     0x39,0x18,0x26,0x25,0x45,0x26,0x46,0x25,0x46,0x2a,0x29,0x49,
(0138)     0x49,0x49,0x49,0x4a,0x39,0x18,0x26,0x25,0x45,0x48,0x26,0x25,
(0139)     0x23,0x22,0x41,0x40,0x22,0x23,0x45,0x45,0x45,0x45,0x40,0x25,
(0140) 	0x26,0x48,0x48,0x48,
(0141) 	0x00,0x00
(0142) };
(0143) const unsigned char music_22[]=
(0144) {//走进新时代
(0145) 0x68,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x23,0x25,
(0146) 0x28,0x48,0x28,0x29,0x2a,0x29,0x26,0x45,0x45,0x45,0x45,0x68,
(0147) 0x29,0x29,0x28,0x26,0x25,0x46,0x46,0x46,0x25,0x26,
(0148) 0x29,0x43,0x25,0x22,0x23,0x22,0x21,0x42,0x42,0x42,0x42,0x63,
(0149) 0x25,0x26,0x25,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x23,0x25,
(0150) 0x28,0x28,0x28,0x28,0x29,0x2a,0x2a,0x29,0x46,0x46,0x46,0x46,
(0151) 0x46,0x29,0x2a,0x28,0x28,0x26,0x25,0x26,0x26,0x25,0x43,0x43,
(0152) 0x22,0x42,0x26,0x25,0x23,0x22,0x13,0x12,0x41,0x41,0x41,0x41,

⌨️ 快捷键说明

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