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

📄 yc_play.lst

📁 AVRX实时操作无线遥控LED变化控制完整源码
💻 LST
📖 第 1 页 / 共 3 页
字号:
 323 0122 1092 0000 		sts WorkFlag+2,__zero_reg__
 324 0126 27C0      		rjmp .L15
 325               	.L37:
 327               	.LM38:
 328 0128 8F2D      		mov r24,r15
 329 012a 9927      		clr r25
 330 012c 0097      		sbiw r24,0
 331 012e D1F0      		breq .L53
 332 0130 EC01      		movw r28,r24
 333               	.L41:
 335               	.LM39:
 336 0132 1092 0000 		sts (wCurRedAsh)+1,__zero_reg__
 337 0136 1092 0000 		sts wCurRedAsh,__zero_reg__
 339               	.LM40:
 340 013a 1093 0000 		sts (wCurGreAsh)+1,r17
 341 013e 0093 0000 		sts wCurGreAsh,r16
 343               	.LM41:
 344 0142 8091 0000 		lds r24,WASHVAL
 345 0146 9091 0000 		lds r25,(WASHVAL)+1
 346 014a 801B      		sub r24,r16
 347 014c 910B      		sbc r25,r17
 348 014e 9093 0000 		sts (wCurBluAsh)+1,r25
 349 0152 8093 0000 		sts wCurBluAsh,r24
 351               	.LM42:
 352 0156 AC01      		movw r20,r24
 353 0158 B801      		movw r22,r16
 354 015a 80E0      		ldi r24,lo8(0)
 355 015c 90E0      		ldi r25,hi8(0)
 356 015e 50DF      		rcall PlayStaticAsh
 358               	.LM43:
 359 0160 2197      		sbiw r28,1
 360 0162 39F7      		brne .L41
 361               	.L53:
 363               	.LM44:
 364 0164 0F5F      		subi r16,lo8(-(1))
 365 0166 1F4F      		sbci r17,hi8(-(1))
 366 0168 8091 0000 		lds r24,WASHVAL
 367 016c 9091 0000 		lds r25,(WASHVAL)+1
 368 0170 0817      		cp r16,r24
 369 0172 1907      		cpc r17,r25
 370 0174 90F2      		brlo .L42
 371               	.L15:
 372               	/* epilogue: frame size=0 */
 373 0176 DF91      		pop r29
 374 0178 CF91      		pop r28
 375 017a 1F91      		pop r17
 376 017c 0F91      		pop r16
 377 017e FF90      		pop r15
 378 0180 0895      		ret
 379               	/* epilogue end (size=6) */
 380               	/* function Play_Gradual size 165 (154) */
 386               	.Lscope1:
 388               	.global	SaveWorkState
 390               	SaveWorkState:
 107:YC_Play.c     ****         }
 108:YC_Play.c     **** }
 109:YC_Play.c     **** 
 110:YC_Play.c     **** /*=====================================================================
 111:YC_Play.c     **** 【功  能】:	遥控按键处理
 112:YC_Play.c     **** 【名  称】:	KeyYc()
 113:YC_Play.c     **** 【日  期】:	2006年8月30日
 114:YC_Play.c     **** =====================================================================*/
 115:YC_Play.c     **** void KeyYc(BYTE bKeyVal)
 116:YC_Play.c     **** {
 117:YC_Play.c     ****     //wCurRedAshVal=wCurRedAsh;wCurGreAshVal=wCurGreAsh; wCurBluAshVal=wCurBluAsh;
 118:YC_Play.c     ****     if(bKeyVal == ONOFF_KEYA)
 119:YC_Play.c     **** 	    {WorkFlag.bColseWork = !WorkFlag.bColseWork; WorkFlag.bAshExit = 1;}
 120:YC_Play.c     **** 	else
 121:YC_Play.c     **** 	    {
 122:YC_Play.c     **** 		if(WorkFlag.bColseWork == 0)
 123:YC_Play.c     **** 		    {
 124:YC_Play.c     **** 			switch(bKeyVal)
 125:YC_Play.c     **** 	            {
 126:YC_Play.c     ****                 case PLAYASH_KEYB: bCurPlayIdx = 0x55;break;   
 127:YC_Play.c     ****                 case SAVE_KEYC:    
 128:YC_Play.c     **** 		            if(WorkFlag.bPlayAshOld == 1)
 129:YC_Play.c     **** 			            {
 130:YC_Play.c     **** 						WorkFlag.bAshExit = 1; WorkFlag.bSaveKeyC = 1;WorkFlag.bPlayAshOld = 0;
 131:YC_Play.c     **** 				        wCurRedAshVal=wCurRedAsh;wCurGreAshVal=wCurGreAsh; wCurBluAshVal=wCurBluAsh;
 132:YC_Play.c     **** 						}break; 
 133:YC_Play.c     ****                 case LOAD_KEYD: 
 134:YC_Play.c     **** 			        {
 135:YC_Play.c     **** 		            bCurPlayIdx++;
 136:YC_Play.c     **** 			        if(bCurPlayIdx == 5)bCurPlayIdx = 0;
 137:YC_Play.c     **** 				    }break;
 138:YC_Play.c     ****                 default: break;
 139:YC_Play.c     **** 				}
 140:YC_Play.c     **** 			}
 141:YC_Play.c     **** 		WorkFlag.bKeyUpt = 1;
 142:YC_Play.c     **** 		}	
 143:YC_Play.c     **** 	SaveWorkState();
 144:YC_Play.c     **** }
 145:YC_Play.c     **** 
 146:YC_Play.c     **** /*=====================================================================
 147:YC_Play.c     **** 【功  能】:	保存工作状态
 148:YC_Play.c     **** 【名  称】:	SaveWorkState()
 149:YC_Play.c     **** 【日  期】:	2006年8月30日
 150:YC_Play.c     **** =====================================================================*/
 151:YC_Play.c     **** void SaveWorkState(void)
 152:YC_Play.c     **** {	
 392               	.LM45:
 393               	/* prologue: frame size=0 */
 394 0182 CF92      		push r12
 395 0184 DF92      		push r13
 396 0186 EF92      		push r14
 397 0188 FF92      		push r15
 398 018a 0F93      		push r16
 399 018c 1F93      		push r17
 400 018e CF93      		push r28
 401               	/* prologue end (size=7) */
 402               	.L58:
 153:YC_Play.c     **** 	eeprom_busy_wait();
 404               	.LM46:
 405 0190 E199      		sbic 60-0x20,1
 406 0192 FECF      		rjmp .L58
 154:YC_Play.c     ****     eeprom_write_byte (&bLastPlayIdx, bCurPlayIdx);
 408               	.LM47:
 409 0194 6091 0000 		lds r22,bCurPlayIdx
 410 0198 80E0      		ldi r24,lo8(bLastPlayIdx)
 411 019a 90E0      		ldi r25,hi8(bLastPlayIdx)
 412 019c 00D0      		rcall eeprom_write_byte
 155:YC_Play.c     **** 		
 156:YC_Play.c     **** 	if(WorkFlag.bSaveKeyC == 1)
 414               	.LM48:
 415 019e 8091 0000 		lds r24,WorkFlag+3
 416 01a2 8130      		cpi r24,lo8(1)
 417 01a4 09F0      		breq .+2
 418 01a6 65C0      		rjmp .L57
 419               	.LBB2:
 157:YC_Play.c     **** 	    {
 158:YC_Play.c     **** 		BYTE bi;
 159:YC_Play.c     **** 		WORD wAshval_Red, wAshval_Gre,wAshval_Blu;
 160:YC_Play.c     **** 		WorkFlag.bSaveKeyC = 0;
 421               	.LM49:
 422 01a8 1092 0000 		sts WorkFlag+3,__zero_reg__
 161:YC_Play.c     **** 		bCurPlayIdx = 0;
 424               	.LM50:
 425 01ac 1092 0000 		sts bCurPlayIdx,__zero_reg__
 426               	.L62:
 162:YC_Play.c     **** 		eeprom_busy_wait();
 428               	.LM51:
 429 01b0 E199      		sbic 60-0x20,1
 430 01b2 FECF      		rjmp .L62
 163:YC_Play.c     ****         eeprom_write_byte (&bLastPlayIdx, bCurPlayIdx);
 432               	.LM52:
 433 01b4 6091 0000 		lds r22,bCurPlayIdx
 434 01b8 80E0      		ldi r24,lo8(bLastPlayIdx)
 435 01ba 90E0      		ldi r25,hi8(bLastPlayIdx)
 436 01bc 00D0      		rcall eeprom_write_byte
 164:YC_Play.c     **** 		for(bi=4; bi>0; bi--)
 438               	.LM53:
 439 01be C4E0      		ldi r28,lo8(4)
 440               	.L100:
 165:YC_Play.c     **** 		    {
 166:YC_Play.c     **** 			eeprom_busy_wait();
 442               	.LM54:
 443 01c0 E199      		sbic 60-0x20,1
 444 01c2 FECF      		rjmp .L100
 167:YC_Play.c     **** 			wAshval_Red = eeprom_read_word(&bColorAsh[bi-1][0]);
 446               	.LM55:
 447 01c4 86E0      		ldi r24,lo8(6)
 448 01c6 C89F      		mul r28,r24
 449 01c8 C001      		movw r24,r0
 450 01ca 1124      		clr r1
 451 01cc 8050      		subi r24,lo8(-(bColorAsh-6))
 452 01ce 9040      		sbci r25,hi8(-(bColorAsh-6))
 453 01d0 00D0      		rcall eeprom_read_word
 454 01d2 8C01      		movw r16,r24
 455               	.L71:
 168:YC_Play.c     **** 			eeprom_busy_wait();
 457               	.LM56:
 458 01d4 E199      		sbic 60-0x20,1
 459 01d6 FECF      		rjmp .L71
 169:YC_Play.c     **** 			wAshval_Gre = eeprom_read_word(&bColorAsh[bi-1][1]);
 461               	.LM57:
 462 01d8 86E0      		ldi r24,lo8(6)
 463 01da C89F      		mul r28,r24
 464 01dc C001      		movw r24,r0
 465 01de 1124      		clr r1
 466 01e0 8050      		subi r24,lo8(-(bColorAsh-4))
 467 01e2 9040      		sbci r25,hi8(-(bColorAsh-4))
 468 01e4 00D0      		rcall eeprom_read_word
 469 01e6 7C01      		movw r14,r24
 470               	.L74:
 170:YC_Play.c     **** 			eeprom_busy_wait();
 472               	.LM58:
 473 01e8 E199      		sbic 60-0x20,1
 474 01ea FECF      		rjmp .L74
 171:YC_Play.c     **** 			wAshval_Blu = eeprom_read_word(&bColorAsh[bi-1][2]);
 476               	.LM59:
 477 01ec 86E0      		ldi r24,lo8(6)
 478 01ee C89F      		mul r28,r24
 479 01f0 C001      		movw r24,r0
 480 01f2 1124      		clr r1
 481 01f4 8050      		subi r24,lo8(-(bColorAsh-2))
 482 01f6 9040      		sbci r25,hi8(-(bColorAsh-2))
 483 01f8 00D0      		rcall eeprom_read_word
 484 01fa 6C01      		movw r12,r24
 485               	.L77:
 172:YC_Play.c     **** 			eeprom_busy_wait();
 487               	.LM60:
 488 01fc E199      		sbic 60-0x20,1
 489 01fe FECF      		rjmp .L77
 173:YC_Play.c     ****             eeprom_write_word (&bColorAsh[bi][0], wAshval_Red);
 491               	.LM61:
 492 0200 86E0      		ldi r24,lo8(6)
 493 0202 C89F      		mul r28,r24
 494 0204 C001      		movw r24,r0
 495 0206 1124      		clr r1
 496 0208 B801      		movw r22,r16
 497 020a 8050      		subi r24,lo8(-(bColorAsh))
 498 020c 9040      		sbci r25,hi8(-(bColorAsh))
 499 020e 00D0      		rcall eeprom_write_word
 500               	.L80:
 174:YC_Play.c     **** 			eeprom_busy_wait();
 502               	.LM62:
 503 0210 E199      		sbic 60-0x20,1
 504 0212 FECF      		rjmp .L80
 175:YC_Play.c     ****             eeprom_write_word (&bColorAsh[bi][1], wAshval_Gre);
 506               	.LM63:
 507 0214 86E0      		ldi r24,lo8(6)
 508 0216 C89F      		mul r28,r24
 509 0218 C001      		movw r24,r0
 510 021a 1124      		clr r1
 511 021c B701      		movw r22,r14
 512 021e 8050      		subi r24,lo8(-(bColorAsh+2))
 513 0220 9040      		sbci r25,hi8(-(bColorAsh+2))
 514 0222 00D0      		rcall eeprom_write_word
 515               	.L83:
 176:YC_Play.c     **** 			eeprom_busy_wait();
 517               	.LM64:
 518 0224 E199      		sbic 60-0x20,1
 519 0226 FECF      		rjmp .L83
 177:YC_Play.c     ****             eeprom_write_word (&bColorAsh[bi][2], wAshval_Blu);
 521               	.LM65:
 522 0228 86E0      		ldi r24,lo8(6)
 523 022a C89F      		mul r28,r24
 524 022c C001      		movw r24,r0
 525 022e 1124      		clr r1
 526 0230 B601      		movw r22,r12
 527 0232 8050      		subi r24,lo8(-(bColorAsh+4))
 528 0234 9040      		sbci r25,hi8(-(bColorAsh+4))
 529 0236 00D0      		rcall eeprom_write_word
 531               	.LM66:
 532 0238 C150      		subi r28,lo8(-(-1))
 533 023a 11F6      		brne .L100
 534               	.L87:
 178:YC_Play.c     **** 			}
 179:YC_Play.c     **** 		eeprom_busy_wait();
 536               	.LM67:
 537 023c E199      		sbic 60-0x20,1
 538 023e FECF      		rjmp .L87
 180:YC_Play.c     ****         eeprom_write_word (&bColorAsh[0][0], wCurRedAshVal);
 540               	.LM68:
 541 0240 6091 0000 		lds r22,wCurRedAshVal
 542 0244 7091 0000 		lds r23,(wCurRedAshVal)+1
 543 0248 80E0      		ldi r24,lo8(bColorAsh)
 544 024a 90E0      		ldi r25,hi8(bColorAsh)
 545 024c 00D0      		rcall eeprom_write_word
 546               	.L90:
 181:YC_Play.c     **** 	    eeprom_busy_wait();
 548               	.LM69:
 549 024e E199      		sbic 60-0x20,1
 550 0250 FECF      		rjmp .L90
 182:YC_Play.c     ****         eeprom_write_word (&bColorAsh[0][1], wCurGreAshVal);
 552               	.LM70:
 553 0252 6091 0000 		lds r22,wCurGreAshVal
 554 0256 7091 0000 		lds r23,(wCurGreAshVal)+1
 555 025a 80E0      		ldi r24,lo8(bColorAsh+2)
 556 025c 90E0      		ldi r25,hi8(bColorAsh+2)
 557 025e 00D0      		rcall eeprom_write_word
 558               	.L93:
 183:YC_Play.c     **** 		eeprom_busy_wait();
 560               	.LM71:
 561 0260 E199      		sbic 60-0x20,1
 562 0262 FECF      		rjmp .L93
 184:YC_Play.c     ****         eeprom_write_word (&bColorAsh[0][2], wCurBluAshVal);
 564               	.LM72:
 565 0264 6091 0000 		lds r22,wCurBluAshVal
 566 0268 7091 0000 		lds r23,(wCurBluAshVal)+1
 567 026c 80E0      		ldi r24,lo8(bColorAsh+4)
 568 026e 90E0      		ldi r25,hi8(bColorAsh+4)
 569 0270 00D0      		rcall eeprom_write_word
 570               	.L57:
 571               	.LBE2:
 572               	/* epilogue: frame size=0 */
 573 0272 CF91      		pop r28
 574 0274 1F91      		pop r17
 575 0276 0F91      		pop r16
 576 0278 FF90      		pop r15
 577 027a EF90      		pop r14
 578 027c DF90      		pop r13
 579 027e CF90      		pop r12
 580 0280 0895      		ret
 581               	/* epilogue end (size=8) */
 582               	/* function SaveWorkState size 129 (114) */
 590               	.Lscope2:
 593               	.global	KeyYc
 595               	KeyYc:
 597               	.LM73:
 598               	/* prologue: frame size=0 */
 599               	/* prologue end (size=0) */
 600 0282 2091 0000 		lds r18,WorkFlag
 602               	.LM74:
 603 0286 8130      		cpi r24,lo8(1)
 604 0288 49F4      		brne .L102
 606               	.LM75:
 607 028a 90E0      		ldi r25,lo8(0)
 608 028c 2223      		tst r18
 609 028e 09F4      		brne .L103

⌨️ 快捷键说明

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