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

📄 xspmain.src

📁 用8052写的一个LED大屏幕显示程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
			; SOURCE LINE # 457
	CLR  	UartEnd
; 	 			HelloOk=0;
			; SOURCE LINE # 458
	CLR  	HelloOk
; 				BaoZhaBit=0;
			; SOURCE LINE # 459
	CLR  	BaoZhaBit
;         		GuanMenBit=1;
			; SOURCE LINE # 460
	SETB 	GuanMenBit
; 				UsartRecv_rp=0;
			; SOURCE LINE # 461
	MOV  	UsartRecv_rp,A
	MOV  	UsartRecv_rp+01H,A
; 	 		 	UartStep++;
			; SOURCE LINE # 462
	INC  	UartStep
; 	 		}
			; SOURCE LINE # 463
	LJMP 	?C0054
?C0059:
; 	 		else if(!strcmp(UartCommand,"BZ")) {
			; SOURCE LINE # 464
	MOV  	R0,#LOW (UartCommand)
	MOV  	R4,#HIGH (UartCommand)
	MOV  	R5,#00H
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_6)
	MOV  	R1,#LOW (?SC_6)
	LCALL	?C?STRCMP
	MOV  	A,R7
	JNZ  	?C0061
; 		        UartEnd=0;	
			; SOURCE LINE # 465
	CLR  	UartEnd
; 	 			HelloOk=0;
			; SOURCE LINE # 466
	CLR  	HelloOk
;         	    BaoZhaBit=1;
			; SOURCE LINE # 467
	SETB 	BaoZhaBit
; 				UsartRecv_rp=0;
			; SOURCE LINE # 468
	MOV  	UsartRecv_rp,A
	MOV  	UsartRecv_rp+01H,A
; 	 		 	UartStep++;
			; SOURCE LINE # 469
	INC  	UartStep
; 	 		}
			; SOURCE LINE # 470
	LJMP 	?C0054
?C0061:
; 	 		else if(!strcmp(UartCommand,"GM")) {
			; SOURCE LINE # 471
	MOV  	R0,#LOW (UartCommand)
	MOV  	R4,#HIGH (UartCommand)
	MOV  	R5,#00H
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_9)
	MOV  	R1,#LOW (?SC_9)
	LCALL	?C?STRCMP
	MOV  	A,R7
	JNZ  	?C0063
; 		        UartEnd=0;	
			; SOURCE LINE # 472
	CLR  	UartEnd
;    	 			HelloOk=0;
			; SOURCE LINE # 473
	CLR  	HelloOk
;         		GuanMenBit=0;
			; SOURCE LINE # 474
	CLR  	GuanMenBit
; 				UsartRecv_rp=0;
			; SOURCE LINE # 475
	MOV  	UsartRecv_rp,A
	MOV  	UsartRecv_rp+01H,A
; 	 		 	UartStep++;
			; SOURCE LINE # 476
	INC  	UartStep
; 	 		}
			; SOURCE LINE # 477
	LJMP 	?C0054
?C0063:
; 	 		else if(!strcmp(UartCommand,"RT")) {
			; SOURCE LINE # 478
	MOV  	R0,#LOW (UartCommand)
	MOV  	R4,#HIGH (UartCommand)
	MOV  	R5,#00H
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_12)
	MOV  	R1,#LOW (?SC_12)
	LCALL	?C?STRCMP
	MOV  	A,R7
	JNZ  	?C0065
;    	 			ResetBit=1;
			; SOURCE LINE # 479
	SETB 	ResetBit
;    	 			HelloOk=0;
			; SOURCE LINE # 480
	CLR  	HelloOk
; 				BaoZhaBit=0;
			; SOURCE LINE # 481
	CLR  	BaoZhaBit
;         		GuanMenBit=0;
			; SOURCE LINE # 482
	CLR  	GuanMenBit
; 	 		 	UartStep=0;
			; SOURCE LINE # 483
	MOV  	UartStep,A
; 		        UartEnd=1;	
			; SOURCE LINE # 484
	SETB 	UartEnd
;                 UartStart=0;
			; SOURCE LINE # 485
	CLR  	UartStart
; 	 		}
			; SOURCE LINE # 486
	SJMP 	?C0054
?C0065:
; 	        else{
			; SOURCE LINE # 487
; 	 		 	UartStep=0;
			; SOURCE LINE # 488
	MOV  	UartStep,#00H
;             }
			; SOURCE LINE # 489
; 	       	break;
			; SOURCE LINE # 490
	SJMP 	?C0054
; 		case 2:
			; SOURCE LINE # 491
