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

📄 4key.lst

📁 AVR单片机控制下的实时按键显示,已测试通过
💻 LST
📖 第 1 页 / 共 2 页
字号:
 289 0154 11C0      		rjmp .L40
 290               	.L20:
  44:D:/ouyangyingqian/four/4key.c **** 				case keycode7: led=ledcode[7];Time=0;break;
 292               	.LM16:
 293 0156 902F      		mov r25,r16
 294 0158 0FC0      		rjmp .L40
 295               	.L21:
  45:D:/ouyangyingqian/four/4key.c **** 				case keycode8: led=ledcode[8];Time=0;break;
 297               	.LM17:
 298 015a 912F      		mov r25,r17
 299 015c 0DC0      		rjmp .L40
 300               	.L22:
  46:D:/ouyangyingqian/four/4key.c **** 				case keycode9: led=ledcode[9];Time=0;break;
 302               	.LM18:
 303 015e 9C2F      		mov r25,r28
 304 0160 0BC0      		rjmp .L40
 305               	.L23:
  47:D:/ouyangyingqian/four/4key.c **** 				case keycodeA: led=ledcode[10];Time=0;break;
 307               	.LM19:
 308 0162 9B2F      		mov r25,r27
 309 0164 09C0      		rjmp .L40
 310               	.L24:
  48:D:/ouyangyingqian/four/4key.c **** 				case keycodeB: led=ledcode[11];Time=0;break;
 312               	.LM20:
 313 0166 9A2F      		mov r25,r26
 314 0168 07C0      		rjmp .L40
 315               	.L25:
  49:D:/ouyangyingqian/four/4key.c **** 				case keycodeC: led=ledcode[12];Time=0;break;
 317               	.LM21:
 318 016a 9F2F      		mov r25,r31
 319 016c 05C0      		rjmp .L40
 320               	.L26:
  50:D:/ouyangyingqian/four/4key.c **** 				case keycodeD: led=ledcode[13];Time=0;break;
 322               	.LM22:
 323 016e 9E2F      		mov r25,r30
 324 0170 03C0      		rjmp .L40
 325               	.L27:
  51:D:/ouyangyingqian/four/4key.c **** 				case keycodeE: led=ledcode[14];Time=0;break;
 327               	.LM23:
 328 0172 972F      		mov r25,r23
 329 0174 01C0      		rjmp .L40
 330               	.L28:
  52:D:/ouyangyingqian/four/4key.c **** 				case keycodeF: led=ledcode[15];Time=0;break;
 332               	.LM24:
 333 0176 962F      		mov r25,r22
 334               	.L40:
 335 0178 40E0      		ldi r20,lo8(0)
 336 017a 01C0      		rjmp .L4
 337               	.L29:
  53:D:/ouyangyingqian/four/4key.c **** 				default : {
  54:D:/ouyangyingqian/four/4key.c **** 					Time++;
 339               	.LM25:
 340 017c 4F5F      		subi r20,lo8(-(1))
 341               	.L4:
  55:D:/ouyangyingqian/four/4key.c **** 					break;
  56:D:/ouyangyingqian/four/4key.c **** 					}
  57:D:/ouyangyingqian/four/4key.c **** 			}
  58:D:/ouyangyingqian/four/4key.c **** 		}
 343               	.LM26:
 344 017e 842F      		mov r24,r20
 345 0180 8150      		subi r24,lo8(-(-1))
 346 0182 8330      		cpi r24,lo8(3)
 347 0184 08F4      		brsh .+2
 348 0186 6CCF      		rjmp .L2
 349 0188 4093 0000 		sts Time.1,r20
 350 018c 9093 0000 		sts led.2,r25
 351 0190 5093 0000 		sts ScanCode.0,r21
  59:D:/ouyangyingqian/four/4key.c **** 		while((Time!=0)&(Time<4));	//如果time=4(键盘扫描一遍)
  60:D:/ouyangyingqian/four/4key.c **** 
  61:D:/ouyangyingqian/four/4key.c **** 		
  62:D:/ouyangyingqian/four/4key.c **** 		if(Time==4)			//由time=4条件而退出,即没有扫描到按键
 353               	.LM27:
 354 0194 4430      		cpi r20,lo8(4)
 355 0196 21F4      		brne .L37
  63:D:/ouyangyingqian/four/4key.c **** 			{
  64:D:/ouyangyingqian/four/4key.c **** 				return(ledlast);
 357               	.LM28:
 358 0198 8091 0000 		lds r24,ledlast.4
 359 019c 9927      		clr r25
 360 019e 08C0      		rjmp .L1
 361               	.L37:
  65:D:/ouyangyingqian/four/4key.c **** 			}
  66:D:/ouyangyingqian/four/4key.c **** 		else
  67:D:/ouyangyingqian/four/4key.c **** 			{
  68:D:/ouyangyingqian/four/4key.c **** 		//检测到有按键时,更新按键值
  69:D:/ouyangyingqian/four/4key.c **** 			ledlast=ledcurrent;
 363               	.LM29:
 364 01a0 8091 0000 		lds r24,ledcurrent.3
 365 01a4 8093 0000 		sts ledlast.4,r24
  70:D:/ouyangyingqian/four/4key.c **** 			ledcurrent=led;
 367               	.LM30:
 368 01a8 9093 0000 		sts ledcurrent.3,r25
  71:D:/ouyangyingqian/four/4key.c **** 			return(ledcurrent);
 370               	.LM31:
 371 01ac 892F      		mov r24,r25
 372 01ae 9927      		clr r25
 373               	.L1:
 374               	/* epilogue: frame size=0 */
 375 01b0 CF91      		pop r28
 376 01b2 1F91      		pop r17
 377 01b4 0F91      		pop r16
 378 01b6 FF90      		pop r15
 379 01b8 EF90      		pop r14
 380 01ba DF90      		pop r13
 381 01bc CF90      		pop r12
 382 01be BF90      		pop r11
 383 01c0 AF90      		pop r10
 384 01c2 9F90      		pop r9
 385 01c4 0895      		ret
 386               	/* epilogue end (size=11) */
 387               	/* function Keyboard size 226 (205) */
 395               	.global	Initi_Device
 397               	Initi_Device:
  72:D:/ouyangyingqian/four/4key.c **** 			}
  73:D:/ouyangyingqian/four/4key.c **** }
  74:D:/ouyangyingqian/four/4key.c **** 
  75:D:/ouyangyingqian/four/4key.c **** 
  76:D:/ouyangyingqian/four/4key.c **** void Initi_Device(void)
  77:D:/ouyangyingqian/four/4key.c **** {
 399               	.LM32:
 400               	/* prologue: frame size=0 */
 401               	/* prologue end (size=0) */
  78:D:/ouyangyingqian/four/4key.c **** 	LED_ADD_DDR=0xFF;    //定义为输出
 403               	.LM33:
 404 01c6 8FEF      		ldi r24,lo8(-1)
 405 01c8 81BB      		out 49-0x20,r24
  79:D:/ouyangyingqian/four/4key.c **** 	LED_ADD_PORT=0xFE;   //控制最后一个八段数码管亮
 407               	.LM34:
 408 01ca 9EEF      		ldi r25,lo8(-2)
 409 01cc 92BB      		out 50-0x20,r25
  80:D:/ouyangyingqian/four/4key.c **** 	LED_DATA_DDR=0xFF;   //定义为输出
 411               	.LM35:
 412 01ce 87BB      		out 55-0x20,r24
  81:D:/ouyangyingqian/four/4key.c **** 	LED_DATA_PORT=0xBF;  //输出数字
 414               	.LM36:
 415 01d0 8FEB      		ldi r24,lo8(-65)
 416 01d2 88BB      		out 56-0x20,r24
 417               	/* epilogue: frame size=0 */
 418 01d4 0895      		ret
 419               	/* epilogue end (size=1) */
 420               	/* function Initi_Device size 8 (7) */
 423               	.global	__vector_9
 425               	__vector_9:
  82:D:/ouyangyingqian/four/4key.c **** }
  83:D:/ouyangyingqian/four/4key.c **** 
  84:D:/ouyangyingqian/four/4key.c **** SIGNAL(SIG_OVERFLOW0)
  85:D:/ouyangyingqian/four/4key.c **** {
 427               	.LM37:
 428               	/* prologue: frame size=0 */
 429 01d6 1F92      		push __zero_reg__
 430 01d8 0F92      		push __tmp_reg__
 431 01da 0FB6      		in __tmp_reg__,__SREG__
 432 01dc 0F92      		push __tmp_reg__
 433 01de 1124      		clr __zero_reg__
 434 01e0 2F93      		push r18
 435 01e2 3F93      		push r19
 436 01e4 4F93      		push r20
 437 01e6 5F93      		push r21
 438 01e8 6F93      		push r22
 439 01ea 7F93      		push r23
 440 01ec 8F93      		push r24
 441 01ee 9F93      		push r25
 442 01f0 AF93      		push r26
 443 01f2 BF93      		push r27
 444 01f4 EF93      		push r30
 445 01f6 FF93      		push r31
 446               	/* prologue end (size=17) */
  86:D:/ouyangyingqian/four/4key.c **** TCNT0=0XB2;
 448               	.LM38:
 449 01f8 82EB      		ldi r24,lo8(-78)
 450 01fa 82BF      		out 82-0x20,r24
  87:D:/ouyangyingqian/four/4key.c **** LED_DATA_PORT=Keyboard();
 452               	.LM39:
 453 01fc 0E94 0000 		call Keyboard
 454 0200 88BB      		out 56-0x20,r24
 455               	/* epilogue: frame size=0 */
 456 0202 FF91      		pop r31
 457 0204 EF91      		pop r30
 458 0206 BF91      		pop r27
 459 0208 AF91      		pop r26
 460 020a 9F91      		pop r25
 461 020c 8F91      		pop r24
 462 020e 7F91      		pop r23
 463 0210 6F91      		pop r22
 464 0212 5F91      		pop r21
 465 0214 4F91      		pop r20
 466 0216 3F91      		pop r19
 467 0218 2F91      		pop r18
 468 021a 0F90      		pop __tmp_reg__
 469 021c 0FBE      		out __SREG__,__tmp_reg__
 470 021e 0F90      		pop __tmp_reg__
 471 0220 1F90      		pop __zero_reg__
 472 0222 1895      		reti
 473               	/* epilogue end (size=17) */
 474               	/* function __vector_9 size 39 (5) */
 477               	.global	main
 479               	main:
  88:D:/ouyangyingqian/four/4key.c **** }
  89:D:/ouyangyingqian/four/4key.c **** 
  90:D:/ouyangyingqian/four/4key.c **** int main(void)
  91:D:/ouyangyingqian/four/4key.c **** {
 481               	.LM40:
 482               	/* prologue: frame size=0 */
 483 0224 C0E0      		ldi r28,lo8(__stack - 0)
 484 0226 D0E0      		ldi r29,hi8(__stack - 0)
 485 0228 DEBF      		out __SP_H__,r29
 486 022a CDBF      		out __SP_L__,r28
 487               	/* prologue end (size=4) */
  92:D:/ouyangyingqian/four/4key.c **** KEY_DDR=0X0F;
 489               	.LM41:
 490 022c 8FE0      		ldi r24,lo8(15)
 491 022e 84BB      		out 52-0x20,r24
  93:D:/ouyangyingqian/four/4key.c **** KEY_PORT=0XFF;
 493               	.LM42:
 494 0230 8FEF      		ldi r24,lo8(-1)
 495 0232 85BB      		out 53-0x20,r24
  94:D:/ouyangyingqian/four/4key.c **** Initi_Device();
 497               	.LM43:
 498 0234 0E94 0000 		call Initi_Device
  95:D:/ouyangyingqian/four/4key.c **** TCCR0=5;
 500               	.LM44:
 501 0238 85E0      		ldi r24,lo8(5)
 502 023a 83BF      		out 83-0x20,r24
  96:D:/ouyangyingqian/four/4key.c **** TCNT0=0XB2;
 504               	.LM45:
 505 023c 82EB      		ldi r24,lo8(-78)
 506 023e 82BF      		out 82-0x20,r24
  97:D:/ouyangyingqian/four/4key.c **** TIMSK=(1<<TOIE0);
 508               	.LM46:
 509 0240 81E0      		ldi r24,lo8(1)
 510 0242 89BF      		out 89-0x20,r24
  98:D:/ouyangyingqian/four/4key.c **** sei();
 512               	.LM47:
 513               	/* #APP */
 514 0244 7894      		sei
 515               	/* #NOAPP */
 516               	.L44:
  99:D:/ouyangyingqian/four/4key.c **** for(;;)
 518               	.LM48:
 519 0246 FFCF      		rjmp .L44
 520               	/* epilogue: frame size=0 */
 521               	/* epilogue: noreturn */
 522               	/* epilogue end (size=0) */
 523               	/* function main size 19 (15) */
 526               		.text
 528               	Letext:
 529               	/* File "D:/ouyangyingqian/four/4key.c": code  292 = 0x0124 ( 232), prologues  31, epilogues  29 */
DEFINED SYMBOLS
                            *ABS*:00000000 4key.c
                            *ABS*:0000003f __SREG__
                            *ABS*:0000003e __SP_H__
                            *ABS*:0000003d __SP_L__
                            *ABS*:00000000 __tmp_reg__
                            *ABS*:00000001 __zero_reg__
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:55     .data:00000000 ledcode
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:74     .data:00000010 ScanCode.0
                             .bss:00000000 Time.1
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:76     .bss:00000001 led.2
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:77     .bss:00000002 ledcurrent.3
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:78     .bss:00000003 ledlast.4
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:84     .text:00000000 Keyboard
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:397    .text:000001c6 Initi_Device
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:425    .text:000001d6 __vector_9
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:479    .text:00000224 main
C:\DOCUME~1\lab\LOCALS~1\Temp/ccsRaaaa.s:528    .text:00000248 Letext

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__stack

⌨️ 快捷键说明

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