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

📄 cal.asm

📁 给香港公司做的出口欧洲的电子称项目全部源代码 CPU:KS57C2308 RANGE:(0 -150KG)/d = 0.1kg
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        CALL     TIP_DISP              ; DISPLAY "CAL1"
        BITS     CAL_CNT1_OK           ; RECORD CNT1
        CALL     LOAD_CALDLY_2S        ;
        INCS     CAL_STATE             ; CAL_STATE ++
        RET                            ;
;**************************************;

;**************************************;
;CAL_CASE8: DELAY 0.5S FOR "CAL1"      ;
CAL_CASE8:                             ;
        INCS     CAL_DLY+0             ;
        RET                            ;
        INCS     CAL_DLY+1             ;
        RET                            ;
        INCS     CAL_DLY+2             ;
        RET                            ;
        BTSF     CAL_CNT1_OK           ; CAL_CNT1_OK IS CLEAR ?
        JPS      LOAD_CALDLY_2S        ; NO. RELOAD TMR AGAIN
        BITR     DISP_CHAR             ;
        INCS     CAL_STATE             ; YES. CAL_STATE ++
        RET                            ;
;**************************************;

;**************************************;
CAL_CASE9:                             ;
;WRITE CNT10  CNT21 TO 24C01           ;
;CHK CNT10 IN (400*5 --- 400*12)       ;
;    CNT21 IN (800*5 --- 800*12)       ;
        LD2B     ACC_BUF,CNT10         ;
        CALL     CHK_BENMARK           ;
        BTST     C                     ; C = 1 ?
        JP       DISP_ERR2             ; NO.
        LD2B     ACC_BUF,CNT21         ; YES. GO ON CHK CNT21
        LD       HL,#(ACC_BUF+3)       ;
        CALL     DIVTWO                ;
        CALL     CHK_BENMARK           ;
        BTST     C                     ; C = 1 ?
        JP       DISP_ERR2             ; NO.
;-------------------------             ;
;WRITE DATA TO EEPROM                  ;
        LD       A,#5                  ; YES. THEN WRITE CNT10 CNT21 TO 24C01
        LD       EEP_NUM,A             ; BYTE NUM: 6
        LD       EA,#00H               ;
        LD       EEP_RAM_ADDR,EA       ; EEP_RAM_ADDR: 00
        LD       EA,#LAST_WEIGHT       ;
        LD       CPU_RAM_ADDR,EA       ;
        CALL     WRITE_EEP             ; WRITE CNT10,CNT21 TO 24C01
;ANALYSE SNENSOR'S LINE CHARACTERISTIC ;
        LD       HL,#(CNT21+3)         ;
        CALL     DIVTWO                ; CNT21<= CNT21/2
        LD       HL,#ABS_ERR           ;
        LD       YZ,#CNT10             ;
        LD       WX,#CNT21             ;
        CALL     SUB2BB                ;
        JPS      CAL_CASE9_1           ;
        LD       HL,#ABS_ERR           ;
        CALL     ABS2BB                ;
CAL_CASE9_1:                           ;
        LD       HL,#(ABS_ERR+2)       ;
        LD2B     CCC_BUF,ABS_ERR       ;
        BITS     DISP_CHAR             ;
        CALL     HEX_BCD               ;
        CALL     DISP_WT               ;
        CALL     LOAD_CALDLY_2S        ;
        INCS     CAL_STATE             ;
        RET                            ;
;**************************************;

;**************************************;
CAL_CASE10:                            ;
        INCS     CAL_DLY+0             ;
        RET                            ;
        INCS     CAL_DLY+1             ;
        RET                            ;
        INCS     CAL_DLY+2             ;
        RET                            ;
        JP       TURN_OFF_PWR          ;
;**************************************;

;**************************************;
LOAD_CALDLY_2S:                        ;
        LD       EA,#(256-150)         ;
        LD       CAL_DLY+0,EA          ;
        LD       A,#(16-2)             ;
        LD       CAL_DLY+2,A           ;
        RET                            ;
;**************************************;

