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

📄 fat_test.asm

📁 给香港公司做的出口欧洲的电子称项目全部源代码 CPU:KS57C2308 RANGE:(0 -150KG)/d = 0.1kg
💻 ASM
字号:
;MODULE:   FAT_TEST                    ;
;FUNCTION: TEST FAT RATE               ;
;**************************************;
FAT_STATE_CON    EQU    07             ;
;**************************************;
        ORG  1600H                     ;
        JPS      FAT_CASE0             ; DISPLAY "OOOO"
        JPS      FAT_CASE1             ; TEST FAT_RATE
        JPS      FAT_CASE2             ;-----\
        JPS      FAT_CASE3             ;     | 
        JPS      FAT_CASE4             ;     |--- FLASH WEIGHT & FAT_RATE
        JPS      FAT_CASE5             ;-----/
        JPS      FAT_CASE6             ; CHK e_POLE
FAT_TEST:                              ;
        BTST     FAT_MODULE_EN         ; FAT_MODULE_EN = 1 ?
        RET                            ; NO. EXIT
;--------------------                  ;
        LD       L,#FAT_STATE_CON      ;
        LD       A,FAT_STATE           ;
        CALL     CHK_STATE             ; CHECK FAT STATE
;--------------------                  ;
        LD       WX,#0H                ;
        LD       A,FAT_STATE           ;
        LD       E,#0                  ;
        ADS      EA,EA                 ;
        ADS      EA,WX                 ;
        JR       @EA                   ;
;**************************************;
FAT_CASE0:                             ;
        LD       A,#0                  ;
        LD       DIS_FAT_CNT,A         ;
        CALL     DISP_8888             ;
        CALL     LD_FAT_DLY1           ;
        INCS     FAT_STATE             ; FAT_STATE + +
        LD       EA,#OOOO              ;
        JPS      TIP_DISP              ; DISP "oooo"
;**************************************;
FAT_CASE1:                             ;
        BTST     MAN_ON_SCALE          ; MAN ON SCALE ?
        JPS      FAT_CASE1_6           ; NO.
        CALL     CHK_HUMAN             ; YES. TOUCH IS OK ?
        BTST     C                     ;
        JPS      FAT_CASE1_0           ;      YES.
        JPS      FAT_CASE1_6           ;      NO.
FAT_CASE1_0:                           ;
        INCS     FAT_DLY+0             ;
        RET                            ;
        INCS     FAT_DLY+1             ;
        RET                            ;
        INCS     DIS_FAT_CNT           ;
        LD       A,DIS_FAT_CNT         ;
        CPSE     A,#01                 ;
        JPS      FAT_CASE1_1           ;
        LD       EA,#XOOO              ; DISPLAY " ooo"
        JPS      FAT_CASE1_C           ;
FAT_CASE1_1:                           ;
        CPSE     A,#02                 ;
        JPS      FAT_CASE1_2           ;
        LD       EA,#XXOO              ; DISPLAY "  oo"
        JPS      FAT_CASE1_C           ;
FAT_CASE1_2:                           ;
        CPSE     A,#03                 ;
        JPS      FAT_CASE1_4           ;
        LD       EA,#XXXO              ; DISPLAY "   o"
        JPS      FAT_CASE1_C           ;
FAT_CASE1_4:                           ;
        CPSE     A,#04H                ;
        JPS      FAT_CASE1_5           ;
        LD       EA,#XXXX              ;
FAT_CASE1_C:                           ;
        CALL     TIP_DISP              ;
        JPS      LD_FAT_DLY1           ; RESET THE INTERVAL OF DISPLAY "OOOO" "OOO" "OO" "O"
FAT_CASE1_5:                           ;
        CALL     CALCUL_RES            ; WHEN DISPLAY "OOOO" OVER, CALCULATE BODY RESISTANCE
        CALL     CALCULATE_FAT         ; CALCULATE THE FAT_RATE...
        CALL     CAL_WATER_RATE        ; CALCUCATE THE WATER_RATE
        LD       A,#(16-3)             ;
        LD       DIS_FAT_CNT,A         ; SET THE CNT TO DISPLAY WEIGHT AND FAT RATE BY TURNS.
        BITR     FAT_TEST_EN           ;
        INCS     FAT_STATE             ; FAT_STATE++
        JPS      DISP_HEIGHT           ;
;----------------------                ;
FAT_CASE1_6:                           ;
        LD       EA,#MD_LINE           ; DISPLAY "----"
        CALL     TIP_DISP              ;
        LD       EA,#00H               ;
        LD       FAT_DLY+0,EA          ;
        LD       A,#(16-3)             ;
        LD       FAT_DLY+2,A           ;
        LD       A,#06H                ;
        LD       FAT_STATE,A           ;
        RET                            ;
;**************************************;
;DISPLAY PAGE1, WEIGHT AND HEIGHT      ;
FAT_CASE2:                             ;
        CALL     DISP_WEIGHT_HEIGHT    ;
        CALL     LD_FAT_DLY2           ;
        INCS     FAT_STATE             ; FAT_STATE ++
        RET                            ;
;**************************************;
FAT_CASE3:                             ;
        INCS     FAT_DLY+0             ;
        RET                            ;
        INCS     FAT_DLY+1             ;
        RET                            ;
        INCS     FAT_DLY+2             ;
        RET                            ;
        INCS     FAT_STATE             ;  FAT_STATE ++
        RET                            ;
;**************************************;
; DISPLAY FAT AND WATER RATE           ;
FAT_CASE4:                             ;
        CALL     DISP_WATER_FAT_RATE   ;
        CALL     LD_FAT_DLY2           ;
        INCS     FAT_STATE             ; FAT_STATE ++
        RET                            ;
;**************************************;
;**************************************;
FAT_CASE5:                             ;
        INCS     FAT_DLY+0             ;
        RET                            ;
        INCS     FAT_DLY+1             ;
        RET                            ;
        INCS     FAT_DLY+2             ;
        RET                            ;
        INCS     DIS_FAT_CNT           ; DIS_FAT_CNT FULL ?
        JPS      FAT_CASE5_1           ; NO.
        JPS      TURN_OFF_PWR          ; YES.TURN OFF PWR
FAT_CASE5_1:                           ;  |
        LD       A,#02H                ;  |
        LD       FAT_STATE,A           ;  NO. GO ON DISPLAY WEIGHT ,AGE, WATER_FAT_RATE BY TURN.
        RET                            ;
;**************************************;
FAT_CASE6:                             ;
       BTST      MAN_ON_SCALE          ; MAN ON SCALE ?
       JPS       RET_NORMAL_SCALE      ; NO.
       CALL      CHK_HUMAN             ; YES
       BTST      C                     ;    & TOUCH IS OK ?
       JPS       FAT_CASE6_1           ;      YES.
       INCS      FAT_DLY+0             ;
       RET                             ;
       INCS      FAT_DLY+1             ;
       RET                             ;
       INCS      FAT_DLY+2             ;      NO.
       RET                             ;
       SMB      15                     ;
       BITR     FAT_CONTROL            ;
       BITR     TOE0                   ;
       SMB      0                      ;
       JPS       TURN_OFF_PWR          ; WHEN TIME IS OUT AND TOUCH IS NOT OK, TURN OFF PWR
FAT_CASE6_1:                           ;
       LD        A,#0                  ; IF TOUCH IS OK, DISPLAY "OOOO".."O" AGAIN.
       LD        FAT_STATE,A           ; TEST FAT ONCE MORE
       RET                             ;
;**************************************;
INIT_FAT_TEST:                         ;
        BITR     DP2_EN                ; DISABLE DP2 MODULE
        BITR     KEYSCAN_EN            ; DISABLE KB  MODULE
        BITR     SET_EN                ; DISABLE SET MODULE
        BITS     FAT_MODULE_EN         ; START FAT TEST MODULE
        LD       A,#FAT_MODE_CON       ;
        LD       RUN_MODE_REG,A        ;
        LD       A,#0                  ;
        LD       FAT_STATE,A           ;
        SMB      15                    ;
        BITS     FAT_CONTROL           ;
        BITR     P2.0                  ;
        BITS     TOE0                  ;
        SMB      0                     ;
