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

📄 wllocate.s51

📁 无线单片机cc2430简化协议的无线收发程序
💻 S51
📖 第 1 页 / 共 3 页
字号:
        MOV	A,#-0x8
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 0
        MOV	A,R1
        MOV	R6,A
//   74 	ISRFOFF;                    //晶振关闭
        MOV	0xe1,#-0x1b
//   75 	PHYSetChannel(idx);         //切换信道物理层函数
        ; Setup parameters for call to function macSetChannel
        MOV	A,R6
        MOV	R1,A
        LCALL	macSetChannel
//   76 	ISRXON;                     //晶振打开
        MOV	0xe1,#-0x1e
//   77 	ChannelIdx=idx;
        MOV	A,R6
        MOV	DPTR,#ChannelIdx
        MOVX	@DPTR,A
//   78 }
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock0
//   79 
//   80 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   81 void ChangeToNormalChannel(void)     //切换到公用信道函数
ChangeToNormalChannel:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function ChangeToNormalChannel
//   82 {
        FUNCALL ChangeToNormalChannel, conPrintROMString_func
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ChangeToNormalChannel, ConsolePutInitData
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ChangeToNormalChannel, _changetochannel
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        MOV	A,#-0x8
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 0
//   83     ConsolePutROMString("切换到公用信道:");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr & 0xff)
        MOV	R3,#((??xxxxromstr >> 8) & 0xff)
        LCALL	conPrintROMString_func
//   84     ConsolePutInitData(0,NormalChannelIdx);   //输出调试信息
        ; Setup parameters for call to function ConsolePutInitData
        MOV	DPTR,#NormalChannelIdx
        MOVX	A,@DPTR
        MOV	?V0 + 0,A
        MOV	R4,?V0 + 0
        MOV	R5,#0x0
        MOV	R2,#0x0
        MOV	R3,#0x0
        LCALL	ConsolePutInitData
//   85    _changetochannel(NormalChannelIdx);        //切换信道
        ; Setup parameters for call to function _changetochannel
        MOV	DPTR,#NormalChannelIdx
        MOVX	A,@DPTR
        MOV	R1,A
        LCALL	_changetochannel
//   86 }
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock1

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr:
        DB "\307\320\273\273\265\275\271\253\323\303\320\305\265\300:"
//   87 
//   88 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   89 void ChangeToChannel(BYTE chlidx)    //切换到指定信道函数
ChangeToChannel:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function ChangeToChannel
//   90 {
        FUNCALL ChangeToChannel, conPrintROMString_func
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ChangeToChannel, ConsolePutInitData
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL ChangeToChannel, _changetochannel
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        MOV	A,#-0x8
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 0
        MOV	A,R1
        MOV	R6,A
//   91     ConsolePutROMString("切换到信道(11~26):");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_1 & 0xff)
        MOV	R3,#((??xxxxromstr_1 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//   92     ConsolePutInitData(0,chlidx);
        ; Setup parameters for call to function ConsolePutInitData
        MOV	A,R6
        MOV	?V0 + 0,A
        MOV	R4,?V0 + 0
        MOV	R5,#0x0
        MOV	R2,#0x0
        MOV	R3,#0x0
        LCALL	ConsolePutInitData
//   93     _changetochannel(chlidx);
        ; Setup parameters for call to function _changetochannel
        MOV	A,R6
        MOV	R1,A
        LCALL	_changetochannel
//   94 }
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock2

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_1:
        DB "\307\320\273\273\265\275\320\305\265\300(11~26):"
//   95 
//   96 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   97 void SleepSomeTime(int time)         //休眠函数
SleepSomeTime:
        CFI Block cfiBlock3 Using cfiCommon0
        CFI Function SleepSomeTime
//   98 {
        FUNCALL SleepSomeTime, conPrintROMString_func
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL SleepSomeTime, ConsolePutInitData
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL SleepSomeTime, halSleep
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL SleepSomeTime, conPrintROMString_func
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        MOV	A,#-0x8
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 0
        MOV	A,R2
        MOV	R6,A
        MOV	A,R3
        MOV	R7,A
//   99     ConsolePutROMString("休眠:");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_2 & 0xff)
        MOV	R3,#((??xxxxromstr_2 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  100     ConsolePutInitData(0,time);	
        ; Setup parameters for call to function ConsolePutInitData
        MOV	A,R6
        MOV	R4,A
        MOV	A,R7
        MOV	R5,A
        MOV	R2,#0x0
        MOV	R3,#0x0
        LCALL	ConsolePutInitData
//  101 	ISRFOFF;                     //晶振关闭
        MOV	0xe1,#-0x1b
//  102 	halSleep(time+100);          //休眠
        ; Setup parameters for call to function halSleep
        MOV	A,#0x64
        ADD	A,R6
        MOV	R2,A
        MOV	A,#0x0
        ADDC	A,R7
        MOV	R3,A
        MOV	A,R3
        RLC	A
        SUBB	A,0xE0 /* A   */
        MOV	R4,A
        MOV	R5,A
        LCALL	halSleep
//  103 	ISRXON;                      //晶振打开
        MOV	0xe1,#-0x1e
//  104 	ConsolePutROMString("唤醒\r\n");
        ; Setup parameters for call to function conPrintROMString_func
        MOV	R2,#(??xxxxromstr_3 & 0xff)
        MOV	R3,#((??xxxxromstr_3 >> 8) & 0xff)
        LCALL	conPrintROMString_func