;***************************************************************************;
;                               GET_CNT12                                   ;
;***************************************************************************;
;FUNCTION: GET CNT1,CNT2               ;
;INPUT:   [CAL_CNT1_OK]                ;
;         [CAL_CNT2_OK]                ;
;OUTPUT:  [CNT10] [CNT21]              ;
GET_CNT12:                             ;
        BTST     CAL_CNT1_OK           ; SAL_CNT1_OK = 1 ?
        JPS      GET_CNT_A             ;        NO.
        BTST     SCALE_OK              ;        YES.& SYS IN STATIC STATE ?
        JPS      GET_CNT_C             ;              NO.
        BITR     CAL_CNT1_OK           ;              YES.
        BITR     SCALE_OK              ;
        LD2B     CNT1,MID_POINT        ;              CNT1 <= MID_POINT
;--------------------                  ;
        LD       HL,#CNT10             ; GET CNT10:
        LD       YZ,#CNT1              ; CNT10 <= CNT1 - CNT0
        LD       WX,#CNT0              ;
        CALL     SUB2BB                ;
        JPS      GET_CNT12_1           ;
        LD       HL,#CNT10             ;
        CALL     ABS2BB                ;
GET_CNT12_1:                           ;
        LD       HL,#CNT21             ; GET CNT21:
        LD       YZ,#CNT20             ; CNT21 = CNT20 - CNT10
        LD       WX,#CNT10             ;
        CALL     SUB2BB                ;
        JPS      GET_CNT_C             ;
        LD       HL,#CNT21             ;
        CALL     ABS2BB                ;
        JPS      GET_CNT_C             ;
;------------------                    ;
GET_CNT_A:                             ;
        BTST     CAL_CNT2_OK           ; CAL_CNT2_OK = 1 ?
        JPS      GET_CNT_B             ;        NO.
        BTST     SCALE_OK              ;        YES & SYS IN STATIC STATE ?
        JPS      GET_CNT_C             ;              NO.
        BITR     SCALE_OK              ;
        BITR     CAL_CNT2_OK           ;              YES.
        LD2B     CNT2,MID_POINT        ;              CNT2 <= MID_POINT
;--------------------                  ;
        LD       HL,#CNT20             ;
        LD       YZ,#CNT2              ;
        LD       WX,#CNT0              ; CNT20 <= CNT2 - CNT0
        CALL     SUB2BB                ;
        JPS      GET_CNT_C             ; CNT20 >=0
        LD       HL,#CNT20             ;       < 0
        CALL     ABS2BB                ;
        JPS      GET_CNT_C             ;
;------------------------              ;
GET_CNT_B:                             ;
        BTST     DISP_HEX_COUNTS       ; ONLY DISPLAY COUNTS ?
        JPS      GET_CNT_C             ; NO.
        LD2B     BCC_BUF,MID_POINT     ; YES.
        JPS      GET_CNT_E             ;
;-------------------------             ;
GET_CNT_C:                             ;
        LD       HL,#CCC_BUF           ;
        LD       YZ,#MID_POINT         ; CCC_BUF <= MID_POINT - CNT0
        LD       WX,#CNT0              ;
        CALL     SUB2BB                ;
        JPS      GET_CNT_D             ; CCC_BUF >= 0
        LD       HL,#CCC_BUF           ;         <= 0
        CALL     ABS2BB                ;
GET_CNT_D:                             ;
;CHK IF CCC_BUF< 8 & STATUS IS STATIC,THEN ZERO TRACE
        BTST     STATIC_FLAG           ;
        JPS      GET_CNT_D1            ;
        LD       A,JAM_STATE           ;
        CPSE     A,#00H                ;
        JPS      GET_CNT_D1            ;
        LD       HL,#(CCC_BUF+2)       ;
        LD       WX,#08H               ;
        LD       YZ,#00H               ;
        CALL     COMP_CON              ;
        JPS      GET_CNT_D1            ; OUT OF RANGE
        INCS     ZERO_TRACE_CNT        ;
        JPS      GET_CNT_D2            ;
        LD2B     CNT0,MID_POINT        ;
        LD       EA,#00H               ;
        LD       CCC_BUF+0,EA          ;
        LD       CCC_BUF+2,EA          ;
GET_CNT_D1:                            ;
        LD       A,#(16-2)             ;
        LD       ZERO_TRACE_CNT,A      ;
GET_CNT_D2:                            ;
        LD       HL,#(CCC_BUF+3)       ;
        CALL     DIVTWO                ;
        CALL     HEX_BCD               ;
GET_CNT_E:                             ;
        BTSF     DISP_CHAR             ; DISPLAY CHAR ?
        RET                            ; YES.
        JP       DISP_WT               ; NO. DISPLAY VALUE
;**************************************;

⌨️ 快捷键说明

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