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

📄 wllocate.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 3 页
字号:
        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 V5 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 13)
        ; Saved register size: 13
        ; Auto size: 0
//  129 
//  130     BYTE TxPower;
//  131     BYTE rst;
//  132     unsigned int xyz=0;
        MOV	R6,#0x0
        MOV	R7,#0x0
//  133     
//  134     ConsolePutROMString("Set Channel...\r\n");	  //串口输出调试信息
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_4 & 0xff)
        MOV	R3,#((??xxxxromstr_4 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  135     NormalChannelIdx=COMMCHANNEL;	
        MOV	A,#0x1a
        MOV	DPTR,#NormalChannelIdx
        MOVX	@DPTR,A
//  136     ChangeToNormalChannel();                      //切换信道到公用信道
        ; Setup parameters for call to function ChangeToNormalChannel
        LCALL	ChangeToNormalChannel
//  137 
//  138 
//  139     #if defined(IAMTAG)                           //设置发射功率,标签与节点的功率设置不同
//  140         TxPower =TAG_TXPOWER;
        MOV	?V0 + 4,#0x7
//  141     #else
//  142         TxPower =SENSOR_TXPOWER;
//  143 	#endif
//  144 	
//  145     ConsolePutROMString("设置发射功率(min:0~max:7):");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_5 & 0xff)
        MOV	R3,#((??xxxxromstr_5 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  146     ConsolePutInitData(0,TxPower);
        ; Setup parameters for call to function ConsolePutInitData
        MOV	A,?V0 + 4
        MOV	?V0 + 0,A
        MOV	R4,?V0 + 0
        MOV	R5,#0x0
        MOV	R2,#0x0
        MOV	R3,#0x0
        LCALL	ConsolePutInitData
//  147 	
//  148     PHYSetTxPower(TxPower);//设置发射功率//0~7;0-min   ;  7-max
        ; Setup parameters for call to function halSetTxPower
        MOV	R1,?V0 + 4
        LCALL	halSetTxPower
//  149 
//  150     ThisNode.NODEID[0] = macInfo.longAddr.v[0];   //节点ID号
        MOV	DPTR,#(macInfo + 1)
        MOVX	A,@DPTR
        MOV	DPTR,#ThisNode
        MOVX	@DPTR,A
//  151     ThisNode.NODEID[1] = macInfo.longAddr.v[1];
        MOV	DPTR,#(macInfo + 2)
        MOVX	A,@DPTR
        MOV	DPTR,#(ThisNode + 1)
        MOVX	@DPTR,A
//  152 	
//  153     srand(ThisNode.NODEID[0]*256+ThisNode.NODEID[1]);//
        ; Setup parameters for call to function srand
        MOV	DPTR,#ThisNode
        MOVX	A,@DPTR
        MOV	R0,A
        MOV	R1,#0x0
        MOV	A,R0
        MOV	B,#0x0
        MUL	AB
        XCH	A,R0
        MOV	R2,B
        MOV	B,#0x1
        MUL	AB
        ADD	A,R2
        MOV	R2,A
        MOV	B,#0x0
        MOV	A,R1
        MUL	AB
        ADD	A,R2
        MOV	R1,A
        MOV	DPTR,#(ThisNode + 1)
        MOVX	A,@DPTR
        MOV	R3,#0x0
        ADD	A,R0
        MOV	R2,A
        MOV	A,R3
        ADDC	A,R1
        MOV	R3,A
        LCALL	srand
//  154 	
//  155     ConsolePutROMString("本节点ID号:");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_6 & 0xff)
        MOV	R3,#((??xxxxromstr_6 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  156     ConsolePutInitData(ThisNode.NODEID[0], ThisNode.NODEID[1]);
        ; Setup parameters for call to function ConsolePutInitData
        MOV	DPTR,#(ThisNode + 1)
        MOVX	A,@DPTR
        MOV	?V0 + 0,A
        MOV	R4,?V0 + 0
        MOV	R5,#0x0
        MOV	DPTR,#ThisNode
        MOVX	A,@DPTR
        MOV	?V0 + 0,A
        MOV	R2,?V0 + 0
        MOV	R3,#0x0
        LCALL	ConsolePutInitData
