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

📄 sendpack.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 5 页
字号:
        MOV	R7,#0x0
??WirelessSendData_43:
        MOV	B,#0x3
        MOV	A,R7
        DIV	AB
        MOV	R7,A
//  183             SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
        MOV	DPTR,#(ThisNode + 14)
        MOVX	A,@DPTR
        ANL	A,#0x7
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,R7
        RLC	A
        RLC	A
        RLC	A
        ANL	A,#0xf8
        MOV	R2,A
        POP	A
        CFI CFA_SP SP+0
        ORL	A,R2
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x7
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  184 			
//  185 			SendData[8] = GroupChannelIdx;	
        MOV	DPTR,#GroupChannelIdx
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x8
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  186             SendData[9] = ThisNode.MEMBERNUM;
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x9
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  187             SendData[10] = MAX_GROUPMENBER_NUM;
        MOV	A,#0xf
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0xa
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  188             MACPutArray(SendData, 11);
        ; Setup parameters for call to function MACPutArray
        MOV	R1,#0xb
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        LCALL	MACPutArray
//  189             MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  190 
//  191             break;
//  192 
//  193 			
//  194 
//  195         case MSG_CAPTAIN_UNITEINVITE:
//  196 			//break;
//  197             SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
??WirelessSendData_13:
        MOV	DPTR,#(submacCurrentFrame + 4)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  198             SendData[2] = submacCurrentFrame.sub_source_addr.v[1];
        MOV	DPTR,#(submacCurrentFrame + 5)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  199             SendData[3] = macInfo.longAddr.v[0];
        MOV	DPTR,#(macInfo + 1)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  200             SendData[4] = macInfo.longAddr.v[1];
        MOV	DPTR,#(macInfo + 2)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x4
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  201 
//  202 			SendData[5] = 4+1;//len;
        MOV	A,#0x5
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x5
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  203             for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_44:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_45
        MOV	?V0 + 2,?V0 + 0
        MOV	?V0 + 3,#0x0
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	A,DPL
        ADD	A,?V0 + 2
        MOV	DPL,A
        MOV	A,DPH
        ADDC	A,?V0 + 3
        MOV	DPH,A
        MOVX	A,@DPTR
        ADD	A,R6
        MOV	R6,A
        INC	?V0 + 0
        SJMP	??WirelessSendData_44
//  204             SendData[6] = cs;//checksum;
??WirelessSendData_45:
        MOV	A,R6
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x6
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  205 
//  206             rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
        MOV	DPTR,#(ThisNode + 7)
        MOVX	A,@DPTR
        MOV	R7,A
        MOV	A,#0x32
        ADD	A,R7
        MOV	R7,A
        MOV	A,R7
        CLR	C
        SUBB	A,#-0x7f
        JC	??WirelessSendData_46
        MOV	R7,#0x0
??WirelessSendData_46:
        MOV	B,#0x3
        MOV	A,R7
        DIV	AB
        MOV	R7,A
//  207             SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
        MOV	DPTR,#(ThisNode + 14)
        MOVX	A,@DPTR
        ANL	A,#0x7
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,R7
        RLC	A
        RLC	A
        RLC	A
        ANL	A,#0xf8
        MOV	R2,A
        POP	A
        CFI CFA_SP SP+0
        ORL	A,R2
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x7
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  208 			SendData[8] = GroupChannelIdx;	
        MOV	DPTR,#GroupChannelIdx
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x8
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  209             SendData[9] = ThisNode.MEMBERNUM;
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x9
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  210             SendData[10] = MAX_GROUPMENBER_NUM;
        MOV	A,#0xf
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0xa
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  211             MACPutArray(SendData, 11);
        ; Setup parameters for call to function MACPutArray
        MOV	R1,#0xb
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        LCALL	MACPutArray
//  212             MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  213 
//  214             break;
//  215 
//  216         case MSG_CAPTAIN_SENDDATATOSENSOR:
//  217             SendData[1] = ThisNode.SensorID[0];
??WirelessSendData_4:
        MOV	DPTR,#(ThisNode + 8)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  218             SendData[2] = ThisNode.SensorID[1];
        MOV	DPTR,#(ThisNode + 9)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  219             SendData[3] = macInfo.longAddr.v[0];
        MOV	DPTR,#(macInfo + 1)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x3
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  220             SendData[4] = macInfo.longAddr.v[1];
        MOV	DPTR,#(macInfo + 2)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x4
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  221 
//  222 
//  223            #if defined(USE_TAGRSSI)
//  224                 //上报的数据中含有RSSI信息
//  225 				SendData[5] = 11+ThisNode.MEMBERNUM*3-7+1;//len;
        MOV	B,#0x3
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        MUL	AB
        ADD	A,#0x5
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x5
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  226 	            for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_47:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_48
        MOV	?V0 + 2,?V0 + 0
        MOV	?V0 + 3,#0x0
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	A,DPL
        ADD	A,?V0 + 2
        MOV	DPL,A
        MOV	A,DPH
        ADDC	A,?V0 + 3
        MOV	DPH,A
        MOVX	A,@DPTR
        ADD	A,R6
        MOV	R6,A
        INC	?V0 + 0
        SJMP	??WirelessSendData_47
//  227 	            SendData[6] = cs;//checksum;
??WirelessSendData_48:
        MOV	A,R6
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x6
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  228 	            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
        MOV	DPTR,#(ThisNode + 7)
        MOVX	A,@DPTR
        MOV	R7,A
        MOV	A,#0x32
        ADD	A,R7
        MOV	R7,A
        MOV	A,R7
        CLR	C
        SUBB	A,#-0x7f
        JC	??WirelessSendData_49
        MOV	R7,#0x0
??WirelessSendData_49:
        MOV	B,#0x3
        MOV	A,R7
        DIV	AB
        MOV	R7,A
//  229                 SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
        MOV	DPTR,#(ThisNode + 14)
        MOVX	A,@DPTR
        ANL	A,#0x7
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,R7
        RLC	A
        RLC	A
        RLC	A
        ANL	A,#0xf8
        MOV	R2,A
        POP	A
        CFI CFA_SP SP+0
        ORL	A,R2
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x7
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  230 	            SendData[8] = GroupChannelIdx;
        MOV	DPTR,#GroupChannelIdx
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x8
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  231 				SendData[9] = ThisNode.MEMBERNUM;
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x9
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  232 	            SendData[10] = MAX_GROUPMENBER_NUM;
        MOV	A,#0xf
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0xa
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  233 	            for(i=0;i<ThisNode.MEMBERNUM;i++ )
        MOV	?V0 + 0,#0x0
??WirelessSendData_50:
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,R2
        JC	$+5
        LJMP	??WirelessSendData_51
//  234 				{
//  235 				   SendData[11+i*3]  =ThisNode.MEMBERS[i].ID[0];
        MOV	R0,?V0 + 0
        MOV	R1,#0x0
        MOV	A,R0
        MOV	B,#0x8
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x8
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	A,R0
        ADD	A,#((ThisNode + 19) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((ThisNode + 19) >> 8) & 0xff)
        MOV	DPH,A
        MOVX	A,@DPTR
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	R0,?V0 + 0
        MOV	R1,#0x0
        MOV	A,R0
        MOV	B,#0x3
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x3
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	A,DPL
        ADD	A,R0
        MOV	R0,A
        MOV	A,DPH
        ADDC	A,R1
        MOV	R1,A
        MOV	A,#0xb
        ADD	A,R0
        MOV	DPL,A
        MOV	A,#0x0
        ADDC	A,R1

⌨️ 快捷键说明

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