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

📄 shiyan5.lst

📁 串口通讯程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 446               	__vector_30:
  68:shiyan5.c     **** SIGNAL(SIG_UART1_RECV)//当RXCIE1=1,SREG=0X80,接收结束时有RXC1也为1
  69:shiyan5.c     **** {
 448               	.LM34:
 449               	/* prologue: frame size=0 */
 450 01a0 1F92      		push __zero_reg__
 451 01a2 0F92      		push __tmp_reg__
 452 01a4 0FB6      		in __tmp_reg__,__SREG__
 453 01a6 0F92      		push __tmp_reg__
 454 01a8 1124      		clr __zero_reg__
 455 01aa 8F93      		push r24
 456 01ac 9F93      		push r25
 457 01ae EF93      		push r30
 458 01b0 FF93      		push r31
 459 01b2 CF93      		push r28
 460 01b4 DF93      		push r29
 461 01b6 CDB7      		in r28,__SP_L__
 462 01b8 DEB7      		in r29,__SP_H__
 463               	/* prologue end (size=13) */
  70:shiyan5.c     ****   cli();
 465               	.LM35:
 466               	/* #APP */
 467 01ba F894      		cli
  71:shiyan5.c     ****   global_uart1_data=UDR1;
 469               	.LM36:
 470               	/* #NOAPP */
 471 01bc 8091 9C00 		lds r24,156
 472 01c0 8093 0000 		sts global_uart1_data,r24
  72:shiyan5.c     ****   data_receive[ii]=global_uart1_data;
 474               	.LM37:
 475 01c4 8091 0000 		lds r24,ii
 476 01c8 9091 0000 		lds r25,(ii)+1
 477 01cc FC01      		movw r30,r24
 478 01ce E050      		subi r30,lo8(-(data_receive))
 479 01d0 F040      		sbci r31,hi8(-(data_receive))
 480 01d2 8091 0000 		lds r24,global_uart1_data
 481 01d6 8083      		st Z,r24
  73:shiyan5.c     ****   ii++;
 483               	.LM38:
 484 01d8 8091 0000 		lds r24,ii
 485 01dc 9091 0000 		lds r25,(ii)+1
 486 01e0 0196      		adiw r24,1
 487 01e2 9093 0000 		sts (ii)+1,r25
 488 01e6 8093 0000 		sts ii,r24
  74:shiyan5.c     ****   if(ii>14) 
 490               	.LM39:
 491 01ea 8091 0000 		lds r24,ii
 492 01ee 9091 0000 		lds r25,(ii)+1
 493 01f2 8F30      		cpi r24,15
 494 01f4 9105      		cpc r25,__zero_reg__
 495 01f6 24F0      		brlt .L31
  75:shiyan5.c     ****   {
  76:shiyan5.c     ****   ii=0;
 497               	.LM40:
 498 01f8 1092 0000 		sts (ii)+1,__zero_reg__
 499 01fc 1092 0000 		sts ii,__zero_reg__
 500               	.L31:
  77:shiyan5.c     ****   }
  78:shiyan5.c     ****   sei();
 502               	.LM41:
 503               	/* #APP */
 504 0200 7894      		sei
  79:shiyan5.c     **** }
 506               	.LM42:
 507               	/* #NOAPP */
 508               	/* epilogue: frame size=0 */
 509 0202 DF91      		pop r29
 510 0204 CF91      		pop r28
 511 0206 FF91      		pop r31
 512 0208 EF91      		pop r30
 513 020a 9F91      		pop r25
 514 020c 8F91      		pop r24
 515 020e 0F90      		pop __tmp_reg__
 516 0210 0FBE      		out __SREG__,__tmp_reg__
 517 0212 0F90      		pop __tmp_reg__
 518 0214 1F90      		pop __zero_reg__
 519 0216 1895      		reti
 520               	/* epilogue end (size=11) */
 521               	/* function __vector_30 size 62 (38) */
 523               	.Lscope5:
 528               	.global	lrc_check
 530               	lrc_check:
  80:shiyan5.c     **** int lrc_check(char *p,int length)
  81:shiyan5.c     **** {
 532               	.LM43:
 533               	/* prologue: frame size=12 */
 534 0218 CF93      		push r28
 535 021a DF93      		push r29
 536 021c CDB7      		in r28,__SP_L__
 537 021e DEB7      		in r29,__SP_H__
 538 0220 2C97      		sbiw r28,12
 539 0222 0FB6      		in __tmp_reg__,__SREG__
 540 0224 F894      		cli
 541 0226 DEBF      		out __SP_H__,r29
 542 0228 0FBE      		out __SREG__,__tmp_reg__
 543 022a CDBF      		out __SP_L__,r28
 544               	/* prologue end (size=10) */
 545 022c 8983      		std Y+1,r24
 546 022e 9A83      		std Y+2,r25
 547 0230 6B83      		std Y+3,r22
 548 0232 7C83      		std Y+4,r23
  82:shiyan5.c     ****   int lrc=0;
 550               	.LM44:
 551               	.LBB4:
 552 0234 1D82      		std Y+5,__zero_reg__
 553 0236 1E82      		std Y+6,__zero_reg__
  83:shiyan5.c     ****   int i=0;
 555               	.LM45:
 556 0238 1F82      		std Y+7,__zero_reg__
 557 023a 1886      		std Y+8,__zero_reg__
  84:shiyan5.c     ****   for(i=1;i<=length;i++)
 559               	.LM46:
 560 023c 81E0      		ldi r24,lo8(1)
 561 023e 90E0      		ldi r25,hi8(1)
 562 0240 8F83      		std Y+7,r24
 563 0242 9887      		std Y+8,r25
 564               	.L33:
 565 0244 2F81      		ldd r18,Y+7
 566 0246 3885      		ldd r19,Y+8
 567 0248 8B81      		ldd r24,Y+3
 568 024a 9C81      		ldd r25,Y+4
 569 024c 8217      		cp r24,r18
 570 024e 9307      		cpc r25,r19
 571 0250 0CF4      		brge .L36
 572 0252 16C0      		rjmp .L34
 573               	.L36:
  85:shiyan5.c     ****   lrc=lrc+*(p+i);
 575               	.LM47:
 576 0254 2981      		ldd r18,Y+1
 577 0256 3A81      		ldd r19,Y+2
 578 0258 8F81      		ldd r24,Y+7
 579 025a 9885      		ldd r25,Y+8
 580 025c F901      		movw r30,r18
 581 025e E80F      		add r30,r24
 582 0260 F91F      		adc r31,r25
 583 0262 8081      		ld r24,Z
 584 0264 282F      		mov r18,r24
 585 0266 3327      		clr r19
 586 0268 8D81      		ldd r24,Y+5
 587 026a 9E81      		ldd r25,Y+6
 588 026c 820F      		add r24,r18
 589 026e 931F      		adc r25,r19
 590 0270 8D83      		std Y+5,r24
 591 0272 9E83      		std Y+6,r25
 593               	.LM48:
 594 0274 8F81      		ldd r24,Y+7
 595 0276 9885      		ldd r25,Y+8
 596 0278 0196      		adiw r24,1
 597 027a 8F83      		std Y+7,r24
 598 027c 9887      		std Y+8,r25
 599 027e E2CF      		rjmp .L33
 600               	.L34:
  86:shiyan5.c     ****   lrc=lrc%256;
 602               	.LM49:
 603 0280 2D81      		ldd r18,Y+5
 604 0282 3E81      		ldd r19,Y+6
 605 0284 2987      		std Y+9,r18
 606 0286 3A87      		std Y+10,r19
 607 0288 4985      		ldd r20,Y+9
 608 028a 5A85      		ldd r21,Y+10
 609 028c 4B87      		std Y+11,r20
 610 028e 5C87      		std Y+12,r21
 611 0290 8B85      		ldd r24,Y+11
 612 0292 9C85      		ldd r25,Y+12
 613 0294 9923      		tst r25
 614 0296 34F4      		brge .L37
 615 0298 2B85      		ldd r18,Y+11
 616 029a 3C85      		ldd r19,Y+12
 617 029c 2150      		subi r18,lo8(-(255))
 618 029e 3F4F      		sbci r19,hi8(-(255))
 619 02a0 2B87      		std Y+11,r18
 620 02a2 3C87      		std Y+12,r19
 621               	.L37:
 622 02a4 4B85      		ldd r20,Y+11
 623 02a6 5C85      		ldd r21,Y+12
 624 02a8 252F      		mov r18,r21
 625 02aa 3327      		clr r19
 626 02ac 27FD      		sbrc r18,7
 627 02ae 3A95      		dec r19
 628 02b0 80E0      		ldi r24,lo8(256)
 629 02b2 91E0      		ldi r25,hi8(256)
 630 02b4 289F      		mul r18,r24
 631 02b6 A001      		movw r20,r0
 632 02b8 299F      		mul r18,r25
 633 02ba 500D      		add r21,r0
 634 02bc 389F      		mul r19,r24
 635 02be 500D      		add r21,r0
 636 02c0 1124      		clr r1
 637 02c2 CA01      		movw r24,r20
 638 02c4 2985      		ldd r18,Y+9
 639 02c6 3A85      		ldd r19,Y+10
 640 02c8 281B      		sub r18,r24
 641 02ca 390B      		sbc r19,r25
 642 02cc C901      		movw r24,r18
 643 02ce 8D83      		std Y+5,r24
 644 02d0 9E83      		std Y+6,r25
  87:shiyan5.c     ****   lrc=0xff-lrc;
 646               	.LM50:
 647 02d2 2FEF      		ldi r18,lo8(255)
 648 02d4 30E0      		ldi r19,hi8(255)
 649 02d6 8D81      		ldd r24,Y+5
 650 02d8 9E81      		ldd r25,Y+6
 651 02da 281B      		sub r18,r24
 652 02dc 390B      		sbc r19,r25
 653 02de C901      		movw r24,r18
 654 02e0 8D83      		std Y+5,r24
 655 02e2 9E83      		std Y+6,r25
  88:shiyan5.c     ****   lrc++;
 657               	.LM51:
 658 02e4 8D81      		ldd r24,Y+5
 659 02e6 9E81      		ldd r25,Y+6
 660 02e8 0196      		adiw r24,1
 661 02ea 8D83      		std Y+5,r24
 662 02ec 9E83      		std Y+6,r25
  89:shiyan5.c     ****   return lrc;
 664               	.LM52:
 665 02ee 8D81      		ldd r24,Y+5
 666 02f0 9E81      		ldd r25,Y+6
  90:shiyan5.c     **** }
 668               	.LM53:
 669               	.LBE4:
 670               	/* epilogue: frame size=12 */
 671 02f2 2C96      		adiw r28,12
 672 02f4 0FB6      		in __tmp_reg__,__SREG__
 673 02f6 F894      		cli
 674 02f8 DEBF      		out __SP_H__,r29
 675 02fa 0FBE      		out __SREG__,__tmp_reg__
 676 02fc CDBF      		out __SP_L__,r28
 677 02fe DF91      		pop r29
 678 0300 CF91      		pop r28
 679 0302 0895      		ret
 680               	/* epilogue end (size=9) */
 681               	/* function lrc_check size 118 (99) */
 687               	.Lscope6:
 690               	.global	main
 692               	main:
  91:shiyan5.c     **** int main()
  92:shiyan5.c     **** {       char *pointer;
 694               	.LM54:
 695               	/* prologue: frame size=7 */
 696 0304 C0E0      		ldi r28,lo8(__stack - 7)
 697 0306 D0E0      		ldi r29,hi8(__stack - 7)
 698 0308 DEBF      		out __SP_H__,r29
 699 030a CDBF      		out __SP_L__,r28
 700               	/* prologue end (size=4) */
  93:shiyan5.c     ****         int i;
  94:shiyan5.c     **** 		char n;
  95:shiyan5.c     ****         pointer=command_send;
 702               	.LM55:
 703               	.LBB5:
 704 030c 80E0      		ldi r24,lo8(command_send)
 705 030e 90E0      		ldi r25,hi8(command_send)
 706 0310 8983      		std Y+1,r24
 707 0312 9A83      		std Y+2,r25
  96:shiyan5.c     ****         int lrc_check_value;
  97:shiyan5.c     **** 	sbi(DDRD,PD4);//配置CS485为输出
 709               	.LM56:
 710 0314 8091 3100 		lds r24,49
 711 0318 8061      		ori r24,lo8(16)
 712 031a 8093 3100 		sts 49,r24
  98:shiyan5.c     **** 	cbi(PORTD,PD4);//控制max485为接收
 714               	.LM57:
 715 031e 8091 3200 		lds r24,50
 716 0322 8F7E      		andi r24,lo8(-17)
 717 0324 8093 3200 		sts 50,r24
  99:shiyan5.c     **** 	sei();
 719               	.LM58:
 720               	/* #APP */
 721 0328 7894      		sei
 100:shiyan5.c     ****         usart1_init();
 723               	.LM59:
 724               	/* #NOAPP */
 725 032a 0E94 0000 		call usart1_init
 101:shiyan5.c     ****         delay_ms(5);
 727               	.LM60:
 728 032e 85E0      		ldi r24,lo8(5)
 729 0330 90E0      		ldi r25,hi8(5)
 730 0332 0E94 0000 		call delay_ms
 102:shiyan5.c     ****         lrc_check_value=lrc_check(command_send,12);
 732               	.LM61:
 733 0336 6CE0      		ldi r22,lo8(12)
 734 0338 70E0      		ldi r23,hi8(12)
 735 033a 80E0      		ldi r24,lo8(command_send)
 736 033c 90E0      		ldi r25,hi8(command_send)
 737 033e 0E94 0000 		call lrc_check
 738 0342 8E83      		std Y+6,r24
 739 0344 9F83      		std Y+7,r25
 103:shiyan5.c     ****         for(i=0;i<=16;i++)
 741               	.LM62:
 742 0346 1B82      		std Y+3,__zero_reg__
 743 0348 1C82      		std Y+4,__zero_reg__
 744               	.L39:
 745 034a 8B81      		ldd r24,Y+3
 746 034c 9C81      		ldd r25,Y+4
 747 034e 8131      		cpi r24,17
 748 0350 9105      		cpc r25,__zero_reg__
 749 0352 0CF0      		brlt .L42
 750 0354 14C0      		rjmp .L40
 751               	.L42:
 104:shiyan5.c     ****         {sendchar(*pointer);
 753               	.LM63:
 754 0356 E981      		ldd r30,Y+1
 755 0358 FA81      		ldd r31,Y+2
 756 035a 8081      		ld r24,Z
 757 035c 0E94 0000 		call sendchar
 105:shiyan5.c     **** 		 n=*pointer;
 759               	.LM64:
 760 0360 E981      		ldd r30,Y+1
 761 0362 FA81      		ldd r31,Y+2
 762 0364 8081      		ld r24,Z
 763 0366 8D83      		std Y+5,r24
 106:shiyan5.c     ****         pointer++;}
 765               	.LM65:
 766 0368 8981      		ldd r24,Y+1
 767 036a 9A81      		ldd r25,Y+2
 768 036c 0196      		adiw r24,1
 769 036e 8983      		std Y+1,r24
 770 0370 9A83      		std Y+2,r25
 772               	.LM66:
 773 0372 8B81      		ldd r24,Y+3
 774 0374 9C81      		ldd r25,Y+4
 775 0376 0196      		adiw r24,1
 776 0378 8B83      		std Y+3,r24
 777 037a 9C83      		std Y+4,r25
 778 037c E6CF      		rjmp .L39
 779               	.L40:
 107:shiyan5.c     **** 	while(1)
 781               	.LM67:
 782               	.L43:
 783 037e FFCF      		rjmp .L43
 108:shiyan5.c     **** 	{;}
 109:shiyan5.c     **** 		
 110:shiyan5.c     **** }...
 785               	.LM68:
 786               	.LBE5:
 787               	/* epilogue: frame size=7 */
 788               	/* epilogue: noreturn */
 789               	/* epilogue end (size=0) */
 790               	/* function main size 63 (59) */
 798               	.Lscope7:
 800               		.comm data_receive,20,1
 805               		.text
 807               	Letext:
 808               	/* File "shiyan5.c": code  451 = 0x01c3 ( 321), prologues  71, epilogues  59 */
DEFINED SYMBOLS
                            *ABS*:00000000 shiyan5.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:91     .bss:00000000 global_uart1_data
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:97     .data:00000000 command_send
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:104    .bss:00000001 ii
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:111    .text:00000000 delay_us
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:167    .text:00000040 delay_ms
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:238    .text:00000092 delay_s
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:308    .text:000000e4 usart1_init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:360    .text:00000120 sendchar
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:446    .text:000001a0 __vector_30
                            *COM*:00000014 data_receive
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:530    .text:00000218 lrc_check
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:692    .text:00000304 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccOOaaaa.s:807    .text:00000380 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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