;------------------------              ;
;WEIGHT <= WEIGHT/10                   ;
        LD2B     BCC_BUF,WEIGHT        ;
        LD       EA,#10                ;
        BTST     KG_FLAG               ; UNIT IS KG ?
        LD       EA,#22                ; NO.
        LD       ACC_BUF,EA            ; YES.
        LD       EA,#00                ;
        LD       BCC_BUF+4,EA          ;
        LD       BCC_BUF+6,EA          ;
        LD       ACC_BUF+2,EA          ;
        CALL     CW_DIV                ;
        LD2B     WEIGHT,CCC_BUF        ; THIS VALUE USE FOR CALAULATE FAT ...
        RET                            ;
;**************************************;

;**************************************;
;IF SEX IS FEMEALE,BODY_RES = 550      ;
;ELSE:                                 ;
;IF(WEIGHT / HEIGHT) < 3 BODY_RES = 600;
; ELSE BODY_RES= 500.                  ;
CALCUL_RES:                            ;
        BTST     SEX                   ; SEX = 1 ? (MALE)
        JPS      RES_500               ; NO.
;---------------------                 ;
;MALE BODY_RES = 650                   ;
RES_650:SMB      1                     ;
        LD       EA,#0A8H              ; YES. BODY_RES: 680
        LD       BODY_RES,EA           ;
        LD       EA,#02H               ;
        LD       BODY_RES+2,EA         ;
        SMB      0                     ;
        RET                            ;
;---------------------                 ;
;FEMALE BODY_RES = 500                 ;
RES_500:SMB      1                     ;
        LD       EA,#0F4H              ; BODY_RES: 500
        LD       BODY_RES,EA           ;
        LD       EA,#01H               ;
        LD       BODY_RES+2,EA         ;
        SMB      0                     ;
        RET                            ;
;**************************************;

;**************************************;
LD_FAT_DLY2:                           ;
        LD       A,#(16-4)             ; DELAY 2S
        LD       FAT_DLY+2,A           ;
LD_FAT_DLY1:                           ;
        LD       EA,#(265-256)         ;
        LD       FAT_DLY+0,EA          ; DELAY 1S
        RET                            ;
;**************************************;

;**************************************;
RET_NORMAL_SCALE:                      ;
        BITR     FAT_MODULE_EN         ;
        BITS     DP2_EN                ;
        BITS     CAL_WT_EN             ; ENABLE CALCULATE WEIGHT
        LD       A,#SCALE_MODE_CON     ;
        LD       RUN_MODE_REG,A        ;
        LD       A,#0                  ;
        LD       DP_STATE,A            ;
        CALL     DISP_8888             ;
        CALL     INIT_KB               ;
        CALL     LD_AUTOFF_CNT         ;
        BTST     FAT_TEST_EN           ;
        RET                            ;
        CALL     DISP_AGE              ;
        CALL     DISP_HEIGHT           ;
        JP       SEX_ICON_ON           ;
;**************************************;

;**************************************;
;C = 1: NO MAN ON SCALE                ;
;C = 0: MAN ON SCALE                   ;
CHK_HUMAN:                             ;
        BITR     EMB                   ;
        LDB      C,FAT_IN             ; 
        RET                            ;
;**************************************;

;**************************************;
;DISPLAY ERR1,2,3,4,5.... NO BANK RESTRICT
DISP_ERR1:                             ;
        LD       EA,#ERR1              ;
        JPS      DISP_ERR_COM          ;
DISP_ERR2:                             ;
        LD       EA,#ERR2              ;
        JPS      DISP_ERR_COM          ;
DISP_ERR3:                             ;
        LD       EA,#ERR3              ;
        JPS      DISP_ERR_COM          ;
DISP_ERR4:                             ;
        LD       EA,#ERR4              ;
        JPS      DISP_ERR_COM          ;
DISP_ERR5:                             ;
        LD       EA,#ERR5              ;
        JPS      DISP_ERR_COM          ;
DISP_ERR:                              ;
        LD       EA,#ERR               ;
DISP_ERR_COM:                          ;
        LD       WX,EA                 ;
        LD       A,#0                  ;
        CALL     DISP_8888             ;
        LD       EA,WX                 ;
        CALL     TIP_DISP              ;
        JPS      DLY5S_OFF_PWR         ;
;**************************************;

⌨️ 快捷键说明

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