evboard.s51

来自「无线单片机cc2430简化协议的无线收发程序」· S51 代码 · 共 411 行

S51
411
字号
//////////////////////////////////////////////////////////////////////////////
//                                                                           /
// IAR 8051 C/C++ Compiler V7.20H/W32                  11/Dec/2008  13:41:51 /
// Copyright 2004-2006 IAR Systems. All rights reserved.                     /
//                                                                           /
//    Core               =  plain                                            /
//    Code model         =  near                                             /
//    Data model         =  large                                            /
//    Calling convention =  xdata reentrant                                  /
//    Constant location  =  data                                             /
//    Dptr setup         =  1,16                                             /
//    Source file        =  D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
//                          ro\src\evboard.c                                 /
//    Command line       =  -lC D:\zigbee\演示程序\简化协议的无线收发演示\de /
//                          mo_pro\Debug\List\ -lA D:\zigbee\演示程序\简化协 /
//                          议的无线收发演示\demo_pro\Debug\List\ -o         /
//                          D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
//                          ro\Debug\Obj\ -e -z2 --no_cse --no_unroll        /
//                          --no_inline --no_code_motion --no_tbaa --debug   /
//                          --core=plain --dptr=16,1 --data_model=large      /
//                          --code_model=near --calling_convention=xdata_ree /
//                          ntrant --place_constants=data --nr_virtual_regs  /
//                          8 -I "C:\Program Files\IAR Systems\Embedded      /
//                          Workbench 4.05 Evaluation version\8051\INC\" -I  /
//                          "C:\Program Files\IAR Systems\Embedded           /
//                          Workbench 4.05 Evaluation                        /
//                          version\8051\INC\CLIB\"                          /
//                          D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
//                          ro\src\evboard.c                                 /
//    List file          =  D:\zigbee\演示程序\简化协议的无线收发演示\demo_p /
//                          ro\Debug\List\evboard.s51                        /
//                                                                           /
//                                                                           /
//////////////////////////////////////////////////////////////////////////////

        NAME evboard

        RTMODEL "__calling_convention", "xdata_reentrant"
        RTMODEL "__code_model", "near"
        RTMODEL "__core", "plain"
        RTMODEL "__data_model", "large"
        RTMODEL "__dptr_size", "16"
        RTMODEL "__extended_stack", "disabled"
        RTMODEL "__location_for_constants", "data"
        RTMODEL "__number_of_dptrs", "1"
        RTMODEL "__rt_version", "1"

        RSEG DOVERLAY:DATA:NOROOT(0)
        RSEG IOVERLAY:IDATA:NOROOT(0)
        RSEG ISTACK:IDATA:NOROOT(0)
        RSEG PSTACK:XDATA:NOROOT(0)
        RSEG XSTACK:XDATA:NOROOT(0)

        EXTERN ?UC_SWITCH_DENSE
        EXTERN __INIT_XDATA_Z

        PUBWEAK P0DIR
        PUBWEAK P0SEL
        PUBWEAK P1DIR
        PUBWEAK P1SEL
        PUBWEAK _A_P1
        PUBLIC evbInit
        FUNCTION evbInit,0203H
        LOCFRAME ISTACK, 2, STACK
        PUBLIC evbLedGetk
        FUNCTION evbLedGetk,080203H
        LOCFRAME ISTACK, 2, STACK
        PUBLIC evbLedSet
        FUNCTION evbLedSet,080203H
        LOCFRAME ISTACK, 2, STACK
        PUBLIC last_switch_poll
        PUBLIC sw_state
        
        CFI Names cfiNames0
        CFI StackFrame CFA_SP SP DATA
        CFI StackFrame CFA_PSP16 PSP16 XDATA
        CFI StackFrame CFA_XSP16 XSP16 XDATA
        CFI StaticOverlayFrame CFA_IOVERLAY IOVERLAY
        CFI StaticOverlayFrame CFA_DOVERLAY DOVERLAY
        CFI Resource `PSW.CY`:1, `B.BR0`:1, `B.BR1`:1, `B.BR2`:1, `B.BR3`:1
        CFI Resource `B.BR4`:1, `B.BR5`:1, `B.BR6`:1, `B.BR7`:1, `VB.BR8`:1
        CFI Resource `VB.BR9`:1, `VB.BR10`:1, `VB.BR11`:1, `VB.BR12`:1
        CFI Resource `VB.BR13`:1, `VB.BR14`:1, `VB.BR15`:1, VB:8, B:8, A:8
        CFI Resource PSW:8, DPL0:8, DPH0:8, R0:8, R1:8, R2:8, R3:8, R4:8, R5:8
        CFI Resource R6:8, R7:8, V0:8, V1:8, V2:8, V3:8, V4:8, V5:8, V6:8, V7:8
        CFI Resource SP:8, PSPH:8, PSPL:8, PSP16:16, XSPH:8, XSPL:8, XSP16:16
        CFI VirtualResource ?RET:16, ?RET_HIGH:8, ?RET_LOW:8
        CFI ResourceParts PSP16 PSPH, PSPL
        CFI ResourceParts XSP16 XSPH, XSPL
        CFI ResourceParts ?RET ?RET_HIGH, ?RET_LOW
        CFI EndNames cfiNames0
        
        CFI Common cfiCommon0 Using cfiNames0
        CFI CodeAlign 1
        CFI DataAlign -1
        CFI ReturnAddress ?RET CODE
        CFI CFA_DOVERLAY Used
        CFI CFA_IOVERLAY Used
        CFI CFA_SP SP+-2
        CFI CFA_PSP16 PSP16+0
        CFI CFA_XSP16 XSP16+0
        CFI `PSW.CY` SameValue
        CFI `B.BR0` SameValue
        CFI `B.BR1` SameValue
        CFI `B.BR2` SameValue
        CFI `B.BR3` SameValue
        CFI `B.BR4` SameValue
        CFI `B.BR5` SameValue
        CFI `B.BR6` SameValue
        CFI `B.BR7` SameValue
        CFI `VB.BR8` SameValue
        CFI `VB.BR9` SameValue
        CFI `VB.BR10` SameValue
        CFI `VB.BR11` SameValue
        CFI `VB.BR12` SameValue
        CFI `VB.BR13` SameValue
        CFI `VB.BR14` SameValue
        CFI `VB.BR15` SameValue
        CFI VB SameValue
        CFI B Undefined
        CFI A Undefined
        CFI PSW SameValue
        CFI DPL0 SameValue
        CFI DPH0 SameValue
        CFI R0 Undefined
        CFI R1 Undefined
        CFI R2 Undefined
        CFI R3 Undefined
        CFI R4 Undefined
        CFI R5 Undefined
        CFI R6 SameValue
        CFI R7 SameValue
        CFI V0 SameValue
        CFI V1 SameValue
        CFI V2 SameValue
        CFI V3 SameValue
        CFI V4 SameValue
        CFI V5 SameValue
        CFI V6 SameValue
        CFI V7 SameValue
        CFI PSPH Undefined
        CFI PSPL Undefined
        CFI XSPH Undefined
        CFI XSPL Undefined
        CFI ?RET Concat
        CFI ?RET_HIGH Frame(CFA_SP, 2)
        CFI ?RET_LOW Frame(CFA_SP, 1)
        CFI EndCommon cfiCommon0
        
