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

📄 lcd.asm

📁 给香港公司做的出口欧洲的电子称项目全部源代码 CPU:KS57C2308 RANGE:(0 -150KG)/d = 0.1kg
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        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 + -