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

📄 si4421.src

📁 c8051f310xmodembootloader.rar
💻 SRC
📖 第 1 页 / 共 2 页
字号:
; .\si4421.SRC generated from: si4421.c
; COMPILER INVOKED BY:
;        C:\Keil\C51\BIN\C51.EXE si4421.c LARGE BROWSE DEBUG OBJECTEXTEND SRC(.\si4421.SRC)

$NOMOD51

NAME	SI4421

CCF2	BIT	0D8H.2
TB80	BIT	098H.3
SPI0CKR	DATA	0A2H
CCF3	BIT	0D8H.3
P0	DATA	080H
SPIEN	BIT	0F8H.0
CCF4	BIT	0D8H.4
P1	DATA	090H
P2	DATA	0A0H
ADC0CF	DATA	0BCH
P3	DATA	0B0H
AC	BIT	0D0H.6
PCA0	DATA	0F9H
EIE1	DATA	0E6H
EA	BIT	0A8H.7
MCE0	BIT	098H.5
PSCTL	DATA	08FH
CF	BIT	0D8H.7
IT01CF	DATA	0E4H
ADC0CN	DATA	0E8H
D0IN	BIT	090H.4
P0MDOUT	DATA	0A4H
DI	BIT	0A0H.4
D1IN	BIT	090H.5
P1MDOUT	DATA	0A5H
TMR2RLH	DATA	0CBH
IE	DATA	0A8H
P2MDOUT	DATA	0A6H
P3MDOUT	DATA	0A7H
TMR3RLH	DATA	093H
EIP1	DATA	0F6H
TRIG_OUT	BIT	0B0H.4
W_FLG	BIT	0A0H.3
TXBMT	BIT	0F8H.1
PCA0CPH0	DATA	0FCH
TMR2RLL	DATA	0CAH
PCA0CPH1	DATA	0EAH
TMR3RLL	DATA	092H
DP	DATA	082H
PCA0CPH2	DATA	0ECH
ADC0GT	DATA	0C3H
CR	BIT	0D8H.6
TF2H	BIT	0C8H.7
T2SPLIT	BIT	0C8H.3
PCA0CPH3	DATA	0EEH
REN0	BIT	098H.4
PCA0CPH4	DATA	0FEH
PCA0CPL0	DATA	0FBH
RE	BIT	0A0H.5
PCA0CPL1	DATA	0E9H
PCA0CPM0	DATA	0DAH
PCA0MD	DATA	0D9H
PCA0CN	DATA	0D8H
PCA0CPL2	DATA	0EBH
PCA0CPM1	DATA	0DBH
TF2L	BIT	0C8H.6
PCA0CPL3	DATA	0EDH
PCA0CPM2	DATA	0DCH
IP	DATA	0B8H
ADC0LT	DATA	0C5H
X_SCK	BIT	080H.0
ARBLOST	BIT	0C0H.2
PCA0CPL4	DATA	0FDH
PCA0CPM3	DATA	0DDH
PCA0CPM4	DATA	0DEH
INT0	BIT	080H.7
TXBSY	BIT	0F8H.3
CY	BIT	0D0H.7
SI	BIT	0C0H.0
LEDG	BIT	080H.3
XBR0	DATA	0E1H
SMB0CF	DATA	0C1H
XBR1	DATA	0E2H
EMI0CN	DATA	0AAH
BELL	BIT	0A0H.7
REF0CN	DATA	0D1H
AD0INT	BIT	0E8H.5
SP	DATA	081H
OV	BIT	0D0H.2
SMB0CN	DATA	0C0H
TMR2	DATA	0CCH
TMR3	DATA	094H
MODF	BIT	0F8H.5
LEDR	BIT	080H.2
RX	BIT	080H.5
S0MODE	BIT	098H.7
VDM0CN	DATA	0FFH
P0MDIN	DATA	0F1H
CPT0MD	DATA	09DH
CPT0CN	DATA	09BH
P1MDIN	DATA	0F2H
CPT1MD	DATA	09CH
CPT1CN	DATA	09AH
TX	BIT	080H.4
P2MDIN	DATA	0F3H
TF2LEN	BIT	0C8H.5
P3MDIN	DATA	0F4H
TRIG_IN	BIT	0B0H.3
SPI0CN	DATA	0F8H
W_RST	BIT	0A0H.6
PCON	DATA	087H
SPIF	BIT	0F8H.7
nsel	BIT	090H.0
TMOD	DATA	089H
TCON	DATA	088H
WCOL	BIT	0F8H.6
TRIG	BIT	0A0H.1
TMR2CN	DATA	0C8H
P0SKIP	DATA	0D4H
TMR3CN	DATA	091H
nres	BIT	080H.7
T2XCLK	BIT	0C8H.0
P1SKIP	DATA	0D5H
P2SKIP	DATA	0D6H
IE0	BIT	088H.1
CPT0MX	DATA	09FH
IE1	BIT	088H.3
OSCICL	DATA	0B3H
CPT1MX	DATA	09EH
CLKSEL	DATA	0A9H
sdi	BIT	080H.6
B	DATA	0F0H
ADC0H	DATA	0BEH
OSCICN	DATA	0B2H
sck	BIT	080H.0
TMR2RL	DATA	0CAH
ADC0L	DATA	0BDH
TMR3RL	DATA	092H
sdo	BIT	080H.1
ACC	DATA	0E0H
ES0	BIT	0A8H.4
PCA0CP0	DATA	0FBH
AD0EN	BIT	0E8H.7
ET0	BIT	0A8H.1
PCA0CP1	DATA	0E9H
ET1	BIT	0A8H.3
TF0	BIT	088H.5
PCA0CP2	DATA	0EBH
D0W	BIT	090H.2
ET2	BIT	0A8H.5
RI0	BIT	098H.0
TF1	BIT	088H.7
PCA0CP3	DATA	0EDH
D1W	BIT	090H.3
TH0	DATA	08CH
PCA0CP4	DATA	0FDH
EX0	BIT	0A8H.0
TI0	BIT	098H.1
IT0	BIT	088H.0
PCA0H	DATA	0FAH
TH1	DATA	08DH
X_CS	BIT	090H.1
MASTER	BIT	0C0H.7
EX1	BIT	0A8H.2
IT1	BIT	088H.2
P	BIT	0D0H.0
ACK	BIT	0C0H.1
OSCXCN	DATA	0B1H
TL0	DATA	08AH
PCA0L	DATA	0F9H
TL1	DATA	08BH
TXMODE	BIT	0C0H.6
PS0	BIT	0B8H.4
WIE_CK	BIT	0A0H.0
X_SI	BIT	080H.6
PT0	BIT	0B8H.1
RS0	BIT	0D0H.3
PT1	BIT	0B8H.3
RS1	BIT	0D0H.4
PT2	BIT	0B8H.5
TR0	BIT	088H.4
AD0TM	BIT	0E8H.6
TR1	BIT	088H.6
RELAY_OUT	BIT	0B0H.2
TR2	BIT	0C8H.2
PX0	BIT	0B8H.0
PX1	BIT	0B8H.2
X_SO	BIT	080H.1
SLVSEL	BIT	0F8H.2
DPH	DATA	083H
ADC0GTH	DATA	0C4H
DPL	DATA	082H
ADC0GTL	DATA	0C3H
SBUF0	DATA	099H
ADC0LTH	DATA	0C6H
RSTSRC	DATA	0EFH
FLACL	DATA	0B5H
SCON0	DATA	098H
AMX0N	DATA	0BAH
ADC0LTL	DATA	0C5H
AMX0P	DATA	0BBH
STA	BIT	0C0H.5
D0OUT	BIT	090H.6
SMB0DAT	DATA	0C2H
D1OUT	BIT	090H.7
TMR2H	DATA	0CDH
SPI0CFG	DATA	0A1H
TMR3H	DATA	095H
CKCON	DATA	08EH
IN_OUT	BIT	0A0H.2
RXOVRN	BIT	0F8H.4
TMR2L	DATA	0CCH
ACKRQ	BIT	0C0H.3
TMR3L	DATA	094H
F0	BIT	0D0H.5
FLSCL	DATA	0B6H
RELAY_IN	BIT	0B0H.1
AD0CM0	BIT	0E8H.0
F1	BIT	0D0H.1
STO	BIT	0C0H.4
AD0CM1	BIT	0E8H.1
SPI0DAT	DATA	0A3H
ADC0	DATA	0BDH
AD0CM2	BIT	0E8H.2
AD0WINT	BIT	0E8H.3
AD0BUSY	BIT	0E8H.4
PSW	DATA	0D0H
CCF0	BIT	0D8H.0
RB80	BIT	098H.2
FLKEY	DATA	0B7H
CCF1	BIT	0D8H.1
?PR?ia442xinit?SI4421                    SEGMENT CODE 
?PR?receive?SI4421   SEGMENT CODE 
?BI?receive?SI4421   SEGMENT BIT OVERLAYABLE 
?PR?fiforxframe?SI4421                   SEGMENT CODE 
?XD?fiforxframe?SI4421                   SEGMENT XDATA OVERLAYABLE 
?PR?_txregframe?SI4421                   SEGMENT CODE 
?XD?_txregframe?SI4421                   SEGMENT XDATA OVERLAYABLE 
?PR?_spisendcommand?SI4421               SEGMENT CODE 
?XD?_spisendcommand?SI4421               SEGMENT XDATA OVERLAYABLE 
?PR?_spisendbyte?SI4421                  SEGMENT CODE 
?PR?spirevtwobyte?SI4421                 SEGMENT CODE 
?XD?spirevtwobyte?SI4421                 SEGMENT XDATA OVERLAYABLE 
?PR?spirevbyte?SI4421                    SEGMENT CODE 
?CO?SI4421           SEGMENT CODE 
?BI?SI4421           SEGMENT BIT 
?ID?SI4421           SEGMENT IDATA 
	EXTRN	XDATA (rxdata)
	EXTRN	XDATA (txdata)
	EXTRN	IDATA (power)
	EXTRN	CODE (_Printf_String)
	PUBLIC	n
	PUBLIC	revframe
	PUBLIC	spirevbyte
	PUBLIC	spirevtwobyte
	PUBLIC	_spisendbyte
	PUBLIC	_spisendcommand
	PUBLIC	_txregframe
	PUBLIC	fiforxframe
	PUBLIC	receive
	PUBLIC	ia442xinit

	RSEG  ?XD?fiforxframe?SI4421
