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

📄 sendpack.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 5 页
字号:
//  115             MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  116 
//  117             break;
//  118 
//  119         case MSG_TAG_CALLINGACK:
//  120             SendData[1] = 0xff;
??WirelessSendData_19:
        MOV	A,#-0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  121             SendData[2] = 0xff;
        MOV	A,#-0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  122             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
//  123             SendData[4] = macInfo.longAddr.v[0];
        MOV	DPTR,#(macInfo + 1)
        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
//  124 			
//  125 			SendData[5] = 0+1;//len;
        MOV	A,#0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x5
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  126             for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_34:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_35
        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_34
//  127             SendData[6] = cs;//checksum;
??WirelessSendData_35:
        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
//  128             MACPutArray(SendData, 8);
        ; Setup parameters for call to function MACPutArray
        MOV	R1,#0x8
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        LCALL	MACPutArray
//  129             MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  130 
//  131             break;
//  132 
//  133         case MSG_TAG_RECVMEMBER:
//  134             SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
??WirelessSendData_20:
        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
//  135             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
//  136             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
//  137             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
//  138 			
//  139 			SendData[5] = 0+1;//len;
        MOV	A,#0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x5
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  140             for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_36:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_37
        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_36
//  141             SendData[6] = cs;//checksum;
??WirelessSendData_37:
        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
//  142 
//  143             MACPutArray(SendData, 7);
        ; Setup parameters for call to function MACPutArray
        MOV	R1,#0x7
        MOV	DPL,?XSP + 0
        MOV	DPH,?XSP + 1
        MOV	R2,DPL
        MOV	R3,DPH
        LCALL	MACPutArray
//  144             MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  145 
//  146             break;
//  147 			
//  148         case MSG_CAPTAIN_IAMCAPTAIN:
//  149 			//break;
//  150             SendData[1] = 0xff;
??WirelessSendData_3:
        MOV	A,#-0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x1
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  151             SendData[2] = 0xff;
        MOV	A,#-0x1
        PUSH	A
        CFI CFA_SP SP+-1
        MOV	A,#0x2
        LCALL	?XSTACK_DISP0_8
        POP	A
        CFI CFA_SP SP+0
        MOVX	@DPTR,A
//  152             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
//  153             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
//  154 
//  155 			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
//  156             for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_38:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_39
        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_38
//  157             SendData[6] = cs;//checksum;
??WirelessSendData_39:
        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
//  158 
//  159 		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_40
        MOV	R7,#0x0
??WirelessSendData_40:
        MOV	B,#0x3
        MOV	A,R7
        DIV	AB
        MOV	R7,A
//  160             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
//  161 			
//  162 			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
//  163             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
//  164             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
//  165             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
//  166             MACFlush();
        ; Setup parameters for call to function MACFlush
        LCALL	MACFlush
        LJMP	??WirelessSendData_27
//  167 
//  168             break;
//  169 
//  170 
//  171         case MSG_CAPTAIN_LEAVEACCEPT:
//  172 			//break;
//  173             SendData[1] = submacCurrentFrame.sub_source_addr.v[0];
??WirelessSendData_16:
        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
//  174             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
//  175             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
//  176             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
//  177 
//  178 			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
//  179             for(i=0;i<=5;i++)cs+=SendData[i];
        MOV	?V0 + 0,#0x0
??WirelessSendData_41:
        MOV	A,?V0 + 0
        CLR	C
        SUBB	A,#0x6
        JNC	??WirelessSendData_42
        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_41
//  180             SendData[6] = cs;//checksum;
??WirelessSendData_42:
        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
//  181 
//  182 			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_43

⌨️ 快捷键说明

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