//  157     ConsolePutROMString("标签启动...\r\n");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_7 & 0xff)
        MOV	R3,#((??xxxxromstr_7 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  158     CAPTAINLastSleepTime=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	DPTR,#CAPTAINLastSleepTime
        MOV	A,?V0 + 0
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 1
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 2
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 3
        MOVX	@DPTR,A
//  159     SENSORLastReportTime=0;
        MOV	DPTR,#__Constant_0
        MOV	R0,#?V0 + 0
        LCALL	?L_MOV_X
        MOV	DPTR,#SENSORLastReportTime
        MOV	A,?V0 + 0
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 1
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 2
        MOVX	@DPTR,A
        INC	DPTR
        MOV	A,?V0 + 3
        MOVX	@DPTR,A
//  160 
//  161 
//  162    ConsolePutROMString("开始启动\r\n");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_8 & 0xff)
        MOV	R3,#((??xxxxromstr_8 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  163 
//  164    rst=(SLEEP>>0x03)&0x03;
        MOV	A,0xbe
        RRC	A
        RRC	A
        RRC	A
        ANL	A,#0x1f
        ANL	A,#0x3
        MOV	?V0 + 5,A
//  165 	
//  166    #if defined(IAMTAG)
//  167 
//  168 	  if(rst==0x02)//看门狗复位
        MOV	A,#0x2
        XRL	A,?V0 + 5
        JNZ	??MainLoop_0
//  169 	  {     ConsolePutROMString("watch dog reset\r\n");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_9 & 0xff)
        MOV	R3,#((??xxxxromstr_9 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  170 	    	WirelesDebugOut(DEBUG_WATCHDOG_RESET);
        ; Setup parameters for call to function WirelesDebugOut
        MOV	R1,#0x1
        LCALL	WirelesDebugOut
//  171 			WatchDogReset=0;
        MOV	A,#0x0
        MOV	DPTR,#WatchDogReset
        MOVX	@DPTR,A
//  172 	  }
//  173 	  if(rst==0x00)//看门狗复位
??MainLoop_0:
        MOV	A,?V0 + 5
        JNZ	??MainLoop_1
//  174 	  {     ConsolePutROMString("Power-on reset\r\n");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_10 & 0xff)
        MOV	R3,#((??xxxxromstr_10 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  175 
//  176 			WatchDogReset=0;
        MOV	A,#0x0
        MOV	DPTR,#WatchDogReset
        MOVX	@DPTR,A
//  177 	  }	
//  178 	  if(rst==0x01)//看门狗复位
??MainLoop_1:
        MOV	A,#0x1
        XRL	A,?V0 + 5
        JNZ	??MainLoop_2
//  179 	  {     ConsolePutROMString("External reset\r\n");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_11 & 0xff)
        MOV	R3,#((??xxxxromstr_11 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  180 	    	
//  181 			WatchDogReset=0;
        MOV	A,#0x0
        MOV	DPTR,#WatchDogReset
        MOVX	@DPTR,A
//  182 	  }	
//  183 	
//  184    #endif
//  185 
//  186    //WDT_SET_TIMEOUT_PERIOD(M_SEC_250);   //设置看门狗时间值
//  187    //WDT_ENABLE();  //使能看门狗
//  188 
//  189 
//  190     ConsolePutROMString("进入主程序...\r\n");    	
??MainLoop_2:
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_12 & 0xff)
        MOV	R3,#((??xxxxromstr_12 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  191     mainLoop=1;
        MOV	A,#0x1
        MOV	DPTR,#mainLoop
        MOVX	@DPTR,A
//  192     while (1)
//  193     {
//  194 
//  195 
//  196         //WDT_RESET();          //看门狗喂狗
//  197         //SleepSomeTime(100);   //休眠
//  198         macFSM();               //mac层通讯处理
??MainLoop_3:
        ; Setup parameters for call to function macFSM
        LCALL	macFSM
