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

📄 lcd.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
##############################################################################
#                                                                            #
# IAR 8051 C/C++ Compiler V7.20H/W32                   16/Jan/2007  15:33:15 #
# Copyright 2004-2006 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Core               =  plain                                             #
#    Code model         =  banked                                            #
#    Data model         =  large                                             #
#    Calling convention =  xdata reentrant                                   #
#    Constant location  =  data                                              #
#    Dptr setup         =  1,16                                              #
#    Source file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\lib\hal\CC2430\lcd.c                           #
#    Command line       =  -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\SRC\LIB\" -I         #
#                          "C:\Program Files\IAR Systems\Embedded Workbench  #
#                          4.05 Evaluation version\8051\INC\CLIB\" -I        #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\ -I          #
#                          E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\..\..\..\include\mac\cc2430\  #
#                          -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_E #
#                          ngine\Test\mac\mac_loc\..\..\..\include\hal\cc243 #
#                          0\ -I E:\公司产品资料\Zigbee\cc2431\cc2431定位\LO #
#                          C_Engine\Test\mac\mac_loc\..\..\..\apps\ -D       #
#                          USE_LED -D SOC_BB -lCN "E:\公司产品资料\Zigbee\cc #
#                          2431\cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_B #
#                          B, hex\List\" -lA "E:\公司产品资料\Zigbee\cc2431\ #
#                          cc2431定位\LOC_Engine\Test\mac\mac_loc\SOC_BB,    #
#                          hex\List\" -o "E:\公司产品资料\Zigbee\cc2431\cc24 #
#                          31定位\LOC_Engine\Test\mac\mac_loc\SOC_BB,        #
#                          hex\Obj\" -e -s9 --debug --core=plain             #
#                          --dptr=16,1 --data_model=large                    #
#                          --code_model=banked --calling_convention=xdata_re #
#                          entrant --place_constants=data --nr_virtual_regs  #
#                          8 E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_En #
#                          gine\lib\hal\CC2430\lcd.c                         #
#    List file          =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB, hex\List\lcd.lst      #
#    Object file        =  E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engi #
#                          ne\Test\mac\mac_loc\SOC_BB, hex\Obj\lcd.r51       #
#                                                                            #
#                                                                            #
##############################################################################

