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

📄 cal.asm

📁 给香港公司做的出口欧洲的电子称项目全部源代码 CPU:KS57C2308 RANGE:(0 -150KG)/d = 0.1kg
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;PRJ: FAT SCALE
;**************************************;
;MODULE:   CAL.ASM                     ;
;FUNCTION: CALIBRATE SCALE             ;
;INPUT:  [CAL_PRESSED]                 ;
;OUTPUT: [CNT10] [CNT12]               ;
;**************************************;
CAL_STATE_CON   EQU      11            ;
;***************************************************************************;
;                                 CALIBRATION                               ;
;***************************************************************************;
        ORG      620H                  ;
        JPS      CAL_CASE0             ; TEST LCD
        JPS      CAL_CASE1             ; DELAY
        JPS      CAL_CASE2             ; DISPLAY ABSLUTE COUNTS (HEX)
        JPS      CAL_CASE3             ; DISP "R120"
        JPS      CAL_CASE4             ; DELAY & DISP RELATIVE COUNTS(BCD)
        JPS      CAL_CASE5             ; DISP "CAL2"
        JPS      CAL_CASE6             ; DELAY & DISP "R40"
        JPS      CAL_CASE7             ; DELAY
        JPS      CAL_CASE8             ; DISP "CAL1"
        JPS      CAL_CASE9             ; DELAY
        JPS      CAL_CASE10            ; ANALYSE & SAVE DATA TO EEP & PWR OFF
CALIBRATION:                           ;
        BTST     CAL_EN                ; CAL_EN = 1?
        RET                            ; NO. EXIT
;-----------------                     ;
        LD       L,#CAL_STATE_CON      ;
        LD       A,CAL_STATE           ;
        CALL     CHK_STATE             ; CHECK CAL STATE
;-----------------                     ;
        LD       WX,#20H               ;
        LD       A,CAL_STATE           ;
        LD       E,#0                  ;
        ADS      EA,EA                 ;
        ADS      EA,WX                 ;
        JR       @EA                   ;
;**************************************;

;**************************************;
;CAL_CASE0: TEST LCD                   ;
CAL_CASE0                              ;
        BTSF     CAL_PRESSED           ; CAL PRESSED ?
        JPS      CAL_CASE1_1           ; YES. ENTER CASE2 TO DISP ABS COUNTS
CAL_CASE0_1:                           ;
        LD       EA,TEST_BUF           ; NO.
        LD       BCC_BUF+0,EA          ;
        LD       BCC_BUF+2,EA          ;
        LD       BCC_BUF+4,EA          ;
        LD       BCC_BUF+6,EA          ;
        CALL     DIGIT1234_DISP        ; TEST DIGIT 1,2,3,4
        LD       EA,TEST_BUF           ;
        CALL     DIGIT_AB_DISP         ;
        LD       EA,TEST_BUF           ;
        CALL     DIGIT789_DISP         ; TEST DIGIT 7,8,9
        LD       EA,TEST_BUF           ;
        CALL     UP_DIGIT_DISP         ; TEST UP DIGIT
        LD       EA,TEST_BUF           ;
        CALL     DN_DIGIT_DISP         ; TEST DOWN DIGIT
        LD       EA,#(256-150)         ;
        LD       CAL_DLY+0,EA          ;
        INCS     CAL_STATE             ;
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE1: DELAY                      ;
CAL_CASE1:                             ;
        BTST     CAL_PRESSED           ; CAL PRESSED ?
        JPS      CAL_CASE1_2           ; NO.
CAL_CASE1_1:                           ;
        BITR     CAL_PRESSED           ; YES.
        BITS     KG_FLAG               ; UNIT SET TO "G"
        BITS     DISP_HEX_COUNTS       ; DISPLAY COUNTS IN HEX
        BITR     DISP_CHAR             ; ENABLE DISP COUNTS
        LD       A,#(16-5)             ;
        LD       ZERO_TRACE_CNT,A      ;
        LD       A,#02H                ;
        LD       CAL_STATE,A           ;
        LD       A,#0000B              ;
        JP       DISP_8888             ;
