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

📄 xspmain.src

📁 用8052写的一个LED大屏幕显示程序
💻 SRC
📖 第 1 页 / 共 5 页
字号:
	LCALL	IicReadByte
	MOV  	Temp?1471,R7
; 	AddrData++;
			; SOURCE LINE # 620
	INC  	AddrData?1472+01H
	MOV  	A,AddrData?1472+01H
	JNZ  	?C0146
	INC  	AddrData?1472
?C0146:
; 	Temp[1] = IicReadByte();
			; SOURCE LINE # 621
	LCALL	IicReadByte
	MOV  	Temp?1471+01H,R7
; 	AddrData++;
			; SOURCE LINE # 622
	INC  	AddrData?1472+01H
	MOV  	A,AddrData?1472+01H
	JNZ  	?C0147
	INC  	AddrData?1472
?C0147:
; /*	while(i!=20) {
;     	str[i++] = IicReadByte();
;     }
;     str[i++]=0;	
;     	p5045CS=1;		
; 	   return SUCCESS;*/
; 	if(!strcmp(Temp,"WR")) {
			; SOURCE LINE # 629
	MOV  	R0,#LOW (Temp?1471)
	MOV  	R4,#HIGH (Temp?1471)
	MOV  	R5,#00H
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_0)
	MOV  	R1,#LOW (?SC_0)
	LCALL	?C?STRCMP
	MOV  	A,R7
	JNZ  	?C0099
?C0100:
;     	while ((ByteData = IicReadByte()) != '\0'){
			; SOURCE LINE # 630
	LCALL	IicReadByte
	MOV  	ByteData?1470,R7
	MOV  	A,R7
	JZ   	?C0101
; 	       	str[i++]=ByteData;
			; SOURCE LINE # 631
	MOV  	DPTR,#str?1467
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	i?1468+01H
	MOV  	A,i?1468+01H
	MOV  	R6,i?1468
	JNZ  	?C0148
	INC  	i?1468
?C0148:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,ByteData?1470
	LCALL	?C?CSTOPTR
;        		AddrData++;
			; SOURCE LINE # 632
	INC  	AddrData?1472+01H
	MOV  	A,AddrData?1472+01H
	JNZ  	?C0149
	INC  	AddrData?1472
?C0149:
;             if(AddrData==0x100){
			; SOURCE LINE # 633
	JNZ  	?C0150
	MOV  	A,AddrData?1472
	XRL  	A,#01H
?C0150:
	JNZ  	?C0100
;                    	p5045CS=1;		
			; SOURCE LINE # 634
	SETB 	p5045CS
;                    	p5045CS=0;		
			; SOURCE LINE # 635
	CLR  	p5045CS
; 	                IicSendByte(READ|0x08);
			; SOURCE LINE # 636
	MOV  	R7,#0BH
	LCALL	_IicSendByte
; 	                IicSendByte(0x00);
			; SOURCE LINE # 637
	CLR  	A
	MOV  	R7,A
	LCALL	_IicSendByte
;             }
			; SOURCE LINE # 638
; 	   }
			; SOURCE LINE # 639
	SJMP 	?C0100
?C0101:
; 	   str[i++]=ByteData;
			; SOURCE LINE # 640
	MOV  	DPTR,#str?1467
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	i?1468+01H
	MOV  	A,i?1468+01H
	MOV  	R6,i?1468
	JNZ  	?C0151
	INC  	i?1468
?C0151:
	DEC  	A
	MOV  	DPL,A
	MOV  	DPH,R6
	MOV  	A,ByteData?1470
	LCALL	?C?CSTOPTR
;     	p5045CS=1;		
			; SOURCE LINE # 641
	SETB 	p5045CS
;         P3=P3Bak|0xc3;    
			; SOURCE LINE # 642
	MOV  	A,P3Bak
	ORL  	A,#0C3H
	MOV  	P3,A
;    	    pOE=0;
			; SOURCE LINE # 643
	CLR  	pOE
;         EA=1;
			; SOURCE LINE # 644
	SETB 	EA
; 	   return SUCCESS;
			; SOURCE LINE # 645
	SETB 	C
	RET  	
;     }
			; SOURCE LINE # 646
