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

📄 task.src

📁 基本STC4052写的一个小的OS, 完成了任务调度功能,及堆栈空间切换, 及中断处理
💻 SRC
字号:
; .\OBJ\task.SRC generated from: task.c
; COMPILER INVOKED BY:
;        C:\Keil3\C51\BIN\C51.EXE task.c NOPRINT SRC(.\OBJ\task.SRC)

$NOMOD51

NAME	TASK

P1M0	DATA	091H
P1M1	DATA	092H
P0	DATA	080H
P3M0	DATA	0B1H
P1	DATA	090H
P3M1	DATA	0B2H
P2	DATA	0A0H
P3	DATA	0B0H
T0	BIT	0B0H.4
AC	BIT	0D0H.6
T1	BIT	0B0H.5
ISP_TRIG	DATA	0E6H
EA	BIT	0A8H.7
SPCTL	DATA	085H
CF	BIT	0D8H.7
CH	DATA	0F9H
IE	DATA	0A8H
CL	DATA	0E9H
CCAP0H	DATA	0FAH
CCAP1H	DATA	0FBH
CR	BIT	0D8H.6
CCAP0L	DATA	0EAH
RD	BIT	0B0H.7
CCAP1L	DATA	0EBH
CCAPM0	DATA	0DAH
CCAPM1	DATA	0DBH
ES	BIT	0A8H.4
IP	DATA	0B8H
EPCA	BIT	0A8H.6
RI	BIT	098H.0
INT0	BIT	0B0H.2
CY	BIT	0D0H.7
TI	BIT	098H.1
INT1	BIT	0B0H.3
ISP_CMD	DATA	0E5H
PS	BIT	0B8H.4
SP	DATA	081H
CMOD	DATA	0D9H
CCON	DATA	0D8H
OV	BIT	0D0H.2
pinInt0	BIT	0B0H.3
WR	BIT	0B0H.6
ADC_CONTR	DATA	0C5H
PCON	DATA	087H
SBUF	DATA	099H
ISP_ADDRH	DATA	0E3H
SCON	DATA	098H
TCON	DATA	088H
TMOD	DATA	089H
ISP_ADDRL	DATA	0E4H
IE0	BIT	088H.1
IE1	BIT	088H.3
AUXR	DATA	08EH
B	DATA	0F0H
ADC_DATA	DATA	0C6H
ACC	DATA	0E0H
ET0	BIT	0A8H.1
ET1	BIT	0A8H.3
TF0	BIT	088H.5
TF1	BIT	088H.7
RB8	BIT	098H.2
TH0	DATA	08CH
EX0	BIT	0A8H.0
IT0	BIT	088H.0
TH1	DATA	08DH
TB8	BIT	098H.3
EX1	BIT	0A8H.2
IT1	BIT	088H.2
P	BIT	0D0H.0
SM0	BIT	098H.7
TL0	DATA	08AH
SM1	BIT	098H.6
TL1	DATA	08BH
SM2	BIT	098H.5
pinWakeup404	BIT	090H.7
PT0	BIT	0B8H.1
PT1	BIT	0B8H.3
RS0	BIT	0D0H.3
ISP_CONTR	DATA	0E7H
TR0	BIT	088H.4
RS1	BIT	0D0H.4
TR1	BIT	088H.6
PX0	BIT	0B8H.0
WDT_CONTR	DATA	0E1H
PX1	BIT	0B8H.2
IDLE_CLK	DATA	0C7H
DPH	DATA	083H
DPL	DATA	082H
SPSTAT	DATA	084H
IPH	DATA	0B7H
REN	BIT	098H.4
ISP_DATA	DATA	0E2H
RXD	BIT	0B0H.0
TXD	BIT	0B0H.1
pinPower404	BIT	090H.6
F0	BIT	0D0H.5
PCAPWM0	DATA	0F2H
PSW	DATA	0D0H
PCAPWM1	DATA	0F3H
CCF0	BIT	0D8H.0
CCF1	BIT	0D8H.1
SPDAT	DATA	086H
?PR?_?MCUInit?TASK   SEGMENT CODE 
?PR?_?Task_IR?TASK   SEGMENT CODE 
?PR?_?Task_Uart?TASK SEGMENT CODE 
?DT?TASK             SEGMENT DATA 
	EXTRN	CODE (_?SRL_SendPack)
	EXTRN	CODE (_?SRL_Init)
	EXTRN	CODE (_?OsWaitMsg)
	EXTRN	CODE (_?IR_Init)
	EXTRN	CODE (ISRAdrFun)
	EXTRN	DATA (gu8IRState)
	EXTRN	CODE (_?SRL_GetRevPack)
	EXTRN	CODE (_?IR_GetRevData)
	EXTRN	BIT (gbRxFinish)
	EXTRN	DATA (?C_IBP)
	PUBLIC	sys10ms
	PUBLIC	sysTimeTick
	PUBLIC	_?Task_Uart
	PUBLIC	_?Task_IR
	PUBLIC	_?MCUInit

	RSEG  ?DT?TASK
    sysTimeTick:   DS   2
        sys10ms:   DS   1
; //---------------------------------------------------------------
; //      
; //       Copyright (c) 2006-2007 E-compass electronic Co.,Ltd.               
; //       All Right Reserved.                                     
; //                                                               
; //       $Author    walnutcy
; //       $Email     walnutcy@gmail.com              
; //       $Version   v1.0  
; //       $FileName                                       
; //       $Since                                            
; //       $Log                                                    
; //                                                               
; //       DESCRIPTION   
; //
; //		 History:         
; //		 <author>          <time>     <version >    <desc> 
; //---------------------------------------------------------------
; 
; //#include "task.h"
; #include "includes.h"
; 
; 
; 
; 
; volatile U16 sysTimeTick; // system time tick : 1ms
; U8 sys10ms;
; 
; void ISRAdrFun (void);
; 
; 
; void MCUInit() REENTRANT

	RSEG  ?PR?_?MCUInit?TASK
_?MCUInit:
	USING	0
			; SOURCE LINE # 31
; {    
; 	PCON &= 0xEF;
			; SOURCE LINE # 33
	ANL  	PCON,#0EFH
;     IT1 = 1;
			; SOURCE LINE # 34
	SETB 	IT1
; 	if (0==IT1)
			; SOURCE LINE # 35
	JB   	IT1,?C0001
; 	{	ISRAdrFun();
			; SOURCE LINE # 36
	LCALL	ISRAdrFun
; 	}	
			; SOURCE LINE # 37
?C0001:
;     SRL_Init();
			; SOURCE LINE # 38
	LCALL	_?SRL_Init
;     IR_Init();
			; SOURCE LINE # 39
	LCALL	_?IR_Init
; 	WDT_CONTR = 0x3C;
			; SOURCE LINE # 40
	MOV  	WDT_CONTR,#03CH
;     IP  = 0x51;//0:PCA:ADC:S:T1:X1:T0:X0
			; SOURCE LINE # 41
	MOV  	IP,#051H
;     IPH = 0x10;
			; SOURCE LINE # 42
	MOV  	IPH,#010H
;     IE = _INTERRUPT_ALL;
			; SOURCE LINE # 43
	MOV  	IE,#0D2H
; 	/////////////////
; 	TMOD |= 0x01;// timer 0, 16-bit mode 1, 
			; SOURCE LINE # 45
	ORL  	TMOD,#01H
;   	TCON |= 0x05; // TR0 = 0; IT1 = 1;
			; SOURCE LINE # 46
	ORL  	TCON,#05H
; 	sys10ms = 0;
			; SOURCE LINE # 47
	CLR  	A
	MOV  	sys10ms,A
;     return;
; }
			; SOURCE LINE # 49
?C0002:
	RET  	
; END OF _?MCUInit

; 
; 
; void Task_IR(void) REENTRANT

	RSEG  ?PR?_?Task_IR?TASK
_?Task_IR:
	USING	0
			; SOURCE LINE # 52
	MOV  	A,?C_IBP
	ADD  	A,#0FCH
	MOV  	?C_IBP,A
