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

📄 m64.lst

📁 数字舵机(1) 数字脉宽检测 数字脉宽检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
     5BD 990B      SBIC	0x01,3
     5BE C017      RJMP	0x05D6
(0520) 	     {delay_ms(50);
     5BF E302      LDI	R16,0x32
     5C0 E010      LDI	R17,0
     5C1 940E 0759 CALL	_delay_ms
(0521) 		  if (!(PINE & NEXTSONG))
     5C3 990B      SBIC	0x01,3
     5C4 C011      RJMP	0x05D6
(0522) 		  {
(0523) 			 //CLI();
(0524) 		     if(pwm_duoji<0x3ff) pwm_duoji++;
     5C5 01C5      MOVW	R24,R10
     5C6 3F8F      CPI	R24,0xFF
     5C7 E0E3      LDI	R30,3
     5C8 079E      CPC	R25,R30
     5C9 F410      BCC	0x05CC
     5CA 9601      ADIW	R24,1
     5CB 015C      MOVW	R10,R24
(0525)  			 OCR1BH = (pwm_duoji>>8)&0x07;
     5CC 01C5      MOVW	R24,R10
     5CD 2F89      MOV	R24,R25
     5CE 2799      CLR	R25
     5CF 7087      ANDI	R24,7
     5D0 7090      ANDI	R25,0
     5D1 BD89      OUT	0x29,R24
(0526)  			 OCR1BL = pwm_duoji; 
     5D2 BCA8      OUT	0x28,R10
(0527) 			 /*OCR1BH = 0x03;
(0528)  			 OCR1BL = 0xF0;
(0529)  			 OCR1CH = 0x03;
(0530)  			 OCR1CL = 0xF0;
(0531) 			 */
(0532) 			PWM_ON
     5D3 B387      IN	R24,0x17
     5D4 6F80      ORI	R24,0xF0
     5D5 BB87      OUT	0x17,R24
(0533) 			//SEI();
(0534) 		  }
(0535) 		}
(0536) 		if (!(PINE & PREVSONG))
     5D6 990A      SBIC	0x01,2
     5D7 C017      RJMP	0x05EF
