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

📄 text1.lst

📁 AVR单片机应用开发指南及实例,包含许多实例,挺不错
💻 LST
📖 第 1 页 / 共 3 页
字号:
    029B 9125      LPM	R18,Z+
    029C 9134      LPM	R19,0(Z)
    029D E584      LDI	R24,0x54
    029E E090      LDI	R25,0
    029F 01F1      MOVW	R30,R2
    02A0 0FE8      ADD	R30,R24
    02A1 1FF9      ADC	R31,R25
    02A2 9105      LPM	R16,Z+
    02A3 9114      LPM	R17,0(Z)
    02A4 DF78      RCALL	_sound
(0125)             i++;
    02A5 9543      INC	R20
(0126) 			remote_in = PINB & 0xF0;        //再检测,若有键按下,中断播放并返回
    02A6 B386      IN	R24,0x16
    02A7 7F80      ANDI	R24,0xF0
    02A8 93800062  STS	remote_in,R24
(0127) 			if(remote_in!=0)
    02AA 2388      TST	R24
    02AB F009      BEQ	0x02AD
(0128) 			return;
    02AC C00E      RJMP	0x02BB
    02AD E084      LDI	R24,4
    02AE 9F84      MUL	R24,R20
    02AF 01F0      MOVW	R30,R0
    02B0 E586      LDI	R24,0x56
    02B1 E090      LDI	R25,0
    02B2 0FE8      ADD	R30,R24
    02B3 1FF9      ADC	R31,R25
    02B4 9005      LPM	R0,Z+
    02B5 9014      LPM	R1,0(Z)
    02B6 01F0      MOVW	R30,R0
    02B7 30E0      CPI	R30,0
    02B8 07EF      CPC	R30,R31
    02B9 F6C9      BNE	0x0293
(0129)             }
(0130)        i=17;     
    02BA E141      LDI	R20,0x11
    02BB 940E03E5  CALL	pop_gset1
    02BD 9508      RET
_play_3:
  i                    --> R20
    02BE 940E03E2  CALL	push_gset1
