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

📄 necdecode.s

📁 MCU控制程序
💻 S
📖 第 1 页 / 共 3 页
字号:
; 	case 65:               //dot button
; 		 ResultNec=36;
	ldi R24,36
	sts _ResultNec,R24
	.dbline 292
; 		 break;	 		 
	xjmp L44
L43:
	.dbline 294
	ldi R24,49
	sts _ResultNec,R24
	.dbline 295
L44:
	.dbline -2
L41:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Nec_fac_map _Nec_fac_map fV
	.area func_lit(rom, con, rel)
L108:
	.word `L61
	.word `L70
	.word `L57
	.word `L57
	.word `L74
	.word `L69
	.word `L76
	.word `L57
	.word `L87
	.word `L92
	.word `L71
	.word `L57
	.word `L57
	.word `L68
	.word `L57
	.word `L96
	.word `L60
	.word `L75
	.word `L57
	.word `L57
	.word `L95
	.word `L62
	.word `L57
	.word `L63
	.word `L99
	.word `L66
	.word `L57
	.word `L72
	.word `L105
	.word `L93
	.word `L98
	.word `L94
	.area text(rom, con, rel)
	.dbfile G:\McuControl\necdecode.c
	.area func_lit(rom, con, rel)
L109:
	.word `L84
	.word `L90
	.word `L67
	.word `L83
	.word `L88
	.word `L78
	.word `L65
	.word `L103
	.word `L81
	.word `L82
	.word `L85
	.word `L79
	.word `L57
	.word `L89
	.word `L106
	.word `L77
	.word `L86
	.word `L57
	.word `L104
	.word `L91
	.word `L57
	.word `L102
	.word `L57
	.word `L101
	.word `L100
	.word `L80
	.word `L97
	.word `L57
	.word `L73
	.word `L64
	.area text(rom, con, rel)
	.dbfile G:\McuControl\necdecode.c
	.even
_Nec_fac_map::
	xcall push_gset1
	.dbline -1
	.dbline 302
; 	default:
; 		 ResultNec=49;	
; 		 break;
; 
;    }
; 
; }
; 
; void Nec_fac_map()
; {
	.dbline 303
;    NecData_Map=NecData[2]; 
	lds R2,_NecData+2
	sts _NecData_Map,R2
	.dbline 304
;    switch(NecData_Map)
	mov R20,R2
	clr R21
	cpi R20,0
	ldi R30,0
	cpc R21,R30
	brge X13
	xjmp L57
X13:
	ldi R24,31
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L107
	ldi R16,2
	ldi R17,0
	movw R18,R20
	xcall empy16s
	movw R30,R16
	ldi R24,<L108
	ldi R25,>L108
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
L107:
	cpi R20,65
	ldi R30,0
	cpc R21,R30
	brge X14
	xjmp L57
X14:
	ldi R24,94
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brge X15
	xjmp L57
X15:
	ldi R16,2
	ldi R17,0
	movw R18,R20
	xcall empy16s
	movw R30,R16
	ldi R24,<L109-130
	ldi R25,>L109-130
	add R30,R24
	adc R31,R25
	lpm R0,Z+
	lpm R1,Z
	movw R30,R0
	ijmp
X12:
	.dbline 305
;    {
L60:
	.dbline 307
;    	case 16:
; 		 ResultNec=50;
	ldi R24,50
	sts _ResultNec,R24
	.dbline 308
; 		 break;
	xjmp L58
L61:
	.dbline 310
; 	case 0:
; 		 ResultNec=51;
	ldi R24,51
	sts _ResultNec,R24
	.dbline 311
; 		 break;
	xjmp L58
L62:
	.dbline 313
; 	case 21:
; 		 ResultNec=52;
	ldi R24,52
	sts _ResultNec,R24
	.dbline 314
; 		 break; 
	xjmp L58
L63:
	.dbline 316
; 	case 23:
; 		 ResultNec=53;
	ldi R24,53
	sts _ResultNec,R24
	.dbline 317
; 		 break; 		 
	xjmp L58
L64:
	.dbline 319
; 	case 94:
; 		 ResultNec=54;
	ldi R24,54
	sts _ResultNec,R24
	.dbline 320
; 		 break;
	xjmp L58
L65:
	.dbline 322
; 	case 71:
; 		 ResultNec=55;
	ldi R24,55
	sts _ResultNec,R24
	.dbline 323
; 		 break; 	  		  		  	 		 
	xjmp L58
L66:
	.dbline 325
; 	case 25:
; 		 ResultNec=56;
	ldi R24,56
	sts _ResultNec,R24
	.dbline 326
; 		 break; 		 	 		 
	xjmp L58
L67:
	.dbline 328
; 	case 67:
; 		 ResultNec=57;
	ldi R24,57
	sts _ResultNec,R24
	.dbline 329
; 		 break; 		 		 
	xjmp L58
L68:
	.dbline 331
; 	case 13:
; 		 ResultNec=58;
	ldi R24,58
	sts _ResultNec,R24
	.dbline 332
; 		 break; 
	xjmp L58
L69:
	.dbline 334
;  	case 5:
; 		 ResultNec=59;
	ldi R24,59
	sts _ResultNec,R24
	.dbline 335
; 		 break; 
	xjmp L58
L70:
	.dbline 337
;  	case 1:
; 		 ResultNec=60;
	ldi R24,60
	sts _ResultNec,R24
	.dbline 338
; 		 break; 
	xjmp L58
L71:
	.dbline 340
;  	case 10:
; 		 ResultNec=61;
	ldi R24,61
	sts _ResultNec,R24
	.dbline 341
; 		 break; 
	xjmp L58
L72:
	.dbline 343
; 	case 27:
; 		 ResultNec=62;
	ldi R24,62
	sts _ResultNec,R24
	.dbline 344
; 		 break; 
	xjmp L58
L73:
	.dbline 346
; 	case 93:
; 		 ResultNec=63;
	ldi R24,63
	sts _ResultNec,R24
	.dbline 347
; 		 break; 
	xjmp L58
L74:
	.dbline 349
; 	case 4:
; 		 ResultNec=64;
	ldi R24,64
	sts _ResultNec,R24
	.dbline 350
; 		 break;     
	xjmp L58
L75:
	.dbline 352
; 	case 17:
; 		 ResultNec=65;
	ldi R24,65
	sts _ResultNec,R24
	.dbline 353
; 		 break; 	
	xjmp L58
L76:
	.dbline 355
; 	case 6:
; 		 ResultNec=66;
	ldi R24,66
	sts _ResultNec,R24
	.dbline 356
; 		 break; 	
	xjmp L58
L77:
	.dbline 358
; 	case 80:
; 		 ResultNec=67;
	ldi R24,67
	sts _ResultNec,R24
	.dbline 359
; 		 break;
	xjmp L58
L78:
	.dbline 361
; 	case 70:
; 		 ResultNec=68;
	ldi R24,68
	sts _ResultNec,R24
	.dbline 362
; 		 break; 		  
	xjmp L58
L79:
	.dbline 364
; 	case 76:
; 		 ResultNec=69;
	ldi R24,69
	sts _ResultNec,R24
	.dbline 365
; 		 break; 
	xjmp L58
L80:
	.dbline 367
; 	case 90:
; 		 ResultNec=70;
	ldi R24,70
	sts _ResultNec,R24
	.dbline 368
; 		 break; 		 
	xjmp L58
L81:
	.dbline 370
; 	case 73:
; 		 ResultNec=71;
	ldi R24,71
	sts _ResultNec,R24
	.dbline 371
; 		 break; 		 
	xjmp L58
L82:
	.dbline 373
; 	case 74:
; 		 ResultNec=72;
	ldi R24,72
	sts _ResultNec,R24
	.dbline 374
; 		 break; 	
	xjmp L58
L83:
	.dbline 376
; 	case 68:
; 		 ResultNec=73;
	ldi R24,73
	sts _ResultNec,R24
	.dbline 377
; 		 break; 
	xjmp L58
L84:
	.dbline 379
; 	case 65:
; 		 ResultNec=74;
	ldi R24,74
	sts _ResultNec,R24
	.dbline 380
; 		 break; 
	xjmp L58
L85:
	.dbline 382
; 	case 75:
; 		 ResultNec=75;
	ldi R24,75
	sts _ResultNec,R24
	.dbline 383
; 		 break; 		 
	xjmp L58
L86:
	.dbline 385
; 	case 81:
; 		 ResultNec=76;
	ldi R24,76
	sts _ResultNec,R24
	.dbline 386
; 		 break; 		 
	xjmp L58
L87:
	.dbline 388
; 	case 8:
; 		 ResultNec=77;
	ldi R24,77
	sts _ResultNec,R24
	.dbline 389
; 		 break; 	
	xjmp L58
L88:
	.dbline 391
; 	case 69:
; 		 ResultNec=78;
	ldi R24,78
	sts _ResultNec,R24
	.dbline 392
; 		 break; 	
	xjmp L58
L89:
	.dbline 394
; 	case 78:
; 		 ResultNec=79;
	ldi R24,79
	sts _ResultNec,R24
	.dbline 395
; 		 break; 
	xjmp L58
L90:
	.dbline 397
; 	case 66:
; 		 ResultNec=80;
	ldi R24,80
	sts _ResultNec,R24
	.dbline 398
; 		 break; 
	xjmp L58
L91:
	.dbline 400
; 	case 84:
; 		 ResultNec=81;
	ldi R24,81
	sts _ResultNec,R24
	.dbline 401
; 		 break; 	
	xjmp L58
L92:
	.dbline 403
; 	case 9:
; 		 ResultNec=82;
	ldi R24,82
	sts _ResultNec,R24
	.dbline 404
; 		 break; 	
	xjmp L58
L93:
	.dbline 406
; 	case 29:
; 		 ResultNec=83;
	ldi R24,83
	sts _ResultNec,R24
	.dbline 407
; 		 break; 	
	xjmp L58
L94:
	.dbline 409
; 	case 31:
; 		 ResultNec=84;
	ldi R24,84
	sts _ResultNec,R24
	.dbline 410
; 		 break; 	
	xjmp L58
L95:
	.dbline 412
; 	case 20:
; 		 ResultNec=85;
	ldi R24,85
	sts _ResultNec,R24
	.dbline 413
; 		 break; 	
	xjmp L58
L96:
	.dbline 415
; 	case 15:
; 		 ResultNec=86;
	ldi R24,86
	sts _ResultNec,R24
	.dbline 416
; 		 break; 	
	xjmp L58
L97:
	.dbline 418
; 	case 91:
; 		 ResultNec=87;
	ldi R24,87
	sts _ResultNec,R24
	.dbline 419
; 		 break; 	
	xjmp L58
L98:
	.dbline 421
; 	case 30:
; 		 ResultNec=88;
	ldi R24,88
	sts _ResultNec,R24
	.dbline 422
; 		 break; 
	xjmp L58
L99:
	.dbline 424
; 	case 24:
; 		 ResultNec=89;
	ldi R24,89
	sts _ResultNec,R24
	.dbline 425
; 		 break; 
	xjmp L58
L100:
	.dbline 427
; 	case 89:
; 		 ResultNec=90;
	ldi R24,90
	sts _ResultNec,R24
	.dbline 428
; 		 break; 
	xjmp L58
L101:
	.dbline 430
; 	case 88:
; 		 ResultNec=91;
	ldi R24,91
	sts _ResultNec,R24
	.dbline 431
; 		 break; 
	xjmp L58
L102:
	.dbline 433
; 	case 86:
; 		 ResultNec=92;
	ldi R24,92
	sts _ResultNec,R24
	.dbline 434
; 		 break; 		 
	xjmp L58
L103:
	.dbline 436
; 	case 72:
; 		 ResultNec=93;
	ldi R24,93
	sts _ResultNec,R24
	.dbline 437
; 		 break; 
	xjmp L58
L104:
	.dbline 439
; 	case 83:
; 		 ResultNec=94;
	ldi R24,94
	sts _ResultNec,R24
	.dbline 440
; 		 break; 	
	xjmp L58
L105:
	.dbline 442
; 	case 28:
; 		 ResultNec=95;
	ldi R24,95
	sts _ResultNec,R24
	.dbline 443
; 		 break; 	
	xjmp L58
L106:
	.dbline 445
; 	case 79:
; 		 ResultNec=96;
	ldi R24,96
	sts _ResultNec,R24
	.dbline 446
; 		 break;
	xjmp L58
L57:
	.dbline 448
	ldi R24,126
	sts _ResultNec,R24
	.dbline 449
L58:
	.dbline -2
L55:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e Deal_Repeat _Deal_Repeat fV
	.even
_Deal_Repeat::
	.dbline -1
	.dbline 454
; 	default:
; 	     ResultNec=126;
; 		 break;	  		 
;    }
; }
; 
; void Deal_Repeat()
; {
	.dbline 455
;   if((NecData[1]==0x05)&&(NecData[0]==0x86)) //用户码正确 for bestbuy
	lds R24,_NecData+1
	cpi R24,5
	brne L112
	lds R24,_NecData
	cpi R24,134
	brne L112
	.dbline 456
;   {
	.dbline 457
;  	Nec_consumer_map();
	xcall _Nec_consumer_map
	.dbline 461
; 	
; //	ResultNec=NecData[2];
; //	UDR=0x20;
; 	irda_num++;  
	lds R24,_irda_num
	subi R24,255    ; addi 1
	sts _irda_num,R24
	.dbline 462
; 	irda_b=1;
	ldi R24,1
	sts _irda_b,R24
	.dbline 463
; 	if(RepeatControl==3)
	lds R24,_RepeatControl
	cpi R24,3
	brne L115
	.dbline 464
; 	{
	.dbline 465
; 		if(System_State==standby||System_State==working)
	lds R2,_System_State
	tst R2
	breq L119
	lds R24,_System_State
	cpi R24,3
	brne L113
L119:
	.dbline 466
; 		{
	.dbline 467
; 		   Nec_data_deal_fun();
	xcall _Nec_data_deal_fun
	.dbline 468
; 		}   
	.dbline 469
; 	}
	xjmp L113
L115:
	.dbline 471
; 	else
; 	{
	.dbline 472
; 	 	RepeatControl++;
	lds R24,_RepeatControl
	subi R24,255    ; addi 1
	sts _RepeatControl,R24
	.dbline 473
; 	}		
	.dbline 474
;   }
	xjmp L113
L112:
	.dbline 476
;   else
;   {
	.dbline 489
;     
; /*	UDR=0x20;
; 	while(!(UCSRA&(1<<UDRE)));
; 	UDR=NecData[0];
; 	while(!(UCSRA&(1<<UDRE)));
; 	UDR=NecData[1];
; 	while(!(UCSRA&(1<<UDRE)));
; 	UDR=NecData[2];
; 	while(!(UCSRA&(1<<UDRE)));
; 	UDR=NecData[3];
; */	
; 	
; 	if((NecData[1]==0xfc)&&(NecData[0]==0x00)) //用户码正确 for fac
	lds R24,_NecData+1
	cpi R24,252
	brne L120
	lds R2,_NecData
	tst R2
	brne L120
	.dbline 490
;   	{
	.dbline 491
;  	   Nec_fac_map();
	xcall _Nec_fac_map
	.dbline 495
; 	
; //	ResultNec=NecData[2];
; //	UDR=0x20;
; 	   irda_num++;  
	lds R24,_irda_num
	subi R24,255    ; addi 1
	sts _irda_num,R24
	.dbline 496
; 	   irda_b=1;
	ldi R24,1
	sts _irda_b,R24
	.dbline 497
; 	   if(RepeatControl==3)
	lds R24,_RepeatControl
	cpi R24,3
	brne L123
	.dbline 498
; 	   {
	.dbline 499
; 		 if(System_State==standby||System_State==working)
	lds R2,_System_State
	tst R2
	breq L127
	lds R24,_System_State
	cpi R24,3
	brne L124
L127:
	.dbline 500
; 		 {
	.dbline 501
; 		    Nec_data_deal_fun();
	xcall _Nec_data_deal_fun
	.dbline 502
; 		 }	
	.dbline 503
; 	   }
	xjmp L124
L123:
	.dbline 505
; 	   else
;        {
	.dbline 506
;     	 RepeatControl++;
	lds R24,_RepeatControl
	subi R24,255    ; addi 1
	sts _RepeatControl,R24
	.dbline 507
;        }		
L124:
	.dbline 508
;     }
L120:
	.dbline 509
;   } 	
L113:
	.dbline 510
;   HasR_Head_Reset_Nec_receive();
	xcall _HasR_Head_Reset_Nec_receive
	.dbline -2
L111:
	.dbline 0 ; func end
	ret

⌨️ 快捷键说明

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