(0537) 	     {delay_ms(50);
     5D8 E302      LDI	R16,0x32
     5D9 E010      LDI	R17,0
     5DA 940E 0759 CALL	_delay_ms
(0538) 		  if (!(PINE & PREVSONG))
     5DC 990A      SBIC	0x01,2
     5DD C011      RJMP	0x05EF
(0539) 		  {
(0540) 			 //CLI();
(0541) 		     if(pwm_duoji>0) pwm_duoji--;
     5DE 20AA      TST	R10
     5DF F411      BNE	0x05E2
     5E0 20BB      TST	R11
     5E1 F019      BEQ	0x05E5
     5E2 01C5      MOVW	R24,R10
     5E3 9701      SBIW	R24,1
     5E4 015C      MOVW	R10,R24
(0542)  			 OCR1BH = (pwm_duoji>>8)&0x07;
     5E5 01C5      MOVW	R24,R10
     5E6 2F89      MOV	R24,R25
     5E7 2799      CLR	R25
     5E8 7087      ANDI	R24,7
     5E9 7090      ANDI	R25,0
     5EA BD89      OUT	0x29,R24
(0543)  			 OCR1BL = pwm_duoji; 
     5EB BCA8      OUT	0x28,R10
(0544) 			 /*OCR1BH = 0x03;
(0545)  			 OCR1BL = 0xF0;
(0546)  			 OCR1CH = 0x03;
(0547)  			 OCR1CL = 0xF0;
(0548) 			 */
(0549) 			PWM_ON
     5EC B387      IN	R24,0x17
     5ED 6F80      ORI	R24,0xF0
     5EE BB87      OUT	0x17,R24
     5EF CFCD      RJMP	0x05BD
(0550) 			//SEI();
(0551) 		  }
(0552) 		}
(0553) 
(0554) }
(0555)   while(1)
(0556)   { //(unsigned char)jiaodu;
(0557)   	PORTF=juli;
     5F0 9020 0121 LDS	R2,juli
     5F2 9030 0122 LDS	R3,juli+1
     5F4 9220 0062 STS	0x0062,R2
(0558)   	if (!(PINE & STOP))jiaodu=100;//PWM_ON//PORTD=~PORTD;
     5F6 990E      SBIC	0x01,6
     5F7 C00C      RJMP	0x0604
     5F8 E644      LDI	R20,0x64
     5F9 E050      LDI	R21,0
     5FA E060      LDI	R22,0
     5FB E070      LDI	R23,0
     5FC 9350 011E STS	jiaodu+1,R21
     5FE 9340 011D STS	jiaodu,R20
     600 9370 0120 STS	jiaodu+3,R23
     602 9360 011F STS	jiaodu+2,R22
(0559)     if (ms==1)
     604 9180 0104 LDS	R24,ms
     606 9190 0105 LDS	R25,ms+1
     608 3081      CPI	R24,1
     609 E0A0      LDI	R26,0
     60A 079A      CPC	R25,R26
     60B F009      BEQ	0x060D
     60C C137      RJMP	0x0744
(0560)    	   { //if (jiaodu!=n_jiaodu)//test
(0561) 	   	 if (jiaodu!=0)
     60D 9040 011F LDS	R4,jiaodu+2
     60F 9050 0120 LDS	R5,jiaodu+3
     611 9020 011D LDS	R2,jiaodu
     613 9030 011E LDS	R3,jiaodu+1
     615 9488      BCLR	0
     616 2022      TST	R2
     617 0432      CPC	R3,R2
     618 0442      CPC	R4,R2
     619 0452      CPC	R5,R2
     61A F409      BNE	0x061C
     61B C060      RJMP	0x067C
(0562) 	      {//PORTF=jiaodu;
(0563) 		    //if (jiaodu<0-20)//test  旋转
(0564) 			if (ADCjohu<jiaodu-20)
     61C E144      LDI	R20,0x14
     61D E050      LDI	R21,0
     61E E060      LDI	R22,0
     61F E070      LDI	R23,0
     620 1A24      SUB	R2,R20
     621 0A35      SBC	R3,R21
     622 0A46      SBC	R4,R22
     623 0A57      SBC	R5,R23
     624 9080 0102 LDS	R8,ADCjohu+2
     626 9090 0103 LDS	R9,ADCjohu+3
     628 9060 0100 LDS	R6,ADCjohu
     62A 9070 0101 LDS	R7,ADCjohu+1
     62C 1462      CP	R6,R2
     62D 0473      CPC	R7,R3
     62E 0484      CPC	R8,R4
     62F 0495      CPC	R9,R5
     630 F4AC      BGE	0x0646
(0565) 	   	 	 {DDRB |=(R_pwm1 | L_pwm0);
     631 B387      IN	R24,0x17
     632 6680      ORI	R24,0x60
     633 BB87      OUT	0x17,R24
(0566) 			  DDRB &=~(R_pwm1 | L_pwm0);
     634 B387      IN	R24,0x17
     635 798F      ANDI	R24,0x9F
     636 BB87      OUT	0x17,R24
(0567) 			  PORTB &=~(R_pwm0 |R_pwm1| L_pwm1 | L_pwm0);
     637 B388      IN	R24,0x18
     638 708F      ANDI	R24,0xF
     639 BB88      OUT	0x18,R24
(0568) 			  OCR1AL = pwm_pingjun;
     63A 9020 0111 LDS	R2,pwm_pingjun
     63C BC2A      OUT	0x2A,R2
(0569)  		  	  OCR1BL = pwm_pingjun;
     63D BC28      OUT	0x28,R2
(0570)  		  	  OCR1CL = 0;
     63E 2422      CLR	R2
     63F 9220 0078 STS	0x0078,R2
(0571)  		  	  OCR0=0;
     641 BE21      OUT	0x31,R2
(0572) 			  PWM_ON
     642 B387      IN	R24,0x17
     643 6F80      ORI	R24,0xF0
     644 BB87      OUT	0x17,R24
(0573) 			 }
     645 C034      RJMP	0x067A
(0574) 		    //else if (jiaodu>0+20)//test
(0575) 			else if (ADCjohu>jiaodu+20)
     646 E144      LDI	R20,0x14
     647 E050      LDI	R21,0
     648 E060      LDI	R22,0
     649 E070      LDI	R23,0
     64A 9040 011F LDS	R4,jiaodu+2
     64C 9050 0120 LDS	R5,jiaodu+3
     64E 9020 011D LDS	R2,jiaodu
     650 9030 011E LDS	R3,jiaodu+1
     652 0E24      ADD	R2,R20
     653 1E35      ADC	R3,R21
     654 1E46      ADC	R4,R22
     655 1E57      ADC	R5,R23
     656 9080 0102 LDS	R8,ADCjohu+2
     658 9090 0103 LDS	R9,ADCjohu+3
     65A 9060 0100 LDS	R6,ADCjohu
     65C 9070 0101 LDS	R7,ADCjohu+1
     65E 1426      CP	R2,R6
     65F 0437      CPC	R3,R7
     660 0448      CPC	R4,R8
     661 0459      CPC	R5,R9
     662 F4A4      BGE	0x0677
(0576) 	   	 	 {DDRB |=(R_pwm0 | L_pwm1);
     663 B387      IN	R24,0x17
     664 6980      ORI	R24,0x90
     665 BB87      OUT	0x17,R24
(0577) 			  DDRB &=~(R_pwm0 | L_pwm1);
     666 B387      IN	R24,0x17
     667 768F      ANDI	R24,0x6F
     668 BB87      OUT	0x17,R24
(0578) 			  PORTB =0xf0;
     669 EF80      LDI	R24,0xF0
     66A BB88      OUT	0x18,R24
(0579) 			  OCR1AL = 0;
     66B 2422      CLR	R2
     66C BC2A      OUT	0x2A,R2
(0580)  		  	  OCR1BL = 0;
     66D BC28      OUT	0x28,R2
(0581)  		  	  OCR1CL = pwm_pingjun;
     66E 9020 0111 LDS	R2,pwm_pingjun
     670 9220 0078 STS	0x0078,R2
(0582)  		  	  OCR0=pwm_pingjun;
     672 BE21      OUT	0x31,R2
(0583) 			  PWM_ON
     673 B387      IN	R24,0x17
     674 6F80      ORI	R24,0xF0
     675 BB87      OUT	0x17,R24
(0584) 			 }
     676 C003      RJMP	0x067A
(0585) 		    else PWM_OFF
     677 B387      IN	R24,0x17
     678 708F      ANDI	R24,0xF
     679 BB87      OUT	0x17,R24
(0586) 		   n_jiaodu=jiaodu;
     67A 90A0 011D LDS	R10,jiaodu
(0587) 		  }
(0588) 		 if (juli!=0) 
     67C 9040 0123 LDS	R4,juli+2
     67E 9050 0124 LDS	R5,juli+3
     680 9020 0121 LDS	R2,juli
     682 9030 0122 LDS	R3,juli+1
     684 9488      BCLR	0
     685 2022      TST	R2
     686 0432      CPC	R3,R2
     687 0442      CPC	R4,R2
     688 0452      CPC	R5,R2
     689 F409      BNE	0x068B
     68A C089      RJMP	0x0714
(0589) 		 if (sec!=n_sec)
     68B 9020 0127 LDS	R2,sec
     68D 142A      CP	R2,R10
     68E F409      BNE	0x0690
     68F C084      RJMP	0x0714
(0590) 		    {
(0591) 			 if (juli>0)
     690 E040      LDI	R20,0
     691 E050      LDI	R21,0
     692 E060      LDI	R22,0
     693 E070      LDI	R23,0
     694 9040 0123 LDS	R4,juli+2
     696 9050 0124 LDS	R5,juli+3
     698 9020 0121 LDS	R2,juli
     69A 9030 0122 LDS	R3,juli+1
     69C 1542      CP	R20,R2
     69D 0553      CPC	R21,R3
     69E 0564      CPC	R22,R4
     69F 0575      CPC	R23,R5
     6A0 F584      BGE	0x06D1
(0592) 	   	 	  {DDRB |=(R_pwm1 | L_pwm1);
     6A1 B387      IN	R24,0x17
     6A2 6A80      ORI	R24,0xA0
     6A3 BB87      OUT	0x17,R24
(0593) 			   DDRB &=~(R_pwm1 | L_pwm1);
     6A4 B387      IN	R24,0x17
     6A5 758F      ANDI	R24,0x5F
     6A6 BB87      OUT	0x17,R24
(0594) 			   OCR1AL = 0;
     6A7 2422      CLR	R2
     6A8 BC2A      OUT	0x2A,R2
(0595)  		  	   OCR1BL = pwm_pingjun+Rpwm0;
     6A9 9020 0112 LDS	R2,Rpwm0
     6AB 9030 0111 LDS	R3,pwm_pingjun
     6AD 0C32      ADD	R3,R2
     6AE BC38      OUT	0x28,R3
(0596)  		  	   OCR1CL = 0;
     6AF 2422      CLR	R2
     6B0 9220 0078 STS	0x0078,R2
(0597)  		  	   OCR0=pwm_pingjun;
     6B2 9020 0111 LDS	R2,pwm_pingjun
     6B4 BE21      OUT	0x31,R2
(0598) 			   PWM_ON
     6B5 B387      IN	R24,0x17
     6B6 6F80      ORI	R24,0xF0
     6B7 BB87      OUT	0x17,R24
(0599) 			   juli--;
     6B8 E041      LDI	R20,1
     6B9 E050      LDI	R21,0
     6BA E060      LDI	R22,0
     6BB E070      LDI	R23,0
     6BC 9040 0123 LDS	R4,juli+2
     6BE 9050 0124 LDS	R5,juli+3
     6C0 9020 0121 LDS	R2,juli
     6C2 9030 0122 LDS	R3,juli+1
     6C4 1A24      SUB	R2,R20
     6C5 0A35      SBC	R3,R21
     6C6 0A46      SBC	R4,R22
     6C7 0A57      SBC	R5,R23
     6C8 9230 0122 STS	juli+1,R3
     6CA 9220 0121 STS	juli,R2
     6CC 9250 0124 STS	juli+3,R5
     6CE 9240 0123 STS	juli+2,R4
(0600) 			  }
     6D0 C041      RJMP	0x0712
(0601) 			 else if (juli<0)
     6D1 E040      LDI	R20,0
     6D2 E050      LDI	R21,0
     6D3 E060      LDI	R22,0
     6D4 E070      LDI	R23,0
     6D5 9040 0123 LDS	R4,juli+2
     6D7 9050 0124 LDS	R5,juli+3
     6D9 9020 0121 LDS	R2,juli
     6DB 9030 0122 LDS	R3,juli+1
     6DD 1624      CP	R2,R20
     6DE 0635      CPC	R3,R21
     6DF 0646      CPC	R4,R22
     6E0 0657      CPC	R5,R23
     6E1 F56C      BGE	0x070F
(0602) 	   	 	  {DDRB |=(R_pwm0 | L_pwm0);
     6E2 B387      IN	R24,0x17
     6E3 6580      ORI	R24,0x50
     6E4 BB87      OUT	0x17,R24
(0603) 			   DDRB &=~(R_pwm0 | L_pwm0);
     6E5 B387      IN	R24,0x17
     6E6 7A8F      ANDI	R24,0xAF
     6E7 BB87      OUT	0x17,R24
(0604) 			   OCR1AL = pwm_pingjun;
     6E8 9020 0111 LDS	R2,pwm_pingjun
     6EA BC2A      OUT	0x2A,R2
(0605)  		  	   OCR1BL = 0;
     6EB 2422      CLR	R2
     6EC BC28      OUT	0x28,R2
(0606)  		  	   OCR1CL = pwm_pingjun;
     6ED 9020 0111 LDS	R2,pwm_pingjun
     6EF 9220 0078 STS	0x0078,R2
(0607)  		  	   OCR0=0;
     6F1 2422      CLR	R2
     6F2 BE21      OUT	0x31,R2
(0608) 			   PWM_ON
     6F3 B387      IN	R24,0x17
     6F4 6F80      ORI	R24,0xF0
     6F5 BB87      OUT	0x17,R24
(0609) 			   juli++;
     6F6 E041      LDI	R20,1
     6F7 E050      LDI	R21,0
     6F8 E060      LDI	R22,0
     6F9 E070      LDI	R23,0
     6FA 9040 0123 LDS	R4,juli+2
     6FC 9050 0124 LDS	R5,juli+3
     6FE 9020 0121 LDS	R2,juli
     700 9030 0122 LDS	R3,juli+1
     702 0E24      ADD	R2,R20
     703 1E35      ADC	R3,R21
     704 1E46      ADC	R4,R22
     705 1E57      ADC	R5,R23
     706 9230 0122 STS	juli+1,R3
     708 9220 0121 STS	juli,R2
     70A 9250 0124 STS	juli+3,R5
     70C 9240 0123 STS	juli+2,R4
(0610) 			  }/**/
     70E C003      RJMP	0x0712
(0611) 			 else PWM_OFF
     70F B387      IN	R24,0x17
     710 708F      ANDI	R24,0xF
     711 BB87      OUT	0x17,R24
(0612) 			n_sec=sec;
     712 90A0 0127 LDS	R10,sec
(0613) 			}	
(0614) 
(0615) 	   	//number(0,2,5,xx,1);
(0616) 		//number(0,4,5,ADCjohu,1);
(0617) 		if (!(PINE & PREVSONG))xx=0;
     714 990A      SBIC	0x01,2
     715 C00C      RJMP	0x0722
     716 E040      LDI	R20,0
     717 E050      LDI	R21,0
     718 E060      LDI	R22,0
     719 E070      LDI	R23,0
     71A 9350 0107 STS	xx+1,R21
     71C 9340 0106 STS	xx,R20
     71E 9370 0109 STS	xx+3,R23
     720 9360 0108 STS	xx+2,R22
(0618) 		if (!(PINE & NEXTSONG))
     722 990B      SBIC	0x01,3
     723 C01A      RJMP	0x073E
(0619) 	    	{
(0620) 			//CLI();
(0621) 			number_uart1(xx,0);
     724 2422      CLR	R2
     725 8228      STD	Y+0,R2
     726 9120 0108 LDS	R18,xx+2
     728 9130 0109 LDS	R19,xx+3
     72A 9100 0106 LDS	R16,xx
     72C 9110 0107 LDS	R17,xx+1
     72E DC9C      RCALL	_number_uart1
(0622) 			number_uart1(ADCjohu,1);
     72F E081      LDI	R24,1
     730 8388      STD	Y+0,R24
     731 9120 0102 LDS	R18,ADCjohu+2
     733 9130 0103 LDS	R19,ADCjohu+3
     735 9100 0100 LDS	R16,ADCjohu
     737 9110 0101 LDS	R17,ADCjohu+1
     739 DC91      RCALL	_number_uart1
(0623) 			delay_ms(20);
     73A E104      LDI	R16,0x14
     73B E010      LDI	R17,0
     73C 940E 0759 CALL	_delay_ms
(0624) 			//SEI();
(0625) 			}
(0626)    	    ms=0;
     73E 2422      CLR	R2
     73F 2433      CLR	R3
     740 9230 0105 STS	ms+1,R3
     742 9220 0104 STS	ms,R2
     744 CEAB   

⌨️ 快捷键说明

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