?C0099:
;     else{
			; SOURCE LINE # 647
; 		p5045CS=1;		
			; SOURCE LINE # 648
	SETB 	p5045CS
;         EA=1;
			; SOURCE LINE # 649
	SETB 	EA
;         P3=P3Bak|0xc3;    
			; SOURCE LINE # 650
	MOV  	A,P3Bak
	ORL  	A,#0C3H
	MOV  	P3,A
;         pOE=0;
			; SOURCE LINE # 651
	CLR  	pOE
; 		return ERROR;
			; SOURCE LINE # 652
	CLR  	C
;     }
			; SOURCE LINE # 653
; }
			; SOURCE LINE # 654
?C0103:
	RET  	
; END OF _IicReadData

; 
; unsigned char IicStatusData()

	RSEG  ?PR?IicStatusData?XSPMAIN
IicStatusData:
	USING	0
			; SOURCE LINE # 656
; {
			; SOURCE LINE # 657
; data    unsigned char		ByteData;
; 	p5045CS=0;		
			; SOURCE LINE # 659
	CLR  	p5045CS
;     IicSendByte(RSDR);
			; SOURCE LINE # 660
	MOV  	R7,#05H
	LCALL	_IicSendByte
; 	ByteData=IicReadByte();
			; SOURCE LINE # 661
	LCALL	IicReadByte
	MOV  	ByteData?1573,R7
; 	p5045CS=1;	
			; SOURCE LINE # 662
	SETB 	p5045CS
; 	return ByteData;
			; SOURCE LINE # 663
; }
			; SOURCE LINE # 664
?C0105:
	RET  	
; END OF IicStatusData

; 
; void	IicWriteData(unsigned char *str)

	RSEG  ?PR?_IicWriteData?XSPMAIN
