📄 hal_lcd.lst
字号:
330 uint8 tmpLen;
331 uint8 buf[LCD_MAX_BUF];
332 uint32 err;
333
334 tmpLen = (uint8)osal_strlen( (char*)title );
\ 000014 ; Setup parameters for call to function osal_strlen
\ 000014 90.... MOV DPTR,#(osal_strlen & 0xffff)
\ 000017 74.. MOV A,#((osal_strlen >> 16) & 0xff)
\ 000019 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00001C EA MOV A,R2
\ 00001D F5.. MOV ?V0 + 4,A
335 osal_memcpy( buf, title, tmpLen );
\ 00001F ; Setup parameters for call to function osal_memcpy
\ 00001F 75..00 MOV ?V0 + 2,#0x0
\ 000022 78.. MOV R0,#?V0 + 0
\ 000024 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 000027 EA MOV A,R2
\ 000028 FC MOV R4,A
\ 000029 7D00 MOV R5,#0x0
\ 00002B 7403 MOV A,#0x3
\ 00002D 12.... LCALL ?XSTACK_DISP0_8
\ 000030 AA82 MOV R2,DPL
\ 000032 AB83 MOV R3,DPH
\ 000034 90.... MOV DPTR,#(osal_memcpy & 0xffff)
\ 000037 74.. MOV A,#((osal_memcpy >> 16) & 0xff)
\ 000039 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00003C 7403 MOV A,#0x3
\ 00003E 12.... LCALL ?DEALLOC_XSTACK8
336 buf[tmpLen] = ' ';
\ 000041 85..82 MOV DPL,?XSP + 0
\ 000044 85..83 MOV DPH,?XSP + 1
\ 000047 E582 MOV A,DPL
\ 000049 25.. ADD A,?V0 + 4
\ 00004B F582 MOV DPL,A
\ 00004D E583 MOV A,DPH
\ 00004F 3400 ADDC A,#0x0
\ 000051 F583 MOV DPH,A
\ 000053 7420 MOV A,#0x20
\ 000055 F0 MOVX @DPTR,A
337 err = (uint32)(value);
338 _ltoa( err, &buf[tmpLen+1], format );
\ 000056 ; Setup parameters for call to function _ltoa
\ 000056 A3 INC DPTR
\ 000057 8582.. MOV ?V0 + 0,DPL
\ 00005A 8583.. MOV ?V0 + 1,DPH
\ 00005D 78.. MOV R0,#?V0 + 0
\ 00005F 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 000062 A9.. MOV R1,?V0 + 3
\ 000064 8E.. MOV ?V0 + 0,R6
\ 000066 8F.. MOV ?V0 + 1,R7
\ 000068 AA.. MOV R2,?V0 + 0
\ 00006A AB.. MOV R3,?V0 + 1
\ 00006C 7C00 MOV R4,#0x0
\ 00006E 7D00 MOV R5,#0x0
\ 000070 02.... LJMP ?Subroutine3 & 0xFFFF
339 HalLcdWriteString( (char*)buf, line );
340 #endif /* HAL_LCD */
341 }
342
343 /**************************************************************************************************
344 * @fn HalLcdWriteStringValue
345 *
346 * @brief Write a string followed by a value to the LCD
347 *
348 * @param title -
349 * value1 -
350 * format1 -
351 * value2 -
352 * format2 -
353 * line -
354 *
355 * @return None
356 **************************************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
357 void HalLcdWriteStringValueValue( char *title, uint16 value1, uint8 format1,
\ HalLcdWriteStringValueValue:
358 uint16 value2, byte format2, uint8 line )
359 {
\ 000000 74F0 MOV A,#-0x10
\ 000002 12.... LCALL ?BANKED_ENTER_XDATA
\ 000005 ; Saved register size: 16
\ 000005 ; Auto size: 25
\ 000005 74E7 MOV A,#-0x19
\ 000007 12.... LCALL ?ALLOC_XSTACK8
\ 00000A 8A.. MOV ?V0 + 0,R2
\ 00000C 8B.. MOV ?V0 + 1,R3
\ 00000E EC MOV A,R4
\ 00000F FE MOV R6,A
\ 000010 ED MOV A,R5
\ 000011 FF MOV R7,A
\ 000012 89.. MOV ?V0 + 3,R1
\ 000014 7429 MOV A,#0x29
\ 000016 12.... LCALL ?XSTACK_DISP0_8
\ 000019 E0 MOVX A,@DPTR
\ 00001A F5.. MOV ?V0 + 6,A
\ 00001C A3 INC DPTR
\ 00001D E0 MOVX A,@DPTR
\ 00001E F5.. MOV ?V0 + 7,A
360 #if (HAL_LCD == TRUE)
361 uint8 tmpLen;
362 uint8 buf[LCD_MAX_BUF];
363 uint32 err;
364
365 tmpLen = (uint8)osal_strlen( (char*)title );
\ 000020 ; Setup parameters for call to function osal_strlen
\ 000020 90.... MOV DPTR,#(osal_strlen & 0xffff)
\ 000023 74.. MOV A,#((osal_strlen >> 16) & 0xff)
\ 000025 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000028 EA MOV A,R2
\ 000029 F5.. MOV ?V0 + 4,A
366 if ( tmpLen )
\ 00002B 6029 JZ ??HalLcdWriteStringValueValue_0
367 {
368 osal_memcpy( buf, title, tmpLen );
\ 00002D ; Setup parameters for call to function osal_memcpy
\ 00002D 75..00 MOV ?V0 + 2,#0x0
\ 000030 78.. MOV R0,#?V0 + 0
\ 000032 12.... LCALL ?PUSH_XSTACK_I_THREE
\ 000035 EA MOV A,R2
\ 000036 F5.. MOV ?V0 + 0,A
\ 000038 FC MOV R4,A
\ 000039 7D00 MOV R5,#0x0
\ 00003B 7403 MOV A,#0x3
\ 00003D 12.... LCALL ?XSTACK_DISP0_8
\ 000040 AA82 MOV R2,DPL
\ 000042 AB83 MOV R3,DPH
\ 000044 90.... MOV DPTR,#(osal_memcpy & 0xffff)
\ 000047 74.. MOV A,#((osal_memcpy >> 16) & 0xff)
\ 000049 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00004C 7403 MOV A,#0x3
\ 00004E 12.... LCALL ?DEALLOC_XSTACK8
369 buf[tmpLen++] = ' ';
\ 000051 12.... LCALL ?Subroutine0 & 0xFFFF
\ ??CrossCallReturnLabel_0:
\ 000054 05.. INC ?V0 + 4
370 }
371
372 err = (uint32)(value1);
373 _ltoa( err, &buf[tmpLen], format1 );
\ ??HalLcdWriteStringValueValue_0:
\ 000056 ; Setup parameters for call to function _ltoa
\ 000056 85..82 MOV DPL,?XSP + 0
\ 000059 85..83 MOV DPH,?XSP + 1
\ 00005C E582 MOV A,DPL
\ 00005E 25.. ADD A,?V0 + 4
\ 000060 F5.. MOV ?V0 + 0,A
\ 000062 E583 MOV A,DPH
\ 000064 3400 ADDC A,#0x0
\ 000066 F5.. MOV ?V0 + 1,A
\ 000068 78.. MOV R0,#?V0 + 0
\ 00006A 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 00006D A9.. MOV R1,?V0 + 3
\ 00006F 8E.. MOV ?V0 + 0,R6
\ 000071 8F.. MOV ?V0 + 1,R7
\ 000073 AA.. MOV R2,?V0 + 0
\ 000075 AB.. MOV R3,?V0 + 1
\ 000077 7C00 MOV R4,#0x0
\ 000079 7D00 MOV R5,#0x0
\ 00007B 90.... MOV DPTR,#(_ltoa & 0xffff)
\ 00007E 74.. MOV A,#((_ltoa >> 16) & 0xff)
\ 000080 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 000083 7402 MOV A,#0x2
\ 000085 12.... LCALL ?DEALLOC_XSTACK8
374 tmpLen = (uint8)osal_strlen( (char*)buf );
\ 000088 ; Setup parameters for call to function osal_strlen
\ 000088 85..82 MOV DPL,?XSP + 0
\ 00008B 85..83 MOV DPH,?XSP + 1
\ 00008E AA82 MOV R2,DPL
\ 000090 AB83 MOV R3,DPH
\ 000092 90.... MOV DPTR,#(osal_strlen & 0xffff)
\ 000095 74.. MOV A,#((osal_strlen >> 16) & 0xff)
\ 000097 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 00009A EA MOV A,R2
\ 00009B F5.. MOV ?V0 + 4,A
375
376 buf[tmpLen++] = ',';
\ 00009D F5.. MOV ?V0 + 0,A
\ 00009F 12.... LCALL ?Subroutine1 & 0xFFFF
\ ??CrossCallReturnLabel_2:
\ 0000A2 742C MOV A,#0x2c
\ 0000A4 F0 MOVX @DPTR,A
\ 0000A5 05.. INC ?V0 + 4
377 buf[tmpLen++] = ' ';
\ 0000A7 85.... MOV ?V0 + 0,?V0 + 4
\ 0000AA 12.... LCALL ?Subroutine0 & 0xFFFF
378 err = (uint32)(value2);
379 _ltoa( err, &buf[tmpLen], format2 );
\ ??CrossCallReturnLabel_1:
\ 0000AD ; Setup parameters for call to function _ltoa
\ 0000AD 7401 MOV A,#0x1
\ 0000AF 25.. ADD A,?V0 + 4
\ 0000B1 F8 MOV R0,A
\ 0000B2 85..82 MOV DPL,?XSP + 0
\ 0000B5 85..83 MOV DPH,?XSP + 1
\ 0000B8 E582 MOV A,DPL
\ 0000BA 28 ADD A,R0
\ 0000BB F5.. MOV ?V0 + 0,A
\ 0000BD E583 MOV A,DPH
\ 0000BF 3400 ADDC A,#0x0
\ 0000C1 F5.. MOV ?V0 + 1,A
\ 0000C3 78.. MOV R0,#?V0 + 0
\ 0000C5 12.... LCALL ?PUSH_XSTACK_I_TWO
\ 0000C8 742D MOV A,#0x2d
\ 0000CA 12.... LCALL ?XSTACK_DISP0_8
\ 0000CD E0 MOVX A,@DPTR
\ 0000CE F9 MOV R1,A
\ 0000CF AA.. MOV R2,?V0 + 6
\ 0000D1 AB.. MOV R3,?V0 + 7
\ 0000D3 7C00 MOV R4,#0x0
\ 0000D5 7D00 MOV R5,#0x0
\ 0000D7 90.... MOV DPTR,#(_ltoa & 0xffff)
\ 0000DA 74.. MOV A,#((_ltoa >> 16) & 0xff)
\ 0000DC 12.... LCALL ?BCALL ; Banked call to: DPTR()
\ 0000DF 7402 MOV A,#0x2
\ 0000E1 12.... LCALL ?DEALLOC_XSTACK8
380
381 HalLcdWriteString( (char *)buf, line );
382 #endif /* HAL_LCD */
383 }
\ 0000E4 7419 MOV A,#0x19
\ 0000E6 12.... LCALL ?DEALLOC_XSTACK8
\ 0000E9 7F08 MOV R7,#0x8
\ 0000EB 02.... LJMP ?BANKED_LEAVE_XDATA
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine0:
\ 000000 12.... LCALL ?Subroutine2 & 0xFFFF
\ ??CrossCallReturnLabel_4:
\ 000003 7420 MOV A,#0x20
\ 000005 F0 MOVX @DPTR,A
\ 000006 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine1:
\ 000000 12.... LCALL ?Subroutine2 & 0xFFFF
\ ??CrossCallReturnLabel_5:
\ 000003 22 RET
\ In segment BANKED_CODE, align 1, keep-with-next
\ ?Subroutine2:
\ 000000 85..82 MOV DPL,?XSP + 0
\ 000003 85..83 MOV DPH,?XSP + 1
\ 000006 E582 MOV A,DPL
\ 000008 25.. ADD A,?V0 + 0
\ 00000A F582 MOV DPL,A
\ 00000C E583 MOV A,DPH
\ 00000E 3400 ADDC A,#0x0
\ 000010 F583 MOV DPH,A
\ 000012 22 RET
384
385 /**************************************************************************************************
386 * @fn HalLcdDisplayPercentBar
387 *
388 * @brief Display percentage bar on the LCD
389 *
390 * @param title -
391 * value -
392 *
393 * @return None
394 **************************************************************************************************/
\ In segment BANKED_CODE, align 1, keep-with-next
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -