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

📄 test.src

📁 这是一个UC/OS-II的多任务实例
💻 SRC
📖 第 1 页 / 共 3 页
字号:
	INC  	DPTR
	INC  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#HIGH (OETASKStk)
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#LOW (OETASKStk)
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#07H
	MOVX 	@DPTR,A
	INC  	DPTR
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#07H
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#HIGH (OETASKStk+01FFH)
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#LOW (OETASKStk+01FFH)
	MOVX 	@DPTR,A
	INC  	DPTR
	LCALL	?C?LSTKXDATA
	DB   	00H
	DB   	00H
	DB   	02H
	DB   	00H
	DEC  	R3
	MOV  	DPTR,#?_OSTaskCreateExt?BYTE+013H
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#03H
	MOVX 	@DPTR,A
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (_?OETASK)
	MOV  	R1,#LOW (_?OETASK)
	LJMP 	_OSTaskCreateExt
; END OF TaskCreate

;                    OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
; 
; }
; 
; 
; 
; /*
; *********************************************************************************************************
; *                                             RxTASK
; *********************************************************************************************************
; */
; 
; void RxTASK(void *cszdata) reentrant

	RSEG  ?PR?_?RxTASK?TEST
_?RxTASK:
	USING	0
			; SOURCE LINE # 196
	MOV  	DPTR,#0FFFDH
	LCALL	?C?ADDXBP
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
	MOV  	DPTR,#0FFF1H
	LCALL	?C?ADDXBP
; {   
;     INT8U  ch;
;     INT8U  err;
;     INT8U  Flag=0x00;
			; SOURCE LINE # 200
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	INC  	DPTR
	CLR  	A
	MOVX 	@DPTR,A
;     INT8U  CRCLEN;
;     INT8U  H,L;
;     INT8U  CMD;
;     INT16U LENCtr=0;
			; SOURCE LINE # 204
	MOV  	DPTR,#07H
	LCALL	?C?XBPOFF
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
;     INT16U i=2;
			; SOURCE LINE # 205
	MOV  	DPTR,#09H
	LCALL	?C?XBPOFF
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,#02H
	MOVX 	@DPTR,A
;     INT16U CRC,k;
;     extern INT8U InBuf[130];
; 	extern INT8U RESFlag;
; 	extern INT8U OEFlag;
; 
;     cszdata=cszdata;
			; SOURCE LINE # 211
	MOV  	DPTR,#0FH
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#0FH
	LCALL	?C?XBPOFF
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; 
;     for (;;) 
			; SOURCE LINE # 213
?C0006:
;     {
			; SOURCE LINE # 214
;      ch=CommGetChar(OS_TICKS_PER_SEC,&err);
			; SOURCE LINE # 215
	MOV  	R3,#01H
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	MOV  	R1,DPL
	MOV  	R2,DPH
	MOV  	R6,#00H
	MOV  	R7,#032H
	LCALL	_?CommGetChar
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOV  	A,R7
	MOVX 	@DPTR,A
;      if(err==COMM_NO_ERR)
			; SOURCE LINE # 216
	INC  	DPTR
	MOVX 	A,@DPTR
	JZ   	$ + 5H
	LJMP 	?C0008
;      {
			; SOURCE LINE # 217
;       if(ch==0x1B)
			; SOURCE LINE # 218
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R7,A
	CJNE 	A,#01BH,?C0009
;       {Flag=0x01;InBuf[0]=0x1B;}
			; SOURCE LINE # 219
	INC  	DPTR
	INC  	DPTR
	MOV  	A,#01H
	MOVX 	@DPTR,A
	MOV  	DPTR,#InBuf
	MOV  	A,#01BH
	MOVX 	@DPTR,A
	LJMP 	?C0008
?C0009:
;       else
;       {
			; SOURCE LINE # 221
;        if(Flag==0x01)
			; SOURCE LINE # 222
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	INC  	DPTR
	MOVX 	A,@DPTR
	CJNE 	A,#01H,?C0011
;        {LENCtr=(INT16U)ch;Flag=0x02;InBuf[1]=ch;}
			; SOURCE LINE # 223
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	R5,A
	MOV  	R4,#00H
	MOV  	DPTR,#07H
	LCALL	?C?XBPOFF
	MOV  	A,R4
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R5
	MOVX 	@DPTR,A
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	INC  	DPTR
	MOV  	A,#02H
	MOVX 	@DPTR,A
	MOV  	DPTR,#InBuf+01H
	MOV  	A,R6
	MOVX 	@DPTR,A
	LJMP 	?C0008
?C0011:
;        else
;        {
			; SOURCE LINE # 225
;         if(LENCtr>0)
			; SOURCE LINE # 226
	MOV  	DPTR,#07H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	SETB 	C
	SUBB 	A,#00H
	MOV  	A,R4
	SUBB 	A,#00H
	JNC  	$ + 5H
	LJMP 	?C0008
;         {InBuf[i]=ch;i++;LENCtr--;
			; SOURCE LINE # 227
	MOV  	DPTR,#09H
	LCALL	?C?XBPOFF
	INC  	DPTR
	MOVX 	A,@DPTR
	ADD  	A,#LOW (InBuf)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (InBuf)
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	DPTR,#09H
	LCALL	?C?XBPOFF
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?IILDX
	MOV  	DPTR,#07H
	LCALL	?C?XBPOFF
	MOV  	A,#0FFH
	MOV  	B,A
	LCALL	?C?IILDX
;          if(LENCtr==0)
			; SOURCE LINE # 228
	MOV  	DPTR,#07H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	ORL  	A,R6
	JZ   	$ + 5H
	LJMP 	?C0008
;          {Flag=0x00;CRCLEN=InBuf[1];k=(INT16U)InBuf[1];
			; SOURCE LINE # 229
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	INC  	DPTR
	INC  	DPTR
	MOVX 	@DPTR,A
	MOV  	DPTR,#InBuf+01H
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#03H
	LCALL	?C?XBPOFF
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	R6,#00H
	MOV  	DPTR,#0DH
	LCALL	?C?XBPOFF
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;           CRC=cal_crc(InBuf,CRCLEN);
			; SOURCE LINE # 230
	MOV  	DPTR,#03H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R5,A
	MOV  	R3,#01H
	MOV  	R2,#HIGH (InBuf)
	MOV  	R1,#LOW (InBuf)
	LCALL	_?cal_crc
	MOV  	DPTR,#0BH
	LCALL	?C?XBPOFF
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
;           L=(INT8U)CRC;H=(INT8U)(CRC>>8);
			; SOURCE LINE # 231
	MOV  	DPTR,#0BH
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R5,A
	MOV  	DPTR,#05H
	LCALL	?C?XBPOFF
	MOV  	A,R5
	MOVX 	@DPTR,A
	MOV  	A,R6
	MOV  	R7,A
	MOV  	DPTR,#04H
	LCALL	?C?XBPOFF
	MOV  	A,R7
	MOVX 	@DPTR,A
;           if(H==InBuf[k] && L==InBuf[k+1])
			; SOURCE LINE # 232
	MOV  	DPTR,#0DH
	LCALL	?C?XBPOFF
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	ADD  	A,#LOW (InBuf)
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (InBuf)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R6,A
	MOV  	DPTR,#04H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	XRL  	A,R6
	JNZ  	?C0008
	MOV  	A,#LOW (InBuf+01H)
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (InBuf+01H)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#05H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	CJNE 	A,AR7,?C0008
;           {CMD=InBuf[2];
			; SOURCE LINE # 233
	MOV  	DPTR,#InBuf+02H
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#06H
	LCALL	?C?XBPOFF
	MOV  	A,R7
	MOVX 	@DPTR,A
;            switch(CMD)
			; SOURCE LINE # 234
	MOV  	DPTR,#06H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	ADD  	A,#0FEH
	JZ   	?C0018
	DEC  	A
	JZ   	?C0019
	ADD  	A,#02H
	JNZ  	?C0008
;            {
			; SOURCE LINE # 235
;             case 0x01:RESFlag=0x01;break;
			; SOURCE LINE # 236
?C0017:
	MOV  	DPTR,#RESFlag
	SJMP 	?C0052
;             case 0x02:OEFlag =0x01;break;
			; SOURCE LINE # 237
?C0018:
	MOV  	DPTR,#OEFlag
?C0052:
	MOV  	A,#01H
	MOVX 	@DPTR,A
	SJMP 	?C0008
;             case 0x03:OEFlag =0x02;break;
			; SOURCE LINE # 238
?C0019:
	MOV  	DPTR,#OEFlag
	MOV  	A,#02H
	MOVX 	@DPTR,A
;            }
			; SOURCE LINE # 239
;           }
			; SOURCE LINE # 240
;          }
			; SOURCE LINE # 241
;         }
			; SOURCE LINE # 242
;        }
			; SOURCE LINE # 243
;       }
			; SOURCE LINE # 244
; 	 }
			; SOURCE LINE # 245
?C0008:
;      OSTimeDly(2);
			; SOURCE LINE # 246
	MOV  	R7,#02H
	MOV  	R6,#00H
	LCALL	_OSTimeDly
; 	}	 
			; SOURCE LINE # 247
	LJMP 	?C0006
; END OF _?RxTASK

; }
; 
; /*
; *********************************************************************************************************
; *                                             TxTASK
; *********************************************************************************************************
; */
; 
; void TxTASK(void *cszdata) reentrant

	RSEG  ?PR?_?TxTASK?TEST