?C0003:
; {
; 	U8 buf[4];
; 	while (1)
			; SOURCE LINE # 55
; 	{
			; SOURCE LINE # 56
; 	    if (IR_GetRevState())
			; SOURCE LINE # 57
	MOV  	A,gu8IRState
	JZ   	?C0005
; 	    {
			; SOURCE LINE # 58
; 	        if (IR_GetRevData(buf))
			; SOURCE LINE # 59
	MOV  	R3,#00H
	MOV  	R1,?C_IBP
	MOV  	R2,#00H
	LCALL	_?IR_GetRevData
	MOV  	A,R7
	JZ   	?C0005
; 			{ 
			; SOURCE LINE # 60
; 			    SRL_SendPack(IR_EVENT,buf,3);
			; SOURCE LINE # 61
	MOV  	R5,?C_IBP
	MOV  	R7,#01H
	MOV  	R3,#03H
	LCALL	_?SRL_SendPack
; 	        }
			; SOURCE LINE # 62
; 	    }
			; SOURCE LINE # 63
?C0005:
; 	    OsWaitMsg();
			; SOURCE LINE # 64
	LCALL	_?OsWaitMsg
; 	}
			; SOURCE LINE # 65
	SJMP 	?C0003
; END OF _?Task_IR

; }
; 
; void Task_Uart(void)	REENTRANT

	RSEG  ?PR?_?Task_Uart?TASK
_?Task_Uart:
	USING	0
			; SOURCE LINE # 68
	MOV  	A,?C_IBP
	ADD  	A,#0FAH
	MOV  	?C_IBP,A
?C0008:
; {
; 	U8 buf[4];
;     U8 len;
;     U8 tmp ;
; 	while (1)
			; SOURCE LINE # 73
; 	{
			; SOURCE LINE # 74
; 		tmp = 0;
			; SOURCE LINE # 75
	MOV  	A,?C_IBP
	ADD  	A,#05H
	MOV  	R0,A
	CLR  	A
	MOV  	@R0,A
; 		if (SRL_GetRevStatus()) 
			; SOURCE LINE # 76
	JNB  	gbRxFinish,?C0010
; 		{
			; SOURCE LINE # 77
; 		    len = SRL_GetRevPack(&tmp,buf);
			; SOURCE LINE # 78
	MOV  	R5,?C_IBP
	MOV  	R3,A
	MOV  	A,?C_IBP
	ADD  	A,#05H
	MOV  	R1,A
	MOV  	R2,#00H
	LCALL	_?SRL_GetRevPack
	MOV  	A,?C_IBP
	ADD  	A,#04H
	MOV  	R0,A
	MOV  	@R0,AR7
; 			if (0x00==tmp)
			; SOURCE LINE # 79
	MOV  	A,?C_IBP
	ADD  	A,#05H
	MOV  	R0,A
	MOV  	A,@R0
	MOV  	R7,A
	JZ   	?C0012
; 			{	return;   
			; SOURCE LINE # 80
; 			}
			; SOURCE LINE # 81
?C0011:
; 			switch (tmp)
			; SOURCE LINE # 82
	MOV  	A,R7
	ADD  	A,#0B0H
	JNZ  	?C0010
; 			{
			; SOURCE LINE # 83
; 			case VERSION_EVENT:  //0x50
			; SOURCE LINE # 84
?C0014:
; 				*buf = SOFT_VERSION;
			; SOURCE LINE # 85
	MOV  	R0,?C_IBP
	MOV  	@R0,#064H
; 				SRL_SendPack(VERSION_EVENT,buf,1);
			; SOURCE LINE # 86
	MOV  	R5,?C_IBP
	MOV  	R7,#050H
	MOV  	R3,#01H
	LCALL	_?SRL_SendPack
; 				break;
			; SOURCE LINE # 87
; 	        default:
			; SOURCE LINE # 88
; 	               break;
			; SOURCE LINE # 89
; 			}
			; SOURCE LINE # 90
; 		}
			; SOURCE LINE # 91
?C0010:
; 		OsWaitMsg();
			; SOURCE LINE # 92
	LCALL	_?OsWaitMsg
; 	}
			; SOURCE LINE # 93
	SJMP 	?C0008
; }
			; SOURCE LINE # 94
?C0012:
	MOV  	A,?C_IBP
	ADD  	A,#06H
	MOV  	?C_IBP,A
	RET  	
; END OF _?Task_Uart

	END

⌨️ 快捷键说明

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