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

📄 main.lst

📁 atmega16L输入捕获经典试验已经通过验证
💻 LST
📖 第 1 页 / 共 4 页
字号:
 406 00f4 60E0      		ldi r22,lo8(0)
 407 00f6 70E0      		ldi r23,hi8(0)
 408 00f8 81E0      		ldi r24,lo8(1)
 409 00fa 90E0      		ldi r25,hi8(1)
 410 00fc 0E94 0000 		call LCD_write_char
 411               	/* epilogue: frame size=0 */
 412 0100 DF91      		pop r29
 413 0102 CF91      		pop r28
 414 0104 0895      		ret
 415               	/* epilogue end (size=3) */
 416               	/* function LCD_init size 52 (47) */
 433               	.Lscope3:
 436               	.global	LCD_putc
 438               	LCD_putc:
  91:./LCD1602.h   ****   }
  92:./LCD1602.h   **** }
  93:./LCD1602.h   **** 
  94:./LCD1602.h   **** int LCD_putc(unsigned char c)//标准输入流
  95:./LCD1602.h   **** {
 440               	.LM41:
 441               	/* prologue: frame size=0 */
 442 0106 CF93      		push r28
 443               	/* prologue end (size=1) */
 444 0108 C82F      		mov r28,r24
  96:./LCD1602.h   **** 	if (c=='\n') //换行
 446               	.LM42:
 447 010a 8A30      		cpi r24,lo8(10)
 448 010c 49F4      		brne .L63
  97:./LCD1602.h   **** 	{Y^=1;
 450               	.LM43:
 451 010e 8091 0000 		lds r24,Y
 452 0112 91E0      		ldi r25,lo8(1)
 453 0114 8927      		eor r24,r25
 454 0116 8093 0000 		sts Y,r24
  98:./LCD1602.h   **** 	 X=0;
 456               	.LM44:
 457 011a 1092 0000 		sts X,__zero_reg__
 458 011e 13C0      		rjmp .L69
 459               	.L63:
  99:./LCD1602.h   **** 	}
 100:./LCD1602.h   **** 	else if (c=='\t') Y^=1;//下移一格
 461               	.LM45:
 462 0120 8930      		cpi r24,lo8(9)
 463 0122 39F4      		brne .L65
 464 0124 8091 0000 		lds r24,Y
 465 0128 91E0      		ldi r25,lo8(1)
 466 012a 8927      		eor r24,r25
 467 012c 8093 0000 		sts Y,r24
 468 0130 0AC0      		rjmp .L69
 469               	.L65:
 101:./LCD1602.h   **** 	else if(c=='\v') X++;//左移一格
 471               	.LM46:
 472 0132 8B30      		cpi r24,lo8(11)
 473 0134 31F4      		brne .L64
 474 0136 8091 0000 		lds r24,X
 475 013a 8F5F      		subi r24,lo8(-(1))
 476 013c 8093 0000 		sts X,r24
 477 0140 02C0      		rjmp .L69
 478               	.L64:
 102:./LCD1602.h   **** 	if (c<32) return 1;
 480               	.LM47:
 481 0142 8032      		cpi r24,lo8(32)
 482 0144 18F4      		brsh .L68
 483               	.L69:
 484 0146 81E0      		ldi r24,lo8(1)
 485 0148 90E0      		ldi r25,hi8(1)
 486 014a 14C0      		rjmp .L62
 487               	.L68:
 103:./LCD1602.h   **** 	LCD_set_xy(X,Y);
 489               	.LM48:
 490 014c 6091 0000 		lds r22,Y
 491 0150 8091 0000 		lds r24,X
 492 0154 0E94 0000 		call LCD_set_xy
 104:./LCD1602.h   **** 	LCD_write_char(0,c);
 494               	.LM49:
 495 0158 8C2F      		mov r24,r28
 496 015a 9927      		clr r25
 497 015c BC01      		movw r22,r24
 498 015e 80E0      		ldi r24,lo8(0)
 499 0160 90E0      		ldi r25,hi8(0)
 500 0162 0E94 0000 		call LCD_write_char
 105:./LCD1602.h   **** 	X++;//左移一格
 502               	.LM50:
 503 0166 8091 0000 		lds r24,X
 504 016a 8F5F      		subi r24,lo8(-(1))
 505 016c 8093 0000 		sts X,r24
 106:./LCD1602.h   **** 	return 0;
 507               	.LM51:
 508 0170 80E0      		ldi r24,lo8(0)
 509 0172 90E0      		ldi r25,hi8(0)
 510               	.L62:
 511               	/* epilogue: frame size=0 */
 512 0174 CF91      		pop r28
 513 0176 0895      		ret
 514               	/* epilogue end (size=2) */
 515               	/* function LCD_putc size 57 (54) */
 517               	.Lscope4:
 519               	.global	init_timer1_icp
 521               	init_timer1_icp:
 523               	.Ltext12:
   1:main.c        **** #include <avr/io.h> 
   2:main.c        **** #include <avr/signal.h>
   3:main.c        **** #include <avr/delay.h>
   4:main.c        **** #include <stdio.h>
   5:main.c        **** #include <math.h>
   6:main.c        **** #include <LCD1602.h>
   7:main.c        **** 
   8:main.c        **** int once_time; 
   9:main.c        **** 
  10:main.c        **** void init_timer1_icp(void)
  11:main.c        **** {
 525               	.LM52:
 526               	/* prologue: frame size=0 */
 527               	/* prologue end (size=0) */
  12:main.c        **** 	TCCR1B|=(1<<CS11)|(1<<CS10)|(1<<ICNC1);	//分频比64,可调
 529               	.LM53:
 530 0178 8EB5      		in r24,78-0x20
 531 017a 8368      		ori r24,lo8(-125)
 532 017c 8EBD      		out 78-0x20,r24
  13:main.c        **** 	TIFR=1<<ICF1;	//清除没有执行的中断
 534               	.LM54:
 535 017e 80E2      		ldi r24,lo8(32)
 536 0180 88BF      		out 88-0x20,r24
  14:main.c        **** 	TIMSK=1<<TICIE1;
 538               	.LM55:
 539 0182 89BF      		out 89-0x20,r24
  15:main.c        **** 	DDRB=0xFF;
 541               	.LM56:
 542 0184 8FEF      		ldi r24,lo8(-1)
 543 0186 87BB      		out 55-0x20,r24
  16:main.c        **** 	DDRD&=~(1<<PD6);
 545               	.LM57:
 546 0188 8E98      		cbi 49-0x20,6
  17:main.c        **** 	PORTD|=1<<PD6;
 548               	.LM58:
 549 018a 969A      		sbi 50-0x20,6
 550               	/* epilogue: frame size=0 */
 551 018c 0895      		ret
 552               	/* epilogue end (size=1) */
 553               	/* function init_timer1_icp size 11 (10) */
 555               	.Lscope5:
 556               		.data
 557               	.LC0:
 558 0000 0A0B 0B25 		.string	"\n\013\013%5d\n"
 558      3564 0A00 
 559               		.text
 561               	.global	__vector_5
 563               	__vector_5:
  18:main.c        **** }
  19:main.c        **** SIGNAL(SIG_INPUT_CAPTURE1)
  20:main.c        **** {
 565               	.LM59:
 566               	/* prologue: frame size=0 */
 567 018e 1F92      		push __zero_reg__
 568 0190 0F92      		push __tmp_reg__
 569 0192 0FB6      		in __tmp_reg__,__SREG__
 570 0194 0F92      		push __tmp_reg__
 571 0196 1124      		clr __zero_reg__
 572 0198 2F93      		push r18
 573 019a 3F93      		push r19
 574 019c 4F93      		push r20
 575 019e 5F93      		push r21
 576 01a0 6F93      		push r22
 577 01a2 7F93      		push r23
 578 01a4 8F93      		push r24
 579 01a6 9F93      		push r25
 580 01a8 AF93      		push r26
 581 01aa BF93      		push r27
 582 01ac EF93      		push r30
 583 01ae FF93      		push r31
 584               	/* prologue end (size=17) */
  21:main.c        **** 	once_time=ICR1/16;
 586               	.LM60:
 587 01b0 86B5      		in r24,70-0x20
 588 01b2 97B5      		in r25,(70)+1-0x20
 589 01b4 9295      		swap r25
 590 01b6 8295      		swap r24
 591 01b8 8F70      		andi r24,0x0f
 592 01ba 8927      		eor r24,r25
 593 01bc 9F70      		andi r25,0x0f
 594 01be 8927      		eor r24,r25
 595 01c0 9093 0000 		sts (once_time)+1,r25
 596 01c4 8093 0000 		sts once_time,r24
  22:main.c        **** 	TCNT1=0;
 598               	.LM61:
 599 01c8 1DBC      		out (76)+1-0x20,__zero_reg__
 600 01ca 1CBC      		out 76-0x20,__zero_reg__
  23:main.c        **** 	printf("\n\v\v%5d\n",once_time*8); 	
 602               	.LM62:
 603 01cc 880F      		lsl r24
 604 01ce 991F      		rol r25
 605 01d0 880F      		lsl r24
 606 01d2 991F      		rol r25
 607 01d4 880F      		lsl r24
 608 01d6 991F      		rol r25
 609 01d8 9F93      		push r25
 610 01da 8F93      		push r24
 611 01dc 80E0      		ldi r24,lo8(.LC0)
 612 01de 90E0      		ldi r25,hi8(.LC0)
 613 01e0 9F93      		push r25
 614 01e2 8F93      		push r24
 615 01e4 0E94 0000 		call printf
 616 01e8 0F90      		pop __tmp_reg__
 617 01ea 0F90      		pop __tmp_reg__
 618 01ec 0F90      		pop __tmp_reg__
 619 01ee 0F90      		pop __tmp_reg__
 620               	/* epilogue: frame size=0 */
 621 01f0 FF91      		pop r31
 622 01f2 EF91      		pop r30
 623 01f4 BF91      		pop r27
 624 01f6 AF91      		pop r26
 625 01f8 9F91      		pop r25
 626 01fa 8F91      		pop r24
 627 01fc 7F91      		pop r23
 628 01fe 6F91      		pop r22
 629 0200 5F91      		pop r21
 630 0202 4F91      		pop r20
 631 0204 3F91      		pop r19
 632 0206 2F91      		pop r18
 633 0208 0F90      		pop __tmp_reg__
 634 020a 0FBE      		out __SREG__,__tmp_reg__
 635 020c 0F90      		pop __tmp_reg__
 636 020e 1F90      		pop __zero_reg__
 637 0210 1895      		reti
 638               	/* epilogue end (size=17) */
 639               	/* function __vector_5 size 66 (32) */
 641               	.Lscope6:
 642               		.data
 643               	.LC1:
 644 0008 5765 6C6C 		.string	"Wellcome"
 644      636F 6D65 
 644      00
 645               	.LC2:
 646 0011 7777 772E 		.string	"www.OURAVR.com!"
 646      4F55 5241 
 646      5652 2E63 
 646      6F6D 2100 
 647               	.LC3:
 648 0021 4861 7070 		.string	"Happy every day!"
 648      7920 6576 
 648      6572 7920 
 648      6461 7921 
 648      00
 649               	.LC4:
 650 0032 466F 7265 		.string	"Forever friend! "
 650      7665 7220 
 650      6672 6965 
 650      6E64 2120 
 650      00
 651               	.LC5:
 652 0043 5265 6473 		.string	"Redstone:Support"
 652      746F 6E65 
 652      3A53 7570 
 652      706F 7274 
 652      00
 653               	.LC6:
 654 0054 4F55 5241 		.string	"OURAVR Forever! "
 654      5652 2046 
 654      6F72 6576 
 654      6572 2120 
 654      00
 655               	.LC7:
 656 0065 5468 6520 		.string	"The Cycle Is:   "
 656      4379 636C 
 656      6520 4973 
 656      3A20 2020 

⌨️ 快捷键说明

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