?fiforxframe?BYTE:
          i?241:   DS   1
	ORG  1
          k?242:   DS   2

	RSEG  ?XD?spirevtwobyte?SI4421
?spirevtwobyte?BYTE:
          u?654:   DS   2

	RSEG  ?XD?_txregframe?SI4421
?_txregframe?BYTE:
        len?343:   DS   1
	ORG  1
          i?344:   DS   1
	ORG  2
          u?345:   DS   2
	ORG  4
          k?346:   DS   2

	RSEG  ?XD?_spisendcommand?SI4421
?_spisendcommand?BYTE:
   comdata2?449:   DS   1

	RSEG  ?BI?receive?SI4421
?receive?BIT:
        flg?140:   DBIT   1

	RSEG  ?BI?SI4421
       revframe:   DBIT   1

	RSEG  ?ID?SI4421
              n:   DS   1

	RSEG  ?CO?SI4421
?SC_0:
	DB  00DH,00AH,'[' ,'m' ,'s' ,'g' ,':' ,']' ,'0' ,'0' 
	DB  '1' ,' ' ,'s' ,'i' ,'4' ,'4' ,'2' ,'1' ,027H,'s' 
	DB  ' ' ,'s' ,'d' ,'o' ,' ' ,'i' ,'s' ,' ' ,'d' ,'e' 
	DB  'a' ,'d' ,' ' ,'b' ,'u' ,'t' ,' ' ,'s' ,'h' ,'e' 
	DB  ' ' ,'c' ,'a' ,'n' ,' ' ,'r' ,'e' ,'c' ,'e' ,'i' 
	DB  'v' ,'e' ,000H

