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

📄 m64.lst

📁 数字舵机(1) 数字脉宽检测 数字脉宽检测
💻 LST
📖 第 1 页 / 共 5 页
字号:
     37D F4C9      BNE	0x0397
     37E 9180 0118 LDS	R24,b
     380 3689      CPI	R24,0x69
     381 F4A9      BNE	0x0397
     382 9180 0119 LDS	R24,c
     384 3782      CPI	R24,0x72
     385 F489      BNE	0x0397
(0203) 	     {
(0204) 		   all=CIR;
     386 E081      LDI	R24,1
     387 9380 0116 STS	all,R24
(0205) 		   a=0;b=0;c=0;d=0;e=0;f=0;
     389 2422      CLR	R2
     38A 9220 0117 STS	a,R2
     38C 9220 0118 STS	b,R2
     38E 9220 0119 STS	c,R2
     390 9220 011A STS	d,R2
     392 9220 011B STS	e,R2
     394 9220 011C STS	f,R2
(0206) 		   return; }//RXlen=4;{johu=3;RXlen=3;return;}
     396 C020      RJMP	0x03B7
(0207) 	   else if ((a=='l')&&(b=='i')&&(c=='n')&&(d=='e'))
     397 9180 0117 LDS	R24,a
     399 368C      CPI	R24,0x6C
     39A F4E1      BNE	0x03B7
     39B 9180 0118 LDS	R24,b
     39D 3689      CPI	R24,0x69
     39E F4C1      BNE	0x03B7
     39F 9180 0119 LDS	R24,c
     3A1 368E      CPI	R24,0x6E
     3A2 F4A1      BNE	0x03B7
     3A3 9180 011A LDS	R24,d
     3A5 3685      CPI	R24,0x65
     3A6 F481      BNE	0x03B7
(0208) 	     {
(0209) 		   all=LINE;
     3A7 E082      LDI	R24,2
     3A8 9380 0116 STS	all,R24
(0210) 		   a=0;b=0;c=0;d=0;e=0;f=0;
     3AA 2422      CLR	R2
     3AB 9220 0117 STS	a,R2
     3AD 9220 0118 STS	b,R2
     3AF 9220 0119 STS	c,R2
     3B1 9220 011A STS	d,R2
     3B3 9220 011B STS	e,R2
     3B5 9220 011C STS	f,R2
(0211) 		   return; }//RXlen=4;{johu=5;RXlen=3;return;}
(0212) 		   ////////////////////////////////////////////////////////////////////
(0213) 	 }
     3B7 9009      LD	R0,Y+
     3B8 BE0F      OUT	0x3F,R0
     3B9 91F9      LD	R31,Y+
     3BA 91E9      LD	R30,Y+
     3BB 9199      LD	R25,Y+
     3BC 9189      LD	R24,Y+
     3BD 9139      LD	R19,Y+
     3BE 9129      LD	R18,Y+
     3BF 9119      LD	R17,Y+
     3C0 9109      LD	R16,Y+
     3C1 9059      LD	R5,Y+
     3C2 9049      LD	R4,Y+
     3C3 9039      LD	R3,Y+
     3C4 9029      LD	R2,Y+
     3C5 9019      LD	R1,Y+
     3C6 9009      LD	R0,Y+
     3C7 9518      RETI
_number_uart1:
  n                    --> Y,+0
  huanhang             --> Y,+8
  NUM                  --> Y,+4
     3C8 940E 06FD CALL	push_arg4
     3CA 9724      SBIW	R28,4
