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

📄 lcd.lst

📁 zigbee location examples
💻 LST
📖 第 1 页 / 共 5 页
字号:

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    151          void waitVisible(BOOL visibility)
   \                     waitVisible:
    152          {
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
    153             UINT16 i;
    154          
    155             if(visibility){
   \   000005   E9           MOV     A,R1
   \   000006   6006         JZ      ??waitVisible_0
    156                i = 100;
   \   000008   7E64         MOV     R6,#0x64
   \                     ??waitVisible_1:
   \   00000A   7F00         MOV     R7,#0x0
   \   00000C   800E         SJMP    ??waitVisible_2
    157             }
    158             else{
    159                i = 6;
   \                     ??waitVisible_0:
   \   00000E   7E06         MOV     R6,#0x6
   \   000010   80F8         SJMP    ??waitVisible_1
    160             }
    161          
    162             while(i--){
    163                halWait(10);
   \                     ??waitVisible_3:
   \   000012                ; Setup parameters for call to function halWait
   \   000012   790A         MOV     R1,#0xa
   \   000014   90....       MOV     DPTR,#(halWait & 0xffff)
   \   000017   74..         MOV     A,#((halWait >> 16) & 0xff)
   \   000019   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    164             }
   \                     ??waitVisible_2:
   \   00001C   EE           MOV     A,R6
   \   00001D   F8           MOV     R0,A
   \   00001E   EF           MOV     A,R7
   \   00001F   F9           MOV     R1,A
   \   000020   74FF         MOV     A,#-0x1
   \   000022   28           ADD     A,R0
   \   000023   1E           DEC     R6
   \   000024   74FF         MOV     A,#-0x1
   \   000026   39           ADDC    A,R1
   \   000027   FF           MOV     R7,A
   \   000028   E8           MOV     A,R0
   \   000029   7001         JNZ     ??waitVisible_4
   \   00002B   E9           MOV     A,R1
   \                     ??waitVisible_4:
   \   00002C   70E4         JNZ     ??waitVisible_3
    165          }
   \   00002E   02....       LJMP    ??Subroutine0_0 & 0xFFFF
    166          
    167          
    168          /******************************************************************************
    169          * See lcd.h for a description of this function.
    170          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    171          void lcdUpdateLine(UINT8 line, char *pLine) {
   \                     lcdUpdateLine:
   \   000000   74F4         MOV     A,#-0xc
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 12
   \   000005                ; Auto size: 50
   \   000005   74CE         MOV     A,#-0x32
   \   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
    172             BYTE sendBuffer[50];
    173             UINT8 i, j;
    174             char c;
    175          
    176             i = 0;
    177             sendBuffer[i++] = 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
    178             sendBuffer[i++] = RS_0;
   \   000017   7401         MOV     A,#0x1
   \   000019   12....       LCALL   ?XSTACK_DISP0_8
   \   00001C   E4           CLR     A
   \   00001D   F0           MOVX    @DPTR,A
    179             sendBuffer[i++] = ((line == LINE1) ?  LINE1_ADDR : LINE2_ADDR);
   \   00001E   E9           MOV     A,R1
   \   00001F   7009         JNZ     ??lcdUpdateLine_0
   \   000021   7402         MOV     A,#0x2
   \   000023   12....       LCALL   ?XSTACK_DISP0_8
   \   000026   7480         MOV     A,#-0x80
   \   000028   8007         SJMP    ??lcdUpdateLine_1
   \                     ??lcdUpdateLine_0:
   \   00002A   7402         MOV     A,#0x2
   \   00002C   12....       LCALL   ?XSTACK_DISP0_8
   \   00002F   74C0         MOV     A,#-0x40
   \                     ??lcdUpdateLine_1:
   \   000031   F0           MOVX    @DPTR,A
    180             smbSend(sendBuffer, i);
   \   000032                ; Setup parameters for call to function smbSend
   \   000032   7903         MOV     R1,#0x3
   \   000034   85..82       MOV     DPL,?XSP + 0
   \   000037   85..83       MOV     DPH,?XSP + 1
   \   00003A   AA82         MOV     R2,DPL
   \   00003C   AB83         MOV     R3,DPH
   \   00003E   90....       MOV     DPTR,#(smbSend & 0xffff)
   \   000041   74..         MOV     A,#((smbSend >> 16) & 0xff)
   \   000043   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    181          
    182             i = j = 0;
   \   000046   75..00       MOV     ?V0 + 1,#0x0
    183             sendBuffer[i++] = LCD_ADDR;
    184             sendBuffer[i++] = RS_1;
   \   000049   7401         MOV     A,#0x1
   \   00004B   12....       LCALL   ?XSTACK_DISP0_8
   \   00004E   7440         MOV     A,#0x40
   \   000050   F0           MOVX    @DPTR,A
   \   000051   75..02       MOV     ?V0 + 0,#0x2
   \   000054   8023         SJMP    ??lcdUpdateLine_2
    185             while( ( (c = pLine[j]) != '\0' ) && j < LINE_SIZE ){
    186                sendBuffer[i++] = lcdConvertChar(c);
   \                     ??lcdUpdateLine_3:
   \   000056                ; Setup parameters for call to function lcdConvertChar
   \   000056   90....       MOV     DPTR,#(lcdConvertChar & 0xffff)
   \   000059   74..         MOV     A,#((lcdConvertChar >> 16) & 0xff)
   \   00005B   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   00005E   85....       MOV     ?V0 + 2,?V0 + 0
   \   000061   85..82       MOV     DPL,?XSP + 0
   \   000064   85..83       MOV     DPH,?XSP + 1
   \   000067   E582         MOV     A,DPL
   \   000069   25..         ADD     A,?V0 + 2
   \   00006B   F582         MOV     DPL,A
   \   00006D   E583         MOV     A,DPH
   \   00006F   3400         ADDC    A,#0x0
   \   000071   F583         MOV     DPH,A
   \   000073   E9           MOV     A,R1
   \   000074   F0           MOVX    @DPTR,A
   \   000075   05..         INC     ?V0 + 0
    187                j++;
   \   000077   05..         INC     ?V0 + 1
    188             }
   \                     ??lcdUpdateLine_2:
   \   000079   85....       MOV     ?V0 + 2,?V0 + 1
   \   00007C   EE           MOV     A,R6
   \   00007D   25..         ADD     A,?V0 + 2
   \   00007F   F582         MOV     DPL,A
   \   000081   EF           MOV     A,R7
   \   000082   3400         ADDC    A,#0x0
   \   000084   F583         MOV     DPH,A
   \   000086   E0           MOVX    A,@DPTR
   \   000087   F9           MOV     R1,A
   \   000088   6007         JZ      ??lcdUpdateLine_4
   \   00008A   E5..         MOV     A,?V0 + 1
   \   00008C   C3           CLR     C
   \   00008D   9410         SUBB    A,#0x10
   \   00008F   40C5         JC      ??lcdUpdateLine_3
    189             for ( ;j < LINE_SIZE; j++){
   \                     ??lcdUpdateLine_4:
   \   000091   E5..         MOV     A,?V0 + 1
   \   000093   C3           CLR     C
   \   000094   9410         SUBB    A,#0x10
   \   000096   5027         JNC     ??lcdUpdateLine_5
    190                sendBuffer[i++] = lcdConvertChar(' ');
   \   000098                ; Setup parameters for call to function lcdConvertChar
   \   000098   7920         MOV     R1,#0x20
   \   00009A   90....       MOV     DPTR,#(lcdConvertChar & 0xffff)
   \   00009D   74..         MOV     A,#((lcdConvertChar >> 16) & 0xff)
   \   00009F   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   0000A2   85....       MOV     ?V0 + 2,?V0 + 0
   \   0000A5   85..82       MOV     DPL,?XSP + 0
   \   0000A8   85..83       MOV     DPH,?XSP + 1
   \   0000AB   E582         MOV     A,DPL
   \   0000AD   25..         ADD     A,?V0 + 2
   \   0000AF   F582         MOV     DPL,A
   \   0000B1   E583         MOV     A,DPH
   \   0000B3   3400         ADDC    A,#0x0
   \   0000B5   F583         MOV     DPH,A
   \   0000B7   E9           MOV     A,R1
   \   0000B8   F0           MOVX    @DPTR,A
   \   0000B9   05..         INC     ?V0 + 0
    191             }
   \   0000BB   05..         INC     ?V0 + 1
   \   0000BD   80D2         SJMP    ??lcdUpdateLine_4
    192             smbSend(sendBuffer, i);
   \                     ??lcdUpdateLine_5:
   \   0000BF                ; Setup parameters for call to function smbSend
   \   0000BF   A9..         MOV     R1,?V0 + 0
   \   0000C1   85..82       MOV     DPL,?XSP + 0
   \   0000C4   85..83       MOV     DPH,?XSP + 1
   \   0000C7   AA82         MOV     R2,DPL
   \   0000C9   AB83         MOV     R3,DPH
   \   0000CB   90....       MOV     DPTR,#(smbSend & 0xffff)
   \   0000CE   74..         MOV     A,#((smbSend >> 16) & 0xff)
   \   0000D0   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
    193          }
   \   0000D3   7432         MOV     A,#0x32
   \   0000D5   12....       LCALL   ?DEALLOC_XSTACK8
   \   0000D8                REQUIRE ?Subroutine2
   \   0000D8                ; // Fall through to label ?Subroutine2

   \                                 In segment BANKED_CODE, align 1, keep-with-next
   \                     ?Subroutine2:
   \   000000   7F04         MOV     R7,#0x4
   \   000002   02....       LJMP    ?BANKED_LEAVE_XDATA
    194          
    195          
    196          /******************************************************************************
    197          * See lcd.h for a description of this function.
    198          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    199          void lcdUpdateChar(UINT8 line, UINT8 position, char c){
   \                     lcdUpdateChar:
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9
   \   000005                ; Auto size: 0
   \   000005   E9           MOV     A,R1
   \   000006   FE           MOV     R6,A
   \   000007   EA           MOV     A,R2
   \   000008   FF           MOV     R7,A
   \   000009   EB           MOV     A,R3
   \   00000A   F9           MOV     R1,A
    200             lcdUpdateSymbol(line, position, lcdConvertChar(c));
   \   00000B                ; Setup parameters for call to function lcdUpdateSymbol
   \   00000B                ; Setup parameters for call to function lcdConvertChar
   \   00000B   90....       MOV     DPTR,#(lcdConvertChar & 0xffff)
   \   00000E   74..         MOV     A,#((lcdConvertChar >> 16) & 0xff)
   \   000010   12....       LCALL   ?BCALL               ; Banked call to: DPTR()
   \   000013   E9           MOV     A,R1
   \   000014   FB           MOV     R3,A
   \   000015   EF           MOV     A,R7
   \   000016   FA           MOV     R2,A
   \   000017   EE           MOV     A,R6
   \   000018   F9           MOV     R1,A
   \   000019   90....       MOV     DPTR,#(lcdUpdateSymbol & 0xffff)
   \   00001C   74..         MOV     A,#((lcdUpdateSymbol >> 16) & 0xff)
   \   00001E   02....       LJMP    ?Subroutine4 & 0xFFFF
    201          }
    202          
    203          
    204          /******************************************************************************
    205          * See lcd.h for a description of this function.
    206          ******************************************************************************/

   \                                 In segment BANKED_CODE, align 1, keep-with-next
    207          void lcdUpdateSymbol(UINT8 line, UINT8 position, char c){
   \                     lcdUpdateSymbol:
   \   000000   74F7         MOV     A,#-0x9
   \   000002   12....       LCALL   ?BANKED_ENTER_XDATA
   \   000005                ; Saved register size: 9

⌨️ 快捷键说明

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