?SC_53:
	DB  00DH,00AH,'[' ,'m' ,'s' ,'g' ,':' ,']' ,'0' ,'0' 
	DB  '2' ,' ' ,'s' ,'i' ,'4' ,'4' ,'2' ,'1' ,027H,'s' 
	DB  ' ' ,'s' ,'d' ,'o' ,' ' ,'i' ,'s' ,' ' ,'d' ,'e' 
	DB  'a' ,'d' ,' ' ,'b' ,'u' ,'t' ,' ' ,'s' ,'h' ,'e' 
	DB  ' ' ,'c' ,'a' ,'n' ,' ' ,'r' ,'e' ,'c' ,'e' ,'i' 
	DB  'v' ,'e' ,000H

?SC_106:
	DB  00DH,00AH,'[' ,'m' ,'s' ,'g' ,':' ,']' ,'0' ,'0' 
	DB  '3' ,' ' ,'s' ,'i' ,'4' ,'4' ,'2' ,'1' ,027H,'s' 
	DB  ' ' ,'s' ,'d' ,'o' ,' ' ,'i' ,'s' ,' ' ,'d' ,'e' 
	DB  'a' ,'d' ,' ' ,'b' ,'u' ,'t' ,' ' ,'s' ,'h' ,'e' 
	DB  ' ' ,'c' ,'a' ,'n' ,' ' ,'r' ,'e' ,'c' ,'e' ,'i' 
	DB  'v' ,'e' ,000H

