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

📄 yc_mainfile.lss

📁 AVRX实时操作无线遥控LED变化控制完整源码
💻 LSS
📖 第 1 页 / 共 4 页
字号:
 214:	00 97       	sbiw	r24, 0x00	; 0
 216:	d1 f0       	breq	.+52     	; 0x24c
 218:	ec 01       	movw	r28, r24
 21a:	10 92 96 01 	sts	0x0196, r1
 21e:	10 92 95 01 	sts	0x0195, r1
 222:	10 93 98 01 	sts	0x0198, r17
 226:	00 93 97 01 	sts	0x0197, r16
 22a:	80 91 61 00 	lds	r24, 0x0061
 22e:	90 91 62 00 	lds	r25, 0x0062
 232:	80 1b       	sub	r24, r16
 234:	91 0b       	sbc	r25, r17
 236:	90 93 8d 01 	sts	0x018D, r25
 23a:	80 93 8c 01 	sts	0x018C, r24
 23e:	ac 01       	movw	r20, r24
 240:	b8 01       	movw	r22, r16
 242:	80 e0       	ldi	r24, 0x00	; 0
 244:	90 e0       	ldi	r25, 0x00	; 0
 246:	50 df       	rcall	.-352    	; 0xe8
 248:	21 97       	sbiw	r28, 0x01	; 1
 24a:	39 f7       	brne	.-50     	; 0x21a
 24c:	0f 5f       	subi	r16, 0xFF	; 255
 24e:	1f 4f       	sbci	r17, 0xFF	; 255
 250:	80 91 61 00 	lds	r24, 0x0061
 254:	90 91 62 00 	lds	r25, 0x0062
 258:	08 17       	cp	r16, r24
 25a:	19 07       	cpc	r17, r25
 25c:	90 f2       	brcs	.-92     	; 0x202
 25e:	df 91       	pop	r29
 260:	cf 91       	pop	r28
 262:	1f 91       	pop	r17
 264:	0f 91       	pop	r16
 266:	ff 90       	pop	r15
 268:	08 95       	ret

0000026a <SaveWorkState>:
        }
}

/*=====================================================================
【功  能】:	遥控按键处理
【名  称】:	KeyYc()
【日  期】:	2006年8月30日
=====================================================================*/
void KeyYc(BYTE bKeyVal)
{
    //wCurRedAshVal=wCurRedAsh;wCurGreAshVal=wCurGreAsh; wCurBluAshVal=wCurBluAsh;
    if(bKeyVal == ONOFF_KEYA)
	    {WorkFlag.bColseWork = !WorkFlag.bColseWork; WorkFlag.bAshExit = 1;}
	else
	    {
		if(WorkFlag.bColseWork == 0)
		    {
			switch(bKeyVal)
	            {
                case PLAYASH_KEYB: bCurPlayIdx = 0x55;break;   
                case SAVE_KEYC:    
		            if(WorkFlag.bPlayAshOld == 1)
			            {
						WorkFlag.bAshExit = 1; WorkFlag.bSaveKeyC = 1;WorkFlag.bPlayAshOld = 0;
				        wCurRedAshVal=wCurRedAsh;wCurGreAshVal=wCurGreAsh; wCurBluAshVal=wCurBluAsh;
						}break; 
                case LOAD_KEYD: 
			        {
		            bCurPlayIdx++;
			        if(bCurPlayIdx == 5)bCurPlayIdx = 0;
				    }break;
                default: break;
				}
			}
		WorkFlag.bKeyUpt = 1;
		}	
	SaveWorkState();
}

/*=====================================================================
【功  能】:	保存工作状态
【名  称】:	SaveWorkState()
【日  期】:	2006年8月30日
=====================================================================*/
void SaveWorkState(void)
{	
 26a:	cf 92       	push	r12
 26c:	df 92       	push	r13
 26e:	ef 92       	push	r14
 270:	ff 92       	push	r15
 272:	0f 93       	push	r16
 274:	1f 93       	push	r17
 276:	cf 93       	push	r28
	eeprom_busy_wait();
 278:	e1 99       	sbic	0x1c, 1	; 28
 27a:	fe cf       	rjmp	.-4      	; 0x278
    eeprom_write_byte (&bLastPlayIdx, bCurPlayIdx);
 27c:	60 91 60 00 	lds	r22, 0x0060
 280:	80 e0       	ldi	r24, 0x00	; 0
 282:	90 e0       	ldi	r25, 0x00	; 0
 284:	40 d1       	rcall	.+640    	; 0x506
		
	if(WorkFlag.bSaveKeyC == 1)
 286:	80 91 91 01 	lds	r24, 0x0191
 28a:	81 30       	cpi	r24, 0x01	; 1
 28c:	09 f0       	breq	.+2      	; 0x290
 28e:	65 c0       	rjmp	.+202    	; 0x35a
	    {
		BYTE bi;
		WORD wAshval_Red, wAshval_Gre,wAshval_Blu;
		WorkFlag.bSaveKeyC = 0;
 290:	10 92 91 01 	sts	0x0191, r1
		bCurPlayIdx = 0;
 294:	10 92 60 00 	sts	0x0060, r1
		eeprom_busy_wait();
 298:	e1 99       	sbic	0x1c, 1	; 28
 29a:	fe cf       	rjmp	.-4      	; 0x298
        eeprom_write_byte (&bLastPlayIdx, bCurPlayIdx);
 29c:	60 91 60 00 	lds	r22, 0x0060
 2a0:	80 e0       	ldi	r24, 0x00	; 0
 2a2:	90 e0       	ldi	r25, 0x00	; 0
 2a4:	30 d1       	rcall	.+608    	; 0x506
		for(bi=4; bi>0; bi--)
 2a6:	c4 e0       	ldi	r28, 0x04	; 4
		    {
			eeprom_busy_wait();
 2a8:	e1 99       	sbic	0x1c, 1	; 28
 2aa:	fe cf       	rjmp	.-4      	; 0x2a8
			wAshval_Red = eeprom_read_word(&bColorAsh[bi-1][0]);
 2ac:	86 e0       	ldi	r24, 0x06	; 6
 2ae:	c8 9f       	mul	r28, r24
 2b0:	c0 01       	movw	r24, r0
 2b2:	11 24       	eor	r1, r1
 2b4:	85 50       	subi	r24, 0x05	; 5
 2b6:	90 40       	sbci	r25, 0x00	; 0
 2b8:	19 d1       	rcall	.+562    	; 0x4ec
 2ba:	8c 01       	movw	r16, r24
			eeprom_busy_wait();
 2bc:	e1 99       	sbic	0x1c, 1	; 28
 2be:	fe cf       	rjmp	.-4      	; 0x2bc
			wAshval_Gre = eeprom_read_word(&bColorAsh[bi-1][1]);
 2c0:	86 e0       	ldi	r24, 0x06	; 6
 2c2:	c8 9f       	mul	r28, r24
 2c4:	c0 01       	movw	r24, r0
 2c6:	11 24       	eor	r1, r1
 2c8:	83 50       	subi	r24, 0x03	; 3
 2ca:	90 40       	sbci	r25, 0x00	; 0
 2cc:	0f d1       	rcall	.+542    	; 0x4ec
 2ce:	7c 01       	movw	r14, r24
			eeprom_busy_wait();
 2d0:	e1 99       	sbic	0x1c, 1	; 28
 2d2:	fe cf       	rjmp	.-4      	; 0x2d0
			wAshval_Blu = eeprom_read_word(&bColorAsh[bi-1][2]);
 2d4:	86 e0       	ldi	r24, 0x06	; 6
 2d6:	c8 9f       	mul	r28, r24
 2d8:	c0 01       	movw	r24, r0
 2da:	11 24       	eor	r1, r1
 2dc:	81 50       	subi	r24, 0x01	; 1
 2de:	90 40       	sbci	r25, 0x00	; 0
 2e0:	05 d1       	rcall	.+522    	; 0x4ec
 2e2:	6c 01       	movw	r12, r24
			eeprom_busy_wait();
 2e4:	e1 99       	sbic	0x1c, 1	; 28
 2e6:	fe cf       	rjmp	.-4      	; 0x2e4
            eeprom_write_word (&bColorAsh[bi][0], wAshval_Red);
 2e8:	86 e0       	ldi	r24, 0x06	; 6
 2ea:	c8 9f       	mul	r28, r24
 2ec:	c0 01       	movw	r24, r0
 2ee:	11 24       	eor	r1, r1
 2f0:	b8 01       	movw	r22, r16
 2f2:	8f 5f       	subi	r24, 0xFF	; 255
 2f4:	9f 4f       	sbci	r25, 0xFF	; 255
 2f6:	12 d1       	rcall	.+548    	; 0x51c
			eeprom_busy_wait();
 2f8:	e1 99       	sbic	0x1c, 1	; 28
 2fa:	fe cf       	rjmp	.-4      	; 0x2f8
            eeprom_write_word (&bColorAsh[bi][1], wAshval_Gre);
 2fc:	86 e0       	ldi	r24, 0x06	; 6
 2fe:	c8 9f       	mul	r28, r24
 300:	c0 01       	movw	r24, r0
 302:	11 24       	eor	r1, r1
 304:	b7 01       	movw	r22, r14
 306:	8d 5f       	subi	r24, 0xFD	; 253
 308:	9f 4f       	sbci	r25, 0xFF	; 255
 30a:	08 d1       	rcall	.+528    	; 0x51c
			eeprom_busy_wait();
 30c:	e1 99       	sbic	0x1c, 1	; 28
 30e:	fe cf       	rjmp	.-4      	; 0x30c
            eeprom_write_word (&bColorAsh[bi][2], wAshval_Blu);
 310:	86 e0       	ldi	r24, 0x06	; 6
 312:	c8 9f       	mul	r28, r24
 314:	c0 01       	movw	r24, r0
 316:	11 24       	eor	r1, r1
 318:	b6 01       	movw	r22, r12
 31a:	8b 5f       	subi	r24, 0xFB	; 251
 31c:	9f 4f       	sbci	r25, 0xFF	; 255
 31e:	fe d0       	rcall	.+508    	; 0x51c
 320:	c1 50       	subi	r28, 0x01	; 1
 322:	11 f6       	brne	.-124    	; 0x2a8
			}
		eeprom_busy_wait();
 324:	e1 99       	sbic	0x1c, 1	; 28
 326:	fe cf       	rjmp	.-4      	; 0x324
        eeprom_write_word (&bColorAsh[0][0], wCurRedAshVal);
 328:	60 91 8a 01 	lds	r22, 0x018A
 32c:	70 91 8b 01 	lds	r23, 0x018B
 330:	81 e0       	ldi	r24, 0x01	; 1
 332:	90 e0       	ldi	r25, 0x00	; 0
 334:	f3 d0       	rcall	.+486    	; 0x51c
	    eeprom_busy_wait();
 336:	e1 99       	sbic	0x1c, 1	; 28
 338:	fe cf       	rjmp	.-4      	; 0x336
        eeprom_write_word (&bColorAsh[0][1], wCurGreAshVal);
 33a:	60 91 93 01 	lds	r22, 0x0193
 33e:	70 91 94 01 	lds	r23, 0x0194
 342:	83 e0       	ldi	r24, 0x03	; 3
 344:	90 e0       	ldi	r25, 0x00	; 0
 346:	ea d0       	rcall	.+468    	; 0x51c
		eeprom_busy_wait();
 348:	e1 99       	sbic	0x1c, 1	; 28
 34a:	fe cf       	rjmp	.-4      	; 0x348
        eeprom_write_word (&bColorAsh[0][2], wCurBluAshVal);
 34c:	60 91 88 01 	lds	r22, 0x0188
 350:	70 91 89 01 	lds	r23, 0x0189
 354:	85 e0       	ldi	r24, 0x05	; 5
 356:	90 e0       	ldi	r25, 0x00	; 0
 358:	e1 d0       	rcall	.+450    	; 0x51c
 35a:	cf 91       	pop	r28
 35c:	1f 91       	pop	r17
 35e:	0f 91       	pop	r16
 360:	ff 90       	pop	r15
 362:	ef 90       	pop	r14
 364:	df 90       	pop	r13
 366:	cf 90       	pop	r12
 368:	08 95       	ret

0000036a <KeyYc>:
 36a:	20 91 8e 01 	lds	r18, 0x018E
 36e:	81 30       	cpi	r24, 0x01	; 1
 370:	49 f4       	brne	.+18     	; 0x384
 372:	90 e0       	ldi	r25, 0x00	; 0
 374:	22 23       	and	r18, r18
 376:	09 f4       	brne	.+2      	; 0x37a
 378:	98 2f       	mov	r25, r24
 37a:	90 93 8e 01 	sts	0x018E, r25
 37e:	80 93 90 01 	sts	0x0190, r24
 382:	43 c0       	rjmp	.+134    	; 0x40a
 384:	22 23       	and	r18, r18
 386:	09 f0       	breq	.+2      	; 0x38a
 388:	3d c0       	rjmp	.+122    	; 0x404
 38a:	99 27       	eor	r25, r25
 38c:	84 30       	cpi	r24, 0x04	; 4
 38e:	91 05       	cpc	r25, r1
 390:	69 f0       	breq	.+26     	; 0x3ac
 392:	85 30       	cpi	r24, 0x05	; 5
 394:	91 05       	cpc	r25, r1
 396:	1c f4       	brge	.+6      	; 0x39e
 398:	02 97       	sbiw	r24, 0x02	; 2
 39a:	21 f0       	breq	.+8      	; 0x3a4
 39c:	33 c0       	rjmp	.+102    	; 0x404
 39e:	08 97       	sbiw	r24, 0x08	; 8
 3a0:	41 f1       	breq	.+80     	; 0x3f2
 3a2:	30 c0       	rjmp	.+96     	; 0x404
 3a4:	85 e5       	ldi	r24, 0x55	; 85
 3a6:	80 93 60 00 	sts	0x0060, r24
 3aa:	2c c0       	rjmp	.+88     	; 0x404
 3ac:	80 91 92 01 	lds	r24, 0x0192
 3b0:	81 30       	cpi	r24, 0x01	; 1
 3b2:	41 f5       	brne	.+80     	; 0x404
 3b4:	80 93 90 01 	sts	0x0190, r24
 3b8:	80 93 91 01 	sts	0x0191, r24
 3bc:	20 93 92 01 	sts	0x0192, r18
 3c0:	80 91 95 01 	lds	r24, 0x0195
 3c4:	90 91 96 01 	lds	r25, 0x0196
 3c8:	90 93 8b 01 	sts	0x018B, r25
 3cc:	80 93 8a 01 	sts	0x018A, r24
 3d0:	80 91 97 01 	lds	r24, 0x0197
 3d4:	90 91 98 01 	lds	r25, 0x0198
 3d8:	90 93 94 01 	sts	0x0194, r25
 3dc:	80 93 93 01 	sts	0x0193, r24
 3e0:	80 91 8c 01 	lds	r24, 0x018C
 3e4:	90 91 8d 01 	lds	r25, 0x018D
 3e8:	90 93 89 01 	sts	0x0189, r25
 3ec:	80 93 88 01 	sts	0x0188, r24
 3f0:	09 c0       	rjmp	.+18     	; 0x404
 3f2:	80 91 60 00 	lds	r24, 0x0060
 3f6:	8f 5f       	subi	r24, 0xFF	; 255
 3f8:	80 93 60 00 	sts	0x0060, r24
 3fc:	85 30       	cpi	r24, 0x05	; 5
 3fe:	11 f4       	brne	.+4      	; 0x404
 400:	20 93 60 00 	sts	0x0060, r18
 404:	81 e0       	ldi	r24, 0x01	; 1
 406:	80 93 8f 01 	sts	0x018F, r24
 40a:	2f df       	rcall	.-418    	; 0x26a
 40c:	08 95       	ret

0000040e <LoadWorkState>:
	    }
}

/*=====================================================================
【功  能】:	调入工作状态
【名  称】:	LoadWorkState()
【日  期】:	2006年8月30日
=====================================================================*/
void LoadWorkState(void)
{   
   if(WorkFlag.bKeyUpt == 1)
 40e:	80 91 8f 01 	lds	r24, 0x018F
 412:	81 30       	cpi	r24, 0x01	; 1
 414:	b1 f5       	brne	.+108    	; 0x482
	    {
        eeprom_busy_wait();
 416:	e1 99       	sbic	0x1c, 1	; 28
 418:	fe cf       	rjmp	.-4      	; 0x416
	    bCurPlayIdx = eeprom_read_byte(&bLastPlayIdx); 
 41a:	80 e0       	ldi	r24, 0x00	; 0
 41c:	90 e0       	ldi	r25, 0x00	; 0
 41e:	5e d0       	rcall	.+188    	; 0x4dc
 420:	80 93 60 00 	sts	0x0060, r24
	    eeprom_busy_wait();
 424:	e1 99       	sbic	0x1c, 1	; 28
 426:	fe cf       	rjmp	.-4      	; 0x424
	    wCurRedAshVal = eeprom_read_word(&bColorAsh[bCurPlayIdx][0]);
 428:	90 91 60 00 	lds	r25, 0x0060
 42c:	86 e0       	ldi	r24, 0x06	; 6
 42e:	98 9f       	mul	r25, r24
 430:	c0 01       	movw	r24, r0
 432:	11 24       	eor	r1, r1
 434:	8f 5f       	subi	r24, 0xFF	; 255
 436:	9f 4f       	sbci	r25, 0xFF	; 255
 438:	59 d0       	rcall	.+178    	; 0x4ec
 43a:	90 93 8b 01 	sts	0x018B, r25
 43e:	80 93 8a 01 	sts	0x018A, r24
	    eeprom_busy_wait();
 442:	e1 99       	sbic	0x1c, 1	; 28
 444:	fe cf       	rjmp	.-4      	; 0x442
	    wCurGreAshVal = eeprom_read_word(&bColorAsh[bCurPlayIdx][1]);
 446:	90 91 60 00 	lds	r25, 0x0060
 44a:	86 e0       	ldi	r24, 0x06	; 6
 44c:	98 9f       	mul	r25, r24
 44e:	c0 01       	movw	r24, r0
 450:	11 24       	eor	r1, r1
 452:	8d 5f       	subi	r24, 0xFD	; 253
 454:	9f 4f       	sbci	r25, 0xFF	; 255
 456:	4a d0       	rcall	.+148    	; 0x4ec
 458:	90 93 94 01 	sts	0x0194, r25
 45c:	80 93 93 01 	sts	0x0193, r24
	    eeprom_busy_wait();
 460:	e1 99       	sbic	0x1c, 1	; 28
 462:	fe cf       	rjmp	.-4      	; 0x460
	    wCurBluAshVal = eeprom_read_word(&bColorAsh[bCurPlayIdx][2]);
 464:	90 91 60 00 	lds	r25, 0x0060
 468:	86 e0       	ldi	r24, 0x06	; 6
 46a:	98 9f       	mul	r25, r24
 46c:	c0 01       	movw	r24, r0
 46e:	11 24       	eor	r1, r1
 470:	8b 5f       	subi	r24, 0xFB	; 251
 472:	9f 4f       	sbci	r25, 0xFF	; 255
 474:	3b d0       	rcall	.+118    	; 0x4ec
 476:	90 93 89 01 	sts	0x0189, r25
 47a:	80 93 88 01 	sts	0x0188, r24
		WorkFlag.bKeyUpt = 0;
 47e:	10 92 8f 01 	sts	0x018F, r1
		}
		
    if(WorkFlag.bColseWork == 1)
 482:	80 91 8e 01 	lds	r24, 0x018E
 486:	81 30       	cpi	r24, 0x01	; 1
 488:	21 f4       	brne	.+8      	; 0x492
	    {
		OFF_Red(); OFF_Gre(); OFF_Blu();  
 48a:	95 9a       	sbi	0x12, 5	; 18
 48c:	96 9a       	sbi	0x12, 6	; 18
 48e:	97 9a       	sbi	0x12, 7	; 18
 490:	08 95       	ret
		}

⌨️ 快捷键说明

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