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

📄 embed.src

📁 8051红外接收程序
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; 			break;
			; SOURCE LINE # 197
	SJMP 	?C0097
; 		case 5:
			; SOURCE LINE # 198
?C0026:
; 			P2=P2|CON[5];
			; SOURCE LINE # 199
	MOV  	DPTR,#CON+05H
?C0097:
	CLR  	A
	MOVC 	A,@A+DPTR
	ORL  	P2,A
; 			break;
			; SOURCE LINE # 200
; 
; 	}
			; SOURCE LINE # 202
; }
			; SOURCE LINE # 203
?C0027:
	RET  	
; END OF _show

; uint READ(void)

	RSEG  ?PR?READ?EMBED
READ:
	USING	0
			; SOURCE LINE # 204
; {
			; SOURCE LINE # 205
; 	uint i;
; 	for(i=0;i<130;i++)
			; SOURCE LINE # 207
;---- Variable 'i?546' assigned to Register 'R6/R7' ----
	CLR  	A
	MOV  	R7,A
	MOV  	R6,A
?C0028:
; 	{
			; SOURCE LINE # 208
; 		if(!P3_2) break;
			; SOURCE LINE # 209
	JNB  	P3_2,?C0029
; 	}
			; SOURCE LINE # 210
?C0030:
	INC  	R7
	CJNE 	R7,#00H,?C0086
	INC  	R6
?C0086:
	MOV  	A,R7
	XRL  	A,#082H
	ORL  	A,R6
	JNZ  	?C0028
?C0029:
; 	if(i==130)
			; SOURCE LINE # 211
	MOV  	A,R7
	XRL  	A,#082H
	ORL  	A,R6
	JNZ  	?C0032
; 		{
			; SOURCE LINE # 212
; 			return 1;
			; SOURCE LINE # 213
	MOV  	R6,A
	MOV  	R7,#01H
	RET  	
; 		}
			; SOURCE LINE # 214
?C0032:
; 		else
; 			{
			; SOURCE LINE # 216
; 				return 0;
			; SOURCE LINE # 217
	CLR  	A
	MOV  	R6,A
	MOV  	R7,A
; 			}
			; SOURCE LINE # 218
; }
			; SOURCE LINE # 219
?C0033:
	RET  	
; END OF READ

; /*
; void setplay(char h2bit ,char m2bit,char l2bit)
; {
; 		array[5]=h2bit/10%10;
; 		array[4]=h2bit%10;
; 		array[3]=m2bit/10%10;
; 		array[2]=m2bit%10;
; 		array[1]=l2bit/10%10;
; 		array[0]=l2bit%10;
; }
; //*/
; void setplay(char h2bit ,char m2bit,char l2bit)

	RSEG  ?PR?_setplay?EMBED
_setplay:
	USING	0
			; SOURCE LINE # 231
;---- Variable 'h2bit?647' assigned to Register 'R7' ----
;---- Variable 'l2bit?649' assigned to Register 'R3' ----
;---- Variable 'm2bit?648' assigned to Register 'R5' ----
; {
			; SOURCE LINE # 232
; 		array[5]=h2bit/10%10;
			; SOURCE LINE # 233
	MOV  	A,R7
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R6,A
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R6,B
	MOV  	A,R6
	MOV  	DPL,A
	RLC  	A
	SUBB 	A,ACC
	MOV  	array+0AH,A
	MOV  	array+0BH,DPL
; 		array[4]=h2bit%10;
			; SOURCE LINE # 234
	MOV  	A,R7
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,B
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	array+08H,A
	MOV  	array+09H,R7
; 		array[3]=m2bit/10%10;
			; SOURCE LINE # 235
	MOV  	A,R5
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,A
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,B
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	array+06H,A
	MOV  	array+07H,R7
; 		array[2]=m2bit%10;
			; SOURCE LINE # 236
	MOV  	A,R5
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,B
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	array+04H,A
	MOV  	array+05H,R7
; 		array[1]=l2bit/10%10;
			; SOURCE LINE # 237
	MOV  	A,R3
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,A
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,B
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	array+02H,A
	MOV  	array+03H,R7
; 		array[0]=l2bit%10;
			; SOURCE LINE # 238
	MOV  	A,R3
	MOV  	B,#0AH
	LCALL	?C?SCDIV
	MOV  	R7,B
	MOV  	A,R7
	RLC  	A
	SUBB 	A,ACC
	MOV  	array,A
	MOV  	array+01H,R7
; }
			; SOURCE LINE # 239
	RET  	