CAL_CASE1_2:                           ;
        INCS     CAL_DLY+0             ;
        RET                            ;
        INCS     CAL_DLY+1             ;
        RET                            ;
        INCS     TEST_BUF              ;
        LD       A,TEST_BUF            ;
        CPSE     A,#0AH                ; = 0AH ?
        JPS      CAL_CASE1_3           ; NO.
        LD       EA,#0                 ; YES.
        LD       TEST_BUF,EA           ;
CAL_CASE1_3:                           ;
        LD       A,#0                  ;
        LD       CAL_STATE,A           ;
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE2: WAIT FOR CAL               ;
CAL_CASE2:                             ;
        BTST     CAL_PRESSED           ; CAL PRESSED ?
        RET                            ; NO.
        BITR     CAL_PRESSED           ; YES.
        BITR     DISP_HEX_COUNTS       ; DISPLAY RELATIVE COUNTS IN BCD
        BITR     CAL_CNT1_OK           ; INITIAL THIS TWO FLAG
        BITR     CAL_CNT2_OK           ;
        BITS     DISP_CHAR             ;
        LD       EA,#R120              ; DISPLAY "r120"
        CALL     TIP_DISP              ;
        CALL     LOAD_CALDLY_2S        ;
        INCS     CAL_STATE             ;      CAL_STATE ++
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE4: DELAY 0.5S FOR "r120"      ;
CAL_CASE3:                             ;
        INCS     CAL_DLY+0             ;
        RET                            ;
        INCS     CAL_DLY+1             ;
        RET                            ;
        INCS     CAL_DLY+2             ;
        RET                            ;
        BITR     DISP_CHAR             ; RESTORE DISPLAY COUNTS (HEX)
        BITR     CAL_PRESSED           ;
        INCS     CAL_STATE             ; CAL_STATE ++
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE4: WAIT FOR "CAL" PRESSED     ;
CAL_CASE4:                             ;
        BTST     CAL_PRESSED           ; CAL PRESSED ?
        RET                            ; NO.
        BITR     CAL_PRESSED           ; YES.
        BITS     DISP_CHAR             ; ENABLE DISPLAY CHAR
        LD       EA,#CAL2              ;
        CALL     TIP_DISP              ; DISPLAY "CAL2"
        BITS     CAL_CNT2_OK           ; YES. RECORD CNT2
        INCS     CAL_STATE             ; CAL_STATE ++
        JPS      LOAD_CALDLY_2S        ;
;**************************************;

;**************************************;
;CAL_CASE5: DELAY 0.5S FOR "CAL2"      ;
CAL_CASE5:                             ;
        INCS     CAL_DLY+0             ;
        RET                            ;
        INCS     CAL_DLY+1             ;
        RET                            ;
        INCS     CAL_DLY+2             ;
        RET                            ;
        BTSF     CAL_CNT2_OK           ; CAL_CNT2_OK IS CLEAR ?
        JPS      LOAD_CALDLY_2S        ; NO. RELOAD TMR
        LD       EA,#R40               ;
        CALL     TIP_DISP              ;
        CALL     LOAD_CALDLY_2S        ;
        INCS     CAL_STATE             ; CAL_STATE ++
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE6: DELAY 0.5S FOR "r40"       ;
CAL_CASE6:                             ;
        INCS     CAL_DLY+0             ;
        RET                            ;
        INCS     CAL_DLY+1             ;
        RET                            ;
        INCS     CAL_DLY+2             ;
        RET                            ;
        BITR     DISP_CHAR             ;
        BITR     CAL_PRESSED           ;
        INCS     CAL_STATE             ; CAL_STATE ++
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE7: WAIT FOR "CAL" TO PRESSED  ;
CAL_CASE7:                             ;
        BTST     CAL_PRESSED           ; CAL PRESSED ?
        RET                            ; NO.
        BITR     CAL_PRESSED           ; YES.
        BITS     DISP_CHAR             ;
        LD       EA,#CAL1              ;

⌨️ 快捷键说明

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