?SC_159:
	DB  00DH,00AH,'[' ,'m' ,'s' ,'g' ,':' ,']' ,'0' ,'0' 
	DB  '4' ,' ' ,'s' ,'i' ,'4' ,'4' ,'2' ,'1' ,027H,'s' 
	DB  ' ' ,'s' ,'d' ,'o' ,' ' ,'i' ,'s' ,' ' ,'d' ,'e' 
	DB  'a' ,'d' ,' ' ,'b' ,'u' ,'t' ,' ' ,'s' ,'h' ,'e' 
	DB  ' ' ,'c' ,'a' ,'n' ,' ' ,'r' ,'e' ,'c' ,'e' ,'i' 
	DB  'v' ,'e' ,000H

?SC_212:
	DB  00DH,00AH,'[' ,'m' ,'s' ,'g' ,':' ,']' ,'0' ,'0' 
	DB  '5' ,' ' ,'s' ,'i' ,'4' ,'4' ,'2' ,'1' ,027H,'s' 
	DB  ' ' ,'s' ,'d' ,'o' ,' ' ,'i' ,'s' ,' ' ,'d' ,'e' 
	DB  'a' ,'d' ,' ' ,'b' ,'u' ,'t' ,' ' ,'s' ,'h' ,'e' 
	DB  ' ' ,'c' ,'a' ,'n' ,' ' ,'r' ,'e' ,'c' ,'e' ,'i' 
	DB  'v' ,'e' ,000H

; #include "global.h"
; 
; uchar idata n;
; bit revframe;
; /******************************************************************************
; ** 函数: ia442xinit()
; ** 入参: 
; ** 返回: 
; ** 说明: ia442x初始化
; ******************************************************************************/
; void ia442xinit()				

	RSEG  ?PR?ia442xinit?SI4421
