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

📄 sl3010_2.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 5 页
字号:
    0248 3088      CPI	R24,0x8
    0249 F320      BCS	0x022E
(0096) 		}
(0097) 		
(0098) 	 pa = 0x80;
    024A E880      LDI	R24,0x80
    024B 938000E0  STS	_pa,R24
(0099) 	 for(timers=0;timers<8;timers++)
    024D 2422      CLR	R2
    024E 922000DF  STS	_timers,R2
    0250 C018      RJMP	0x0269
(0100) 	    {
(0101) 	     PORTA=~pa;
    0251 902000E0  LDS	R2,_pa
    0253 9420      COM	R2
    0254 BA2B      OUT	0x1B,R2
(0102) 	     delay_ms(led_delayms/2);
    0255 910000D6  LDS	R16,0xD6
    0257 911000D7  LDS	R17,0xD7
    0259 9516      LSR	R17
    025A 9507      ROR	R16
    025B DE34      RCALL	_delay_ms
(0103) 		 pa=pa|(pa>>1);
    025C 902000E0  LDS	R2,_pa
    025E 9426      LSR	R2
    025F 903000E0  LDS	R3,_pa
    0261 2832      OR	R3,R2
    0262 923000E0  STS	_pa,R3
    0264 918000DF  LDS	R24,_timers
    0266 5F8F      SUBI	R24,0xFF
    0267 938000DF  STS	_timers,R24
    0269 918000DF  LDS	R24,_timers
    026B 3088      CPI	R24,0x8
    026C F320      BCS	0x0251
(0104) 		}
(0105) 
(0106) 	 pa = 0xfe;
    026D EF8E      LDI	R24,0xFE
    026E 938000E0  STS	_pa,R24
(0107) 	 for(timers=0;timers<8;timers++)
    0270 2422      CLR	R2
    0271 922000DF  STS	_timers,R2
    0273 C018      RJMP	0x028C
(0108) 	    {
(0109) 	     PORTA=~pa;
    0274 902000E0  LDS	R2,_pa
    0276 9420      COM	R2
    0277 BA2B      OUT	0x1B,R2
(0110) 	     delay_ms(led_delayms/2);
    0278 910000D6  LDS	R16,0xD6
    027A 911000D7  LDS	R17,0xD7
    027C 9516      LSR	R17
    027D 9507      ROR	R16
    027E DE11      RCALL	_delay_ms
(0111) 		 pa=pa & (pa<<1);
    027F 902000E0  LDS	R2,_pa
    0281 0C22      LSL	R2
    0282 903000E0  LDS	R3,_pa
    0284 2032      AND	R3,R2
    0285 923000E0  STS	_pa,R3
    0287 918000DF  LDS	R24,_timers
    0289 5F8F      SUBI	R24,0xFF
    028A 938000DF  STS	_timers,R24
    028C 918000DF  LDS	R24,_timers
    028E 3088      CPI	R24,0x8
    028F F320      BCS	0x0274
(0112) 		}
(0113) 		
(0114) 	 pa = 0x03;
    0290 E083      LDI	R24,3
    0291 938000E0  STS	_pa,R24
(0115) 	 for(timers=0;timers<4;timers++)
    0293 2422      CLR	R2
    0294 922000DF  STS	_timers,R2
    0296 C016      RJMP	0x02AD