; END OF _setplay

; void check()

	RSEG  ?PR?check?EMBED
check:
	USING	0
			; SOURCE LINE # 240
; {
			; SOURCE LINE # 241
; 	uchar i,m,l;
; 	uint temp1,temp2;
; //	setplay(10,3,7);
; 	temp1=(uint)IRCODE[0]&0x00FF;
			; SOURCE LINE # 245
	MOV  	R7,IRCODE
	MOV  	temp1?753,#00H
	MOV  	temp1?753+01H,R7
; 	for(i=0;i<29;i++)
			; SOURCE LINE # 246
	CLR  	A
	MOV  	i?750,A
?C0036:
; 	{
			; SOURCE LINE # 247
; 		temp2=0x00FF&RED[i];
			; SOURCE LINE # 248
	MOV  	A,i?750
	ADD  	A,ACC
	ADD  	A,#LOW (RED)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (RED)
	MOV  	DPH,A
	MOV  	R6,#00H
	MOV  	A,#01H
	MOVC 	A,@A+DPTR
;---- Variable 'temp2?754' assigned to Register 'R6/R7' ----
; 		if(temp1==temp2)
			; SOURCE LINE # 249
	CJNE 	A,temp1?753+01H,?C0038
	MOV  	A,R6
	CJNE 	A,temp1?753,?C0038
; 			{
			; SOURCE LINE # 250
; 				m=i+1;
			; SOURCE LINE # 251
	MOV  	A,i?750
	INC  	A
;---- Variable 'm?751' assigned to Register 'R5' ----
	MOV  	R5,A
; 				setplay(0,m,l);
			; SOURCE LINE # 252
	MOV  	R3,l?752
	CLR  	A
	MOV  	R7,A
	LCALL	_setplay
; 			}
			; SOURCE LINE # 253
; 	}
			; SOURCE LINE # 254
?C0038:
	INC  	i?750
	MOV  	A,i?750
	CLR  	C
	SUBB 	A,#01DH
	JC   	?C0036
; }
			; SOURCE LINE # 255
?C0040:
	RET  	
; END OF check

; void main()

	RSEG  ?PR?main?EMBED
main:
	USING	0
			; SOURCE LINE # 256
; {
			; SOURCE LINE # 257
;     uint LED=0xFF7F;
			; SOURCE LINE # 258
	MOV  	LED?855,#0FFH
	MOV  	LED?855+01H,#07FH
;     initial();
			; SOURCE LINE # 259
	LCALL	initial
?C0041:
; 
;     while(1)
			; SOURCE LINE # 261
;     {
			; SOURCE LINE # 262
; 	     getKey();//获得按键输入
			; SOURCE LINE # 263
	LCALL	getKey
; 	     if(key_down)
			; SOURCE LINE # 264
	MOV  	A,key_down
	JZ   	?C0041
; 	     {
			; SOURCE LINE # 265
; 		     	key_down=0;
			; SOURCE LINE # 266
	CLR  	A
	MOV  	key_down,A
; 		     	P3_0=!P3_0;
			; SOURCE LINE # 267
	CPL  	P3_0
; 	     }
			; SOURCE LINE # 268
; 	  
; /*				
; 			P1=LED;//7个跑马灯
; 			LED=LED>>1;
; 
; 		
; 			if(!rbit)
; 				P1=IRCODE[1];//7个跑马灯
; //*/
; /*
; 			if(LED==0x01FE)   //	0x01FE   0x00FF
; 			{
; 				LED=0xFF7F;
; 			}
; //*/     
;     }
			; SOURCE LINE # 284
	SJMP 	?C0041
; END OF main

CSEG	AT	0000BH
	LJMP	TIME0

; }
; 
; /*/////////////////////////////////////////////////////////////
; 各中断函数的具体处理
; //*/
; void TIME0() interrupt 1			//

	RSEG  ?PR?TIME0?EMBED
	USING	0
TIME0:
	PUSH 	ACC
	PUSH 	B
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	MOV  	PSW,#00H
	PUSH 	AR0
	PUSH 	AR1
	PUSH 	AR2
	PUSH 	AR3
	PUSH 	AR4
	PUSH 	AR5
	PUSH 	AR6
	PUSH 	AR7
	USING	0
			; SOURCE LINE # 290