?C0067:
;  	           	if(BaoZhaBit){
			; SOURCE LINE # 492
	JNB  	BaoZhaBit,?C0068
; 				UsartRecvBzFifo[UsartRecv_rp++] = SBUF;
			; SOURCE LINE # 493
	INC  	UsartRecv_rp+01H
	MOV  	A,UsartRecv_rp+01H
	MOV  	R6,UsartRecv_rp
	JNZ  	?C0140
	INC  	UsartRecv_rp
?C0140:
	DEC  	A
	ADD  	A,#LOW (UsartRecvBzFifo)
	MOV  	DPL,A
	MOV  	A,#HIGH (UsartRecvBzFifo)
	ADDC 	A,R6
	MOV  	DPH,A
	MOV  	A,SBUF
	MOVX 	@DPTR,A
;     				if (SBUF=='\0'){
			; SOURCE LINE # 494
	MOV  	A,SBUF
	JNZ  	?C0070
; //            				UsartRecvBzFifo[UsartRecv_rp-1] = 0xa1;
; //	           			UsartRecvBzFifo[UsartRecv_rp++] = 0xa1;
; //   				        UsartRecvBzFifo[UsartRecv_rp++] = 0x00;
; 				        UartEnd=1;	
			; SOURCE LINE # 498
	SETB 	UartEnd
;  		 	        	UartStep=0;
			; SOURCE LINE # 499
	MOV  	UartStep,A
; 		                        UartStart=0;
			; SOURCE LINE # 500
	CLR  	UartStart
; 				}
			; SOURCE LINE # 501
;             		}
			; SOURCE LINE # 502
	SJMP 	?C0070
?C0068:
;             		else{
			; SOURCE LINE # 503
; 	                
; 				UsartRecvFifo[UsartRecv_rp++] = SBUF;
			; SOURCE LINE # 505
	INC  	UsartRecv_rp+01H
	MOV  	A,UsartRecv_rp+01H
	MOV  	R6,UsartRecv_rp
	JNZ  	?C0141
	INC  	UsartRecv_rp
?C0141:
	DEC  	A
	ADD  	A,#LOW (UsartRecvFifo)
	MOV  	DPL,A
	MOV  	A,#HIGH (UsartRecvFifo)
	ADDC 	A,R6
	MOV  	DPH,A
	MOV  	A,SBUF
	MOVX 	@DPTR,A
;     				if (SBUF=='\0'){
			; SOURCE LINE # 506
	MOV  	A,SBUF
	JNZ  	?C0070
; //            				UsartRecvFifo[UsartRecv_rp-1] = 0xa1;
; //	           			UsartRecvFifo[UsartRecv_rp++] = 0xa1;
; //    				        UsartRecvFifo[UsartRecv_rp++] = 0x00;
; 				        UartEnd=1;	
			; SOURCE LINE # 510
	SETB 	UartEnd
;  		 	        	UartStep=0;
			; SOURCE LINE # 511
	MOV  	UartStep,A
; 		                        UartStart=0;
			; SOURCE LINE # 512
	CLR  	UartStart
; 				}
			; SOURCE LINE # 513
; 			}
			; SOURCE LINE # 514
?C0070:
; 				
; 			if (SBUF < 0x80) UartStep=0;
			; SOURCE LINE # 516
	MOV  	A,SBUF
	CLR  	C
	SUBB 	A,#080H
	JNC  	?C0072
	MOV  	UartStep,#00H
?C0072:
; 		     	if (UsartRecv_rp >= USART_RECV_FIFO_SIZE) UsartRecv_rp = 0;
			; SOURCE LINE # 517
	CLR  	C
	MOV  	A,UsartRecv_rp+01H
	SUBB 	A,#0F4H
	MOV  	A,UsartRecv_rp
	SUBB 	A,#01H
	JC   	?C0054
	MOV  	UsartRecv_rp,#00H
	MOV  	UsartRecv_rp+01H,#00H
; 		    	break;
			; SOURCE LINE # 518
; 	}
			; SOURCE LINE # 519
?C0054:
;    	RI=0;
			; SOURCE LINE # 520
	CLR  	RI
;     	pCE=pCEtemp;					//片选保護
			; SOURCE LINE # 521
	MOV  	C,pCEtemp?758
	MOV  	pCE,C
; }
			; SOURCE LINE # 522
	POP  	PSW
	POP  	DPL
	POP  	DPH
	POP  	B
	POP  	ACC
	RETI 	
; END OF UartInt

