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

📄 lcd.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:
   \   000005                ; Auto size: 3
   \   000005   74FD         MOV     A,#-0x3
   \   000007   12....       LCALL   ?ALLOC_XSTACK8
   \   00000A   EB           MOV     A,R3
   \   00000B   FE           MOV     R6,A
    208             BYTE sendBuffer[3];
    209             UINT8 i;
    210          
    211             if(position > LINE_SIZE){
   \   00000C   EA           MOV     A,R2
   \   00000D   C3           CLR     C
   \   00000E   9411         SUBB    A,#0x11
   \   000010   4002         JC      ??lcdUpdateSymbol_0
    212                position = LINE_SIZE - 1;
   \   000012   7A0F         MOV     R2,#0xf
    213             }
    214          
    215             i = 0;
    216             sendBuffer[i++] = LCD_ADDR;
   \                     ??lcdUpdateSymbol_0:
   \   000014   7476         MOV     A,#0x76
   \   000016   85..82       MOV     DPL,?XSP + 0
   \   000019   85..83       MOV     DPH,?XSP + 1
   \   00001C   F0           MOVX    @DPTR,A
    217             sendBuffer[i++] = RS_0;
   \   00001D   7401         MOV     A,#0x1
   \   00001F   12....       LCALL   ?XSTACK_DISP0_8
   \   000022   E4           CLR     A
   \   000023   F0           MOVX    @DPTR,A
    218             sendBuffer[i++] = ((line == LINE1) ?  LINE1_ADDR : LINE2_ADDR) + position;
   \   000024   E9           MOV     A,R1
   \   000025   7004         JNZ     ??lcdUpdateSymbol_1
   \   000027   7880         MOV     R0,#-0x80
   \   000029   8002         SJMP    ??lcdUpdateSymbol_2
   \                     ??lcdUpdateSymbol_1:
   \   00002B   78C0         MOV     R0,#-0x40
   \                     ??lcdUpdateSymbol_2:
   \   00002D   E8           MOV     A,R0
   \   00002E   2A           ADD     A,R2
   \   00002F   C0E0         PUSH    A
   \   000031   7402         MOV     A,#0x2
   \   000033   12....       LCALL   ?XSTACK_DISP0_8
   \   000036   D0E0         POP     A
   \   000038   F0           MOVX    @DPTR,A
    219             smbSend(sendBuffer, i);
   \   000039                ; Setup parameters for call to function smbSend
   \   000039   7903         MOV     R1,#0x3
   \   00003B   85..82       MOV     DPL,?XSP + 0
   \   00003E   85..83       MOV     DPH,?XSP + 1
   \   000041   AA82         MOV     R2,DPL
   \   000043   AB83         MOV     R3,DPH
   \   000045   90....       MOV     DPTR,#(smbSend & 0xffff)
   \   000048   74..         MOV     A,#((smbSend >> 16) & 0xff)
   \   00004A   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    220          
    221             i = 0;
    222             sendBuffer[i++] = LCD_ADDR;
    223             sendBuffer[i++] = RS_1;
   \   00004D   7401         MOV     A,#0x1
   \   00004F   12....       LCALL   ?XSTACK_DISP0_8
   \   000052   7440         MOV     A,#0x40
   \   000054   F0           MOVX    @DPTR,A
    224             sendBuffer[i++] = c;
   \   000055   7402         MOV     A,#0x2
   \   000057   12....       LCALL   ?XSTACK_DISP0_8
   \   00005A   EE           MOV     A,R6
   \   00005B   F0           MOVX    @DPTR,A
    225             smbSend(sendBuffer, i);
   \   00005C                ; Setup parameters for call to function smbSend
   \   00005C   7903         MOV     R1,#0x3
   \   00005E   85..82       MOV     DPL,?XSP + 0
   \   000061   85..83       MOV     DPH,?XSP + 1
   \   000064   AA82         MOV     R2,DPL
   \   000066   AB83         MOV     R3,DPH
   \   000068   90....       MOV     DPTR,#(smbSend & 0xffff)
   \   00006B   74..         MOV     A,#((smbSend >> 16) & 0xff)
   \   00006D   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    226          }
   \   000070   7403         MOV     A,#0x3
   \   000072   80..         SJMP    ?Subroutine0
    227          
    228          
    229          
    230          /******************************************************************************
    231          * See lcd.h for a description of this function.
    232          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    233          void scrollText(char *string, UINT8 length){
   \                     scrollText:
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
   \   000009   89..         MOV     ?V0 + 3,R1
    234             UINT8 i = 0;
   \   00000B   75..00       MOV     ?V0 + 2,#0x0
    235          
    236             while(getJoystickDirection() != CENTRED);
   \                     ??scrollText_0:
   \   00000E                ; Setup parameters for call to function getJoystickDirection
   \   00000E   90....       MOV     DPTR,#(getJoystickDirection & 0xffff)
   \   000011   74..         MOV     A,#((getJoystickDirection >> 16) & 0xff)
   \   000013   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000016   E9           MOV     A,R1
   \   000017   70F5         JNZ     ??scrollText_0
    237          
    238             do{
    239                lcdUpdateLine(LINE2, &string[i]);
   \                     ??scrollText_1:
   \   000019                ; Setup parameters for call to function lcdUpdateLine
   \   000019   85....       MOV     ?V0 + 0,?V0 + 2
   \   00001C   EE           MOV     A,R6
   \   00001D   25..         ADD     A,?V0 + 0
   \   00001F   FA           MOV     R2,A
   \   000020   EF           MOV     A,R7
   \   000021   3400         ADDC    A,#0x0
   \   000023   FB           MOV     R3,A
   \   000024   7901         MOV     R1,#0x1
   \   000026   90....       MOV     DPTR,#(lcdUpdateLine & 0xffff)
   \   000029   74..         MOV     A,#((lcdUpdateLine >> 16) & 0xff)
   \   00002B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    240                i++;
   \   00002E   05..         INC     ?V0 + 2
    241          
    242                if(getJoystickDirection() != CENTRED)
   \   000030   85..82       MOV     DPL,?V0 + 3
   \   000033   8582..       MOV     ?V0 + 0,DPL
   \   000036                ; Setup parameters for call to function getJoystickDirection
   \   000036   90....       MOV     DPTR,#(getJoystickDirection & 0xffff)
   \   000039   74..         MOV     A,#((getJoystickDirection >> 16) & 0xff)
   \   00003B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00003E   E9           MOV     A,R1
   \   00003F   601C         JZ      ??scrollText_2
    243                {
    244                   lcdUpdateLine(LINE2, &(string[length-17]));
   \   000041                ; Setup parameters for call to function lcdUpdateLine
   \   000041   EE           MOV     A,R6
   \   000042   25..         ADD     A,?V0 + 0
   \   000044   F8           MOV     R0,A
   \   000045   EF           MOV     A,R7
   \   000046   3400         ADDC    A,#0x0
   \   000048   F9           MOV     R1,A
   \   000049   74EF         MOV     A,#-0x11
   \   00004B   28           ADD     A,R0
   \   00004C   FA           MOV     R2,A
   \   00004D   74FF         MOV     A,#-0x1
   \   00004F   39           ADDC    A,R1
   \   000050   FB           MOV     R3,A
   \   000051   7901         MOV     R1,#0x1
   \   000053   90....       MOV     DPTR,#(lcdUpdateLine & 0xffff)
   \   000056   74..         MOV     A,#((lcdUpdateLine >> 16) & 0xff)
   \   000058   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    245                   return;
   \   00005B   8036         SJMP    ??scrollText_3
    246                }
    247          
    248                halWait(100);
   \                     ??scrollText_2:
   \   00005D                ; Setup parameters for call to function halWait
   \   00005D   7964         MOV     R1,#0x64
   \   00005F   90....       MOV     DPTR,#(halWait & 0xffff)
   \   000062   74..         MOV     A,#((halWait >> 16) & 0xff)
   \   000064   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    249             } while((string[i+15] != '\0') && (i + 15) < length);
   \   000067   85..82       MOV     DPL,?V0 + 2
   \   00006A   A882         MOV     R0,DPL
   \   00006C   EE           MOV     A,R6
   \   00006D   28           ADD     A,R0
   \   00006E   FA           MOV     R2,A
   \   00006F   EF           MOV     A,R7
   \   000070   3400         ADDC    A,#0x0
   \   000072   FB           MOV     R3,A
   \   000073   740F         MOV     A,#0xf
   \   000075   2A           ADD     A,R2
   \   000076   F582         MOV     DPL,A
   \   000078   E4           CLR     A
   \   000079   3B           ADDC    A,R3
   \   00007A   F583         MOV     DPH,A
   \   00007C   E0           MOVX    A,@DPTR
   \   00007D   6014         JZ      ??scrollText_3
   \   00007F   740F         MOV     A,#0xf
   \   000081   28           ADD     A,R0
   \   000082   F8           MOV     R0,A
   \   000083   E4           CLR     A
   \   000084   3400         ADDC    A,#0x0
   \   000086   F9           MOV     R1,A
   \   000087   E8           MOV     A,R0
   \   000088   95..         SUBB    A,?V0 + 0
   \   00008A   E9           MOV     A,R1
   \   00008B   9400         SUBB    A,#0x0
   \   00008D   C3           CLR     C
   \   00008E   65D0         XRL     A,PSW
   \   000090   33           RLC     A
   \   000091   4086         JC      ??scrollText_1
   \                     ??scrollText_3:
   \   000093   02....       LJMP    ?Subroutine2 & 0xFFFF
    250          }
    251          
    252          /******************************************************************************
    253          * Internal function for lcd.c
    254          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    255          void smbSend(BYTE *buffer, const UINT8 n){
   \                     smbSend:
   \   000000   74F6         MOV     A,#-0xa
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 10
   \   000005                ; Auto size: 0
   \   000005   EA           MOV     A,R2
   \   000006   FE           MOV     R6,A
   \   000007   EB           MOV     A,R3
   \   000008   FF           MOV     R7,A
   \   000009   89..         MOV     ?V0 + 1,R1
    256             UINT8 i = 0;
    257          
    258             smbStart();
   \   00000B                ; Setup parameters for call to function smbStart
   \   00000B   90....       MOV     DPTR,#(smbStart & 0xffff)
   \   00000E   74..         MOV     A,#((smbStart >> 16) & 0xff)
   \   000010   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    259             for(i = 0; i < n; i++){
   \   000013   E5..         MOV     A,?V0 + 1
   \   000015   6022         JZ      ??smbSend_0
   \   000017   F5..         MOV     ?V0 + 0,A
    260                while(!smbSendByte(buffer[i])); //send until ACK received
   \                     ??smbSend_1:
   \   000019                ; Setup parameters for call to function smbSendByte
   \   000019   8E82         MOV     DPL,R6
   \   00001B   8F83         MOV     DPH,R7
   \   00001D   E0           MOVX    A,@DPTR
   \   00001E   F9           MOV     R1,A
   \   00001F   90....       MOV     DPTR,#(smbSendByte & 0xffff)
   \   000022   74..         MOV     A,#((smbSendByte >> 16) & 0xff)
   \   000024   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000027   E9           MOV     A,R1
   \   000028   60EF         JZ      ??smbSend_1
    261             }
   \   00002A   8E82         MOV     DPL,R6
   \   00002C   8F83         MOV     DPH,R7
   \   00002E   A3           INC     DPTR
   \   00002F   AE82         MOV     R6,DPL
   \   000031   AF83         MOV     R7,DPH
   \   000033   15..         DEC     ?V0 + 0
   \   000035   E5..         MOV     A,?V0 + 0
   \   000037   70E0         JNZ     ??smbSend_1
    262             smbStop();
   \                     ??smbSend_0:
   \   000039                ; Setup parameters for call to function smbStop

⌨️ 快捷键说明

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