📄 zmain.s51
字号:
MOV A,R7
JNZ ??zmain_vdd_check_5
MOV R7,#0x1
// 215 HAL_TOGGLE_LED1();
MOV C,0x90.0
JC ??zmain_vdd_check_6
SETB 0x90.0
SJMP ??zmain_vdd_check_1
??zmain_vdd_check_5:
MOV R7,#0x0
// 216 else
// 217 HAL_TOGGLE_LED2();
MOV C,0x90.1
JC ??zmain_vdd_check_7
SETB 0x90.1
SJMP ??zmain_vdd_check_1
??zmain_vdd_check_6:
CLR 0x90.0
SJMP ??zmain_vdd_check_1
??zmain_vdd_check_7:
CLR 0x90.1
SJMP ??zmain_vdd_check_1
// 218 }
// 219 }
// 220
// 221 /* turn off LED1 */
// 222 HAL_TURN_OFF_LED1();
??zmain_vdd_check_4:
SETB 0x90.0
// 223 HAL_TURN_OFF_LED2();
SETB 0x90.1
// 224 }
MOV R7,#0x1
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock4
// 225
// 226 /*********************************************************************
// 227 * @fn zmain_ext_addr
// 228 * @brief Makes extended address if none exists.
// 229 * @return none
// 230 *********************************************************************/
RSEG NEAR_CODE:CODE:NOROOT(0)
// 231 static ZSEG void zmain_ext_addr( void )
??zmain_ext_addr:
CFI Block cfiBlock5 Using cfiCommon0
CFI Function ??zmain_ext_addr
// 232 {
FUNCALL ??zmain_ext_addr, osal_nv_item_init
LOCFRAME XSTACK, 11, STACK
ARGFRAME XSTACK, 11, STACK
FUNCALL ??zmain_ext_addr, osal_nv_read
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
FUNCALL ??zmain_ext_addr, Onboard_wait
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ??zmain_ext_addr, HalLedSet
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ??zmain_ext_addr, Onboard_wait
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ??zmain_ext_addr, HalKeyRead
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ??zmain_ext_addr, HalLedSet
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ??zmain_ext_addr, HalAdcRead
LOCFRAME XSTACK, 9, STACK
ARGFRAME XSTACK, 9, STACK
FUNCALL ??zmain_ext_addr, osal_nv_write
LOCFRAME XSTACK, 13, STACK
ARGFRAME XSTACK, 13, STACK
MOV A,#-0x9
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 V1 load(1, XDATA, add(CFA_XSP16, literal(-6)))
CFI V0 load(1, XDATA, add(CFA_XSP16, literal(-7)))
CFI VB load(1, XDATA, add(CFA_XSP16, literal(-8)))
CFI R6 load(1, XDATA, add(CFA_XSP16, literal(-9)))
CFI CFA_SP SP+0
CFI CFA_XSP16 add(XSP16, 9)
; Saved register size: 9
; Auto size: 0
// 233 uint8 i;
// 234 uint8 led;
// 235 uint8 tmp;
// 236 uint8 *xad;
// 237 uint16 AtoD;
// 238
// 239 // Initialize extended address in NV
// 240 osal_nv_item_init( ZCD_NV_EXTADDR, Z_EXTADDR_LEN, NULL );
; Setup parameters for call to function osal_nv_item_init
MOV ?V0 + 0,#0x0
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 11)
MOV R4,#0x8
MOV R5,#0x0
MOV R2,#0x1
MOV R3,#0x0
MOV DPTR,#(osal_nv_item_init & 0xffff)
MOV A,#((osal_nv_item_init >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x2
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 9)
// 241 osal_nv_read( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
; Setup parameters for call to function osal_nv_read
MOV ?V0 + 0,#(aExtendedAddress & 0xff)
MOV ?V0 + 1,#((aExtendedAddress >> 8) & 0xff)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 11)
MOV ?V0 + 0,#0x8
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV R4,#0x0
MOV R5,#0x0
MOV R2,#0x1
MOV R3,#0x0
MOV DPTR,#(osal_nv_read & 0xffff)
MOV A,#((osal_nv_read >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 9)
// 242
// 243 // Check for uninitialized value (erased EEPROM = 0xFF)
// 244 xad = (uint8*)&aExtendedAddress;
MOV R0,#(aExtendedAddress & 0xff)
MOV R1,#((aExtendedAddress >> 8) & 0xff)
// 245 for ( i = 0; i < Z_EXTADDR_LEN; i++ )
MOV R4,#0x0
// 246 if ( *xad++ != 0xFF ) return;
??zmain_ext_addr_1:
MOV A,R0
MOV R2,A
MOV A,R1
MOV R3,A
MOV DPL,R2
MOV DPH,R3
INC DPTR
MOV R0,DPL
MOV R1,DPH
MOV DPL,R2
MOV DPH,R3
MOVX A,@DPTR
XRL A,#0xff
JZ $+5
LJMP ??zmain_ext_addr_2
INC R4
MOV A,R4
CLR C
SUBB A,#0x8
JC ??zmain_ext_addr_1
// 247
// 248 #ifdef ZDO_COORDINATOR
// 249 tmp = 0x10;
// 250 #else
// 251 tmp = 0x20;
MOV R3,#0x20
// 252 #endif
// 253 // Initialize with a simple pattern
// 254 xad = (uint8*)&aExtendedAddress;
MOV R0,#(aExtendedAddress & 0xff)
MOV R1,#((aExtendedAddress >> 8) & 0xff)
// 255 for ( i = 0; i < Z_EXTADDR_LEN; i++ )
MOV R2,#0x8
// 256 *xad++ = tmp++;
??zmain_ext_addr_3:
MOV A,R3
MOV DPL,R0
MOV DPH,R1
MOVX @DPTR,A
INC R3
INC DPTR
MOV R0,DPL
MOV R1,DPH
DEC R2
MOV A,R2
JNZ ??zmain_ext_addr_3
// 257
// 258 // Flash LED1 until user hits SW5
// 259 led = HAL_LED_MODE_OFF;
MOV ?V0 + 0,#0x0
SJMP ??zmain_ext_addr_4
// 260 while ( HAL_KEY_SW_5 != HalKeyRead() )
// 261 {
// 262 MicroWait( 62500 );
??zmain_ext_addr_5:
; Setup parameters for call to function Onboard_wait
MOV R2,#0x24
MOV R3,#-0xc
MOV DPTR,#(Onboard_wait & 0xffff)
MOV A,#((Onboard_wait >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 263 HalLedSet( HAL_LED_1, led^=HAL_LED_MODE_ON ); // Toggle the LED
XRL ?V0 + 0,#0x1
; Setup parameters for call to function HalLedSet
MOV R2,?V0 + 0
MOV R1,#0x1
MOV DPTR,#(HalLedSet & 0xffff)
MOV A,#((HalLedSet >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 264 MicroWait( 62500 );
; Setup parameters for call to function Onboard_wait
MOV R2,#0x24
MOV R3,#-0xc
MOV DPTR,#(Onboard_wait & 0xffff)
MOV A,#((Onboard_wait >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 265 }
??zmain_ext_addr_4:
; Setup parameters for call to function HalKeyRead
MOV DPTR,#(HalKeyRead & 0xffff)
MOV A,#((HalKeyRead >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,R1
XRL A,#0x4
JNZ ??zmain_ext_addr_5
// 266 HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );
; Setup parameters for call to function HalLedSet
MOV R2,#0x0
MOV R1,#0x1
MOV DPTR,#(HalLedSet & 0xffff)
MOV A,#((HalLedSet >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 267
// 268 // Plug AtoD data into lower bytes
// 269 AtoD = HalAdcRead (HAL_ADC_CHANNEL_7, HAL_ADC_RESOLUTION_10);
; Setup parameters for call to function HalAdcRead
MOV R2,#0x2
MOV R1,#0x7
MOV DPTR,#(HalAdcRead & 0xffff)
MOV A,#((HalAdcRead >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
// 270 xad = (uint8*)&aExtendedAddress;
// 271 *xad++ = LO_UINT16( AtoD );
MOV A,R2
MOV DPTR,#aExtendedAddress
MOVX @DPTR,A
// 272 *xad = HI_UINT16( AtoD );
MOV A,R3
MOV DPTR,#(aExtendedAddress + 1)
MOVX @DPTR,A
// 273
// 274 #if !defined( ZTOOL_PORT ) || defined( ZPORT ) || defined( NV_RESTORE )
// 275 // If no support for Z-Tool serial I/O,
// 276 // Write temporary 64-bit address to NV
// 277 osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, &aExtendedAddress );
; Setup parameters for call to function osal_nv_write
MOV ?V0 + 0,#(aExtendedAddress & 0xff)
MOV ?V0 + 1,#((aExtendedAddress >> 8) & 0xff)
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 11)
MOV ?V0 + 0,#0x8
MOV ?V0 + 1,#0x0
MOV R0,#?V0 + 0
LCALL ?PUSH_XSTACK_I_TWO
CFI CFA_XSP16 add(XSP16, 13)
MOV R4,#0x0
MOV R5,#0x0
MOV R2,#0x1
MOV R3,#0x0
MOV DPTR,#(osal_nv_write & 0xffff)
MOV A,#((osal_nv_write >> 16) & 0xff)
LCALL ?BCALL ; Banked call to: DPTR()
MOV A,#0x4
LCALL ?DEALLOC_XSTACK8
CFI CFA_XSP16 add(XSP16, 9)
// 278 #endif
// 279 }
??zmain_ext_addr_2:
MOV R7,#0x2
LJMP ?FUNC_LEAVE_XDATA
CFI EndBlock cfiBlock5
RSEG XSP:DATA:REORDER:NOROOT(0)
ASEGN SFR_AN:DATA:NOROOT,090H
// union <unnamed> volatile __sfr _A_P1
_A_P1:
DS 1
END
// 280
// 281 /*********************************************************************
// 282 * @fn zmain_dev_info
// 283 * @brief Gets or makes extended address.
// 284 * @return none
// 285 *********************************************************************/
// 286 static ZSEG void zmain_dev_info ( void )
// 287 {
// 288 #ifdef LCD_SUPPORTED
// 289 uint8 i;
// 290 uint8 ch;
// 291 uint8 *xad;
// 292 unsigned char lcd_buf[18];
// 293
// 294 // Display the extended address
// 295 xad = (uint8*)&aExtendedAddress + Z_EXTADDR_LEN - 1;
// 296 for ( i = 0; i < Z_EXTADDR_LEN*2; xad-- ) {
// 297 ch = (*xad >> 4) & 0x0F;
// 298 lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
// 299 ch = *xad & 0x0F;
// 300 lcd_buf[i++] = ch + (( ch < 10 ) ? '0' : '7');
// 301 }
// 302 lcd_buf[Z_EXTADDR_LEN*2] = '\0';
// 303 HalLcdWriteString( "IEEE Address:", HAL_LCD_LINE_1 );
// 304 HalLcdWriteString( (char*)lcd_buf, HAL_LCD_LINE_2 );
// 305 #endif // LCD
// 306 }
// 307
// 308 /*********************************************************************
// 309 * @fn zmain_ram_init
// 310 * @brief Initialize ram for stack "high-water-mark" observations.
// 311 * @return none
// 312 *********************************************************************/
// 313 static ZSEG void zmain_ram_init( void )
// 314 {
// 315 uint8 *end;
// 316 uint8 *ptr;
// 317
// 318 // Initialize the call (parameter) stack
// 319 end = (uint8*)CSTK_BEG; // Lower end
// 320 ptr = (uint8*)(*( __idata uint16*)(CSTK_PTR)); // Upper end
// 321 while ( --ptr > end )
// 322 *ptr = STACK_INIT_VALUE;
// 323
// 324 // Initialize the return (address) stack
// 325 ptr = (uint8*)RSTK_END - 1; // Upper end
// 326 while ( --ptr > (uint8*)SP )
// 327 *(__idata uint8*)ptr = STACK_INIT_VALUE;
// 328 }
// 329
// 330 #ifdef LCD_SUPPORTED
// 331 /*********************************************************************
// 332 * @fn zmain_lcd_init
// 333 * @brief Initialize LCD at start up.
// 334 * @return none
// 335 *********************************************************************/
// 336 static ZSEG void zmain_lcd_init ( void )
// 337 {
// 338 #ifdef LCD_SD
// 339 // if ( LcdLine1 == NULL )
// 340 {
// 341 HalLcdWriteString( "Figure8 Wireless", HAL_LCD_LINE_1 );
// 342
// 343 #if defined( MT_MAC_FUNC )
// 344 #if defined( ZDO_COORDINATOR )
// 345 HalLcdWriteString( "MAC-MT Coord", HAL_LCD_LINE_2 );
// 346 #else
// 347 HalLcdWriteString( "MAC-MT Device", HAL_LCD_LINE_2 );
// 348 #endif // ZDO
// 349 #elif defined( MT_NWK_FUNC )
// 350 #if defined( ZDO_COORDINATOR )
// 351 HalLcdWriteString( "NWK Coordinator", HAL_LCD_LINE_2 );
// 352 #else
// 353 HalLcdWriteString( "NWK Device", HAL_LCD_LINE_2 );
// 354 #endif // ZDO
// 355 #endif // MT_FUNC
// 356 }
// 357 #endif // LCD_SD
// 358 }
// 359 #endif
// 360
// 361 /*********************************************************************
// 362 *********************************************************************/
//
// 580 bytes in segment NEAR_CODE
// 4 bytes in segment SFR_AN
//
// 580 bytes of CODE memory
// 0 bytes of DATA memory (+ 4 bytes shared)
//
//Errors: none
//Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -