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

📄 main.lst

📁 一个基于MEGA16的GUI
💻 LST
📖 第 1 页 / 共 4 页
字号:
  59:main.c        ****     GUI_CPutChar8_8(12, 55, Rec_D+48,Red);
 403               	.LM3:
 404               	/* #NOAPP */
 405 0002 8091 0000 		lds r24,Rec_D
 406 0006 805D      		subi r24,lo8(-(48))
 407 0008 23E0      		ldi r18,lo8(3)
 408 000a 482F      		mov r20,r24
 409 000c 67E3      		ldi r22,lo8(55)
 410 000e 8CE0      		ldi r24,lo8(12)
 411 0010 0E94 0000 		call GUI_CPutChar8_8
  60:main.c        **** 	  if(0x0a==Rec_D)              /*1010*/
 413               	.LM4:
 414 0014 8091 0000 		lds r24,Rec_D
 415 0018 8A30      		cpi r24,lo8(10)
 416 001a 29F4      		brne .L4
  61:main.c        **** 	  {
  62:main.c        **** 	   Acc=0; 
 418               	.LM5:
 419 001c 1092 0000 		sts Acc,__zero_reg__
  63:main.c        ****        Rec_Start=1;               /*  导言正确 启动接收数据 */
 421               	.LM6:
 422 0020 81E0      		ldi r24,lo8(1)
 423 0022 8093 0000 		sts Rec_Start,r24
 424               	.L4:
  64:main.c        **** 	  }
  65:main.c        **** 	  if((Rec_D!=0x0a)&&(1==Rec_Start))
 426               	.LM7:
 427 0026 8091 0000 		lds r24,Rec_D
 428 002a 8A30      		cpi r24,lo8(10)
 429 002c 71F1      		breq .L5
 430 002e 8091 0000 		lds r24,Rec_Start
 431 0032 8130      		cpi r24,lo8(1)
 432 0034 51F5      		brne .L5
  66:main.c        **** 	  {
  67:main.c        **** 	   if((0==Acc)&&(!(Rec_D&0x04)))
 434               	.LM8:
 435 0036 9091 0000 		lds r25,Acc
 436 003a 9923      		tst r25
 437 003c 31F4      		brne .L6
 438 003e 8091 0000 		lds r24,Rec_D
 439 0042 82FD      		sbrc r24,2
 440 0044 02C0      		rjmp .L6
  68:main.c        **** 	   {
  69:main.c        **** 	    Rec_Start=0;
 442               	.LM9:
 443 0046 9093 0000 		sts Rec_Start,r25
 444               	.L6:
  70:main.c        **** 	   }
  71:main.c        **** 	   Acc++;
 446               	.LM10:
 447 004a 9F5F      		subi r25,lo8(-(1))
 448 004c 9093 0000 		sts Acc,r25
  72:main.c        **** 	   TEM_Buffer+=(Rec_D-1)<<(12-(3*Acc));
 450               	.LM11:
 451 0050 8091 0000 		lds r24,Rec_D
 452 0054 282F      		mov r18,r24
 453 0056 3327      		clr r19
 454 0058 2150      		subi r18,lo8(-(-1))
 455 005a 3040      		sbci r19,hi8(-(-1))
 456 005c 83E0      		ldi r24,lo8(3)
 457 005e 989F      		mul r25,r24
 458 0060 A001      		movw r20,r0
 459 0062 1124      		clr r1
 460 0064 8CE0      		ldi r24,lo8(12)
 461 0066 90E0      		ldi r25,hi8(12)
 462 0068 841B      		sub r24,r20
 463 006a 950B      		sbc r25,r21
 464 006c 02C0      		rjmp 2f
 465 006e 220F      	1:	lsl r18
 466 0070 331F      		rol r19
 467 0072 8A95      	2:	dec r24
 468 0074 E2F7      		brpl 1b
 469 0076 8091 0000 		lds r24,TEM_Buffer
 470 007a 9091 0000 		lds r25,(TEM_Buffer)+1
 471 007e 820F      		add r24,r18
 472 0080 931F      		adc r25,r19
 473 0082 9093 0000 		sts (TEM_Buffer)+1,r25
 474 0086 8093 0000 		sts TEM_Buffer,r24
 475               	.L5:
  73:main.c        **** 	  }
  74:main.c        **** 	  if(Acc==4)
 477               	.LM12:
 478 008a 8091 0000 		lds r24,Acc
 479 008e 8430      		cpi r24,lo8(4)
 480 0090 09F0      		breq .+2
 481 0092 53C0      		rjmp .L7
  75:main.c        **** 	  {
  76:main.c        **** 	   REC_TEMP=((TEM_Buffer&0x0fc0)>>6)-22;
 483               	.LM13:
 484 0094 4091 0000 		lds r20,TEM_Buffer
 485 0098 5091 0000 		lds r21,(TEM_Buffer)+1
 486 009c CA01      		movw r24,r20
 487 009e 807C      		andi r24,lo8(4032)
 488 00a0 9F70      		andi r25,hi8(4032)
 489 00a2 66E0      		ldi r22,6
 490 00a4 9695      	1:	lsr r25
 491 00a6 8795      		ror r24
 492 00a8 6A95      		dec r22
 493 00aa E1F7      		brne 1b
 494 00ac 282F      		mov r18,r24
 495 00ae 2651      		subi r18,lo8(-(-22))
  77:main.c        **** 	   if((REC_TEMP>10)&&(REC_TEMP<41))
 497               	.LM14:
 498 00b0 8152      		subi r24,lo8(-(-33))
 499 00b2 8E31      		cpi r24,lo8(30)
 500 00b4 E0F5      		brsh .L8
  78:main.c        **** 	   {
  79:main.c        **** 	   TEM_H = REC_TEMP;
 502               	.LM15:
 503 00b6 3327      		clr r19
 504 00b8 3093 0000 		sts (TEM_H)+1,r19
 505 00bc 2093 0000 		sts TEM_H,r18
  80:main.c        **** 	   if(TEM_H>=TEM_Alarm)
 507               	.LM16:
 508 00c0 8091 0000 		lds r24,TEM_Alarm
 509 00c4 9927      		clr r25
 510 00c6 2817      		cp r18,r24
 511 00c8 3907      		cpc r19,r25
 512 00ca 20F0      		brlo .L9
  81:main.c        **** 	   {Alarm=1;}
 514               	.LM17:
 515 00cc 81E0      		ldi r24,lo8(1)
 516 00ce 8093 0000 		sts Alarm,r24
 517 00d2 03C0      		rjmp .L10
 518               	.L9:
  82:main.c        **** 	   else
  83:main.c        **** 	   {Alarm=0;PORTD|=0x01;}
 520               	.LM18:
 521 00d4 1092 0000 		sts Alarm,__zero_reg__
 522 00d8 909A      		sbi 50-0x20,0
 523               	.L10:
  84:main.c        **** 	   TEM_L=(TEM_Buffer&0x003c)>>2;
 525               	.LM19:
 526 00da CA01      		movw r24,r20
 527 00dc 8C73      		andi r24,lo8(60)
 528 00de 9070      		andi r25,hi8(60)
 529 00e0 9695      		lsr r25
 530 00e2 8795      		ror r24
 531 00e4 9695      		lsr r25
 532 00e6 8795      		ror r24
  85:main.c        **** 	   TEM_L=TEM_L*1000/16;
 534               	.LM20:
 535 00e8 28EE      		ldi r18,lo8(1000)
 536 00ea 33E0      		ldi r19,hi8(1000)
 537 00ec 829F      		mul r24,r18
 538 00ee B001      		movw r22,r0
 539 00f0 839F      		mul r24,r19
 540 00f2 700D      		add r23,r0
 541 00f4 929F      		mul r25,r18
 542 00f6 700D      		add r23,r0
 543 00f8 1124      		clr r1
 544 00fa CB01      		movw r24,r22
 545 00fc 24E0      		ldi r18,4
 546 00fe 9695      	1:	lsr r25
 547 0100 8795      		ror r24
 548 0102 2A95      		dec r18
 549 0104 E1F7      		brne 1b
 550 0106 9093 0000 		sts (TEM_L)+1,r25
 551 010a 8093 0000 		sts TEM_L,r24
 552 010e 8091 0000 		lds r24,KEY
  86:main.c        **** 	   KEY=(TEM_Buffer&0x0002)?  (KEY|0xf0):(KEY&0x0f);
 554               	.LM21:
 555 0112 41FF      		sbrs r20,1
 556 0114 02C0      		rjmp .L11
 557 0116 806F      		ori r24,lo8(-16)
 558 0118 01C0      		rjmp .L12
 559               	.L11:
 560 011a 8F70      		andi r24,lo8(15)
 561               	.L12:
 562 011c 8093 0000 		sts KEY,r24
  87:main.c        **** 	   KEY=(TEM_Buffer&0x0001)?   (KEY|0x0f):(KEY&0xf0);
 564               	.LM22:
 565 0120 40FF      		sbrs r20,0
 566 0122 02C0      		rjmp .L13
 567 0124 8F60      		ori r24,lo8(15)
 568 0126 01C0      		rjmp .L14
 569               	.L13:
 570 0128 807F      		andi r24,lo8(-16)
 571               	.L14:
 572 012a 8093 0000 		sts KEY,r24
 573               	.L8:
  88:main.c        **** 	   }
  89:main.c        **** 	   TEM_Buffer=0;
 575               	.LM23:
 576 012e 1092 0000 		sts (TEM_Buffer)+1,__zero_reg__
 577 0132 1092 0000 		sts TEM_Buffer,__zero_reg__
  90:main.c        **** 	   Rec_Start=0;
 579               	.LM24:
 580 0136 1092 0000 		sts Rec_Start,__zero_reg__
 581               	.L7:
  91:main.c        **** 	  }
  92:main.c        **** 	  sei();
 583               	.LM25:
 584               	/* #APP */
 585 013a 7894      		sei
  93:main.c        **** 	  OSWait(K_SIG,0);
 587               	.LM26:
 588               	/* #NOAPP */
 589 013c 60E0      		ldi r22,lo8(0)
 590 013e 81E0      		ldi r24,lo8(1)
 591 0140 0E94 0000 		call OSWait
 592 0144 5DCF      		rjmp .L2
 593               	/* epilogue: frame size=0 */
 594               	/* epilogue: noreturn */
 595               	/* epilogue end (size=0) */
 596               	/* function task0 size 166 (166) */
 601               	.Lscope0:
 603               	.global	task1
 605               	task1:
  94:main.c        **** 	}
  95:main.c        **** }
  96:main.c        **** 
  97:main.c        **** void task1(void)
  98:main.c        **** {uint8 i;
 607               	.LM27:
 608               	/* prologue: frame size=0 */
 609               	/* prologue end (size=0) */
 610               	.L16:
  99:main.c        **** 	while(1)
 100:main.c        **** 	{
 101:main.c        **** 	 Display[0]=(TEM_H/10)+48;
 612               	.LM28:
 613 0146 2091 0000 		lds r18,TEM_H
 614 014a 3091 0000 		lds r19,(TEM_H)+1
 615 014e C901      		movw r24,r18
 616 0150 6AE0      		ldi r22,lo8(10)
 617 0152 70E0      		ldi r23,hi8(10)
 618 0154 0E94 0000 		call __udivmodhi4
 619 0158 CB01      		movw r24,r22
 620 015a 805D      		subi r24,lo8(-(48))
 621 015c 8093 0000 		sts Display,r24
 102:main.c        **** 	 Display[1]=(TEM_H%10)+48;
 623               	.LM29:
 624 0160 C901      		movw r24,r18
 625 0162 6AE0      		ldi r22,lo8(10)
 626 0164 70E0      		ldi r23,hi8(10)
 627 0166 0E94 0000 		call __udivmodhi4
 628 016a 805D      		subi r24,lo8(-(48))
 629 016c 8093 0000 		sts Display+1,r24
 103:main.c        **** 	 Display[3]=(TEM_L/100)+48;
 631               	.LM30:
 632 0170 2091 0000 		lds r18,TEM_L
 633 0174 3091 0000 		lds r19,(TEM_L)+1
 634 0178 C901      		movw r24,r18
 635 017a 64E6      		ldi r22,lo8(100)
 636 017c 70E0      		ldi r23,hi8(100)
 637 017e 0E94 0000 		call __udivmodhi4
 638 0182 CB01      		movw r24,r22
 639 0184 805D      		subi r24,lo8(-(48))
 640 0186 8093 0000 		sts Display+3,r24
 104:main.c        **** 	 Display[4]=((TEM_L%100)/10)+48;
 642               	.LM31:
 643 018a C901      		movw r24,r18
 644 018c 64E6      		ldi r22,lo8(100)
 645 018e 70E0      		ldi r23,hi8(100)
 646 0190 0E94 0000 		call __udivmodhi4
 647 0194 9C01      		movw r18,r24
 648 0196 6AE0      		ldi r22,lo8(10)
 649 0198 70E0      		ldi r23,hi8(10)
 650 019a 0E94 0000 		call __udivmodhi4
 651 019e CB01      		movw r24,r22
 652 01a0 805D      		subi r24,lo8(-(48))
 653 01a2 8093 0000 		sts Display+4,r24
 105:main.c        **** 	 Display[5]=((TEM_L%100)%10)+48;
 655               	.LM32:
 656 01a6 C901      		movw r24,r18
 657 01a8 6AE0      		ldi r22,lo8(10)
 658 01aa 70E0      		ldi r23,hi8(10)
 659 01ac 0E94 0000 		call __udivmodhi4
 660 01b0 805D      		subi r24,lo8(-(48))
 661 01b2 8093 0000 		sts Display+5,r24
 106:main.c        **** 	 Temperature_buffer[0]=TEM_H;
 663               	.LM33:
 664 01b6 8091 0000 		lds r24,TEM_H
 665 01ba 8093 0000 		sts Temperature_buffer,r24
 666               	.LBB2:
 668               	.Ltext1:
   1:F:/Program Files/WINAVR/avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
   2:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    Copyright (c) 2005, 2006 Bjoern Haase
   3:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    All rights reserved.
   4:F:/Program Files/WINAVR/avr/include/avr/eeprom.h **** 
   5:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    Redistribution and use in source and binary forms, with or without
   6:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    modification, are permitted provided that the following conditions are met:
   7:F:/Program Files/WINAVR/avr/include/avr/eeprom.h **** 
   8:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    * Redistributions of source code must retain the above copyright
   9:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer.
  10:F:/Program Files/WINAVR/avr/include/avr/eeprom.h **** 
  11:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    * Redistributions in binary form must reproduce the above copyright
  12:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****      notice, this list of conditions and the following disclaimer in
  13:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****      the documentation and/or other materials provided with the
  14:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****      distribution.
  15:F:/Program Files/WINAVR/avr/include/avr/eeprom.h **** 
  16:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****    * Neither the name of the copyright holders nor the names of
  17:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****      contributors may be used to endorse or promote products derived
  18:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****      from this software without specific prior written permission.
  19:F:/Program Files/WINAVR/avr/include/avr/eeprom.h **** 
  20:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  21:F:/Program Files/WINAVR/avr/include/avr/eeprom.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE

⌨️ 快捷键说明

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