_IicWriteData:
	USING	0
			; SOURCE LINE # 666
	MOV  	DPTR,#str?1674
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; {
			; SOURCE LINE # 667
; data  unsigned int		i=0;
			; SOURCE LINE # 668
	CLR  	A
	MOV  	i?1675,A
	MOV  	i?1675+01H,A
; data  unsigned int		j=0;
			; SOURCE LINE # 669
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
; data  unsigned char		ByteData;
; data  unsigned char		Temp;
; data  unsigned int		AddrData;
; data unsigned  int      LenStr;
; //	ByteData=IicStatusData();
;     InitX5045();
			; SOURCE LINE # 675
	LCALL	InitX5045
;    	for (j=0;j<1000;j++);
			; SOURCE LINE # 676
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0106:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0152
	INC  	j?1676
?C0152:
	XRL  	A,#0E8H
	JNZ  	?C0153
	MOV  	A,j?1676
	XRL  	A,#03H
?C0153:
	JNZ  	?C0106
?C0107:
;  	p5045CS=0;		
			; SOURCE LINE # 677
	CLR  	p5045CS
; 	IicSendByte(WREN);
			; SOURCE LINE # 678
	MOV  	R7,#06H
	LCALL	_IicSendByte
; 	p5045CS=1;	
			; SOURCE LINE # 679
	SETB 	p5045CS
;    	for (j=0;j<1000;j++);
			; SOURCE LINE # 680
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0109:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0154
	INC  	j?1676
?C0154:
	XRL  	A,#0E8H
	JNZ  	?C0155
	MOV  	A,j?1676
	XRL  	A,#03H
?C0155:
	JNZ  	?C0109
?C0110:
; 	ByteData=IicStatusData();
			; SOURCE LINE # 681
	LCALL	IicStatusData
	MOV  	ByteData?1677,R7
; 	p5045CS=0;		
			; SOURCE LINE # 682
	CLR  	p5045CS
; 	IicSendByte(WRSR);
			; SOURCE LINE # 683
	MOV  	R7,#01H
	LCALL	_IicSendByte
; 	IicSendByte(0x02);
			; SOURCE LINE # 684
	MOV  	R7,#02H
	LCALL	_IicSendByte
; 	p5045CS=1;		
			; SOURCE LINE # 685
	SETB 	p5045CS
;    	for (j=0;j<1000;j++);
			; SOURCE LINE # 686
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0112:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0156
	INC  	j?1676
?C0156:
	XRL  	A,#0E8H
	JNZ  	?C0157
	MOV  	A,j?1676
	XRL  	A,#03H
?C0157:
	JNZ  	?C0112
?C0113:
; 	p5045CS=0;		
			; SOURCE LINE # 687
	CLR  	p5045CS
; 	IicSendByte(WREN);
			; SOURCE LINE # 688
	MOV  	R7,#06H
	LCALL	_IicSendByte
; 	p5045CS=1;	
			; SOURCE LINE # 689
	SETB 	p5045CS
; 	   	for (j=0;j<1000;j++);
			; SOURCE LINE # 690
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0115:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0158
	INC  	j?1676
?C0158:
	XRL  	A,#0E8H
	JNZ  	?C0159
	MOV  	A,j?1676
	XRL  	A,#03H
?C0159:
	JNZ  	?C0115
?C0116:
; 	ByteData=IicStatusData();
			; SOURCE LINE # 691
	LCALL	IicStatusData
	MOV  	ByteData?1677,R7
;     AddrData=IICADDR;	
			; SOURCE LINE # 692
	CLR  	A
	MOV  	AddrData?1679,A
	MOV  	AddrData?1679+01H,A
;    	p5045CS=0;		
			; SOURCE LINE # 693
	CLR  	p5045CS
; 	IicSendByte(WRITE);
			; SOURCE LINE # 694
	MOV  	R7,#02H
	LCALL	_IicSendByte
; 	IicSendByte((unsigned char)AddrData);
			; SOURCE LINE # 695
	MOV  	R7,AddrData?1679+01H
	LCALL	_IicSendByte
; 	IicSendByte('W');
			; SOURCE LINE # 696
	MOV  	R7,#057H
	LCALL	_IicSendByte
; 	AddrData++;
			; SOURCE LINE # 697
	INC  	AddrData?1679+01H
	MOV  	A,AddrData?1679+01H
	JNZ  	?C0160
	INC  	AddrData?1679
?C0160:
; 	IicSendByte('R');
			; SOURCE LINE # 698
	MOV  	R7,#052H
	LCALL	_IicSendByte
;     AddrData++;
			; SOURCE LINE # 699
	INC  	AddrData?1679+01H
	MOV  	A,AddrData?1679+01H
	JNZ  	?C0161
	INC  	AddrData?1679
?C0161:
;     LenStr=strlen(str);
			; SOURCE LINE # 700
	MOV  	DPTR,#str?1674
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	LCALL	_strlen
	MOV  	LenStr?1680,R6
	MOV  	LenStr?1680+01H,R7
; 	for(i=0;i<=LenStr;i++){
			; SOURCE LINE # 701
	CLR  	A
	MOV  	i?1675,A
	MOV  	i?1675+01H,A
?C0118:
	SETB 	C
	MOV  	A,i?1675+01H
	SUBB 	A,LenStr?1680+01H
	MOV  	A,i?1675
	SUBB 	A,LenStr?1680
	JC   	$ + 5H
	LJMP 	?C0119
;         if ((AddrData%16)==0){
			; SOURCE LINE # 702
	MOV  	A,AddrData?1679+01H
	ANL  	A,#0FH
	JNZ  	?C0121
;             if (AddrData>0xff){   
			; SOURCE LINE # 703
	MOV  	A,AddrData?1679+01H
	SUBB 	A,#0FFH
	MOV  	A,AddrData?1679
	SUBB 	A,#00H
	JC   	?C0122
;          	      Temp=WRITE|0x08;
			; SOURCE LINE # 704
	MOV  	Temp?1678,#0AH
;             }
			; SOURCE LINE # 705
	SJMP 	?C0123
?C0122:
;             else
;          	      Temp=WRITE;
			; SOURCE LINE # 707
	MOV  	Temp?1678,#02H
?C0123:
;            p5045CS=1;		
			; SOURCE LINE # 708
	SETB 	p5045CS
;         	for (j=0;j<1000;j++);
			; SOURCE LINE # 709
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0124:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0162
	INC  	j?1676
?C0162:
	XRL  	A,#0E8H
	JNZ  	?C0163
	MOV  	A,j?1676
	XRL  	A,#03H
?C0163:
	JNZ  	?C0124
?C0127:
;            while(IicStatusData()&0x01);
			; SOURCE LINE # 710
	LCALL	IicStatusData
	MOV  	A,R7
	JB   	ACC.0,?C0127
?C0128:
;     	   p5045CS=0;		
			; SOURCE LINE # 711
	CLR  	p5045CS
; 	       IicSendByte(WREN);
			; SOURCE LINE # 712
	MOV  	R7,#06H
	LCALL	_IicSendByte
;     	   p5045CS=1;	
			; SOURCE LINE # 713
	SETB 	p5045CS
; #if DUBEG	
; 	ByteData=IicStatusData();
; #endif	
;            p5045CS=0;		
			; SOURCE LINE # 717
	CLR  	p5045CS
; 	       IicSendByte(Temp);
			; SOURCE LINE # 718
	MOV  	R7,Temp?1678
	LCALL	_IicSendByte
; 	       IicSendByte((unsigned char)(AddrData&0xff));
			; SOURCE LINE # 719
	MOV  	R7,AddrData?1679+01H
	MOV  	A,AddrData?1679+01H
	LCALL	_IicSendByte
;         }
			; SOURCE LINE # 720
?C0121:
;      ByteData = str[i];
			; SOURCE LINE # 721
	MOV  	DPTR,#str?1674
	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?1675+01H
	MOV  	DPH,i?1675
	LCALL	?C?CLDOPTR
	MOV  	ByteData?1677,A
;      IicSendByte(ByteData);
			; SOURCE LINE # 722
	MOV  	R7,A
	LCALL	_IicSendByte
;      AddrData++;
			; SOURCE LINE # 723
	INC  	AddrData?1679+01H
	MOV  	A,AddrData?1679+01H
	JNZ  	?C0164
	INC  	AddrData?1679
?C0164:
;    	for (j=0;j<100;j++);
			; SOURCE LINE # 724
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0129:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0165
	INC  	j?1676
?C0165:
	XRL  	A,#064H
	ORL  	A,j?1676
	JNZ  	?C0129
;     }
			; SOURCE LINE # 725
?C0120:
	INC  	i?1675+01H
	MOV  	A,i?1675+01H
	JNZ  	?C0166
	INC  	i?1675
?C0166:
	LJMP 	?C0118
?C0119:
;      	p5045CS=1;		
			; SOURCE LINE # 726
	SETB 	p5045CS
;       	for (j=0;j<1000;j++);
			; SOURCE LINE # 727
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0132:
	INC  	j?1676+01H
	MOV  	A,j?1676+01H
	JNZ  	?C0167
	INC  	j?1676
?C0167:
	XRL  	A,#0E8H
	JNZ  	?C0168
	MOV  	A,j?1676
	XRL  	A,#03H
?C0168:
	JNZ  	?C0132
?C0133:
; #if DUBEG	
; 	ByteData=IicStatusData();
; #endif	
; 	p5045CS=0;		
			; SOURCE LINE # 731
	CLR  	p5045CS
; 	IicSendByte(WREN);
			; SOURCE LINE # 732
	MOV  	R7,#06H
	LCALL	_IicSendByte
; 	p5045CS=1;	
			; SOURCE LINE # 733
	SETB 	p5045CS
; 	_nop_();
			; SOURCE LINE # 734
	NOP  	
; 	p5045CS=0;		
			; SOURCE LINE # 735
	CLR  	p5045CS
; 	IicSendByte(WRSR);
			; SOURCE LINE # 736
	MOV  	R7,#01H
	LCALL	_IicSendByte
; 	IicSendByte(0x0c);
			; SOURCE LINE # 737
	MOV  	R7,#0CH
	LCALL	_IicSendByte
; 	p5045CS=1;		
			; SOURCE LINE # 738
	SETB 	p5045CS
;    	for (j=0;j<1000;j++);
			; SOURCE LINE # 739
	CLR  	A
	MOV  	j?1676,A
	MOV  	j?1676+01H,A
?C0135:
	INC  	j?1676+01H
	MOV  	A,j

⌨️ 快捷键说明

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