// D:\zigbee\演示程序\简化协议的无线收发演示\demo_pro\src\evboard.c
//    1 
//    2 
//    3 #include "hal.h"

        ASEGN SFR_AN:DATA:NOROOT,0f3H
// unsigned char volatile __sfr P0SEL
P0SEL:
        DS 1

        ASEGN SFR_AN:DATA:NOROOT,0f4H
// unsigned char volatile __sfr P1SEL
P1SEL:
        DS 1

        ASEGN SFR_AN:DATA:NOROOT,0fdH
// unsigned char volatile __sfr P0DIR
P0DIR:
        DS 1

        ASEGN SFR_AN:DATA:NOROOT,0feH
// unsigned char volatile __sfr P1DIR
P1DIR:
        DS 1
//    4 #include "halstack.h"
//    5 #include "evboard.h"
//    6 #include "evbConfig.h"
//    7 
//    8 #define JOYSTICK_PUSH         P2_0
//    9 #define JOYSTICK_PRESSED()    JOYSTICK_PUSH
//   10 #define INIT_JOYSTICK_PUSH() \ 
//   11     do {                     \ 
//   12         P2DIR &= ~0x01;      \ 
//   13         P2INP |= 0x01;       \ 
//   14     } while (0)
//   15 
//   16 BOOL joystickPushed( void );
//   17 
//   18 typedef enum {CENTRED, LEFT, RIGHT, UP, DOWN} JOYSTICK_DIRECTION;
//   19 
//   20 #define JOYSTICK              P0_6
//   21 #define INIT_JOYSTICK()       IO_DIR_PORT_PIN(0, 6, IO_IN)
//   22 #define ADC_INPUT_JOYSTICK    0x06
//   23 
//   24 JOYSTICK_DIRECTION getJoystickDirection( void );
//   25 
//   26 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   27 EVB_SW_STATE sw_state;
sw_state:
        DS 2