; {
; 	TH0=0xF8;	TL0=0xCC;//100usFFA4  1msFC66  2msF8CC  4msF199 5msEE00 10msDC00  40ms7000     2^16-XX*1000*0.9216
			; SOURCE LINE # 292
	MOV  	TH0,#0F8H
	MOV  	TL0,#0CCH
; 	if(Num_Of_Circle ++==200)
			; SOURCE LINE # 293
	INC  	Num_Of_Circle+01H
	MOV  	A,Num_Of_Circle+01H
	MOV  	R6,Num_Of_Circle
	JNZ  	?C0088
	INC  	Num_Of_Circle
?C0088:
	DEC  	A
	XRL  	A,#0C8H
	ORL  	A,R6
	JNZ  	?C0045
; 	{	
			; SOURCE LINE # 294
; 		if(!rbit)
			; SOURCE LINE # 295
	JB   	rbit,?C0046
; 			check();
			; SOURCE LINE # 296
	LCALL	check
?C0046:
; 		Num_Of_Circle=0;			
			; SOURCE LINE # 297
	MOV  	Num_Of_Circle,#00H
	MOV  	Num_Of_Circle+01H,#00H
; 		rbit=1;
			; SOURCE LINE # 298
	SETB 	rbit
; 		IRCODE[1]=0x00;
			; SOURCE LINE # 299
	MOV  	IRCODE+01H,#00H
; 		IRCODE[0]=0x00;
			; SOURCE LINE # 300
	MOV  	IRCODE,#00H
; 	}
			; SOURCE LINE # 301
?C0045:
; 	P2_7=!P2_7;
			; SOURCE LINE # 302
	CPL  	P2_7
; 	
; 			//动态显示四位数据
;       show(display,array[display]);
			; SOURCE LINE # 305
	MOV  	A,display+01H
	ADD  	A,ACC
	ADD  	A,#LOW (array)
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	R4,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R5,A
	MOV  	R7,display+01H
	MOV  	R6,display
	LCALL	_show
;       if(display==5)
			; SOURCE LINE # 306
	MOV  	A,display+01H
	XRL  	A,#05H
	ORL  	A,display
	JNZ  	?C0047
;       	{
			; SOURCE LINE # 307
;       		display=0;     		
			; SOURCE LINE # 308
	MOV  	display,A
	MOV  	display+01H,A
;       	}
			; SOURCE LINE # 309
	SJMP 	?C0049
?C0047:
; 			else
; 				display +=1;
			; SOURCE LINE # 311
	INC  	display+01H
	MOV  	A,display+01H
	JNZ  	?C0089
	INC  	display
?C0089:
; 	
; }
			; SOURCE LINE # 313
?C0049:
	POP  	AR7
	POP  	AR6
	POP  	AR5
	POP  	AR4
	POP  	AR3
	POP  	AR2
	POP  	AR1
	POP  	AR0
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF TIME0

CSEG	AT	0001BH
	LJMP	TIME1

; 
; void TIME1() interrupt 3

	RSEG  ?PR?TIME1?EMBED
	USING	0
TIME1:
			; SOURCE LINE # 315
; {
; }
			; SOURCE LINE # 317
	RETI 	
; END OF TIME1

CSEG	AT	00003H
	LJMP	EX0INT

; 
; void EX0INT()   interrupt 0	//低电平340us ,‘0’高电平730us ,‘1’高电平1.8ms		11100010

	RSEG  ?PR?EX0INT?EMBED
	USING	0
EX0INT:
	PUSH 	ACC
	PUSH 	DPH
	PUSH 	DPL
	PUSH 	PSW
	MOV  	PSW,#00H
	PUSH 	AR0
	PUSH 	AR4
	PUSH 	AR5
	PUSH 	AR6
	PUSH 	AR7
	USING	0
			; SOURCE LINE # 319
