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

📄 main.lst

📁 ATmage8515键盘扫描程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
 369 010a 9105      		cpc r25,__zero_reg__
 370 010c 49F0      		breq .L36
 371 010e 0297      		sbiw r24,2
 372 0110 49F0      		breq .L37
 373 0112 0FC0      		rjmp .L34
 374               	.L43:
 375 0114 8830      		cpi r24,8
 376 0116 9105      		cpc r25,__zero_reg__
 377 0118 49F0      		breq .L39
 378 011a 4097      		sbiw r24,16
 379 011c 49F0      		breq .L40
 380 011e 09C0      		rjmp .L34
 381               	.L36:
  89:main.c        **** 			{
  90:main.c        **** 				case 0x01:
  91:main.c        **** 					KeyValue=6;
 383               	.LM41:
 384 0120 C6E0      		ldi r28,lo8(6)
  92:main.c        **** 					break;
 386               	.LM42:
 387 0122 07C0      		rjmp .L34
 388               	.L37:
  93:main.c        **** 				case 0x02:
  94:main.c        **** 					KeyValue=7;
 390               	.LM43:
 391 0124 C7E0      		ldi r28,lo8(7)
  95:main.c        **** 					break;
 393               	.LM44:
 394 0126 05C0      		rjmp .L34
 395               	.L38:
  96:main.c        **** 				case 0x04:
  97:main.c        **** 					KeyValue= 8;
 397               	.LM45:
 398 0128 C8E0      		ldi r28,lo8(8)
  98:main.c        **** 					break;
 400               	.LM46:
 401 012a 03C0      		rjmp .L34
 402               	.L39:
  99:main.c        **** 				case 0x08:
 100:main.c        **** 					KeyValue= 9;
 404               	.LM47:
 405 012c C9E0      		ldi r28,lo8(9)
 101:main.c        **** 					break;
 407               	.LM48:
 408 012e 01C0      		rjmp .L34
 409               	.L40:
 102:main.c        **** 				case 0x10:
 103:main.c        **** 					KeyValue= 10;
 411               	.LM49:
 412 0130 CAE0      		ldi r28,lo8(10)
 413               	.L34:
 104:main.c        **** 					break;
 105:main.c        **** 			}
 106:main.c        **** 		
 107:main.c        **** 	}
 108:main.c        **** 	PORTD=0xb0;
 415               	.LM50:
 416 0132 80EB      		ldi r24,lo8(-80)
 417 0134 82BB      		out 50-0x20,r24
 109:main.c        **** 	delay(1);
 419               	.LM51:
 420 0136 81E0      		ldi r24,lo8(1)
 421 0138 90E0      		ldi r25,hi8(1)
 422 013a 62DF      		rcall delay
 110:main.c        **** 	temp=PINC;
 424               	.LM52:
 425 013c 83B3      		in r24,51-0x20
 111:main.c        **** 	temp=~temp;
 427               	.LM53:
 428 013e 8095      		com r24
 112:main.c        **** 	if((temp&0x1f)!=0)
 430               	.LM54:
 431 0140 9927      		clr r25
 432 0142 8F71      		andi r24,lo8(31)
 433 0144 9070      		andi r25,hi8(31)
 434 0146 0097      		sbiw r24,0
 435 0148 D9F0      		breq .L44
 113:main.c        **** 	{
 114:main.c        **** 		
 115:main.c        **** 			switch(temp&0x1f)
 437               	.LM55:
 438 014a 8430      		cpi r24,4
 439 014c 9105      		cpc r25,__zero_reg__
 440 014e 99F0      		breq .L48
 441 0150 8530      		cpi r24,5
 442 0152 9105      		cpc r25,__zero_reg__
 443 0154 34F4      		brge .L53
 444 0156 8130      		cpi r24,1
 445 0158 9105      		cpc r25,__zero_reg__
 446 015a 49F0      		breq .L46
 447 015c 0297      		sbiw r24,2
 448 015e 49F0      		breq .L47
 449 0160 0FC0      		rjmp .L44
 450               	.L53:
 451 0162 8830      		cpi r24,8
 452 0164 9105      		cpc r25,__zero_reg__
 453 0166 49F0      		breq .L49
 454 0168 4097      		sbiw r24,16
 455 016a 49F0      		breq .L50
 456 016c 09C0      		rjmp .L44
 457               	.L46:
 116:main.c        **** 			{
 117:main.c        **** 				case 0x01:
 118:main.c        **** 					KeyValue=11;
 459               	.LM56:
 460 016e CBE0      		ldi r28,lo8(11)
 119:main.c        **** 					break;
 462               	.LM57:
 463 0170 07C0      		rjmp .L44
 464               	.L47:
 120:main.c        **** 				case 0x02:
 121:main.c        **** 					KeyValue=12;
 466               	.LM58:
 467 0172 CCE0      		ldi r28,lo8(12)
 122:main.c        **** 					break;
 469               	.LM59:
 470 0174 05C0      		rjmp .L44
 471               	.L48:
 123:main.c        **** 				case 0x04:
 124:main.c        **** 					KeyValue= 13;
 473               	.LM60:
 474 0176 CDE0      		ldi r28,lo8(13)
 125:main.c        **** 					break;
 476               	.LM61:
 477 0178 03C0      		rjmp .L44
 478               	.L49:
 126:main.c        **** 				case 0x08:
 127:main.c        **** 					KeyValue= 14;
 480               	.LM62:
 481 017a CEE0      		ldi r28,lo8(14)
 128:main.c        **** 					break;
 483               	.LM63:
 484 017c 01C0      		rjmp .L44
 485               	.L50:
 129:main.c        **** 				case 0x10:
 130:main.c        **** 					KeyValue= 15;
 487               	.LM64:
 488 017e CFE0      		ldi r28,lo8(15)
 489               	.L44:
 131:main.c        **** 					break;
 132:main.c        **** 			}
 133:main.c        **** 		
 134:main.c        **** 	}
 135:main.c        **** 	PORTD=0x70;
 491               	.LM65:
 492 0180 80E7      		ldi r24,lo8(112)
 493 0182 82BB      		out 50-0x20,r24
 136:main.c        **** 	delay(1);
 495               	.LM66:
 496 0184 81E0      		ldi r24,lo8(1)
 497 0186 90E0      		ldi r25,hi8(1)
 498 0188 3BDF      		rcall delay
 137:main.c        **** 	temp=PINC;
 500               	.LM67:
 501 018a 83B3      		in r24,51-0x20
 138:main.c        **** 	temp=~temp;
 503               	.LM68:
 504 018c 8095      		com r24
 139:main.c        **** 	if((temp&0x1f)!=0)
 506               	.LM69:
 507 018e 9927      		clr r25
 508 0190 8F71      		andi r24,lo8(31)
 509 0192 9070      		andi r25,hi8(31)
 510 0194 0097      		sbiw r24,0
 511 0196 D9F0      		breq .L54
 140:main.c        **** 	{
 141:main.c        **** 			switch(temp&0x1f)
 513               	.LM70:
 514 0198 8430      		cpi r24,4
 515 019a 9105      		cpc r25,__zero_reg__
 516 019c 99F0      		breq .L58
 517 019e 8530      		cpi r24,5
 518 01a0 9105      		cpc r25,__zero_reg__
 519 01a2 34F4      		brge .L63
 520 01a4 8130      		cpi r24,1
 521 01a6 9105      		cpc r25,__zero_reg__
 522 01a8 49F0      		breq .L56
 523 01aa 0297      		sbiw r24,2
 524 01ac 49F0      		breq .L57
 525 01ae 0FC0      		rjmp .L54
 526               	.L63:
 527 01b0 8830      		cpi r24,8
 528 01b2 9105      		cpc r25,__zero_reg__
 529 01b4 49F0      		breq .L59
 530 01b6 4097      		sbiw r24,16
 531 01b8 49F0      		breq .L60
 532 01ba 09C0      		rjmp .L54
 533               	.L56:
 142:main.c        **** 			{
 143:main.c        **** 				case 0x01:
 144:main.c        **** 					KeyValue=16;
 535               	.LM71:
 536 01bc C0E1      		ldi r28,lo8(16)
 145:main.c        **** 					break;
 538               	.LM72:
 539 01be 07C0      		rjmp .L54
 540               	.L57:
 146:main.c        **** 				case 0x02:
 147:main.c        **** 					KeyValue=17;
 542               	.LM73:
 543 01c0 C1E1      		ldi r28,lo8(17)
 148:main.c        **** 					break;
 545               	.LM74:
 546 01c2 05C0      		rjmp .L54
 547               	.L58:
 149:main.c        **** 				case 0x04:
 150:main.c        **** 					KeyValue= 18;
 549               	.LM75:
 550 01c4 C2E1      		ldi r28,lo8(18)
 151:main.c        **** 					break;
 552               	.LM76:
 553 01c6 03C0      		rjmp .L54
 554               	.L59:
 152:main.c        **** 				case 0x08:
 153:main.c        **** 					KeyValue= 19;
 556               	.LM77:
 557 01c8 C3E1      		ldi r28,lo8(19)
 154:main.c        **** 					break;
 559               	.LM78:
 560 01ca 01C0      		rjmp .L54
 561               	.L60:
 155:main.c        **** 				case 0x10:
 156:main.c        **** 					KeyValue= 20;
 563               	.LM79:
 564 01cc C4E1      		ldi r28,lo8(20)
 565               	.L54:
 157:main.c        **** 					break;
 158:main.c        **** 			}
 159:main.c        **** 	}
 160:main.c        **** 	return(KeyValue);
 567               	.LM80:
 568 01ce 8C2F      		mov r24,r28
 569 01d0 9927      		clr r25
 161:main.c        **** 	
 162:main.c        **** }
 571               	.LM81:
 572               	.LBE3:
 573               	/* epilogue: frame size=0 */
 574 01d2 CF91      		pop r28
 575 01d4 0895      		ret
 576               	/* epilogue end (size=2) */
 577               	/* function KeySan size 170 (167) */
 583               	.Lscope4:
 586               	.global	main
 588               	main:
 163:main.c        **** /****************************************
 164:main.c        ****       主程序
 165:main.c        **** ****************************************/
 166:main.c        **** int main(void)
 167:main.c        **** {
 590               	.LM82:
 591               	/* prologue: frame size=0 */
 592 01d6 C0E0      		ldi r28,lo8(__stack - 0)
 593 01d8 D0E0      		ldi r29,hi8(__stack - 0)
 594 01da DEBF      		out __SP_H__,r29
 595 01dc CDBF      		out __SP_L__,r28
 596               	/* prologue end (size=4) */
 168:main.c        ****   uint8_t tKeyValue;
 169:main.c        ****   DDRB|=0x02;
 598               	.LM83:
 599               	.LBB4:
 600 01de B99A      		sbi 55-0x20,1
 170:main.c        ****   SPI_SlaveInit();
 602               	.LM84:
 603 01e0 48DF      		rcall SPI_SlaveInit
 171:main.c        ****   DDRD=0xf0;//D4,D5,D6,D7为扫描线
 605               	.LM85:
 606 01e2 80EF      		ldi r24,lo8(-16)
 607 01e4 81BB      		out 49-0x20,r24
 172:main.c        ****   DDRC=0x00;//C0-C4为输入线
 609               	.LM86:
 610 01e6 14BA      		out 52-0x20,__zero_reg__
 611               	.L70:
 173:main.c        ****   while(1)
 174:main.c        ****   {
 175:main.c        **** 	  tKeyValue=KeySan();
 613               	.LM87:
 614 01e8 54DF      		rcall KeySan
 176:main.c        **** 	  if(tKeyValue!=0xff)
 616               	.LM88:
 617 01ea 8F3F      		cpi r24,lo8(-1)
 618 01ec E9F3      		breq .L70
 177:main.c        **** 		  SPDR=tKeyValue;
 620               	.LM89:
 621 01ee 8FB9      		out 47-0x20,r24
 622 01f0 FBCF      		rjmp .L70
 178:main.c        ****   }
 179:main.c        ****   return 0;
 180:main.c        **** }
 624               	.LM90:
 625               	.LBE4:
 626               	/* epilogue: frame size=0 */
 627               	/* epilogue: noreturn */
 628               	/* epilogue end (size=0) */
 629               	/* function main size 14 (10) */
 634               	.Lscope5:
 636               		.comm RevData,1,1
 638               		.text
 640               	Letext:
 641               	/* File "main.c": code  259 = 0x0103 ( 230), prologues  15, epilogues  14 */
DEFINED SYMBOLS
                            *ABS*:00000000 main.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/cccPaaaa.s:86     .text:00000000 delay
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:175    .text:00000072 SPI_SlaveInit
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:204    .text:00000080 SPI_SlaveReceive
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:231    .text:0000008a ISR
                            *COM*:00000001 RevData
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:252    .text:00000092 KeySan
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:588    .text:000001d6 main
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccPaaaa.s:640    .text:000001f2 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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