(0131)       
(0132)    }
(0133) void play_3(void)
(0134)   {
(0135)    unsigned char i=33;
    02C0 E241      LDI	R20,0x21
(0136)    music_init();  //MCU初始化
    02C1 DF2C      RCALL	_music_init
    02C2 C01A      RJMP	0x02DD
(0137)    
(0138)        while(music_data[i][1]!=0)//是否终止
(0139)            {
(0140)             sound(music_data[i][0],music_data[i][1]);
    02C3 E084      LDI	R24,4
    02C4 9F84      MUL	R24,R20
    02C5 0110      MOVW	R2,R0
    02C6 E586      LDI	R24,0x56
    02C7 E090      LDI	R25,0
    02C8 01F1      MOVW	R30,R2
    02C9 0FE8      ADD	R30,R24
    02CA 1FF9      ADC	R31,R25
    02CB 9125      LPM	R18,Z+
    02CC 9134      LPM	R19,0(Z)
    02CD E584      LDI	R24,0x54
    02CE E090      LDI	R25,0
    02CF 01F1      MOVW	R30,R2
    02D0 0FE8      ADD	R30,R24
    02D1 1FF9      ADC	R31,R25
    02D2 9105      LPM	R16,Z+
    02D3 9114      LPM	R17,0(Z)
    02D4 DF48      RCALL	_sound
(0141)             i++;
    02D5 9543      INC	R20
(0142) 			remote_in = PINB & 0xF0;     //再检测,若有键按下,中断播放并返回
    02D6 B386      IN	R24,0x16
    02D7 7F80      ANDI	R24,0xF0
    02D8 93800062  STS	remote_in,R24
(0143) 			if(remote_in!=0)
    02DA 2388      TST	R24
    02DB F009      BEQ	0x02DD
(0144) 			return;
    02DC C00E      RJMP	0x02EB
    02DD E084      LDI	R24,4
    02DE 9F84      MUL	R24,R20
    02DF 01F0      MOVW	R30,R0
    02E0 E586      LDI	R24,0x56
    02E1 E090      LDI	R25,0
    02E2 0FE8      ADD	R30,R24
    02E3 1FF9      ADC	R31,R25
    02E4 9005      LPM	R0,Z+
    02E5 9014      LPM	R1,0(Z)
    02E6 01F0      MOVW	R30,R0
    02E7 30E0      CPI	R30,0
    02E8 07EF      CPC	R30,R31
    02E9 F6C9      BNE	0x02C3
(0145)             }
(0146)        i=33;     
    02EA E241      LDI	R20,0x21
    02EB 940E03E5  CALL	pop_gset1
    02ED 9508      RET
_play_4:
  i                    --> R20
    02EE 940E03E2  CALL	push_gset1
(0147)        
(0148)    }
(0149) void play_4(void)
(0150)   {
(0151)    unsigned char i=45;
    02F0 E24D      LDI	R20,0x2D
(0152)    music_init();  //MCU初始化
    02F1 DEFC      RCALL	_music_init
    02F2 C01B      RJMP	0x030E
(0153)    
(0154)        while(music_data[i][1]!=0)//是否终止
(0155)            {
(0156)             sound(music_data[i][0],music_data[i][1]);
    02F3 E084      LDI	R24,4
    02F4 9F84      MUL	R24,R20
    02F5 0110      MOVW	R2,R0
    02F6 E586      LDI	R24,0x56
    02F7 E090      LDI	R25,0
    02F8 01F1      MOVW	R30,R2
    02F9 0FE8      ADD	R30,R24
    02FA 1FF9      ADC	R31,R25
    02FB 9125      LPM	R18,Z+
    02FC 9134      LPM	R19,0(Z)
    02FD E584      LDI	R24,0x54
    02FE E090      LDI	R25,0
    02FF 01F1      MOVW	R30,R2
    0300 0FE8      ADD	R30,R24
    0301 1FF9      ADC	R31,R25
    0302 9105      LPM	R16,Z+
    0303 9114      LPM	R17,0(Z)
    0304 DF18      RCALL	_sound
(0157)             i++;
    0305 9543      INC	R20
(0158) 			remote_in = PINB & 0xF0;
    0306 B386      IN	R24,0x16
    0307 7F80      ANDI	R24,0xF0
    0308 93800062  STS	remote_in,R24
(0159) 			while(remote_in!=0)        //再检测,若有键按下,中断播放并返回
    030A 90200062  LDS	R2,remote_in
    030C 2022      TST	R2
    030D F471      BNE	0x031C
    030E E084      LDI	R24,4
    030F 9F84      MUL	R24,R20
    0310 01F0      MOVW	R30,R0
    0311 E586      LDI	R24,0x56
    0312 E090      LDI	R25,0
    0313 0FE8      ADD	R30,R24
    0314 1FF9      ADC	R31,R25
    0315 9005      LPM	R0,Z+
    0316 9014      LPM	R1,0(Z)
    0317 01F0      MOVW	R30,R0
    0318 30E0      CPI	R30,0
    0319 07EF      CPC	R30,R31
    031A F6C1      BNE	0x02F3
(0160) 			return;
(0161)             }
(0162)        i=45;     
    031B E24D      LDI	R20,0x2D
    031C 940E03E5  CALL	pop_gset1
    031E 9508      RET
(0163)        
(0164)    }
(0165) /*******************************
(0166)           主程序
(0167) *******************************/ 
(0168) 
(0169) void main(void)
(0170) {//遥控车程序
(0171)  
(0172)  port_init();//调用端口初始化函数
_main:
    031F DDA2      RCALL	_port_init
(0173)  PORTA = 0xFF;
    0320 EF8F      LDI	R24,0xFF
    0321 BB8B      OUT	0x1B,R24
(0174)  mic_startup();//等待声控启动函数
    0322 DE49      RCALL	_mic_startup
(0175)  PORTA = 0x00;
    0323 2422      CLR	R2
    0324 BA2B      OUT	0x1B,R2
(0176)  delay_ms(20);
    0325 E104      LDI	R16,0x14
    0326 E010      LDI	R17,0
    0327 DDB1      RCALL	_delay_ms
    0328 C038      RJMP	0x0361
(0177)  while(1)
(0178)      {	  
(0179) 	  remote_in = PINB & 0xF0;
    0329 B386      IN	R24,0x16
    032A 7F80      ANDI	R24,0xF0
    032B 93800062  STS	remote_in,R24
(0180)       switch (remote_in)
    032D 2F48      MOV	R20,R24
    032E 2755      CLR	R21
    032F 3240      CPI	R20,0x20
    0330 E0E0      LDI	R30,0
    0331 075E      CPC	R21,R30
    0332 F119      BEQ	0x0356
    0333 E280      LDI	R24,0x20
    0334 E090      LDI	R25,0
    0335 1784      CP	R24,R20
    0336 0795      CPC	R25,R21
    0337 F064      BLT	0x0344
    0338 3040      CPI	R20,0
    0339 0745      CPC	R20,R21
    033A F0B1      BEQ	0x0351
    033B 3040      CPI	R20,0
    033C E0E0      LDI	R30,0
    033D 075E      CPC	R21,R30
    033E F114      BLT	0x0361
    033F 3140      CPI	R20,0x10
    0340 E0E0      LDI	R30,0
    0341 075E      CPC	R21,R30
    0342 F0C9      BEQ	0x035C
    0343 C01D      RJMP	0x0361
    0344 3440      CPI	R20,0x40
    0345 E0E0      LDI	R30,0
    0346 075E      CPC	R21,R30
    0347 F089      BEQ	0x0359
    0348 3440      CPI	R20,0x40
    0349 E0E0      LDI	R30,0
    034A 075E      CPC	R21,R30
    034B F0AC      BLT	0x0361
    034C 3840      CPI	R20,0x80
    034D E0E0      LDI	R30,0
    034E 075E      CPC	R21,R30
    034F F079      BEQ	0x035F
    0350 C010      RJMP	0x0361
(0181)       	{//检测遥控器是否有键按下
(0182)       case 0x00:
(0183) 	  {
(0184) 		 stop();           //停止运动
    0351 DDB4      RCALL	_stop
(0185) 		 delay_ms(10);
    0352 E00A      LDI	R16,0xA
    0353 E010      LDI	R17,0
    0354 DD84      RCALL	_delay_ms
(0186)       	break;
    0355 C00B      RJMP	0x0361
(0187) 		}
(0188)       case 0x20:
(0189) 	  {  // < A >
(0190) 		 turn_right();        //右转
    0356 DD91      RCALL	_turn_right
(0191) 		 play_1();            //播放乐曲1
    0357 DF06      RCALL	_play_1
(0192)       	break;
    0358 C008      RJMP	0x0361
(0193) 		}
(0194)       case 0x40:
(0195) 	  {  // < B >
(0196) 		 backward();          //后退
    0359 DDA2      RCALL	_backward
(0197) 		 play_2();           //播放乐曲2
    035A DF33      RCALL	_play_2
(0198)       	break;
    035B C005      RJMP	0x0361
(0199) 		}
(0200)       case 0x10:  
(0201) 	  {// < C >
(0202) 		forward();              //前进
    035C DDA4      RCALL	_forward
(0203) 		 play_3();              //播放乐曲3
    035D DF60      RCALL	_play_3
(0204)       	break;
    035E C002      RJMP	0x0361
(0205) 		}
(0206)       case 0x80: 
(0207) 	  { // < D >
(0208)          turn_left();         //左转
    035F DD8D      RCALL	_turn_left
(0209) 		 play_4();    //播放乐曲4
FILE: <library>
    0360 DF8D      RCALL	_play_4
    0361 CFC7      RJMP	0x0329
    0362 9508      RET
div32u:
    0363 94E8      BCLR	6
    0364 C001      RJMP	0x0366
mod32u:
    0365 9468      BSET	6
    0366 D02F      RCALL	long_div_prolog
    0367 24CC      CLR	R12
    0368 C008      RJMP	0x0371
div32s:
    0369 94E8      BCLR	6
    036A C001      RJMP	0x036C
mod32s:
    036B 9468      BSET	6
    036C D029      RCALL	long_div_prolog
    036D FD37      SBRC	R19,7
    036E D053      RCALL	neg_R16_R19
    036F FDB7      SBRC	R27,7
    0370 D05A      RCALL	neg_R24_R27
    0371 2477      CLR	R7
    0372 2488      CLR	R8
    0373 2499      CLR	R9
    0374 24AA      CLR	R10
    0375 24BB      CLR	R11
    0376 D041      RCALL	tst_R16_R19
    0377 F0C1      BEQ	0x0390
    0378 D044      RCALL	tst_R24_R27
    0379 F0B1      BEQ	0x0390
    037A E2E8      LDI	R30,0x28
    037B 0F00      LSL	R16
    037C 1F11      ROL	R17
    037D 1F22      ROL	R18
    037E 1F33      ROL	R19
    037F 1C77      ROL	R7
    0380 1C88      ROL	R8
    0381 1C99      ROL	R9
    0382 1CAA      ROL	R10
    0383 1CBB      ROL	R11
    0384 1688      CP	R8,R24
    0385 0699      CPC	R9,R25
    0386 06AA      CPC	R10,R26
    0387 06BB      CPC	R11,R27
    0388 F028      BCS	0x038E
    0389 1A88      SUB	R8,R24
    038A 0A99      SBC	R9,R25
    038B 0AAA      SBC	R10,R26
    038C 0ABB      SBC	R11,R27
    038D 9503      INC	R16
    038E 95EA      DEC	R30
    038F F759      BNE	0x037B
    0390 F426      BRTC	0x0395
    0391 2D08      MOV	R16,R8
    0392 2D19      MOV	R17,R9
    0393 2D2A      MOV	R18,R10
    0394 2D3B      MOV	R19,R11
    0395 C013      RJMP	long_div_epilog
long_div_prolog:
    0396 927A      ST	R7,-Y
    0397 928A      ST	R8,-Y
    0398 929A      ST	R9,-Y
    0399 92AA      ST	R10,-Y
    039A 92BA      ST	R11,-Y
    039B 92CA      ST	R12,-Y
    039C 93EA      ST	R30,-Y
    039D 938A      ST	R24,-Y
    039E 939A      ST	R25,-Y
    039F 93AA      ST	R26,-Y
    03A0 93BA      ST	R27,-Y
    03A1 858B      LDD	R24,Y+11
    03A2 859C      LDD	R25,Y+12
    03A3 85AD      LDD	R26,Y+13
    03A4 85BE      LDD	R27,Y+14
    03A5 2EC3      MOV	R12,R19
    03A6 F00E      BRTS	0x03A8
    03A7 26CB      EOR	R12,R27
    03A8 9508      RET
long_div_epilog:
    03A9 FCC7      SBRC	R12,7
    03AA D017      RCALL	neg_R16_R19
    03AB 91B9      LD	R27,Y+
    03AC 91A9      LD	R26,Y+
    03AD 9199      LD	R25,Y+
    03AE 9189      LD	R24,Y+
    03AF 91E9      LD	R30,Y+
    03B0 90C9      LD	R12,Y+
    03B1 90B9      LD	R11,Y+
    03B2 90A9      LD	R10,Y+
    03B3 9099      LD	R9,Y+
    03B4 9089      LD	R8,Y+
    03B5 9079      LD	R7,Y+
    03B6 9624      ADIW	R28,4
    03B7 9508      RET
tst_R16_R19:
    03B8 2FE0      MOV	R30,R16
    03B9 2BE1      OR	R30,R17
    03BA 2BE2      OR	R30,R18
    03BB 2BE3      OR	R30,R19
    03BC 9508      RET
tst_R24_R27:
    03BD 2FE8      MOV	R30,R24
    03BE 2BE9      OR	R30,R25
    03BF 2BEA      OR	R30,R26
    03C0 2BEB      OR	R30,R27
    03C1 9508      RET
neg_R16_R19:
    03C2 9500      COM	R16
    03C3 9510      COM	R17
    03C4 9520      COM	R18
    03C5 9530      COM	R19
    03C6 5F0F      SUBI	R16,0xFF
    03C7 4F1F      SBCI	R17,0xFF
    03C8 4F2F      SBCI	R18,0xFF
    03C9 4F3F      SBCI	R19,0xFF
    03CA 9508      RET
neg_R24_R27:
    03CB 9580      COM	R24
    03CC 9590      COM	R25
    03CD 95A0      COM	R26
    03CE 95B0      COM	R27
    03CF 5F8F      SUBI	R24,0xFF
    03D0 4F9F      SBCI	R25,0xFF
    03D1 4FAF      SBCI	R26,0xFF
    03D2 4FBF      SBCI	R27,0xFF
    03D3 9508      RET
pop_gset2:
    03D4 E0E2      LDI	R30,2
    03D5 940C03E6  JMP	pop
pop_gset4:
    03D7 E0E8      LDI	R30,0x8
    03D8 940C03E6  JMP	pop
push_gset5:
    03DA 92FA      ST	R15,-Y
    03DB 92EA      ST	R14,-Y
push_gset4:
    03DC 92DA      ST	R13,-Y
    03DD 92CA      ST	R12,-Y
push_gset3:
    03DE 92BA      ST	R11,-Y
    03DF 92AA      ST	R10,-Y
push_gset2:
    03E0 937A      ST	R23,-Y
    03E1 936A      ST	R22,-Y
push_gset1:
    03E2 935A      ST	R21,-Y
    03E3 934A      ST	R20,-Y
    03E4 9508      RET
pop_gset1:
    03E5 E0E1      LDI	R30,1
pop:
    03E6 9149      LD	R20,Y+
    03E7 9159      LD	R21,Y+
    03E8 FDE0      SBRC	R30,0
    03E9 9508      RET
    03EA 9169      LD	R22,Y+
    03EB 9179      LD	R23,Y+
    03EC FDE1      SBRC	R30,1
    03ED 9508      RET
    03EE 90A9      LD	R10,Y+
    03EF 90B9      LD	R11,Y+
    03F0 FDE2      SBRC	R30,2
    03F1 9508      RET
    03F2 90C9      LD	R12,Y+
    03F3 90D9      LD	R13,Y+
    03F4 FDE3      SBRC	R30,3
    03F5 9508      RET
    03F6 90E9      LD	R14,Y+
    03F7 90F9      LD	R15,Y+
    03F8 9508      RET

⌨️ 快捷键说明

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