(0116) 	    {
(0117) 	     PORTA=~pa;
    0297 902000E0  LDS	R2,_pa
    0299 9420      COM	R2
    029A BA2B      OUT	0x1B,R2
(0118) 	     delay_ms(led_delayms/2);
    029B 910000D6  LDS	R16,0xD6
    029D 911000D7  LDS	R17,0xD7
    029F 9516      LSR	R17
    02A0 9507      ROR	R16
    02A1 DDEE      RCALL	_delay_ms
(0119) 		 pa=pa<<2;
    02A2 902000E0  LDS	R2,_pa
    02A4 0C22      LSL	R2
    02A5 0C22      LSL	R2
    02A6 922000E0  STS	_pa,R2
    02A8 918000DF  LDS	R24,_timers
    02AA 5F8F      SUBI	R24,0xFF
    02AB 938000DF  STS	_timers,R24
    02AD 918000DF  LDS	R24,_timers
    02AF 3084      CPI	R24,4
    02B0 F330      BCS	0x0297
(0120) 		}
(0121) 		
(0122) 	 pa = 0xc0;
    02B1 EC80      LDI	R24,0xC0
    02B2 938000E0  STS	_pa,R24
(0123) 	 for(timers=0;timers<4;timers++)
    02B4 2422      CLR	R2
    02B5 922000DF  STS	_timers,R2
    02B7 C016      RJMP	0x02CE
(0124) 	    {
(0125) 	     PORTA=~pa;
    02B8 902000E0  LDS	R2,_pa
    02BA 9420      COM	R2
    02BB BA2B      OUT	0x1B,R2
(0126) 	     delay_ms(led_delayms/2);
    02BC 910000D6  LDS	R16,0xD6
    02BE 911000D7  LDS	R17,0xD7
    02C0 9516      LSR	R17
    02C1 9507      ROR	R16
    02C2 DDCD      RCALL	_delay_ms
(0127) 		 pa=pa>>2;
    02C3 902000E0  LDS	R2,_pa
    02C5 9426      LSR	R2
    02C6 9426      LSR	R2
    02C7 922000E0  STS	_pa,R2
    02C9 918000DF  LDS	R24,_timers
    02CB 5F8F      SUBI	R24,0xFF
    02CC 938000DF  STS	_timers,R24
    02CE 918000DF  LDS	R24,_timers
    02D0 3084      CPI	R24,4
    02D1 F330      BCS	0x02B8
(0128) 		}
(0129) 		
(0130) 	 pa = 0x03;
    02D2 E083      LDI	R24,3
    02D3 938000E0  STS	_pa,R24
(0131) 	 for(timers=0;timers<4;timers++)
    02D5 2422      CLR	R2
    02D6 922000DF  STS	_timers,R2
    02D8 C019      RJMP	0x02F2
(0132) 	    {
(0133) 	     PORTA=~pa;
    02D9 902000E0  LDS	R2,_pa
    02DB 9420      COM	R2
    02DC BA2B      OUT	0x1B,R2
(0134) 	     delay_ms(led_delayms/2);
    02DD 910000D6  LDS	R16,0xD6
    02DF 911000D7  LDS	R17,0xD7
    02E1 9516      LSR	R17
    02E2 9507      ROR	R16
    02E3 DDAC      RCALL	_delay_ms
(0135) 		 pa=pa | (pa<<2);
    02E4 902000E0  LDS	R2,_pa
    02E6 0C22      LSL	R2
    02E7 0C22      LSL	R2
    02E8 903000E0  LDS	R3,_pa
    02EA 2832      OR	R3,R2
    02EB 923000E0  STS	_pa,R3
    02ED 918000DF  LDS	R24,_timers
    02EF 5F8F      SUBI	R24,0xFF
    02F0 938000DF  STS	_timers,R24
    02F2 918000DF  LDS	R24,_timers
    02F4 3084      CPI	R24,4
    02F5 F318      BCS	0x02D9
(0136) 		}
(0137) 
(0138) 	 pa = 0x3f;
    02F6 E38F      LDI	R24,0x3F
    02F7 938000E0  STS	_pa,R24
(0139) 	 for(timers=0;timers<4;timers++)
    02F9 2422      CLR	R2
    02FA 922000DF  STS	_timers,R2
    02FC C019      RJMP	0x0316