E:\公司产品资料\Zigbee\cc2431\cc2431定位\LOC_Engine\lib\hal\CC2430\lcd.c
      1          /******************************************************************************
      2          *                                                                             *
      3          *        **********                                                           *
      4          *       ************                                                          *
      5          *      ***        ***                                                         *
      6          *     ***    ++    ***                                                        *
      7          *     ***   +  +   ***                      CHIPCON                           *
      8          *     ***   +                                                                 *
      9          *     ***   +  +   ***                                                        *
     10          *     ***    ++    ***                                                        *
     11          *      ***        ***                                                         *
     12          *       ************                                                          *
     13          *        **********                                                           *
     14          *                                                                             *
     15          *******************************************************************************
     16          
     17          Filename:     lcd.c
     18          Target:       cc2430
     19          Author:       KJA
     20          Revised:      16/1-2006
     21          Revision:     x.x
     22          
     23          Description:
     24          Function implementations for common LCD functions for use with the SmartRF04EB.
     25          
     26          ******************************************************************************/
     27          
     28          #include "lcd.h"

   \                                 In segment SFR_AN, at 0xf4
   \   unsigned char volatile __sfr P1SEL
   \                     P1SEL:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xf5
   \   unsigned char volatile __sfr P2SEL
   \                     P2SEL:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xf6
   \   unsigned char volatile __sfr P1INP
   \                     P1INP:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xf7
   \   unsigned char volatile __sfr P2INP
   \                     P2INP:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xfe
   \   unsigned char volatile __sfr P1DIR
   \                     P1DIR:
   \   000000                DS 1

   \                                 In segment SFR_AN, at 0xff
   \   unsigned char volatile __sfr P2DIR
   \                     P2DIR:
   \   000000                DS 1
     29          #include "RF04EB.h"
     30          #include "hal.h"
     31          #include "string.h"
     32          
     33          // SM-Bus address of the LCD controller
     34          #define LCD_ADDR        0x76
     35          
     36          // RS selects the register to be accessed for read and write
     37          // RS = 0 => selects instruction register for write and busy flag
     38          // RS = 1 => selects the data register for both read and write
     39          #define RS_0            0x00
     40          #define RS_1            0x40
     41          
     42          #define CHAR1_ADDRESS   0x08
     43          
     44          // protos
     45          BYTE lcdConvertChar(BYTE c);
     46          void smbSend( BYTE *buffer, const UINT8 n );
     47          BOOL smbSendByte( BYTE b );
     48          void smbReceive( BYTE address, int length, BYTE *buffer );
     49          BYTE smbReceiveByte( BOOL lastByte );
     50          void smbStart( void );
     51          void smbStop( void );
     52          void smbWrite( BOOL value );
     53          void smbClock( BOOL value );
     54          void waitLCD( void );
     55          
     56          #define DATA_HIGH()    do{IO_DIR_PORT_PIN(1, 2, IO_IN); } while(0)
     57          #define DATA_LOW()     do{IO_DIR_PORT_PIN(1, 2, IO_OUT); LCD_SDA = 0; }while(0)
     58          
     59          
     60          
     61          /******************************************************************************
     62          * See lcd.h for a description of this function.
     63          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
     64          void initNewSymbol(char* symbol, BYTE address){
   \                     initNewSymbol:
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 10
   \   000005   74F6         MOV     A,#-0xa
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   EA           MOV     A,R2
   \   00000B   FE           MOV     R6,A
   \   00000C   EB           MOV     A,R3
   \   00000D   FF           MOV     R7,A
     65             BYTE sendBuffer[10];
     66          
     67             //send control data
     68             sendBuffer[0] = LCD_ADDR;
   \   00000E   7476         MOV     A,#0x76
   \   000010   85..82       MOV     DPL,?XSP + 0
   \   000013   85..83       MOV     DPH,?XSP + 1
   \   000016   F0           MOVX    @DPTR,A
     69             sendBuffer[1] = RS_0;
   \   000017   7401         MOV     A,#0x1
   \   000019   12....       LCALL   ?XSTACK_DISP0_8
   \   00001C   E4           CLR     A
   \   00001D   F0           MOVX    @DPTR,A
     70          
     71             if (address < 0x40)
   \   00001E   E9           MOV     A,R1
   \   00001F   C3           CLR     C
   \   000020   9440         SUBB    A,#0x40
   \   000022   7402         MOV     A,#0x2
   \   000024   5007         JNC     ??initNewSymbol_0
     72                sendBuffer[2] = 0x80;
   \   000026   12....       LCALL   ?XSTACK_DISP0_8
   \   000029   7480         MOV     A,#-0x80
   \   00002B   8005         SJMP    ??initNewSymbol_1
     73             else
     74                sendBuffer[2] = 0xC0;
   \                     ??initNewSymbol_0:
   \   00002D   12....       LCALL   ?XSTACK_DISP0_8
   \   000030   74C0         MOV     A,#-0x40
   \                     ??initNewSymbol_1:
   \   000032   F0           MOVX    @DPTR,A
     75          
     76             sendBuffer[3] = 0x40 | (address & 0x3F);
   \   000033   743F         MOV     A,#0x3f
   \   000035   59           ANL     A,R1
   \   000036   4440         ORL     A,#0x40
   \   000038   C0E0         PUSH    A
   \   00003A   7403         MOV     A,#0x3
   \   00003C   12....       LCALL   ?XSTACK_DISP0_8
   \   00003F   D0E0         POP     A
   \   000041   F0           MOVX    @DPTR,A
     77             smbSend(sendBuffer, 4);
   \   000042                ; Setup parameters for call to function smbSend
   \   000042   7904         MOV     R1,#0x4
   \   000044   85..82       MOV     DPL,?XSP + 0
   \   000047   85..83       MOV     DPH,?XSP + 1
   \   00004A   AA82         MOV     R2,DPL
   \   00004C   AB83         MOV     R3,DPH
   \   00004E   90....       MOV     DPTR,#(smbSend & 0xffff)
   \   000051   74..         MOV     A,#((smbSend >> 16) & 0xff)
   \   000053   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
     78          
     79             //send data
     80             sendBuffer[0] = LCD_ADDR;
     81             sendBuffer[1] = RS_1;
   \   000056   7401         MOV     A,#0x1
   \   000058   12....       LCALL   ?XSTACK_DISP0_8
   \   00005B   7440         MOV     A,#0x40
   \   00005D   F0           MOVX    @DPTR,A
     82          
     83             sendBuffer[2] = symbol[0];
   \   00005E   8E82         MOV     DPL,R6
   \   000060   8F83         MOV     DPH,R7
   \   000062   E0           MOVX    A,@DPTR
   \   000063   C0E0         PUSH    A
   \   000065   7402         MOV     A,#0x2
   \   000067   12....       LCALL   ?XSTACK_DISP0_8
   \   00006A   D0E0         POP     A
   \   00006C   F0           MOVX    @DPTR,A
     84             sendBuffer[3] = symbol[1];
   \   00006D   8E82         MOV     DPL,R6
   \   00006F   8F83         MOV     DPH,R7
   \   000071   A3           INC     DPTR
   \   000072   E0           MOVX    A,@DPTR
   \   000073   C0E0         PUSH    A
   \   000075   7403         MOV     A,#0x3
   \   000077   12....       LCALL   ?XSTACK_DISP0_8
   \   00007A   D0E0         POP     A
   \   00007C   F0           MOVX    @DPTR,A
     85             sendBuffer[4] = symbol[2];
   \   00007D   8E82         MOV     DPL,R6
   \   00007F   8F83         MOV     DPH,R7
   \   000081   A3           INC     DPTR
   \   000082   A3           INC     DPTR
   \   000083   E0           MOVX    A,@DPTR
   \   000084   C0E0         PUSH    A
   \   000086   7404         MOV     A,#0x4
   \   000088   12....       LCALL   ?XSTACK_DISP0_8
   \   00008B   D0E0         POP     A
   \   00008D   F0           MOVX    @DPTR,A
     86             sendBuffer[5] = symbol[3];
   \   00008E   8E82         MOV     DPL,R6
   \   000090   8F83         MOV     DPH,R7
   \   000092   A3           INC     DPTR
   \   000093   A3           INC     DPTR
   \   000094   A3           INC     DPTR
   \   000095   E0           MOVX    A,@DPTR
   \   000096   C0E0         PUSH    A
   \   000098   7405         MOV     A,#0x5

⌨️ 快捷键说明

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