_?TxTASK:
	USING	0
			; SOURCE LINE # 256
	MOV  	DPTR,#0FFFDH
	LCALL	?C?ADDXBP
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
	MOV  	DPTR,#0FFE9H
	LCALL	?C?ADDXBP
; {   
; 
; 	INT8U  RES1[14]={0x1B,0x0C,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00};
			; SOURCE LINE # 259
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOV  	R1,DPL
	MOV  	R2,DPH
	MOV  	R0,AR1
	MOV  	R4,AR2
	MOV  	R5,#01H
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (_?ix1001)
	MOV  	R1,#LOW (_?ix1001)
	MOV  	R6,#00H
	MOV  	R7,#0EH
	LCALL	?C?COPY
;     INT8U  H,L;
; 	INT8U  CRCLEN;
;    	INT16U i,j;
; 	INT16U CRC;
; 	extern INT8U OutBuf[256];
; 	extern INT8U RESFlag;
;     cszdata=cszdata;
			; SOURCE LINE # 266
	MOV  	DPTR,#017H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R3,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	MOV  	DPTR,#017H
	LCALL	?C?XBPOFF
	MOV  	A,R3
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R2
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R1
	MOVX 	@DPTR,A
; 
;     for (;;) 
			; SOURCE LINE # 268
?C0021:
; 	    {
			; SOURCE LINE # 269
;          switch(RESFlag)
			; SOURCE LINE # 270
	MOV  	DPTR,#RESFlag
	MOVX 	A,@DPTR
	ADD  	A,#0FEH
	JNZ  	$ + 5H
	LJMP 	?C0028
	DEC  	A
	JNZ  	$ + 5H
	LJMP 	?C0032
	ADD  	A,#02H
	JZ   	$ + 5H
	LJMP 	?C0023
; 		 {
			; SOURCE LINE # 271
; 		  case 0x01:CRCLEN=0x0C;
			; SOURCE LINE # 272
?C0024:
	MOV  	DPTR,#010H
	LCALL	?C?XBPOFF
	MOV  	A,#0CH
	MOVX 	@DPTR,A
; 		            CRC=cal_crc(RES1,CRCLEN);
			; SOURCE LINE # 273
	MOV  	DPTR,#010H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R5,A
	MOV  	R3,#01H
	MOV  	DPH,?C_XBP
	MOV  	DPL,?C_XBP+01H
	MOV  	R1,DPL
	MOV  	R2,DPH
	LCALL	_?cal_crc
	MOV  	DPTR,#015H
	LCALL	?C?XBPOFF
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
; 					RES1[13]=(INT8U)CRC;
			; SOURCE LINE # 274
	MOV  	DPTR,#015H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R5,A
	MOV  	DPTR,#0DH
	LCALL	?C?XBPOFF
	MOV  	A,R5
	MOVX 	@DPTR,A
; 					RES1[12]=(INT8U)(CRC>>8);
			; SOURCE LINE # 275
	MOV  	A,R6
	MOV  	R7,A
	MOV  	DPTR,#0CH
	LCALL	?C?XBPOFF
	MOV  	A,R7
	MOVX 	@DPTR,A
; 		            for(i=0;i<14;i++)
			; SOURCE LINE # 276
	MOV  	DPTR,#011H
	LCALL	?C?XBPOFF
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
?C0025:
	MOV  	DPTR,#011H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	C
	SUBB 	A,#0EH
	MOV  	A,R6
	SUBB 	A,#00H
	JNC  	?C0026
; 		            {CommPutChar(RES1[i],OS_TICKS_PER_SEC);}
			; SOURCE LINE # 277
	MOV  	R4,#00H
	MOV  	R5,#032H
	MOV  	A,?C_XBP+01H
	ADD  	A,R7
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,?C_XBP
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_?CommPutChar
	MOV  	DPTR,#011H
	LCALL	?C?XBPOFF
	CLR  	A
	MOV  	B,#01H
	LCALL	?C?IILDX
	SJMP 	?C0025
?C0026:
; 					RESFlag=0x00;break;
			; SOURCE LINE # 278
	LJMP 	?C0054
; 
; 		  case 0x02:CRCLEN=OutBuf[1];
			; SOURCE LINE # 280
?C0028:
	MOV  	DPTR,#OutBuf+01H
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#010H
	LCALL	?C?XBPOFF
	MOV  	A,R7
	MOVX 	@DPTR,A
; 		            CRC=cal_crc(&OutBuf[0],CRCLEN);
			; SOURCE LINE # 281
	MOV  	DPTR,#010H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R5,A
	MOV  	R3,#01H
	MOV  	R2,#HIGH (OutBuf)
	MOV  	R1,#LOW (OutBuf)
	LCALL	_?cal_crc
	MOV  	DPTR,#015H
	LCALL	?C?XBPOFF
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
; 					j=(INT16U)OutBuf[1];
			; SOURCE LINE # 282
	MOV  	DPTR,#OutBuf+01H
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	R6,#00H
	MOV  	DPTR,#013H
	LCALL	?C?XBPOFF
	MOV  	A,R6
	MOVX 	@DPTR,A
	INC  	DPTR
	MOV  	A,R7
	MOVX 	@DPTR,A
; 					for(i=0;i<j;i++)
			; SOURCE LINE # 283
	MOV  	DPTR,#011H
	LCALL	?C?XBPOFF
	CLR  	A
	MOVX 	@DPTR,A
	INC  	DPTR
	MOVX 	@DPTR,A
?C0029:
	MOV  	DPTR,#013H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	MOV  	DPTR,#011H
	LCALL	?C?XBPOFF
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R3,A
	CLR  	C
	SUBB 	A,R7
	MOV  	A,R2
	SUBB 	A,R6
	JNC  	?C0030
; 					{CommPutChar(OutBuf[i],OS_TICKS_PER_SEC);}
			; SOURCE LINE # 284
	MOV  	R4,#00H
	MOV  	R5,#032H
	MOV  	A,#LOW (OutBuf)
	ADD  	A,R3
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (OutBuf)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	MOV  	R7,A
	LCALL	_?CommPutChar

⌨️ 快捷键说明

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