//   28 
//   29 
//   30 
//   31 #define SW_POLL_TIME   MSECS_TO_MACTICKS(100)
//   32 

        RSEG XDATA_Z:XDATA:NOROOT(0)
        REQUIRE __INIT_XDATA_Z
//   33 UINT32 last_switch_poll;
last_switch_poll:
        DS 4
//   34 
//   35 
//   36 //init the board

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   37 void evbInit(void){
evbInit:
        CFI Block cfiBlock0 Using cfiCommon0
        CFI Function evbInit
        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
//   38   sw_state.val = 0;
        MOV	A,#0x0
        MOV	DPTR,#sw_state
        MOVX	@DPTR,A
//   39 
//   40   P0SEL &= ~0xf3;
        ANL	0xf3,#0xc
        MOV	A,0xf3
//   41   P1SEL &= ~0xff;
        MOV	A,0xf4
        MOV	0xf4,#0x0
//   42   IO_DIR_PORT_PIN(0, 0, IO_OUT);
        ORL	0xfd,#0x1
//   43   IO_DIR_PORT_PIN(0, 1, IO_OUT);
        ORL	0xfd,#0x2
//   44   IO_DIR_PORT_PIN(0, 4, IO_IN);
        ANL	0xfd,#0xef
//   45   IO_DIR_PORT_PIN(0, 5, IO_IN);
        ANL	0xfd,#0xdf
//   46   IO_DIR_PORT_PIN(0, 6, IO_IN);
        ANL	0xfd,#0xbf
//   47   IO_DIR_PORT_PIN(0, 7, IO_IN);
        ANL	0xfd,#0x7f
//   48 
//   49   IO_DIR_PORT_PIN(1, 0, IO_IN);
        ANL	0xfe,#0xfe
//   50   IO_DIR_PORT_PIN(1, 1, IO_IN);
        ANL	0xfe,#0xfd
//   51   IO_DIR_PORT_PIN(1, 2, IO_IN);
        ANL	0xfe,#0xfb
//   52   IO_DIR_PORT_PIN(1, 3, IO_OUT);
        ORL	0xfe,#0x8
//   53   IO_DIR_PORT_PIN(1, 4, IO_OUT);
        ORL	0xfe,#0x10
//   54   IO_DIR_PORT_PIN(1, 5, IO_OUT);
        ORL	0xfe,#0x20
//   55   IO_DIR_PORT_PIN(1, 6, IO_IN);
        ANL	0xfe,#0xbf
//   56   IO_DIR_PORT_PIN(1, 7, IO_IN);
        ANL	0xfe,#0x7f
//   57 }
        POP	DPH
        CFI DPH0 SameValue
        CFI CFA_SP SP+-3
        POP	DPL
        CFI DPL0 SameValue
        CFI CFA_SP SP+-2
        RET
        CFI EndBlock cfiBlock0
//   58 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   59 void evbLedSet(BYTE lednum, BOOL state) {
evbLedSet:
        CFI Block cfiBlock1 Using cfiCommon0
        CFI Function evbLedSet
        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
//   60     switch(lednum) {
        MOV	A,R1
        LCALL	?UC_SWITCH_DENSE
`?<Jumptable for evbLedSet>_0`:
        DB        1
        DB        1
        DW        ??evbLedSet_0
        DW        ??evbLedSet_1
        DW        ??evbLedSet_2
//   61        case 1:    if (state) LED1_ON(); else LED1_OFF(); break;
??evbLedSet_1:
        MOV	A,R2
        JZ	??evbLedSet_3
        CLR	0x90.0
        SJMP	??evbLedSet_0
??evbLedSet_3:
        SETB	0x90.0
        SJMP	??evbLedSet_0
//   62        case 2:    if (state) LED2_ON(); else LED2_OFF(); break;
??evbLedSet_2:
        MOV	A,R2
        JZ	??evbLedSet_4
        CLR	0x90.3
        SJMP	??evbLedSet_0
??evbLedSet_4:
        SETB	0x90.3
//   63     }
//   64 }
??evbLedSet_0:
        POP	DPH
        CFI DPH0 SameValue
        CFI CFA_SP SP+-3
        POP	DPL
        CFI DPL0 SameValue
        CFI CFA_SP SP+-2
        RET
        CFI EndBlock cfiBlock1
//   65 

        RSEG NEAR_CODE:CODE:NOROOT(0)
//   66 BOOL evbLedGetk(BYTE lednum){
evbLedGetk:
        CFI Block cfiBlock2 Using cfiCommon0
        CFI Function evbLedGetk
        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
        MOV	A,R1
//   67   switch(lednum) {
        LCALL	?UC_SWITCH_DENSE
`?<Jumptable for evbLedGetk>_0`:
        DB        1
        DB        1
        DW        ??evbLedGetk_0
        DW        ??evbLedGetk_1
        DW        ??evbLedGetk_2
//   68        case 1:    return(LED1_STATE());
??evbLedGetk_1:
        MOV	C,0x90.0
        CPL	C
        CLR	A
        MOV	0xE0 /* A   */.0,C
        MOV	R1,A
        SJMP	??evbLedGetk_3
//   69        case 2:    return(LED2_STATE());
??evbLedGetk_2:
        MOV	C,0x90.3
        JC	??evbLedGetk_4
        SETB	B.0
        SJMP	??evbLedGetk_5
??evbLedGetk_4:
        CLR	B.0
??evbLedGetk_5:
        MOV	C,B.0
        CLR	A
        MOV	0xE0 /* A   */.0,C
        MOV	R1,A
        SJMP	??evbLedGetk_3
//   70     }
//   71   return(FALSE);
??evbLedGetk_0:
        MOV	R1,#0x0
??evbLedGetk_3:
        POP	DPH
        CFI DPH0 SameValue
        CFI CFA_SP SP+-3
        POP	DPL
        CFI DPL0 SameValue
        CFI CFA_SP SP+-2
        RET
        CFI EndBlock cfiBlock2
//   72 }

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

        END
//   73 
// 
// 158 bytes in segment NEAR_CODE
//   5 bytes in segment SFR_AN
//   6 bytes in segment XDATA_Z
// 
// 158 bytes of CODE  memory
//   0 bytes of DATA  memory (+ 5 bytes shared)
//   6 bytes of XDATA memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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