; {
; 	uint i;
; 	EX0=0;
			; SOURCE LINE # 322
	CLR  	EX0
; 	if(rbit)
			; SOURCE LINE # 323
	JB   	rbit,$ + 6H
	LJMP 	?C0051
; 	{
			; SOURCE LINE # 324
; 		for(i=0;i<16;i++)
			; SOURCE LINE # 325
;---- Variable 'i?1156' assigned to Register 'R4/R5' ----
	CLR  	A
	MOV  	R5,A
	MOV  	R4,A
?C0052:
; 		{
			; SOURCE LINE # 326
; 			Delay();
			; SOURCE LINE # 327
	LCALL	Delay
; 			if(!P3_2)
			; SOURCE LINE # 328
	JNB  	P3_2,$ + 6H
	LJMP 	?C0076
; 			{
			; SOURCE LINE # 329
?C0056:
; 				while(!P3_2) ;
			; SOURCE LINE # 330
	JNB  	P3_2,?C0056
?C0057:
; 				if( READ())
			; SOURCE LINE # 331
	LCALL	READ
	MOV  	A,R7
	ORL  	A,R6
	JNZ  	$ + 5H
	LJMP 	?C0076
; 				{
			; SOURCE LINE # 332
; 						switch(i)
			; SOURCE LINE # 333
	MOV  	A,R4
	JZ   	$ + 5H
	LJMP 	?C0076
	MOV  	A,R5
	CJNE 	A,#010H,?C0090
?C0090:
	JC   	$ + 5H
	LJMP 	?C0076
	MOV  	DPTR,#?C0091
	MOV  	R0,A
	ADD  	A,R0
	ADD  	A,R0
	JMP  	@A+DPTR
?C0091:
	LJMP 	?C0060
	LJMP 	?C0061
	LJMP 	?C0062
	LJMP 	?C0063
	LJMP 	?C0064
	LJMP 	?C0065
	LJMP 	?C0066
	LJMP 	?C0067
	LJMP 	?C0068
	LJMP 	?C0069
	LJMP 	?C0070
	LJMP 	?C0071
	LJMP 	?C0072
	LJMP 	?C0073
	LJMP 	?C0074
	LJMP 	?C0075
; 						{
			; SOURCE LINE # 334
; 							case 0:
			; SOURCE LINE # 335
?C0060:
; 								IRCODE[1]=IRCODE[1]|0x80;
			; SOURCE LINE # 336
	ORL  	IRCODE+01H,#080H
; 								break;
			; SOURCE LINE # 337
	SJMP 	?C0076
; 							case 1:
			; SOURCE LINE # 338
?C0061:
; 								IRCODE[1]=IRCODE[1]|0x40;
			; SOURCE LINE # 339
	ORL  	IRCODE+01H,#040H
; 								break;
			; SOURCE LINE # 340
	SJMP 	?C0076
; 							case 2:
			; SOURCE LINE # 341
?C0062:
; 								IRCODE[1]=IRCODE[1]|0x20;
			; SOURCE LINE # 342
	ORL  	IRCODE+01H,#020H
; 								break;
			; SOURCE LINE # 343
	SJMP 	?C0076
; 							case 3:
			; SOURCE LINE # 344
?C0063:
; 								IRCODE[1]=IRCODE[1]|0x10;
			; SOURCE LINE # 345
	ORL  	IRCODE+01H,#010H
; 								break;
			; SOURCE LINE # 346
	SJMP 	?C0076
; 							case 4:
			; SOURCE LINE # 347
?C0064:
; 								IRCODE[1]=IRCODE[1]|0x08;
			; SOURCE LINE # 348
	ORL  	IRCODE+01H,#08H
; 								break;
			; SOURCE LINE # 349
	SJMP 	?C0076
; 							case 5:
			; SOURCE LINE # 350
?C0065:
; 								IRCODE[1]=IRCODE[1]|0x04;
			; SOURCE LINE # 351
	ORL  	IRCODE+01H,#04H
; 								break;
			; SOURCE LINE # 352
	SJMP 	?C0076
; 							case 6:
			; SOURCE LINE # 353
?C0066:
; 								IRCODE[1]=IRCODE[1]|0x02;
			; SOURCE LINE # 354
	ORL  	IRCODE+01H,#02H
; 								break;
			; SOURCE LINE # 355
	SJMP 	?C0076
; 							case 7:
			; SOURCE LINE # 356
?C0067:
; 								IRCODE[1]=IRCODE[1]|0x01;
			; SOURCE LINE # 357
	ORL  	IRCODE+01H,#01H
; 								break;
			; SOURCE LINE # 358
	SJMP 	?C0076
; 							case 8:
			; SOURCE LINE # 359
?C0068:
; 								IRCODE[0]=IRCODE[0]|0x80;
			; SOURCE LINE # 360
	ORL  	IRCODE,#080H
; 								break;
			; SOURCE LINE # 361
	SJMP 	?C0076
; 							case 9:
			; SOURCE LINE # 362
?C0069:
; 								IRCODE[0]=IRCODE[0]|0x40;
			; SOURCE LINE # 363
	ORL  	IRCODE,#040H
; 								break;
			; SOURCE LINE # 364
	SJMP 	?C0076
; 							case 10:
			; SOURCE LINE # 365
?C0070:
; 								IRCODE[0]=IRCODE[0]|0x20;
			; SOURCE LINE # 366
	ORL  	IRCODE,#020H
; 								break;
			; SOURCE LINE # 367
	SJMP 	?C0076
; 							case 11:
			; SOURCE LINE # 368
?C0071:
; 								IRCODE[0]=IRCODE[0]|0x10;
			; SOURCE LINE # 369
	ORL  	IRCODE,#010H
; 								break;
			; SOURCE LINE # 370
	SJMP 	?C0076
; 							case 12:
			; SOURCE LINE # 371
?C0072:
; 								IRCODE[0]=IRCODE[0]|0x08;
			; SOURCE LINE # 372
	ORL  	IRCODE,#08H
; 								break;
			; SOURCE LINE # 373
	SJMP 	?C0076
; 							case 13:
			; SOURCE LINE # 374
?C0073:
; 								IRCODE[0]=IRCODE[0]|0x04;
			; SOURCE LINE # 375
	ORL  	IRCODE,#04H
; 								break;
			; SOURCE LINE # 376
	SJMP 	?C0076
; 							case 14:
			; SOURCE LINE # 377
?C0074:
; 								IRCODE[0]=IRCODE[0]|0x02;
			; SOURCE LINE # 378
	ORL  	IRCODE,#02H
; 								break;
			; SOURCE LINE # 379
	SJMP 	?C0076
; 							case 15:
			; SOURCE LINE # 380
?C0075:
; 								IRCODE[0]=IRCODE[0]|0x01;
			; SOURCE LINE # 381
	ORL  	IRCODE,#01H
; 								break;
			; SOURCE LINE # 382
; 						}
			; SOURCE LINE # 383
; 				}
			; SOURCE LINE # 384
; 			}				
			; SOURCE LINE # 385
?C0076:
; 			while(P3_2)	;//等下一位
			; SOURCE LINE # 386
	JB   	P3_2,?C0076
; 		}
			; SOURCE LINE # 387
?C0054:
	INC  	R5
	CJNE 	R5,#00H,?C0092
	INC  	R4
?C0092:
	MOV  	A,R5
	XRL  	A,#010H
	ORL  	A,R4
	JZ   	$ + 5H
	LJMP 	?C0052
?C0053:
; 		SBUF=IRCODE[0];
			; SOURCE LINE # 388
	MOV  	SBUF,IRCODE
; 		P1=IRCODE[1];
			; SOURCE LINE # 389
	MOV  	P1,IRCODE+01H
; 		rbit=0;
			; SOURCE LINE # 390
	CLR  	rbit
; 	}
			; SOURCE LINE # 391
?C0051:
; 	EX0=1;
			; SOURCE LINE # 392
	SETB 	EX0
; }
			; SOURCE LINE # 393
	POP  	AR7
	POP  	AR6
	POP  	AR5
	POP  	AR4
	POP  	AR0
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	ACC
	RETI 	