//  199 
//  200 
//  201         if(submacCurrentFrame.sub_type.Val!=0xff)   //若收到数据
        MOV	DPTR,#submacCurrentFrame
        MOVX	A,@DPTR
        XRL	A,#0xff
        JZ	??MainLoop_4
//  202         {
//  203            P0_1=~P0_1;          //改变绿灯状态
        MOV	C,0x80.1
        CPL	C
        MOV	0x80.1,C
//  204         }
//  205 
//  206        		
//  207         if(xyz==0)              //定时时间间隔到
??MainLoop_4:
        MOV	A,#0x0
        XRL	A,R6
        JNZ	??MainLoop_5
        MOV	A,#0x0
        XRL	A,R7
??MainLoop_5:
        JNZ	??MainLoop_6
//  208      	{    	    		
//  209       		P0_0=~P0_0;     //改变红灯状态
        MOV	C,0x80.0
        CPL	C
        MOV	0x80.0,C
//  210                 WirelessSendData(MSG_TAG_ISANYCAPTAINHERE);   //无线广播发送数据
        ; Setup parameters for call to function WirelessSendData
        MOV	R1,#0x20
        LCALL	WirelessSendData
//  211 
//  212        	}
//  213        xyz++;                   
??MainLoop_6:
        MOV	A,R6
        ADD	A,#0x1
        MOV	R6,A
        MOV	A,R7
        ADDC	A,#0x0
        MOV	R7,A
//  214        if(xyz>8000)xyz=0;       //记时
        CLR	C
        MOV	A,R6
        SUBB	A,#0x41
        MOV	A,R7
        SUBB	A,#0x1f
        JC	??MainLoop_3
        MOV	R6,#0x0
        MOV	R7,#0x0
        SJMP	??MainLoop_3
        CFI EndBlock cfiBlock6
//  215         continue;
//  216     }
//  217 }					

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_4:
        DB "Set Channel...\015\012"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_5:
        DB "\311\350\326\303\267\242\311\344\271\246\302\312(min:0~max:7):"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_6:
        DB "\261\276\275\332\265\343ID\272\305:"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_7:
        DB "\261\352\307\251\306\364\266\257...\015\012"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_8:
        DB "\277\252\312\274\306\364\266\257\015\012"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_9:
        DB "watch dog reset\015\012"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_10:
        DB "Power-on reset\015\012"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_11:
        DB "External reset\015\012"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_12:
        DB "\275\370\310\353\326\367\263\314\320\362...\015\012"
//  218 
//  219 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  220 void ResetsubmacCurrentFrame(void)
ResetsubmacCurrentFrame:
        CFI Block cfiBlock7 Using cfiCommon0
        CFI Function ResetsubmacCurrentFrame
//  221 {
        PUSH	DPL
        CFI DPL0 Frame(CFA_SP, 3)
        CFI CFA_SP SP+-3
        PUSH	DPH
        CFI DPH0 Frame(CFA_SP, 4)
        CFI CFA_SP SP+-4
        ; Saved register size: 2
        ; Auto size: 0
//  222      submacCurrentFrame.sub_type.Val=0xff;
        MOV	A,#-0x1
        MOV	DPTR,#submacCurrentFrame
        MOVX	@DPTR,A
//  223 }
        POP	DPH
        CFI DPH0 SameValue
        CFI CFA_SP SP+-3
        POP	DPL
        CFI DPL0 SameValue
        CFI CFA_SP SP+-2
        RET
        CFI EndBlock cfiBlock7

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

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

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

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

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

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

        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

        ASEGN SFR_AN:DATA:NOROOT,080H
// union <unnamed> volatile __sfr _A_P0
_A_P0:
        DS 1

        END
//  224 
// 
// 197 bytes in segment CODE_C
// 660 bytes in segment NEAR_CODE
//   3 bytes in segment SFR_AN
//  16 bytes in segment XDATA_I
//  16 bytes in segment XDATA_ID
// 238 bytes in segment XDATA_Z
// 
// 857 bytes of CODE  memory (+ 16 bytes shared)
//   0 bytes of DATA  memory (+  3 bytes shared)
// 238 bytes of XDATA memory (+ 16 bytes shared)
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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