ia442xinit:
	USING	0
			; SOURCE LINE # 11
; {	
			; SOURCE LINE # 12
;     spisendcommand(0xCED4);		//SYNC=2DD4;
			; SOURCE LINE # 13
	MOV  	R7,#0D4H
	MOV  	R6,#0CEH
	LCALL	_spisendcommand
; 	spisendcommand(0xCC77);		//OB1,OB0, LPX,!ddy,DDIT,BW0
			; SOURCE LINE # 14
	MOV  	R7,#077H
	MOV  	R6,#0CCH
	LCALL	_spisendcommand
;     spisendcommand(0x80d7);		//;配置命令,fd-915M,dd-433M
			; SOURCE LINE # 15
	MOV  	R7,#0D7H
	MOV  	R6,#080H
	LCALL	_spisendcommand
; 	spisendcommand(0x8208);		//;电源管理 crystal on batter dectector
			; SOURCE LINE # 16
	MOV  	R7,#08H
	MOV  	R6,#082H
	LCALL	_spisendcommand
; 	spisendcommand(0xa080);		//;频率设置 430.32MHz(中心频率)
			; SOURCE LINE # 17
	MOV  	R7,#080H
	MOV  	R6,#0A0H
	LCALL	_spisendcommand
; 	spisendcommand(0xc623);		//;9600波特率设置 (c605)BR = 10000 / 29 / (R+1) / (1+cs*7) [kbps] R= (10000 / 29 / (1+cs*7) / BR) – 
			; SOURCE LINE # 18
	MOV  	R7,#023H
	MOV  	R6,#0C6H
	LCALL	_spisendcommand
; 	spisendcommand(0x9480);		//;接收控制 VDI OUTPUT FAST 200KHz(BW) RELATIVE to MAXIMUM 0dB RSSIsetth -85dBm
			; SOURCE LINE # 19
	MOV  	R7,#080H
	MOV  	R6,#094H
	LCALL	_spisendcommand
; 	spisendcommand(0xc22c);		//;数据滤波 Clock recovery (CR) auto lock control, if set.CR will start in fast mode.
			; SOURCE LINE # 20
	MOV  	R7,#02CH
	MOV  	R6,#0C2H
	LCALL	_spisendcommand
;                                 //;fast mode, fast attack and fast release (6 to 8 bit preamble (1010...) is recommended)
;                                 //;Digital filter                                                                             
; 	spisendcommand(0xca80);		//;FIFO COMMAND FIFO IT LEVEL 8 SYNCHRON PATTERN FIFO FILL DISABLE DISABLE THE HIGHLY SEBSITIVE
			; SOURCE LINE # 23
	MOV  	R7,#080H
	MOV  	R6,#0CAH
	LCALL	_spisendcommand
; 	spisendcommand(0xc4f7);		//;AFC COMMAND KEEP THE Foffset VALUE +7Fres to -8Fres
			; SOURCE LINE # 24
	MOV  	R7,#0F7H
	MOV  	R6,#0C4H
	LCALL	_spisendcommand
; 	spisendcommand(power);		//;TXCTRL bias 75KHz RELATIVE OUTPUT POWER 0dB
			; SOURCE LINE # 25
	MOV  	R0,#LOW (power)
	MOV  	A,@R0
	MOV  	R6,A
	INC  	R0
	MOV  	A,@R0
	MOV  	R7,A
	LJMP 	_spisendcommand
; END OF ia442xinit

; 
; }
; /******************************************************************************
; ** 函数: receive(void)
; ** 入参: 
; ** 返回: 
; ** 说明: 接收
; ******************************************************************************/
; 
; bit receive(void)

	RSEG  ?PR?receive?SI4421
receive:
	USING	0
			; SOURCE LINE # 35