; END OF EX0INT

CSEG	AT	00013H
	LJMP	EX1INT

; 
; 
; void EX1INT()   interrupt 2

	RSEG  ?PR?EX1INT?EMBED
	USING	0
EX1INT:
			; SOURCE LINE # 396
; {
; }
			; SOURCE LINE # 398
	RETI 	
; END OF EX1INT

CSEG	AT	00023H
	LJMP	SERIAL

; 
; void  SERIAL()  interrupt 4

	RSEG  ?PR?SERIAL?EMBED
	USING	0
SERIAL:
	PUSH 	PSW
	MOV  	PSW,#00H
	PUSH 	AR7
	USING	0
			; SOURCE LINE # 400
; {
; 	uchar temp;
; //*
; 	if(TI)
			; SOURCE LINE # 404
	JNB  	TI,?C0080
; 		TI=0;
			; SOURCE LINE # 405
	CLR  	TI
?C0080:
; 	if(RI)
			; SOURCE LINE # 406
	JNB  	RI,?C0082
; 	{
			; SOURCE LINE # 407
; 		RI=0;
			; SOURCE LINE # 408
	CLR  	RI
; 		temp=SBUF;
			; SOURCE LINE # 409
;---- Variable 'temp?1357' assigned to Register 'R7' ----
	MOV  	R7,SBUF
; 		SBUF=temp;
			; SOURCE LINE # 410
	MOV  	SBUF,R7
; 	}
			; SOURCE LINE # 411
; //*/	
; }
			; SOURCE LINE # 413
?C0082:
	POP  	AR7
	POP  	PSW
	RETI 	
; END OF SERIAL

	END

⌨️ 快捷键说明

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