(0214) }
(0215) 
(0216) 
(0217) 
(0218) /*void number(unsigned char X,unsigned char Y,unsigned char LEN,int NUM,unsigned char BLACK)
(0219) {
(0220)  char code[]={'0','1','2','3','4','5','6','7','8','9',};
(0221)  if (NUM<0)
(0222)  	{LCD_write_String1(X,Y,"-");NUM=-NUM;}
(0223)  else
(0224)  	{LCD_write_String1(X,Y,"+");}
(0225) X=X+6;
(0226)  while(LEN--)
(0227)  	 {
(0228) 	  LCD_write_String1(X+LEN*6,Y,& code[NUM%10]);
(0229) 	  NUM=NUM/10;
(0230) 	 } 
(0231) }*/
(0232) void number_uart1(long NUM,char huanhang)
(0233) {long n=0;
     3CB E080      LDI	R24,0
     3CC E090      LDI	R25,0
     3CD E0A0      LDI	R26,0
     3CE E0B0      LDI	R27,0
     3CF 8388      STD	Y+0,R24
     3D0 8399      STD	Y+1,R25
     3D1 83AA      STD	Y+2,R26
     3D2 83BB      STD	Y+3,R27
(0234)  			if (NUM<0){n=-NUM; while(!(UCSR1A&(1<<UDRE1))); UDR1='-';}
     3D3 E080      LDI	R24,0
     3D4 E090      LDI	R25,0
     3D5 E0A0      LDI	R26,0
     3D6 E0B0      LDI	R27,0
     3D7 802C      LDD	R2,Y+4
     3D8 803D      LDD	R3,Y+5
     3D9 804E      LDD	R4,Y+6
     3DA 805F      LDD	R5,Y+7
     3DB 1628      CP	R2,R24
     3DC 0639      CPC	R3,R25
     3DD 064A      CPC	R4,R26
     3DE 065B      CPC	R5,R27
     3DF F484      BGE	0x03F0
     3E0 0181      MOVW	R16,R2
     3E1 0192      MOVW	R18,R4
     3E2 940E 078A CALL	neg32
     3E4 8308      STD	Y+0,R16
     3E5 8319      STD	Y+1,R17
     3E6 832A      STD	Y+2,R18
     3E7 833B      STD	Y+3,R19
     3E8 9020 009B LDS	R2,0x009B
     3EA FE25      SBRS	R2,5
     3EB CFFC      RJMP	0x03E8
     3EC E28D      LDI	R24,0x2D
     3ED 9380 009C STS	0x009C,R24
     3EF C00F      RJMP	0x03FF
(0235) 			else  {n=NUM;while(!(UCSR1A&(1<<UDRE1))); UDR1='+';}	
     3F0 802C      LDD	R2,Y+4
     3F1 803D      LDD	R3,Y+5
     3F2 804E      LDD	R4,Y+6
     3F3 805F      LDD	R5,Y+7
     3F4 8228      STD	Y+0,R2
     3F5 8239      STD	Y+1,R3
     3F6 824A      STD	Y+2,R4
     3F7 825B      STD	Y+3,R5
     3F8 9020 009B LDS	R2,0x009B
     3FA FE25      SBRS	R2,5
     3FB CFFC      RJMP	0x03F8
     3FC E28B      LDI	R24,0x2B
     3FD 9380 009C STS	0x009C,R24
(0236) 		     while(!(UCSR1A&(1<<UDRE1)));
     3FF 9020 009B LDS	R2,0x009B
     401 FE25      SBRS	R2,5
     402 CFFC      RJMP	0x03FF
(0237) 		     UDR1=(n/10000)%10+48;
     403 E180      LDI	R24,0x10
     404 E297      LDI	R25,0x27
     405 E0A0      LDI	R26,0
     406 E0B0      LDI	R27,0
     407 8108      LDD	R16,Y+0
     408 8119      LDD	R17,Y+1
     409 812A      LDD	R18,Y+2
     40A 813B      LDD	R19,Y+3
     40B 93BA      ST	R27,-Y
     40C 93AA      ST	R26,-Y
     40D 939A      ST	R25,-Y
     40E 938A      ST	R24,-Y
     40F 940E 0708 CALL	div32s
     411 E08A      LDI	R24,0xA
     412 E090      LDI	R25,0
     413 E0A0      LDI	R26,0
     414 E0B0      LDI	R27,0
     415 93BA      ST	R27,-Y
     416 93AA      ST	R26,-Y
     417 939A      ST	R25,-Y
     418 938A      ST	R24,-Y
     419 940E 070A CALL	mod32s
     41B 0118      MOVW	R2,R16
     41C 0129      MOVW	R4,R18
     41D E380      LDI	R24,0x30
     41E E090      LDI	R25,0
     41F E0A0      LDI	R26,0
     420 E0B0      LDI	R27,0
     421 0E28      ADD	R2,R24
     422 1E39      ADC	R3,R25
     423 1E4A      ADC	R4,R26
     424 1E5B      ADC	R5,R27
     425 9220 009C STS	0x009C,R2
(0238) 		     while(!(UCSR1A&(1<<UDRE1)));
     427 9020 009B LDS	R2,0x009B
     429 FE25      SBRS	R2,5
     42A CFFC      RJMP	0x0427
(0239) 		     UDR1=(n/1000)%10+48;
     42B EE88      LDI	R24,0xE8
     42C E093      LDI	R25,3
     42D E0A0      LDI	R26,0
     42E E0B0      LDI	R27,0
     42F 8108      LDD	R16,Y+0
     430 8119      LDD	R17,Y+1
     431 812A      LDD	R18,Y+2
     432 813B      LDD	R19,Y+3
     433 93BA      ST	R27,-Y
     434 93AA      ST	R26,-Y
     435 939A      ST	R25,-Y
     436 938A      ST	R24,-Y
     437 940E 0708 CALL	div32s
     439 E08A      LDI	R24,0xA
     43A E090      LDI	R25,0
     43B E0A0      LDI	R26,0
     43C E0B0      LDI	R27,0
     43D 93BA      ST	R27,-Y
     43E 93AA      ST	R26,-Y
     43F 939A      ST	R25,-Y
     440 938A      ST	R24,-Y
     441 940E 070A CALL	mod32s
     443 0118      MOVW	R2,R16
     444 0129      MOVW	R4,R18
     445 E380      LDI	R24,0x30
     446 E090      LDI	R25,0
     447 E0A0      LDI	R26,0
     448 E0B0      LDI	R27,0
     449 0E28      ADD	R2,R24
     44A 1E39      ADC	R3,R25
     44B 1E4A      ADC	R4,R26
     44C 1E5B      ADC	R5,R27
     44D 9220 009C STS	0x009C,R2
(0240) 			 while(!(UCSR1A&(1<<UDRE1)));
     44F 9020 009B LDS	R2,0x009B
     451 FE25      SBRS	R2,5
     452 CFFC      RJMP	0x044F
(0241) 		     UDR1=(n/100)%10+48;
     453 E684      LDI	R24,0x64
     454 E090      LDI	R25,0
     455 E0A0      LDI	R26,0
     456 E0B0      LDI	R27,0
     457 8108      LDD	R16,Y+0
     458 8119      LDD	R17,Y+1
     459 812A      LDD	R18,Y+2
     45A 813B      LDD	R19,Y+3
     45B 93BA      ST	R27,-Y
     45C 93AA      ST	R26,-Y
     45D 939A      ST	R25,-Y
     45E 938A      ST	R24,-Y
     45F 940E 0708 CALL	div32s
     461 E08A      LDI	R24,0xA
     462 E090      LDI	R25,0
     463 E0A0      LDI	R26,0
     464 E0B0      LDI	R27,0
     465 93BA      ST	R27,-Y
     466 93AA      ST	R26,-Y
     467 939A      ST	R25,-Y
     468 938A      ST	R24,-Y
     469 940E 070A CALL	mod32s
     46B 0118      MOVW	R2,R16
     46C 0129      MOVW	R4,R18
     46D E380      LDI	R24,0x30
     46E E090      LDI	R25,0
     46F E0A0      LDI	R26,0
     470 E0B0      LDI	R27,0
     471 0E28      ADD	R2,R24
     472 1E39      ADC	R3,R25
     473 1E4A      ADC	R4,R26
     474 1E5B      ADC	R5,R27
     475 9220 009C STS	0x009C,R2
(0242) 			 while(!(UCSR1A&(1<<UDRE1)));
     477 9020 009B LDS	R2,0x009B
     479 FE25      SBRS	R2,5
     47A CFFC      RJMP	0x0477
(0243) 		     UDR1=(n/10)%10+48;
     47B E08A      LDI	R24,0xA
     47C E090      LDI	R25,0
     47D E0A0      LDI	R26,0
     47E E0B0      LDI	R27,0
     47F 8108      LDD	R16,Y+0
     480 8119      LDD	R17,Y+1
     481 812A      LDD	R18,Y+2
     482 813B      LDD	R19,Y+3
     483 93BA      ST	R27,-Y
     484 93AA      ST	R26,-Y
     485 939A      ST	R25,-Y
     486 938A      ST	R24,-Y
     487 940E 0708 CALL	div32s
     489 E08A      LDI	R24,0xA
     48A E090      LDI	R25,0
     48B E0A0      LDI	R26,0
     48C E0B0      LDI	R27,0
     48D 93BA      ST	R27,-Y
     48E 93AA      ST	R26,-Y
     48F 939A      ST	R25,-Y
     490 938A      ST	R24,-Y
     491 940E 070A CALL	mod32s
     493 0118      MOVW	R2,R16
     494 0129      MOVW	R4,R18
     495 E380      LDI	R24,0x30
     496 E090      LDI	R25,0
     497 E0A0      LDI	R26,0
     498 E0B0      LDI	R27,0
     499 0E28      ADD	R2,R24
     49A 1E39      ADC	R3,R25
     49B 1E4A      ADC	R4,R26
     49C 1E5B      ADC	R5,R27
     49D 9220 009C STS	0x009C,R2
(0244) 			 while(!(UCSR1A&(1<<UDRE1)));
     49F 9020 009B LDS	R2,0x009B
     4A1 FE25      SBRS	R2,5
     4A2 CFFC      RJMP	0x049F
(0245) 		     UDR1=n%10+48;
     4A3 E08A      LDI	R24,0xA
     4A4 E090      LDI	R25,0
     4A5 E0A0      LDI	R26,0
     4A6 E0B0      LDI	R27,0
     4A7 8108      LDD	R16,Y+0
     4A8 8119      LDD	R17,Y+1
     4A9 812A      LDD	R18,Y+2
     4AA 813B      LDD	R19,Y+3
     4AB 93BA      ST	R27,-Y
     4AC 93AA      ST	R26,-Y
     4AD 939A      ST	R25,-Y
     4AE 938A      ST	R24,-Y
     4AF 940E 070A CALL	mod32s
     4B1 0118      MOVW	R2,R16
     4B2 0129      MOVW	R4,R18
     4B3 E380      LDI	R24,0x30
     4B4 E090      LDI	R25,0
     4B5 E0A0      LDI	R26,0
     4B6 E0B0      LDI	R27,0
     4B7 0E28      ADD	R2,R24
     4B8 1E39      ADC	R3,R25
     4B9 1E4A      ADC	R4,R26
     4BA 1E5B      ADC	R5,R27
     4BB 9220 009C STS	0x009C,R2
(0246) 			if (huanhang)
     4BD 8408      LDD	R0,Y+8
     4BE 2000      TST	R0
     4BF F079      BEQ	0x04CF
(0247) 			 {
(0248) 			  while(!(UCSR1A&(1<<UDRE1)));
     4C0 9020 009B LDS	R2,0x009B
     4C2 FE25      SBRS	R2,5
     4C3 CFFC      RJMP	0x04C0
(0249) 		      UDR1=0x0d;
     4C4 E08D      LDI	R24,0xD
     4C5 9380 009C STS	0x009C,R24
(0250) 			  while(!(UCSR1A&(1<<UDRE1)));
     4C7 9020 009B LDS	R2,0x009B
     4C9 FE25      SBRS	R2,5
     4CA CFFC      RJMP	0x04C7
(0251) 		      UDR1=0x0a;
     4CB E08A      LDI	R24,0xA
     4CC 9380 009C STS	0x009C,R24
(0252) 			 }
     4CE C00E      RJMP	0x04DD
(0253) 			 else
(0254) 			 {
(0255) 			  while(!(UCSR1A&(1<<UDRE1)));
     4CF 9020 009B LDS	R2,0x009B
     4D1 FE25      SBRS	R2,5
     4D2 CFFC      RJMP	0x04CF
(0256) 		      UDR1=0x20;
     4D3 E280      LDI	R24,0x20
     4D4 9380 009C STS	0x009C,R24
(0257) 			  while(!(UCSR1A&(1<<UDRE1)));
     4D6 9020 009B LDS	R2,0x009B
     4D8 FE25      SBRS	R2,5
     4D9 CFFC      RJMP	0x04D6
(0258) 		      UDR1=0x20;
     4DA E280      LDI	R24,0x20
     4DB 9380 009C STS	0x009C,R24
(0259) 			 } 
     4DD 9628      ADIW	R28,0x8
     4DE 9508      RET
(0260) }
(0261) 
(0262) 
(0263) 
(0264) //TIMER0 initialize - prescale:64
(0265) // WGM: PWM Fast
(0266) // desired value: 1KHz
(0267) // actual value:  0.488KHz (-104.8%)
(0268) void timer0_init(void)
(0269) {
(0270)  TCCR0 = 0x00; //stop
_timer0_init:
     4DF 2422      CLR	R2
     4E0 BE23      OUT	0x33,R2
(0271)  ASSR  = 0x00; //set async mode
     4E1 BE20      OUT	0x30,R2
(0272)  TCNT0 = 0x01; //set count
     4E2 E081      LDI	R24,1
     4E3 BF82      OUT	0x32,R24
(0273)  OCR0  = 0x0f;
     4E4 E08F      LDI	R24,0xF
     4E5 BF81      OUT	0x31,R24
(0274)  TCCR0 = 0x6C; //start timer
     4E6 E68C      LDI	R24,0x6C
     4E7 BF83      OUT	0x33,R24
     4E8 9508      RET
(0275) }
(0276) 
(0277) //TIMER1 initialize - prescale:64
(0278) // WGM: 5) PWM 8bit fast, TOP=0x00FF
(0279) // desired value: 1KHz
(0280) // actual value:  0.488KHz (104.8%)
(0281) /*void timer1_init(void)
(0282) {
(0283)  TCCR1B = 0x00; //stop
(0284)  TCNT1H = 0xFF; //setup
(0285)  TCNT1L = 0x01;
(0286)  OCR1AH = 0x00;
(0287)  OCR1AL = 0x0f;
(0288)  OCR1BH = 0x00;
(0289)  OCR1BL = 0x0f;
(0290)  OCR1CH = 0x00;
(0291)  OCR1CL = 0x0f;
(0292)  ICR1H  = 0x00;
(0293)  ICR1L  = 0xFF;
(0294)  TCCR1A = 0xA9;
(0295)  TCCR1B = 0x0B; //start Timer
(0296) }*/
(0297) //TIMER1 initialize - prescale:8
(0298) // WGM: 9) PWM phz freq correct, TOP=OCRnA
(0299) // desired value: 40mSec
(0300) // actual value: 40.000mSec (0.0%)
(0301) /*void timer1_init(void)
(0302) {
(0303)  TCCR1B = 0x00; //stop
(0304)  TCNT1H = 0xB1; //setup
(0305)  TCNT1L = 0xE0;
(0306)  OCR1AH = 0x4E;
(0307)  OCR1AL = 0x20;
(0308)  OCR1BH = 0x4E;

⌨️ 快捷键说明

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