; {
			; SOURCE LINE # 36
;   
;    bit flg;
; 
;        sdi=0;
			; SOURCE LINE # 40
	CLR  	sdi
; 	   nsel=0;
			; SOURCE LINE # 41
	CLR  	nsel
; 	   revframe = 0;
			; SOURCE LINE # 42
	CLR  	revframe
; 	if(sdo)
			; SOURCE LINE # 43
	JNB  	sdo,?C0002
; 		{
			; SOURCE LINE # 44
;   
; 			fiforxframe();
			; SOURCE LINE # 46
	LCALL	fiforxframe
; 			if (revframe)
			; SOURCE LINE # 47
	JNB  	revframe,?C0003
; 			  {
			; SOURCE LINE # 48
; 			    spisendcommand(0xca83); 
			; SOURCE LINE # 49
	MOV  	R7,#083H
	MOV  	R6,#0CAH
	LCALL	_spisendcommand
; 				flg=1;
			; SOURCE LINE # 50
	SETB 	flg?140
; 			 
; 			  }
			; SOURCE LINE # 52
	SJMP 	?C0005
?C0003:
; 			else 
; 			{
			; SOURCE LINE # 54
; 			 flg=0;
			; SOURCE LINE # 55
	CLR  	flg?140
; 			}
			; SOURCE LINE # 56
; 
; 	    }
			; SOURCE LINE # 58
	SJMP 	?C0005
?C0002:
; 	 else
; 	 {
			; SOURCE LINE # 60
; 	   flg=0;
			; SOURCE LINE # 61
	CLR  	flg?140
; 	 }
			; SOURCE LINE # 62
?C0005:
; 
; return(flg);
			; SOURCE LINE # 64
	MOV  	C,flg?140
; }
			; SOURCE LINE # 65
?C0006:
	RET  	
; END OF receive

; 
; /******************************************************************************
; ** 函数: fiforxframe()
; ** 入参: 
; ** 返回: 
; ** 说明: ia442x接收一帧数据
; ******************************************************************************/
; 
; void fiforxframe()				

	RSEG  ?PR?fiforxframe?SI4421
fiforxframe:
	USING	0
			; SOURCE LINE # 74