(0140) 	    {
(0141) 	     PORTA=~pa;
    02FD 902000E0  LDS	R2,_pa
    02FF 9420      COM	R2
    0300 BA2B      OUT	0x1B,R2
(0142) 	     delay_ms(led_delayms/2);
    0301 910000D6  LDS	R16,0xD6
    0303 911000D7  LDS	R17,0xD7
    0305 9516      LSR	R17
    0306 9507      ROR	R16
    0307 DD88      RCALL	_delay_ms
(0143) 		 pa=pa & (pa>>2);
    0308 902000E0  LDS	R2,_pa
    030A 9426      LSR	R2
    030B 9426      LSR	R2
    030C 903000E0  LDS	R3,_pa
    030E 2032      AND	R3,R2
    030F 923000E0  STS	_pa,R3
    0311 918000DF  LDS	R24,_timers
    0313 5F8F      SUBI	R24,0xFF
    0314 938000DF  STS	_timers,R24
    0316 918000DF  LDS	R24,_timers
    0318 3084      CPI	R24,4
    0319 F318      BCS	0x02FD
(0144) 		}
(0145) 		
(0146) 	 pa = 0xc0;
    031A EC80      LDI	R24,0xC0
    031B 938000E0  STS	_pa,R24
(0147) 	 for(timers=0;timers<4;timers++)
    031D 2422      CLR	R2
    031E 922000DF  STS	_timers,R2
    0320 C019      RJMP	0x033A
(0148) 	    {
(0149) 	     PORTA=~pa;
    0321 902000E0  LDS	R2,_pa
    0323 9420      COM	R2
    0324 BA2B      OUT	0x1B,R2
(0150) 	     delay_ms(led_delayms/2);
    0325 910000D6  LDS	R16,0xD6
    0327 911000D7  LDS	R17,0xD7
    0329 9516      LSR	R17
    032A 9507      ROR	R16
    032B DD64      RCALL	_delay_ms
(0151) 		 pa=pa | (pa>>2);
    032C 902000E0  LDS	R2,_pa
    032E 9426      LSR	R2
    032F 9426      LSR	R2
    0330 903000E0  LDS	R3,_pa
    0332 2832      OR	R3,R2
    0333 923000E0  STS	_pa,R3
    0335 918000DF  LDS	R24,_timers
    0337 5F8F      SUBI	R24,0xFF
    0338 938000DF  STS	_timers,R24
    033A 918000DF  LDS	R24,_timers
    033C 3084      CPI	R24,4
    033D F318      BCS	0x0321
(0152) 		}
(0153) 		
(0154) 	 pa = 0xfc;
    033E EF8C      LDI	R24,0xFC
    033F 938000E0  STS	_pa,R24
(0155) 	 for(timers=0;timers<4;timers++)
    0341 2422      CLR	R2
    0342 922000DF  STS	_timers,R2
    0344 C019      RJMP	0x035E
(0156) 	    {
(0157) 	     PORTA=~pa;
    0345 902000E0  LDS	R2,_pa
    0347 9420      COM	R2
    0348 BA2B      OUT	0x1B,R2
(0158) 	     delay_ms(led_delayms/2);
    0349 910000D6  LDS	R16,0xD6
    034B 911000D7  LDS	R17,0xD7
    034D 9516      LSR	R17
    034E 9507      ROR	R16
    034F DD40      RCALL	_delay_ms
(0159) 		 pa=pa & (pa<<2);
    0350 902000E0  LDS	R2,_pa
    0352 0C22      LSL	R2
    0353 0C22      LSL	R2
    0354 903000E0  LDS	R3,_pa
    0356 2032      AND	R3,R2
    0357 923000E0  STS	_pa,R3
    0359 918000DF  LDS	R24,_timers
    035B 5F8F      SUBI	R24,0xFF
    035C 938000DF  STS	_timers,R24
    035E 918000DF  LDS	R24,_timers
    0360 3084      CPI	R24,4
    0361 F318      BCS	0x0345
(0160) 		}
(0161) 
(0162)      for(timers=0;;timers++)
    0362 2422      CLR	R2
    0363 922000DF  STS	_timers,R2
(0163) 	    {
(0164) 		 pa = led_data[timers];
    0365 E680      LDI	R24,0x60
    0366 E090      LDI	R25,0
    0367 91E000DF  LDS	R30,_timers
    0369 27FF      CLR	R31
    036A 0FE8      ADD	R30,R24
    036B 1FF9      ADC	R31,R25
    036C 8020      LDD	R2,Z+0
    036D 922000E0  STS	_pa,R2
(0165) 		 if(pa == 0x0a){break;}
    036F 2D82      MOV	R24,R2
    0370 308A      CPI	R24,0xA
    0371 F409      BNE	0x0373
    0372 C010      RJMP	0x0383
(0166) 		 PORTA = pa;
    0373 902000E0  LDS	R2,_pa
    0375 BA2B      OUT	0x1B,R2
(0167) 		 delay_ms(led_delayms/2);
    0376 910000D6  LDS	R16,0xD6
    0378 911000D7  LDS	R17,0xD7
    037A 9516      LSR	R17
    037B 9507      ROR	R16
    037C DD13      RCALL	_delay_ms
    037D 918000DF  LDS	R24,_timers
    037F 5F8F      SUBI	R24,0xFF
    0380 938000DF  STS	_timers,R24
    0382 CFE2      RJMP	0x0365
(0168) 		}
(0169) 		
(0170) 	 pa = 0x55;
    0383 E585      LDI	R24,0x55
    0384 938000E0  STS	_pa,R24
(0171) 	 for(timers=0;timers<16;timers++)
    0386 2422      CLR	R2
    0387 922000DF  STS	_timers,R2
    0389 C012      RJMP	0x039C
(0172) 	    {//8 LED 流水灯
(0173) 	     PORTA=pa;
    038A 902000E0  LDS	R2,_pa
    038C BA2B      OUT	0x1B,R2
(0174) 	     delay_ms(led_delayms);
    038D 910000D6  LDS	R16,0xD6
    038F 911000D7  LDS	R17,0xD7
    0391 DCFE      RCALL	_delay_ms
(0175) 		 pa=~pa;
    0392 902000E0  LDS	R2,_pa
    0394 9420      COM	R2
    0395 922000E0  STS	_pa,R2
    0397 918000DF  LDS	R24,_timers
    0399 5F8F      SUBI	R24,0xFF
    039A 938000DF  STS	_timers,R24
    039C 918000DF  LDS	R24,_timers
    039E 3180      CPI	R24,0x10
    039F F350      BCS	0x038A
(0176) 		}
(0177) 
(0178)      led_delayms = led_delayms - 200;
    03A0 918000D6  LDS	R24,0xD6
    03A2 919000D7  LDS	R25,0xD7
    03A4 5C88      SUBI	R24,0xC8
    03A5 4090      SBCI	R25,0
    03A6 939000D7  STS	0xD7,R25
    03A8 938000D6  STS	0xD6,R24
(0179) 	 if(led_delayms == 200)
    03AA 3C88      CPI	R24,0xC8
    03AB E0E0      LDI	R30,0
    03AC 079E      CPC	R25,R30
    03AD F431      BNE	0x03B4
(0180) 	   {
(0181) 	    led_delayms = 800;
    03AE E280      LDI	R24,0x20
    03AF E093      LDI	R25,3
    03B0 939000D7  STS	0xD7,R25
    03B2 938000D6  STS	0xD6,R24
    03B4 CDF1      RJMP	0x01A6
(0182) 	   }
(0183) 	}
(0184) }
    03B5 9508      RET
_timer1_ovf_isr:
    03B6 922A      ST	R2,-Y
    03B7 923A      ST	R3,-Y
    03B8 938A      ST	R24,-Y
    03B9 B62F      IN	R2,0x3F
    03BA 922A      ST	R2,-Y
(0185) 
(0186) /*******************************************/
(0187) /*              电子音乐演示程序           */
(0188) /*******************************************/
(0189) // 在 icc avr 所在目录的 <include>文件夹中有 "sl3010.c" 文件
(0190) //使用说明:音乐输出端口:PORTC.0,音乐数据存放
(0191) //于AT90S8515 的EEPROM存贮器中。
(0192) // 可以用并口下载软件写入新的音乐文件
(0193) //PA口为音乐灯,当不同的音乐节奏,点亮不同的灯。
(0194) 
(0195) 
(0196) /* 		  音乐数据  	  */
(0197) /* 四分之一拍为0x10, 二分之一拍为0x20, 一拍为0x40*/
(0198) /* 低1-1 2-2 3-3 4-4 5-5 6-6 7-7 */
(0199) /* 中1-8 2-9 3-A 4-B 5-C 6-D 7-E */
(0200) /* 高1-F*/								  	
(0201) #pragma data:eeprom
(0202) unsigned char sound[]={ 0x2a,0x2a,0x4a,0x2a,0x2a,0x4a,0x2a,0x2c,0x28,0x29,
(0203) 	  		   			0x4a,0x4a,0x2b,0x2b,0x2b,0x2b,0x2b,0x2a,0x2a,0x2a,
(0204) 						0x2a,0x29,0x29,0x28,0x49,0x4c,0x2a,0x2a,0x4a,0x2a,
(0205) 						0x2a,0x4a,0x2a,0x2c,0x28,0x29,0x4a,0x4a,0x2b,0x2b,
(0206) 						0x2b,0x2b,0x2b,0x2a,0x2a,0x2a,0x2c,0x2c,0x2b,0x29,
(0207) 						0x48,0x48,
(0208) 						
(0209) 						0x4a,0x2a,0x29,0x28,0x29,0x28,0x27,0x46,0x46,0x46,
(0210)                         0x46,0x4b,0x2b,0x2a,0x29,0x28,0x29,0x2b,0x4a,0x4a,
(0211) 						0x4a,0x4b,0x2b,0x2a,0x49,0x29,0x2b,0x4a,0x2a,0x28,
(0212) 						0x46,0x48,0x47,0x4a,0x29,0x28,0x27,0x28,0x46,0x46,
(0213) 						0x46,0x46,0x4a,0x2a,0x29,0x28,0x29,0x28,0x27,0x46,
(0214) 						0x46,0x46,0x46,0x4b,0x2b,0x2a,0x29,0x28,0x29,0x2b,
(0215) 						0x4a,0x4a,0x4a,0x4b,0x2b,0x2a,0x49,0x29,0x2b,0x4a,
(0216) 						0x2a,0x28,0x46,0x48,0x47,0x4a,0x29,0x28,0x27,0x28,
(0217) 						0x46,0x46,0x46,0x46,0x00
(0218) 						};
(0219) #pragma data:data							  		  						  
(0220) /*	  		    音阶表				*/	
(0221) const unsigned int TONETABLE[15]={DO,RE,MI,FA,SO,LA,TI,DO_H,
(0222) 			    	 	RE_H,MI_H,FA_H,SO_H,LA_H,TI_H,DO_HH};
(0223) /*			  音阶重装常数			*/						
(0224) unsigned int toneconst;								  							   						 				 	 	 
(0225) 
(0226) #pragma interrupt_handler timer1_ovf_isr:iv_TIMER1_OVF
(0227) void timer1_ovf_isr(void)
(0228) 	 {
(0229) 	  TCNT1=toneconst;
    03BB 902000DD  LDS	R2,_toneconst
    03BD 903000DE  LDS	R3,_toneconst+1
    03BF BC3D      OUT	0x2D,R3
    03C0 BC2C      OUT	0x2C,R2
(0230) 	  PORTC^=1;
    03C1 E081      LDI	R24,1
    03C2 B225      IN	R2,0x15

⌨️ 快捷键说明

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