//  105 }
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock3

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_2:
        DB "\320\335\303\337:"

        RSEG CODE_C:CODE:REORDER:NOROOT(0)
??xxxxromstr_3:
        DB "\273\275\320\321\015\012"
//  106 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  107 BYTE DebugParam[20];
DebugParam:
        DS 20

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//  108 BYTE DebugParamLen;
DebugParamLen:
        DS 1

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  109 void WirelesDebugOut(BYTE code)     //无线发送调试信息函数
WirelesDebugOut:
        CFI Block cfiBlock4 Using cfiCommon0
        CFI Function WirelesDebugOut
//  110 {
        FUNCALL WirelesDebugOut, ChangeToChannel
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL WirelesDebugOut, WirelessSendData
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        FUNCALL WirelesDebugOut, ChangeToChannel
        LOCFRAME XSTACK, 8, STACK
        ARGFRAME XSTACK, 8, STACK
        MOV	A,#-0x8
        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 V0 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 8)
        ; Saved register size: 8
        ; Auto size: 0
        MOV	A,R1
        MOV	R6,A
//  111     BYTE OldChlIdx;
//  112 	
//  113     OldChlIdx=ChannelIdx;
        MOV	DPTR,#ChannelIdx
        MOVX	A,@DPTR
        MOV	R7,A
//  114 	DebugCode=code;
        MOV	A,R6
        MOV	DPTR,#DebugCode
        MOVX	@DPTR,A
//  115 	ChangeToChannel(DEBUGCHANNEL);	
        ; Setup parameters for call to function ChangeToChannel
        MOV	R1,#0x19
        LCALL	ChangeToChannel
//  116 	WirelessSendData(MSG_DEBUG_OUT);
        ; Setup parameters for call to function WirelessSendData
        MOV	R1,#-0x60
        LCALL	WirelessSendData
//  117 	DebugParamLen=0;
        MOV	A,#0x0
        MOV	DPTR,#DebugParamLen
        MOVX	@DPTR,A
//  118 	ChangeToChannel(OldChlIdx);	
        ; Setup parameters for call to function ChangeToChannel
        MOV	A,R7
        MOV	R1,A
        LCALL	ChangeToChannel
//  119 	
//  120 }
        MOV	R7,#0x1
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock4

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  121 int TickGetDiff(TICK now,TICK start)  //返回值单位:50ms
TickGetDiff:
        CFI Block cfiBlock5 Using cfiCommon0
        CFI Function TickGetDiff
//  122 {
        MOV	A,#-0xf
        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 V7 load(1, XDATA, add(CFA_XSP16, literal(-6)))
        CFI V6 load(1, XDATA, add(CFA_XSP16, literal(-7)))
        CFI V5 load(1, XDATA, add(CFA_XSP16, literal(-8)))
        CFI V4 load(1, XDATA, add(CFA_XSP16, literal(-9)))
        CFI V3 load(1, XDATA, add(CFA_XSP16, literal(-10)))
        CFI V2 load(1, XDATA, add(CFA_XSP16, literal(-11)))
        CFI V1 load(1, XDATA, add(CFA_XSP16, literal(-12)))
        CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-13)))
        CFI VB load(1, XDATA, add(CFA_XSP16, literal(-14)))
        CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-15)))
        CFI CFA_SP SP+0
        CFI CFA_XSP16 add(XSP16, 15)
        ; Saved register size: 15
        ; Auto size: 0
        MOV	?V0 + 0,R2
        MOV	?V0 + 1,R3
        MOV	?V0 + 2,R4
        MOV	?V0 + 3,R5
        MOV	A,#0xf
        LCALL	?XSTACK_DISP0_8
        MOV	R0,#?V0 + 4
        LCALL	?L_MOV_X
//  123     return halMACTimerDelta(now,start) *50/LRWPAN_SYMBOLS_PER_SECOND;
        MOV	R0,#?V0 + 0
        MOV	R1,#?V0 + 4
        LCALL	?L_SUB
        MOV	DPTR,#__Constant_fffff
        MOV	R0,#?V0 + 0
        LCALL	?L_AND_X
        MOV	DPTR,#__Constant_32
        MOV	R0,#?V0 + 4
        LCALL	?L_MOV_X
        MOV	R0,#?V0 + 0
        MOV	R1,#?V0 + 4
        LCALL	?L_MUL
        MOV	DPTR,#__Constant_f424
        MOV	R0,#?V0 + 4
        LCALL	?L_MOV_X
        MOV	R0,#?V0 + 0
        MOV	R1,#?V0 + 4
        LCALL	?UL_DIV_MOD
        MOV	R2,?V0 + 0
        MOV	R3,?V0 + 1
        MOV	R7,#0x8
        LJMP	?FUNC_LEAVE_XDATA
        CFI EndBlock cfiBlock5
//  124 }
//  125 
//  126 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//  127 void MainLoop(void)          //主循环函数
MainLoop:
        CFI Block cfiBlock6 Using cfiCommon0
        CFI Function MainLoop
//  128 {
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, ChangeToNormalChannel
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, ConsolePutInitData
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, halSetTxPower
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, srand
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, ConsolePutInitData
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, halGetMACTimer
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, WirelesDebugOut
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, conPrintROMString_func
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, macFSM
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        FUNCALL MainLoop, WirelessSendData
        LOCFRAME XSTACK, 13, STACK
        ARGFRAME XSTACK, 13, STACK
        MOV	A,#-0xd
        LCALL	?FUNC_ENTER_XDATA

⌨️ 快捷键说明

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