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

📄 sensorcomm.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 2 页
字号:
        MOV	A,R0
        ADD	A,#(RepDatToSensorRec & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#((RepDatToSensorRec >> 8) & 0xff)
        MOV	DPH,A
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        XRL	A,R2
        JNZ	??UpdateRepDatToSensorRec_2
        MOV	A,R6
        MOV	R0,A
        MOV	A,R7
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 1) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
        MOV	DPH,A
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        XRL	A,R2
        JNZ	??UpdateRepDatToSensorRec_2
//   33 	    {
//   34 		    RepDatToSensorRec[i].lastRepTime=TickGet();			
        ; Setup parameters for call to function halGetMACTimer
        LCALL	halGetMACTimer
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	?V0 + 2,R4
        MOV	?V0 + 3,R5
        MOV	A,R6
        MOV	R0,A
        MOV	A,R7
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 2) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
        MOV	DPH,A
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_TO_X
//   35 		    return ;
        LJMP	??UpdateRepDatToSensorRec_3
//   36 		}
//   37 		
//   38 		if(RepDatToSensorRec[i].lastRepTime>maxTime)
??UpdateRepDatToSensorRec_2:
        MOV	A,R6
        MOV	R0,A
        MOV	A,R7
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 2) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
        MOV	DPH,A
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_X
        MOV	R0,#?V0 + 0
        MOV	R1,#?V0 + 4
        LCALL	?UL_GT
        JNC	??UpdateRepDatToSensorRec_4
//   39 			{
//   40 			    maxTime=RepDatToSensorRec[i].lastRepTime;
        MOV	A,R6
        MOV	R0,A
        MOV	A,R7
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 2) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
        MOV	DPH,A
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_X
        MOV	?V0 + 4,?V0 + 0
        MOV	?V0 + 5,?V0 + 1
        MOV	?V0 + 6,?V0 + 2
        MOV	?V0 + 7,?V0 + 3
//   41 				iTmp=i;
        MOV	A,R6
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	@DPTR,A
//   42 			}
//   43 	}
??UpdateRepDatToSensorRec_4:
        MOV	A,R6
        ADD	A,#0x1
        MOV	R6,A
        MOV	A,R7
        ADDC	A,#0x0
        MOV	R7,A
        LJMP	??UpdateRepDatToSensorRec_0
//   44 
//   45 	RepDatToSensorRec[iTmp].SensorId[0]=lowId;
??UpdateRepDatToSensorRec_1:
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        MOV	R1,#0x0
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#(RepDatToSensorRec & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#((RepDatToSensorRec >> 8) & 0xff)
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//   46 	RepDatToSensorRec[iTmp].SensorId[1]=hiId;	
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        MOV	R1,#0x0
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 1) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//   47     RepDatToSensorRec[iTmp].lastRepTime=TickGet();
        ; Setup parameters for call to function halGetMACTimer
        LCALL	halGetMACTimer
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	?V0 + 2,R4
        MOV	?V0 + 3,R5
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOVX	A,@DPTR
        MOV	R0,A
        MOV	R1,#0x0
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 2) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
        MOV	DPH,A
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_TO_X
//   48 	
//   49 }
??UpdateRepDatToSensorRec_3:
        MOV	A,#0x3
        LCALL	?DEALLOC_XSTACK8
        CFI CFA_XSP16 add(XSP16, 15)
        MOV	R7,#0x8
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock1

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   50 void ResetRepDatToSensorRec(void)
ResetRepDatToSensorRec:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function ResetRepDatToSensorRec
//   51 {
        MOV	A,#-0xb
        LCALL	?FUNC_ENTER_XDATA
        CFI DPH0 load(1, XDATA, add(CFA_XSP16, literal(-1)))
        CFI DPL0 load(1, XDATA, add(CFA_XSP16, literal(-2)))
        CFI ?RET_HIGH load(1, XDATA, add(CFA_XSP16, literal(-3)))
        CFI ?RET_LOW load(1, XDATA, add(CFA_XSP16, literal(-4)))
        CFI R7 load(1, XDATA, add(CFA_XSP16, literal(-5)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 11)
        ; Saved register size: 11
        ; Auto size: 0
//   52     int i;
//   53 	for(i=0;i<MAXREPRECNUM;i++)
        MOV	R2,#0x0
        MOV	R3,#0x0
??ResetRepDatToSensorRec_0:
        CLR	C
        MOV	A,R2
        SUBB	A,#0x4
        MOV	A,R3
        SUBB	A,#0x0
        MOV	C,0xD0 /* PSW */.2
        XRL	A,PSW
        RLC	A
        JC	$+5
        LJMP	??ResetRepDatToSensorRec_1
//   54 	{
//   55 		RepDatToSensorRec[i].SensorId[0]=0xff;
        MOV	A,#-0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,R2
        MOV	R0,A
        MOV	A,R3
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R4,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R4
        MOV	R4,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R4
        MOV	R1,A
        MOV	A,R0
        ADD	A,#(RepDatToSensorRec & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#((RepDatToSensorRec >> 8) & 0xff)
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//   56 		RepDatToSensorRec[i].SensorId[1]=0xff;
        MOV	A,#-0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,R2
        MOV	R0,A
        MOV	A,R3
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R4,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R4
        MOV	R4,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R4
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 1) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 1) >> 8) & 0xff)
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//   57 		RepDatToSensorRec[i].lastRepTime=0;
        MOV	DPTR,#__Constant_0
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_X
        MOV	A,R2
        MOV	R0,A
        MOV	A,R3
        MOV	R1,A
        MOV	A,R0
        MOV	B,#0x6
        MUL	AB
        XCH	A,R0
        MOV	R4,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R4
        MOV	R4,A
        MOV	B,#0x6
        MOV	A,R1
        MUL	AB
        ADD	A,R4
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((RepDatToSensorRec + 2) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((RepDatToSensorRec + 2) >> 8) & 0xff)
        MOV	DPH,A
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_TO_X
//   58 	}
        MOV	A,R2
        ADD	A,#0x1
        MOV	R2,A
        MOV	A,R3
        ADDC	A,#0x0
        MOV	R3,A
        LJMP	??ResetRepDatToSensorRec_0
//   59 }
??ResetRepDatToSensorRec_1:
        MOV	R7,#0x4
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock2

        RSEG XDATA_I:XDATA:NOROOT(0)
__Constant_0:
        DS 4
        REQUIRE `?<Initializer for __Constant_0>`
        REQUIRE __INIT_XDATA_I

        RSEG XDATA_ID:CODE:NOROOT(0)
`?<Initializer for __Constant_0>`:
        DD 0

        END
//   60 
//   61 ///////////////////////////////////////////////////////////////////////////
//   62 
//   63 
// 
// 894 bytes in segment NEAR_CODE
//   4 bytes in segment XDATA_I
//   4 bytes in segment XDATA_ID
// 
// 894 bytes of CODE  memory (+ 4 bytes shared)
//   0 bytes of XDATA memory (+ 4 bytes shared)
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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