; {
			; SOURCE LINE # 75
; 	unsigned char i;
; 	unsigned int k;
; 
; 	n = 0;
			; SOURCE LINE # 79
	CLR  	A
	MOV  	R0,#LOW (n)
	MOV  	@R0,A
; 	spirevbyte();
			; SOURCE LINE # 80
	LCALL	spirevbyte
; 	spirevbyte();
			; SOURCE LINE # 81
	LCALL	spirevbyte
; 	rxdata[0]=spirevbyte();
			; SOURCE LINE # 82
	LCALL	spirevbyte
	MOV  	DPTR,#rxdata
	MOV  	A,R7
	MOVX 	@DPTR,A
; 	nsel=1;
			; SOURCE LINE # 83
	SETB 	nsel
; 	if(rxdata[0]==0xfa)
			; SOURCE LINE # 84
	XRL  	A,#0FAH
	JZ   	$ + 5H
	LJMP 	?C0007
; 	{
			; SOURCE LINE # 85
; 		sdi=0;
			; SOURCE LINE # 86
	CLR  	sdi
; 		nsel=0;
			; SOURCE LINE # 87
	CLR  	nsel
; 		//	while(!sdo);
; 			
; 		for(k=0;k<6000;k++)
			; SOURCE LINE # 90
	MOV  	DPTR,#k?242
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
?C0008:
	MOV  	DPTR,#k?242
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#070H
	MOV  	A,R6
	SUBB 	A,#017H
	JNC  	?C0009
; 		  {
			; SOURCE LINE # 91
; 		    if(sdo)
			; SOURCE LINE # 92
	JB   	sdo,?C0009
; 			 {
			; SOURCE LINE # 93
; 			  break;
			; SOURCE LINE # 94
; 			 }
			; SOURCE LINE # 95
; 		  }
			; SOURCE LINE # 96
?C0010:
	MOV  	DPTR,#k?242+01H
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	JNZ  	?C0008
	MOV  	DPTR,#k?242
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
?C0060:
	SJMP 	?C0008
?C0009:
; 		  if(k==6000)
			; SOURCE LINE # 97
	CJNE 	R6,#017H,?C0012
	CJNE 	R7,#070H,?C0012
; 		  {    // nres=0;
			; SOURCE LINE # 98
; 			   //delayms(50);
; 			   //nres=1;
; 		   ia442xinit();
			; SOURCE LINE # 101
	LCALL	ia442xinit
;            spirevtwobyte();
			; SOURCE LINE # 102
	LCALL	spirevtwobyte
;            spisendcommand(0x8288);			    //电源管理 whole receive crystal on
			; SOURCE LINE # 103
	LCALL	L?0068
;            spisendcommand(0xca83);				//FIFO COMMAND
			; SOURCE LINE # 104
	MOV  	R7,#083H
	MOV  	R6,#0CAH
	LCALL	_spisendcommand
; 		   if(DEBUG) Printf_String("\r\n[msg:]001 si4421's sdo is dead but she can receive");
			; SOURCE LINE # 105
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_0)
	MOV  	R1,#LOW (?SC_0)
	LJMP 	_Printf_String
; 			return;
;  		  }
			; SOURCE LINE # 107
?C0012:
; 		  
; 		spirevbyte();
			; SOURCE LINE # 109
	LCALL	spirevbyte
; 		spirevbyte();
			; SOURCE LINE # 110
	LCALL	spirevbyte
; 		rxdata[1]=spirevbyte();
			; SOURCE LINE # 111
	LCALL	spirevbyte
	MOV  	DPTR,#rxdata+01H
	MOV  	A,R7
	MOVX 	@DPTR,A
; 		nsel=1;
			; SOURCE LINE # 112
	SETB 	nsel
; 		n=rxdata[1]&0xff;                       //最大接收255字节
			; SOURCE LINE # 113
	MOV  	R0,#LOW (n)
	MOV  	@R0,A
; 		if(n<31)
			; SOURCE LINE # 114
	CLR  	C
	SUBB 	A,#01FH
	JNC  	?C0015
; 	   {
			; SOURCE LINE # 115
; 		for(i=0;i<n;i++)
			; SOURCE LINE # 116
	CLR  	A
	MOV  	DPTR,#i?241
	MOVX 	@DPTR,A
?C0016:
	MOV  	DPTR,#i?241
	MOVX 	A,@DPTR
	CLR  	C
	MOV  	R0,#LOW (n)
	SUBB 	A,@R0
	JNC  	?C0017
; 		{
			; SOURCE LINE # 117
; 			sdi = 0;
			; SOURCE LINE # 118
	CLR  	sdi
; 			nsel = 0;
			; SOURCE LINE # 119
	CLR  	nsel
; 
; 		//	while(!sdo);
; 		for(k=0;k<6000;k++)
			; SOURCE LINE # 122
	CLR  	A
	INC  	DPTR
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
?C0019:
	MOV  	DPTR,#k?242
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#070H
	MOV  	A,R6
	SUBB 	A,#017H
	JNC  	?C0020
; 		  {
			; SOURCE LINE # 123
; 		    if(sdo)
			; SOURCE LINE # 124
	JB   	sdo,?C0020
; 			 {
			; SOURCE LINE # 125
; 			  break;
			; SOURCE LINE # 126
; 			 }
			; SOURCE LINE # 127
; 		  }
			; SOURCE LINE # 128
?C0021:
	MOV  	DPTR,#k?242+01H
	MOVX 	A,@DPTR
	INC  	A
	MOVX 	@DPTR,A
	JNZ  	?C0019
	MOV  	DPTR,#k?242
	MOVX 	A,@DPTR

⌨️ 快捷键说明

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