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

📄 myproj.src

📁 暑假为学生培训写的51相关接口的所有源码及项目代码
💻 SRC
📖 第 1 页 / 共 2 页
字号:
	ADD  	A,R5
	MOV  	R0,A
	MOV  	A,@R0
	ADD  	A,R7
	MOV  	R7,A
	CLR  	A
	ADDC 	A,R6
	MOV  	R6,A
	INC  	R5
	CJNE 	R5,#00H,?C0076
	INC  	R4
?C0076:
	SJMP 	?C0027
?C0028:
;         if(j==RECVBUF[RECVBUF[1]])
			; SOURCE LINE # 107
	MOV  	A,#LOW (RECVBUF)
	ADD  	A,RECVBUF+01H
	MOV  	R0,A
	MOV  	A,@R0
	XRL  	A,R7
	JNZ  	?C0077
	MOV  	A,R6
?C0077:
	JNZ  	?C0079
;         {
			; SOURCE LINE # 108
;             iCMD=RECVBUF[3];
			; SOURCE LINE # 109
	MOV  	iCMD,RECVBUF+03H
;             iDATA0=RECVBUF[4];
			; SOURCE LINE # 110
	MOV  	iDATA0,RECVBUF+04H
;             iDATA1=RECVBUF[5];
			; SOURCE LINE # 111
	MOV  	iDATA1,RECVBUF+05H
;             DoCMD();
			; SOURCE LINE # 112
	LCALL	DoCMD
;             k=iRECVNUM-RECVBUF[1]-2;//剩下的个数
			; SOURCE LINE # 113
	CLR  	C
	MOV  	A,iRECVNUM
	SUBB 	A,RECVBUF+01H
	MOV  	R7,A
	CLR  	A
	SUBB 	A,#00H
	XCH  	A,R7
	ADD  	A,#0FEH
	MOV  	k?449+01H,A
	MOV  	A,R7
	ADDC 	A,#0FFH
	MOV  	k?449,A
;             CopyM(RECVBUF,RECVBUF+RECVBUF[1]+2,k);
			; SOURCE LINE # 114
	MOV  	A,#LOW (RECVBUF+02H)
	ADD  	A,RECVBUF+01H
	MOV  	R1,A
	CLR  	A
	MOV  	?_CopyM?BYTE+03H,A
	MOV  	?_CopyM?BYTE+04H,A
	MOV  	?_CopyM?BYTE+05H,R1
	MOV  	?_CopyM?BYTE+06H,k?449
	MOV  	?_CopyM?BYTE+07H,k?449+01H
	MOV  	R3,A
	MOV  	R2,#HIGH (RECVBUF)
	MOV  	R1,#LOW (RECVBUF)
	LCALL	_CopyM
;             ClearM(RECVBUF+k,iRECVNUM-k);
			; SOURCE LINE # 115
	MOV  	A,#LOW (RECVBUF)
	ADD  	A,k?449+01H
	MOV  	R1,A
	CLR  	A
	MOV  	R2,A
	MOV  	R3,A
	CLR  	C
	MOV  	A,iRECVNUM
	SUBB 	A,k?449+01H
	MOV  	R5,A
	CLR  	A
	SUBB 	A,k?449
	MOV  	R4,A
	LCALL	_ClearM
;             iRECVNUM=k; 
			; SOURCE LINE # 116
	MOV  	iRECVNUM,k?449+01H
;         }
			; SOURCE LINE # 117
	RET  	
?C0026:
;         else
;         {
;             CopyM(RECVBUF,RECVBUF+1,--iRECVNUM);
;             ClearM(RECVBUF+iRECVNUM,1); 
;         }
;     }
;     else
;     {
			; SOURCE LINE # 125
;         CopyM(RECVBUF,RECVBUF+1,--iRECVNUM);
			; SOURCE LINE # 126
?C0079:
	MOV  	?_CopyM?BYTE+03H,#00H
	MOV  	?_CopyM?BYTE+04H,#HIGH (RECVBUF+01H)
	MOV  	?_CopyM?BYTE+05H,#LOW (RECVBUF+01H)
	DEC  	iRECVNUM
	MOV  	?_CopyM?BYTE+06H,#00H
	MOV  	?_CopyM?BYTE+07H,iRECVNUM
	MOV  	R3,#00H
	MOV  	R2,#HIGH (RECVBUF)
	MOV  	R1,#LOW (RECVBUF)
	LCALL	_CopyM
;         ClearM(RECVBUF+iRECVNUM,1); 
			; SOURCE LINE # 127
	MOV  	A,#LOW (RECVBUF)
	ADD  	A,iRECVNUM
	MOV  	R1,A
	CLR  	A
	MOV  	R2,A
	MOV  	R3,A
	MOV  	R5,#01H
	MOV  	R4,A
	LCALL	_ClearM
;     }       
			; SOURCE LINE # 128
