📄 lcd.asm
字号:
LD EA,#00 ; TURN OFF UP_DIGIT
CALL UP_DIGIT_DISP ;
SMB 1 ;
BITR FRACTION_LINE ;
SMB 0 ;
LD EA,#LCD_OFF_CON ;
CALL DN_DIGIT_DISP ;
RET ;
;**************************************;
;CHK DISPLAY ON OR OFF MINUS ......
CHK_MINUS: ;
BITR DISP_MINUS_ON ;
BTSF POSITIVE_FLAG ; IS " + " ?
JPS DISP_WT ; YES. RETURN TO DW_0
LD A,BCC_BUF+3 ;
CPSE A,#0 ; [BCC_BUF+3] = 0 ?
JP DISP_ERR ; NO.DISP " E"
DISM_0: LD A,BCC_BUF+2 ; YES.
CPSE A,#0 ; [BCC_BUF+2] = 0 ?
JPS DISM_1 ; NO.
LD EA,BCC_BUF+0 ; YES.
LD WX,#00 ;
CPSE EA,WX ; [BCC_BUF+0 +1] = 0 ?
JPS DISM_1 ; |
JPS DISP_WT ; YES. DISP OFF "-"
DISM_1: BITS DISP_MINUS_ON ; NO. DISP ON "-"
JPS DISP_WT ;
;**************************************;
;**************************************;
SEX_ICON_ON: ;
BTST SEX ;
JPS SEX_ON_1 ;
SMB 1 ;
BITS MALE_ICON ;
BITR FEMALE_ICON ;
JPS SEX_ON_2 ;
SEX_ON_1: ;
SMB 1 ;
BITR MALE_ICON ;
BITS FEMALE_ICON ;
SEX_ON_2: ;
SMB 0 ;
RET ;
;**************************************;
;**************************************;
SEX_ICON_OFF: ;
SMB 1 ;
BITR MALE_ICON ;
BITR FEMALE_ICON ;
SMB 0 ;
RET ;
;**************************************;
;**************************************;
KG_ON: SMB 1 ;
BITS KG_POINT ;
BITS KG_ICON ;
SMB 0 ;
RET ;
;**************************************;
;**************************************;
LB_ON: SMB 1 ;
BITS KG_POINT ;
BITS LB_ICON ;
SMB 0 ;
RET ;
;**************************************;
;**************************************;
STONE_ON: ;
SMB 1 ;
BITS ST_POINT ;
BITS ST_ICON ;
SMB 0 ;
RET ;
;**************************************;
;**************************************;
; A = #1111B ALL SEGMENT ON ;
; A = #0000B ALL SEGMENT OFF ;
DISP_8888: ;
SMB 1 ; SMB = 1
LD HL,#0E0H ; [1E0H - 1FFH] <== 1111B
DISP_8888_1: ;
LD @HL,A ;
INCS HL ;
JPS DISP_8888_1 ;
SMB 0 ;
RET ;
;**************************************;
;***************************************************************************;
; DISP USER_NUM ;
;***************************************************************************;
;**************************************;
; USE FOR DISPALY USER NUMBER ;
DISP_NUM: ;
LD A,USER_NUM ;
CPSE A,#0 ;
JPS DISP_NUM_1 ;
LD EA,#NUM1_12 ;
JPS TIP_DISP ;
DISP_NUM_1: ;
LD EA,#14H ; / - 01 - / / - 02 - / ...... / - 10 - /
LD BCC_BUF+6,EA ;
LD BCC_BUF+0,EA ;
LD EA,#00H ;
LD BCC_BUF+4,EA ;
LD A,USER_NUM ;
LD HL,#0AH ;
RCF ;
SBC EA,HL ; USER_NUM <10?
BTST C ;
JPS DISP_NUM_2 ; YES.
LD E,#0H ;
LD A,USER_NUM ;
LD BCC_BUF+2,EA ;
JPS DISP_NUM3 ;
DISP_NUM_2: ;
LD BCC_BUF+2,EA ; NO
LD EA,#01H ;
LD BCC_BUF+4,EA ;
DISP_NUM3:
JPS DIGIT1234_DISP ;
;**************************************;
;FUNCTION: DISPLAY USER INFO: HEIGHT ;
;INPUT: HEIGHT ;
DISP_HEIGHT: ;
BTST KG_FLAG ; UNIT IS KG ?
JPS DISP_HT1 ; NO.
LD EA,HEIGHT ; YES.
LD CCC_BUF+0,EA ;
LD EA,#00 ;
LD CCC_BUF+2,EA ;
CALL HEX_BCD ; [BCC_BUF+2] [BCC_BUF+1] [BCC_BUF+0]
JPS DISP_HT_RET ;
DISP_HT1: ;
LD A,HT_BUF+1 ; [HT_BUF+1]: FOOT
LD BCC_BUF+2,A ; [HT_BUF+0]: INCH
;-------------------- ;
LD A,HT_BUF+0 ;
CPSE A,#0AH ;
JPS DISP_HT2 ;
LD A,#01H ;
LD BCC_BUF+1,A ; 0A ---> 1 0
LD A,#0 ;
LD BCC_BUF+0,A ;
JPS DISP_HT_RET ;
DISP_HT2: ;
CPSE A,#0BH ;
JPS DISP_HT3 ;
LD A,#1 ;
LD BCC_BUF+0,A ; 0B ---> 1 1
LD BCC_BUF+1,A ;
JPS DISP_HT_RET ;
DISP_HT3: ;
LD A,HT_BUF+0 ;
LD BCC_BUF+0,A ;
LD A,#00B ;
LD BCC_BUF+1,A ;
DISP_HT_RET: ;
LD A,BCC_BUF+2 ;
LD E,#0 ;
LD BCC_BUF+4,EA ;
LD A,BCC_BUF+1 ;
LD BCC_BUF+2,EA ;
LD A,BCC_BUF+0 ;
LD BCC_BUF+0,EA ;
CALL DIGIT789_DISP ;
BTST KG_FLAG ; UNIT IS KG ?
JPS HIO_1 ;
SMB 1 ;
BITS CM_ICON ;
JPS HIO_2 ;
HIO_1: SMB 1 ;
BITS FT_POINT ;
BITS INCH_ICON ;
HIO_2: BITS HEIGHT_ICON ;
SMB 0 ;
RET ;
;**************************************;
;**************************************;
;FUNCTION: DISPLAY USER INFO: AGE ;
;INPUT: AGE ;
DISP_AGE: ;
LD EA,AGE ;
LD CCC_BUF+0,EA ;
LD EA,#00 ;
LD CCC_BUF+2,EA ;
CALL HEX_BCD ;
LD A,BCC_BUF+1 ;
LD E,#0 ;
LD BCC_BUF+2,EA ;
LD A,BCC_BUF+0 ;
LD BCC_BUF+0,EA ;
SMB 1 ;
BITS AGE_ICON ;
SMB 0 ;
JPS DIGIT_AB_DISP ; <<<<<<<<<<<<
RET ;
;**************************************;
;**************************************;
;FUNCTION: TURN OF DIGIT 7,8,9 ;
DIGIT789_OFF: ;
SMB 1 ;
BITR FT_POINT ;
SMB 0 ;
LD EA,#LCD_OFF_CON ;
LD BCC_BUF+4,EA ;
LD BCC_BUF+2,EA ;
LD BCC_BUF+0,EA ;
JPS DIGIT789_DISP ;
;**************************************;
;**************************************;
;FUNCTION: TURN OF DIGIT A,B ;
DIGIT_AB_OFF: ;
SMB 0 ;
LD EA,#LCD_OFF_CON ;
LD BCC_BUF+2,EA ;
LD BCC_BUF+0,EA ;
JPS DIGIT_AB_DISP ;
;**************************************;
;****************************************;
;PAGE1 DISPLAY WEIGHT ,HEIGHT AND AGE
;****************************************;
DISP_WEIGHT_HEIGHT: ;
LD A,#0 ;
CALL DISP_8888 ;
CALL SEX_ICON_ON ;
LD2B BCC_BUF,WT_BCD ;
CALL DISP_WEIGHT ;
CALL DISP_HEIGHT ;
CALL DISP_AGE ;
RET
;*****************************************;
;PAGE2,DISPLAY AGE,WATER_RATE AND FAT_RATE
;*****************************************;
DISP_WATER_FAT_RATE:
LD A,#0 ;
CALL DISP_8888 ;
CALL SEX_ICON_ON ;
CALL DISP_AGE ;
LD2B BCC_BUF,FAT_RATE ;
LD A,BCC_BUF+3 ;
LD BCC_BUF+6,A ;
LD A,BCC_BUF+2 ;
LD BCC_BUF+4,A ;
LD A,BCC_BUF+1 ;
LD BCC_BUF+2,A ;
LD A,#0 ;
LD BCC_BUF+7,A ;
LD BCC_BUF+5,A ;
LD BCC_BUF+3,A ;
LD BCC_BUF+1,A ;
LD EA,#LCD_OFF_CON ;
LD BCC_BUF+6,EA ;
LD A,BCC_BUF+4 ;
CPSE A,#0 ;
JPS FAT_RATE_1 ;
LD EA,#LCD_OFF_CON ;
LD BCC_BUF+4,EA ;
FAT_RATE_1:
CALL DIGIT1234_DISP ;
SMB 1 ;
BITS FAT_ICON ;
BITS WATER_ICON ;
BITS KG_POINT ;
BITS P2_POINT ;
SMB 1 ;
LD E,#0 ;
LD A,WATER_RATE+2 ;
SMB 0 ;
LD BCC_BUF+4,EA ;
SMB 1 ;
LD A,WATER_RATE+1 ;
SMB 0 ;
LD BCC_BUF+2,EA ;
SMB 1 ;
LD A,WATER_RATE+0 ;
SMB 0 ;
LD BCC_BUF+0,EA ;
CALL DIGIT789_DISP ;
RET ;
;**************************************;
;***************************************************************************;
; DISP_USER_INFO ;
;***************************************************************************;
;INPUT:[FLASH_DISP_ON] ;
; [INFO_PTR] ;
; [FAT_TEST_EN] ;
; IF FAT_TEST_EN = 1, DISPLAY USER'S HEIGHT,SEX,AGE AND USER_NUM
;**************************************;
DISP_USER_INFO: ;
BTSF FAT_TEST_EN ; FAT_TEST_EN = 1 ?
JPS DISP_ALL_INFO ; YES. DISPLAY ALL INFO
LD A,INFO_PTR ; NO. THEN DISPLAY EACH ITEM'S INFO
;------------------ ;
CPSE A,#00 ; DISPLAY USER_NUM
JPS DUI_1 ;
BTSF FLASH_DISP_ON ; FLASH ON ?
JPS DISP_NUM ; YES.
LD EA,#XXXX ; NO.
JPS TIP_DISP ;
;------------------ ;
DUI_1: CPSE A,#01 ; DISPLAY SEX
JPS DUI_2 ;
CALL DISP_NUM ;
BTST FLASH_DISP_ON ; FLASH ON ?
JPS SEX_ICON_OFF ; NO.
JPS SEX_ICON_ON ; YES.
;------------------ ;
DUI_2: CPSE A,#02 ;
JPS DUI_3 ; DISPLAY HEIGHT
CALL SEX_ICON_ON ;
BTST FLASH_DISP_ON ; FLASH ON ? (AGE)
JPS DIGIT_AB_OFF ; NO.
JPS DISP_AGE ; YES.
;------------------- ;
DUI_3: CALL DISP_AGE ;
BTST FLASH_DISP_ON ; FLASH ON ?
JPS DIGIT789_OFF ; NO.
JPS DISP_HEIGHT ; YES.
;------------------ ;
DISP_ALL_INFO: ;
CALL SEX_ICON_ON ;
JPS DISP_AGE ;
JPS DISP_HEIGHT ;
RET ;
;**************************************;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -