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

📄 sendpack.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 5 页
字号:
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  236 				   SendData[11+i*3+1]=ThisNode.MEMBERS[i].ID[1];	
        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 + 20) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((ThisNode + 20) >> 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,#0xc
        ADD	A,R0
        MOV	DPL,A
        MOV	A,#0x0
        ADDC	A,R1
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  237 				   SendData[11+i*3+2]=ThisNode.MEMBERS[i].RSSI;	
        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 + 22) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((ThisNode + 22) >> 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,#0xd
        ADD	A,R0
        MOV	DPL,A
        MOV	A,#0x0
        ADDC	A,R1
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  238 				}			
        INC	?V0 + 0
        LJMP	??WirelessSendData_50
//  239 	            MACPutArray(SendData, 11+ThisNode.MEMBERNUM*3);
??WirelessSendData_51:
        ; Setup parameters for call to function MACPutArray
        MOV	B,#0x3
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        MUL	AB
        ADD	A,#0xb
        MOV	R1,A
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        LCALL	MACPutArray
//  240 	            MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  241             #else
//  242 	             //上报的数据中不含RSSI信息
//  243 				SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
//  244 	            for(i=0;i<=5;i++)cs+=SendData[i];
//  245 	            SendData[6] = cs;//checksum;
//  246 	            rssi=ThisNode.RSSI;	rssi+=50; if(rssi>128) rssi=0; rssi/=3;				
//  247                 SendData[7] = ((rssi <<3)&0xf8)|(ThisNode.RecSenMsgTimeVal&0x07);
//  248 	            SendData[8] = GroupChannelIdx;
//  249 				SendData[9] = ThisNode.MEMBERNUM;
//  250 	            SendData[10] = MAX_GROUPMENBER_NUM;
//  251 	            for(i=0;i<ThisNode.MEMBERNUM;i++)
//  252 				{
//  253 				   SendData[11+i*2]  =ThisNode.MEMBERS[i].ID[0];
//  254 				   SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];	
//  255 				}			
//  256 	            MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
//  257 	            MACFlush();
//  258 			#endif
//  259 			
//  260 
//  261             break;		
//  262         case MSG_CAPTAIN_SENDMEMBERDATATOTAG:
//  263             SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
??WirelessSendData_14:
        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
//  264             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
//  265             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
//  266             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
//  267 
//  268 	         //上报的数据中不含RSSI信息
//  269 			SendData[5] = 11+ThisNode.MEMBERNUM*2-7+1;//len;
        MOV	B,#0x2
        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
//  270 	        for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_52:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_53
        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_52
//  271 	        SendData[6] = cs;//checksum;
??WirelessSendData_53:
        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
//  272 	        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_54
        MOV	R7,#0x0
??WirelessSendData_54:
        MOV	B,#0x3
        MOV	A,R7
        DIV	AB
        MOV	R7,A
//  273             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
//  274 	        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
//  275 			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
//  276 	        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
//  277 	        for(i=0;i<ThisNode.MEMBERNUM;i++)
        MOV	?V0 + 0,#0x0
??WirelessSendData_55:
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        MOV	R2,A
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,R2
        JC	$+5
        LJMP	??WirelessSendData_56
//  278 			{
//  279 			   SendData[11+i*2]  =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,#0x2
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x2
        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
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  280 			   SendData[11+i*2+1]=ThisNode.MEMBERS[i].ID[1];	
        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 + 20) & 0xff)
        MOV	DPL,A
        MOV	A,R1
        ADDC	A,#(((ThisNode + 20) >> 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,#0x2
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x0
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x2
        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,#0xc
        ADD	A,R0
        MOV	DPL,A
        MOV	A,#0x0
        ADDC	A,R1
        MOV	DPH,A
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  281 			}			
        INC	?V0 + 0
        LJMP	??WirelessSendData_55
//  282 	        MACPutArray(SendData, 11+ThisNode.MEMBERNUM*2);
??WirelessSendData_56:
        ; Setup parameters for call to function MACPutArray
        MOV	B,#0x2
        MOV	DPTR,#(ThisNode + 3)
        MOVX	A,@DPTR
        MUL	AB
        ADD	A,#0xb
        MOV	R1,A
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        LCALL	MACPutArray
//  283 	        MACFlush();

⌨️ 快捷键说明

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