; }
			; SOURCE LINE # 129
?C0033:
	RET  	
; END OF ExcuteCMD

CSEG	AT	00023H
	LJMP	serial

; void serial(void) interrupt 4//定义串行口中断处理子程序

	RSEG  ?PR?serial?MYPROJ
	USING	0
serial:
	PUSH 	ACC
	PUSH 	PSW
	MOV  	PSW,#00H
	PUSH 	AR0
	USING	0
			; SOURCE LINE # 130
; {
;     ES=0;
			; SOURCE LINE # 132
	CLR  	ES
;     if(TI)
			; SOURCE LINE # 133
	JNB  	TI,?C0035
;         TI=0;
			; SOURCE LINE # 134
	CLR  	TI
?C0035:
;     while(RI)
			; SOURCE LINE # 135
	JNB  	RI,?C0036
;     {
			; SOURCE LINE # 136
;         RECVBUF[iRECVNUM]=SBUF;
			; SOURCE LINE # 137
	MOV  	A,#LOW (RECVBUF)
	ADD  	A,iRECVNUM
	MOV  	R0,A
	MOV  	@R0,SBUF
;         iRECVNUM++;
			; SOURCE LINE # 138
	INC  	iRECVNUM
;         RI=0; 
			; SOURCE LINE # 139
	CLR  	RI
;     }
			; SOURCE LINE # 140
	SJMP 	?C0035
?C0036:
;     ES=1;
			; SOURCE LINE # 141
	SETB 	ES
; }
			; SOURCE LINE # 142
	POP  	AR0
	POP  	PSW
	POP  	ACC
	RETI 	
; END OF serial

CSEG	AT	0000BH
	LJMP	TimeSec

; void TimeSec(void) interrupt 1//定义定时器0中断处理子程序

	RSEG  ?PR?TimeSec?MYPROJ
	USING	0
TimeSec:
	PUSH 	ACC
	PUSH 	PSW
			; SOURCE LINE # 143
; {
;     TR0=0x0;
			; SOURCE LINE # 145
	CLR  	TR0
;     TL0=0x00;
			; SOURCE LINE # 146
	MOV  	TL0,#00H
; 	TH0=0x00;
			; SOURCE LINE # 147
	MOV  	TH0,#00H
; 	if(--iTimes<=0)
			; SOURCE LINE # 148
	DEC  	iTimes
	MOV  	A,iTimes
	SETB 	C
	SUBB 	A,#00H
	JNC  	?C0038
;     {
			; SOURCE LINE # 149
;         iTimes=0x10; 
			; SOURCE LINE # 150
	MOV  	iTimes,#010H
;         switch(iMode)
			; SOURCE LINE # 151
	MOV  	A,iMode
	DEC  	A
	JZ   	?C0042
	INC  	A
	JNZ  	?C0038
;         {
			; SOURCE LINE # 152
;             case 0:
			; SOURCE LINE # 153
?C0040:
;                 iNum+=0x1;
			; SOURCE LINE # 154
	INC  	iNum
;                 if(iNum>=60)
			; SOURCE LINE # 155
	MOV  	A,iNum
	CLR  	C
	SUBB 	A,#03CH
	JC   	?C0038
;                     iNum=0;
			; SOURCE LINE # 156
	MOV  	iNum,#00H
;                 break;
			; SOURCE LINE # 157
	SJMP 	?C0038
;             case 1:
			; SOURCE LINE # 158
?C0042:
;                 iNum-=0x1;
			; SOURCE LINE # 159
	DEC  	iNum
;                 if(iNum<0)
			; SOURCE LINE # 160
	MOV  	A,iNum
	CLR  	C
	SUBB 	A,#00H
	JNC  	?C0038
;                     iNum=iInit;
			; SOURCE LINE # 161
	MOV  	iNum,iInit
;                 break;
			; SOURCE LINE # 162
;             default:
			; SOURCE LINE # 163
;                 break; 
			; SOURCE LINE # 164
;         }
			; SOURCE LINE # 165
;     }   
			; SOURCE LINE # 166
?C0038:
;     TR0=0x1;
			; SOURCE LINE # 167
	SETB 	TR0
; }
			; SOURCE LINE # 168
	POP  	PSW
	POP  	ACC
	RETI 	
; END OF TimeSec

CSEG	AT	00003H
	LJMP	Int0Add

; void Int0Add(void) interrupt 0//定义中断0处理子程序

	RSEG  ?PR?Int0Add?MYPROJ
	USING	0
Int0Add:
	PUSH 	ACC
	PUSH 	PSW
			; SOURCE LINE # 169
; {
;     EX0=0;
			; SOURCE LINE # 171
	CLR  	EX0
;     if(bState)
			; SOURCE LINE # 172
	JNB  	bState,?C0046
;     {
			; SOURCE LINE # 173
;         switch(iFunc)   
			; SOURCE LINE # 174
	MOV  	A,iFunc
	ADD  	A,#0FBH
	JZ   	?C0050
	INC  	A
	JNZ  	?C0053
;         {
			; SOURCE LINE # 175
;             case 4:
			; SOURCE LINE # 176
?C0048:
;                 if(++iMode>1)
			; SOURCE LINE # 177
	INC  	iMode
	MOV  	A,iMode
	SETB 	C
	SUBB 	A,#01H
	JC   	?C0053
;                     iMode=0;
			; SOURCE LINE # 178
	MOV  	iMode,#00H
;                 break;
			; SOURCE LINE # 179
	SJMP 	?C0053
;             case 5:
			; SOURCE LINE # 180
?C0050:
;                 if(++iInit>99)
			; SOURCE LINE # 181
	INC  	iInit
	MOV  	A,iInit
	SETB 	C
	SUBB 	A,#063H
	JC   	?C0053
;                     iInit=0;
			; SOURCE LINE # 182
	MOV  	iInit,#00H
;                 break;
			; SOURCE LINE # 183
	SJMP 	?C0053
;             default:
			; SOURCE LINE # 184
;                 break;
			; SOURCE LINE # 185
;         } 
			; SOURCE LINE # 186
;     }
			; SOURCE LINE # 187
?C0046:
;     else
;         if(++iFunc>5)
			; SOURCE LINE # 189
	INC  	iFunc
	MOV  	A,iFunc
	SETB 	C
	SUBB 	A,#05H
	JC   	?C0053
;             iFunc=0;
			; SOURCE LINE # 190
	MOV  	iFunc,#00H
?C0053:
;     EX0=1;
			; SOURCE LINE # 191
	SETB 	EX0
; }
			; SOURCE LINE # 192
	POP  	PSW
	POP  	ACC
	RETI 	
; END OF Int0Add

CSEG	AT	00013H
	LJMP	Int1Ent

; void Int1Ent(void) interrupt 2//定义中断1处理子程序

	RSEG  ?PR?Int1Ent?MYPROJ
	USING	0
Int1Ent:
	PUSH 	ACC
	PUSH 	PSW
			; SOURCE LINE # 193
; {
;     EX1=0;
			; SOURCE LINE # 195
	CLR  	EX1
;     switch(iFunc)
			; SOURCE LINE # 196
	MOV  	A,iFunc
	DEC  	A
	JZ   	?C0058
	DEC  	A
	JZ   	?C0059
	DEC  	A
	JZ   	?C0060
	ADD  	A,#03H
	JNZ  	?C0063
;     {
			; SOURCE LINE # 197
;         case 0:
			; SOURCE LINE # 198
?C0057:
;             TR0=1;
			; SOURCE LINE # 199
	SETB 	TR0
;             break;
			; SOURCE LINE # 200
	SJMP 	?C0056
;         case 1:
			; SOURCE LINE # 201
?C0058:
;             TR0=0;
			; SOURCE LINE # 202
	CLR  	TR0
;             break;
			; SOURCE LINE # 203
	SJMP 	?C0056
;         case 2:
			; SOURCE LINE # 204
?C0059:
;             iNum=0;
			; SOURCE LINE # 205
	MOV  	iNum,#00H
;             break;
			; SOURCE LINE # 206
	SJMP 	?C0056
;         case 3:
			; SOURCE LINE # 207
?C0060:
;             if(iMode==0)
			; SOURCE LINE # 208
	MOV  	A,iMode
	JNZ  	?C0061
;                 iNum=00;
			; SOURCE LINE # 209
	MOV  	iNum,A
	SJMP 	?C0062
?C0061:
;             else
;                 iNum=iInit;
			; SOURCE LINE # 211
	MOV  	iNum,iInit
?C0062:
;             TR0=1;
			; SOURCE LINE # 212
	SETB 	TR0
;             break;
			; SOURCE LINE # 213
	SJMP 	?C0056
;         default:
			; SOURCE LINE # 214
?C0063:
;             bState^=1;
			; SOURCE LINE # 215
	MOV  	C,bState
	CPL  	C
	MOV  	bState,C
;             break;
			; SOURCE LINE # 216
;     }
			; SOURCE LINE # 217
?C0056:
;     EX1=1;
			; SOURCE LINE # 218
	SETB 	EX1
; }
			; SOURCE LINE # 219
	POP  	PSW
	POP  	ACC
	RETI 	
; END OF Int1Ent

; void DispNum(void)

	RSEG  ?PR?DispNum?MYPROJ
DispNum:
	USING	0
			; SOURCE LINE # 220
; {
			; SOURCE LINE # 221
;     BYTE i,j;
;     i=iNum/10;
			; SOURCE LINE # 223
	MOV  	A,iNum
	MOV  	B,#0AH
	DIV  	AB
	MOV  	R7,A
;---- Variable 'i?950' assigned to Register 'R7' ----
;     j=iNum%10;
			; SOURCE LINE # 224
	MOV  	A,iNum
	MOV  	B,#0AH
	DIV  	AB
	MOV  	j?951,B
;     P0=TAB[i];
			; SOURCE LINE # 225
	MOV  	A,#LOW (TAB)
	ADD  	A,R7
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	P0,A
;     P2=0x40;
			; SOURCE LINE # 226
	MOV  	P2,#040H
;     Delay(500);
			; SOURCE LINE # 227
	MOV  	R7,#0F4H
	MOV  	R6,#01H
	LCALL	_Delay
;     P0=TAB[j];
			; SOURCE LINE # 228
	MOV  	A,#LOW (TAB)
	ADD  	A,j?951
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	P0,A
;     P2=0x20;
			; SOURCE LINE # 229
	MOV  	P2,#020H
;     Delay(500);   
			; SOURCE LINE # 230
	MOV  	R7,#0F4H
	MOV  	R6,#01H
	LJMP 	_Delay
; END OF DispNum

; }
; void DispLed(void)

	RSEG  ?PR?DispLed?MYPROJ
DispLed:
	USING	0
			; SOURCE LINE # 232
; {
			; SOURCE LINE # 233
;     P2=0x80;
			; SOURCE LINE # 234
	MOV  	P2,#080H
;     if(bState)
			; SOURCE LINE # 235
	JNB  	bState,?C0066
;     {
			; SOURCE LINE # 236
;         if(iFunc==4)
			; SOURCE LINE # 237
	MOV  	A,iFunc
	CJNE 	A,#04H,?C0067
;             P0=iMode;
			; SOURCE LINE # 238
	MOV  	P0,iMode
	SJMP 	?C0069
?C0067:
;         else
;             P0=iInit;    
			; SOURCE LINE # 240
	MOV  	P0,iInit
;     }
			; SOURCE LINE # 241
	SJMP 	?C0069
?C0066:
;     else
;         P0=iFunc;
			; SOURCE LINE # 243
	MOV  	P0,iFunc
?C0069:
;     Delay(500);
			; SOURCE LINE # 244
	MOV  	R7,#0F4H
	MOV  	R6,#01H
	LJMP 	_Delay
; END OF DispLed

; }
; void Delay(int i)

	RSEG  ?PR?_Delay?MYPROJ
_Delay:
	USING	0
			; SOURCE LINE # 246
;---- Variable 'i?1152' assigned to Register 'R6/R7' ----
; {
			; SOURCE LINE # 247
?C0071:
;     while(--i);
			; SOURCE LINE # 248
	MOV  	A,R7
	DEC  	R7
	JNZ  	?C0078
	DEC  	R6
?C0078:
	DEC  	A
	ORL  	A,R6
	JNZ  	?C0071
; }			; SOURCE LINE # 249
?C0073:
	RET  	
; END OF _Delay

	END

⌨️ 快捷键说明

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