; 
; /**************************************************************/
; void ClrPing(unsigned char *p){

	RSEG  ?PR?_ClrPing?XSPMAIN
_ClrPing:
	USING	0
			; SOURCE LINE # 525
	MOV  	DPTR,#p?859
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
;     data unsigned int	i;
; 	for (i = 0; i < HANGSHU*LIEBYTE; i++)  p[i]=0;
			; SOURCE LINE # 527
	CLR  	A
	MOV  	i?860,A
	MOV  	i?860+01H,A
?C0075:
	MOV  	DPTR,#p?859
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPL,i?860+01H
	MOV  	DPH,i?860
	CLR  	A
	LCALL	?C?CSTOPTR
	INC  	i?860+01H
	MOV  	A,i?860+01H
	JNZ  	?C0142
	INC  	i?860
?C0142:
	XRL  	A,#020H
	JNZ  	?C0143
	MOV  	A,i?860
	XRL  	A,#01H
?C0143:
	JNZ  	?C0075
; }
			; SOURCE LINE # 528
?C0078:
	RET  	
; END OF _ClrPing

; 
; /***************************************************************/
; /*****读5045数据***********************************************/
; 
; 
; #define	WREN 	0x06
; #define	WRDI 	0x04
; #define	RSDR 	0x05
; #define	WRSR 	0x01
; #define	READ 	0x03	//5165--0x03 5045---0x0B
; #define	WRITE 	0x02	//5165--0x02 5045---0x0A
; 
; #define	X5045	1
; //#define	X5165	1
; 
; #define	IICADDR	0x00
; 
; 
; /****************************************/
; void 	WDT_RESET(){

	RSEG  ?PR?WDT_RESET?XSPMAIN
WDT_RESET:
			; SOURCE LINE # 548
; p5045CS=0;
			; SOURCE LINE # 549
	CLR  	p5045CS
; p5045CS=1;
			; SOURCE LINE # 550
	SETB 	p5045CS
; }
			; SOURCE LINE # 551
	RET  	
; END OF WDT_RESET

; /**********************************************/
; //x5045初始化
; void InitX5045(){

	RSEG  ?PR?InitX5045?XSPMAIN
InitX5045:
			; SOURCE LINE # 554
;     EA=0;
			; SOURCE LINE # 555
	CLR  	EA
;     pOE=1;
			; SOURCE LINE # 556
	SETB 	pOE
;     P3Bak=P3;    
			; SOURCE LINE # 557
	MOV  	P3Bak,P3
; 	p5045CS=	1;		
			; SOURCE LINE # 558
	SETB 	p5045CS
;     p5045SCK=	0;		//4脚	
			; SOURCE LINE # 559
	CLR  	p5045SCK
; 	p5045SI=	1;		//16脚
			; SOURCE LINE # 560
	SETB 	p5045SI
; 	p5045SO=	1;		
			; SOURCE LINE # 561
	SETB 	p5045SO
; }
			; SOURCE LINE # 562
	RET  	
; END OF InitX5045

; /************************************************/
; /*----------------------------------------------*/
; #define CNT_ATTEMP		0x1
; /*----------------------------------------------*/
; /* Title  : Wait until SCL high			*/
; /* Action :					*/
; /* Return : SUCCESS/ERROR			*/
; /*----------------------------------------------*/
; 
; void IicWaitSclHigh()

	RSEG  ?PR?IicWaitSclHigh?XSPMAIN
IicWaitSclHigh:
			; SOURCE LINE # 572
; {
			; SOURCE LINE # 573
; data unsigned char		AttempCount=0;
			; SOURCE LINE # 574
	CLR  	A
	MOV  	AttempCount?1161,A
;     p5045SCK=1;
			; SOURCE LINE # 575
	SETB 	p5045SCK
;     for (AttempCount=0;AttempCount<CNT_ATTEMP;AttempCount++);
			; SOURCE LINE # 576
	MOV  	AttempCount?1161,A
?C0081:
	INC  	AttempCount?1161
	MOV  	A,AttempCount?1161
	CJNE 	A,#01H,?C0081
; }
			; SOURCE LINE # 577
?C0084:
	RET  	
; END OF IicWaitSclHigh

; 
; void IicSendByte(unsigned char ByteData)

	RSEG  ?PR?_IicSendByte?XSPMAIN
_IicSendByte:
	USING	0
			; SOURCE LINE # 579
;---- Variable 'ByteData?1262' assigned to Register 'R7' ----
; {
			; SOURCE LINE # 580
; data    unsigned char		i;
;     for (i=0;i<8;i++)
			; SOURCE LINE # 582
	CLR  	A
	MOV  	i?1263,A
?C0085:
;     {
			; SOURCE LINE # 583
; 	p5045SI=ByteData>>7;	// MSB send first
			; SOURCE LINE # 584
	MOV  	A,R7
	SWAP 	A
	RRC  	A
	RRC  	A
	RRC  	A
	ANL  	A,#01H
	ADD  	A,#0FFH
	MOV  	p5045SI,C
; 	IicWaitSclHigh();
			; SOURCE LINE # 585
	LCALL	IicWaitSclHigh
; 	p5045SCK=0;
			; SOURCE LINE # 586
	CLR  	p5045SCK
; 	ByteData<<=1;
			; SOURCE LINE # 587
	MOV  	A,R7
	ADD  	A,ACC
	MOV  	R7,A
;     }
			; SOURCE LINE # 588
	INC  	i?1263
	MOV  	A,i?1263
	CLR  	C
	SUBB 	A,#08H
	JC   	?C0085
; 
; }
			; SOURCE LINE # 590
?C0088:
	RET  	
; END OF _IicSendByte

; 
; unsigned char IicReadByte()

	RSEG  ?PR?IicReadByte?XSPMAIN
IicReadByte:
	USING	0
			; SOURCE LINE # 592
; {
			; SOURCE LINE # 593
; data  unsigned char		i;
; data  unsigned char		j;
; data  unsigned char		ByteData=0;
			; SOURCE LINE # 596
	CLR  	A
	MOV  	ByteData?1366,A
;     for (i=0;i<8;i++) {
			; SOURCE LINE # 597
	MOV  	i?1364,A
?C0089:
;     	IicWaitSclHigh();
			; SOURCE LINE # 598
	LCALL	IicWaitSclHigh
;     	ByteData<<=1;
			; SOURCE LINE # 599
	MOV  	A,ByteData?1366
	ADD  	A,ACC
	MOV  	ByteData?1366,A
; 	ByteData|=p5045SO;	// MSB send first
			; SOURCE LINE # 600
	MOV  	C,p5045SO
	CLR  	A
	RLC  	A
	ORL  	ByteData?1366,A
;         p5045SCK=0;
			; SOURCE LINE # 601
	CLR  	p5045SCK
;     for (j=0;j<10;j++);
			; SOURCE LINE # 602
	CLR  	A
	MOV  	j?1365,A
?C0092:
	INC  	j?1365
	MOV  	A,j?1365
	CJNE 	A,#0AH,?C0092
;     }
			; SOURCE LINE # 603
?C0091:
	INC  	i?1364
	MOV  	A,i?1364
	CLR  	C
	SUBB 	A,#08H
	JC   	?C0089
?C0090:
;     return ByteData;
			; SOURCE LINE # 604
	MOV  	R7,ByteData?1366
; }
			; SOURCE LINE # 605
?C0095:
	RET  	
; END OF IicReadByte

; 
; bit  IicReadData(unsigned char *str)

	RSEG  ?PR?_IicReadData?XSPMAIN
_IicReadData:
	USING	0
			; SOURCE LINE # 607
	MOV  	DPTR,#str?1467
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 608
; data    unsigned int		i=0;
			; SOURCE LINE # 609
	CLR  	A
	MOV  	i?1468,A
	MOV  	i?1468+01H,A
; data    unsigned int		j=0;
			; SOURCE LINE # 610
	MOV  	j?1469,A
	MOV  	j?1469+01H,A
; data    unsigned char		ByteData;
; data    unsigned char		Temp[3]="";
			; SOURCE LINE # 612
	MOV  	R0,#LOW (Temp?1471)
	MOV  	R4,#HIGH (Temp?1471)
	MOV  	R5,A
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (_?ix1000)
	MOV  	R1,#LOW (_?ix1000)
	MOV  	R6,A
	MOV  	R7,#03H
	LCALL	?C?COPY
; data    unsigned int		AddrData=IICADDR;
			; SOURCE LINE # 613
	CLR  	A
	MOV  	AddrData?1472,A
	MOV  	AddrData?1472+01H,A
;     InitX5045();	
			; SOURCE LINE # 614
	LCALL	InitX5045
;    	for (j=0;j<1000;j++);
			; SOURCE LINE # 615
	MOV  	j?1469,A
	MOV  	j?1469+01H,A
?C0096:
	INC  	j?1469+01H
	MOV  	A,j?1469+01H
	JNZ  	?C0144
	INC  	j?1469
?C0144:
	XRL  	A,#0E8H
	JNZ  	?C0145
	MOV  	A,j?1469
	XRL  	A,#03H
?C0145:
	JNZ  	?C0096
?C0097:
; 	p5045CS=0;		
			; SOURCE LINE # 616
	CLR  	p5045CS
; 	IicSendByte(READ);
			; SOURCE LINE # 617
	MOV  	R7,#03H
	LCALL	_IicSendByte
; 	IicSendByte(IICADDR);
			; SOURCE LINE # 618
	CLR  	A
	MOV  	R7,A
	LCALL	_IicSendByte
; 	Temp[0] = IicReadByte();
			; SOURCE LINE # 619

⌨️ 快捷键说明

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