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

📄 main.asm

📁 给香港公司做的出口欧洲的电子称项目全部源代码 CPU:KS57C2308 RANGE:(0 -150KG)/d = 0.1kg
💻 ASM
字号:
; PROJECT: FATSCALE                    ;
; RANGE: (0 - 150KG)/d = 0.1kg         ;
; CPU:     KS57C2308  XTAL: 4.19M      ;
;**************************************;

;**************************************;
; ALARM REMARK:                        ;
; 1. ERR5: SENSOR ALARM                ;
; 2. ERR4: 24C01  ALARM                ;
; 3. ERR3: KB ALARM                    ;
; 4. ERR2: CAL ALARM                   ;
; 5. ERR1: USER'S INFO ERR             ;
; 6. ERR:  OVERLOAD ALARM              ;
; 7. LO :  BATTERY ALARM               ;
;----------------------                ;
;JP REMARK:                            ;
;JP0: OPEN: NORMAL / SHORT: ADC ADJUST ;
;JP1: OPEN: WITH MEM/SHORT: WITHOUT MEM;
;**************************************;
.INCLUDE "57C2316.REG"                 ;
.INCLUDE "DEFINE.ASM"                  ;
;**************************************;
            ORG 000H                   ;
        VENT0    1,0,RESET             ; RESET
        VENT1    0,1,BT_ISR            ; USE FOR SCALE COUNT
        VENT2    0,1,INT0_ISR          ; USE FOR AD CONVERT
        VENT3    0,1,INT1_ISR          ; // NO USE
        VENT4    0,1,INTS_ISR          ; // NO USE
        VENT5    0,1,TC0_ISR           ; USE FOR SYSTEM CLICK
;**************************************;
INTS_ISR:                              ;
        IRET                           ;
;**************************************;
INT1_ISR:                              ;
        IRET                           ;
;**************************************;
;INPUT:  [POST_INT_FLAG]               ;
;        [G_PIN] (USE FOR START ADC)   ;
;OUTPUT: [SCALE_CNT]                   ;
;        [CHK_BTCNT_FLAG]              ;
;        [ADC_OK]                      ;
;------------------------              ;
INT0_ISR:                              ;
        PUSH     SB                    ;
        SRB      1                     ;
        BTSF     POST_INT_FLAG         ; IS POSITIVE INTEGRAL ?
        JPS      INT0_ISR_1            ; YES.
        LD       EA,BCNT               ; ----> GET ADC VALUE ......
        BITR     IEB                   ;
        LD       SCALE_CNT+0,EA        ;
        LD       EA,BT_COUNT           ; ----> GET ADC VALUE ......
        BTST     IRQB                  ; IRQB = 1 ?
        JPS      INT0_ISR_0            ; NO.
        BITR     IRQB                  ; YES. CLR THIS FLAG
        BITS     CHK_BTCNT_FLAG        ;      SET THIS FLAG FOR PROCESS ADC VALUE
        LD       WX,EA                 ;
        INCS     WX                    ;
        LD       EA,WX                 ;
INT0_ISR_0:                            ;
        LD       SCALE_CNT+2,EA        ;
        BITS     IEB                   ;
        BITS     ADC_OK                ; ADC OK
        BITS     BMOD.3                ; RESTART BT
        BITS     POST_INT_FLAG         ; POST_INT_FLAG 0 ---> 1
        BITS     G_PIN                 ; AFTER READ COUNTS,G = H RESTART AD
        JPS      EXIT_INT0_ISR         ;
;----------------------                ;
; POST_INT_FLAG = 1: DELAY 150MS BEGIN ;
;----------------------                ;
INT0_ISR_1:                            ;
        LD       EA,ADC_DLY_BUF        ; RELOAD ADC DELAY TIMER
        LD       AD_DLY,EA             ;
        BITS     BMOD.3                ; START BT
EXIT_INT0_ISR:                         ;
        LD       EA,#00                ;
        LD       CHK_ADC_CNT,EA        ; USE FOR CHECK ADC
        POP      SB                    ;
        IRET                           ;
;**************************************;
; POST_INT_FLAG = 1: POSITIVE INTEGRAL (SAMPLE)
;               = 0: NEGATIVE INTEGRAL (SCALE)
BT_ISR: PUSH     SB                    ;
        SRB      2                     ;
        BTSF     POST_INT_FLAG         ; POSITIVE INTEGRAL ?
        JPS      BT_ISR_1              ; YES.
;------------------------              ;
;POST_INT_FLAG = 0    COUNTS++         ;
;------------------------              ;
        INCS     BT_COUNT+0            ; NO. BT_COUNT ++
        JPS      BT_ISR_0              ;
        INCS     BT_COUNT+1            ;
        JPS      BT_ISR_0              ;
BT_ISR_0:                              ;
        JPS      EXIT_BT_ISR           ; EXIT
;-----------------------               ;
; POST_INT_FLAG = 1   DELAY 150MS      ;
;-----------------------               ;
BT_ISR_1:                              ;
        INCS     AD_DLY+0              ; AD_DLY + +
        JPS      BT_ISR_11             ;
        INCS     AD_DLY+1              ; AD_DLY FULL ?
BT_ISR_11:                             ;
        JPS      EXIT_BT_ISR           ; NO.
        BITR     POST_INT_FLAG         ; YES. POST_INT_FLAG 1 --- > 0
        LD       EA,#00                ;
        LD       BT_COUNT,EA           ;      CLR BT_COUNT
        BITR     CHK_BTCNT_FLAG        ;      CLR THIS FLAG
        BITR     G_PIN                 ; G = L
        BITS     BMOD.3                ; BMOD.3 = 1 RESTART BT
EXIT_BT_ISR:                           ;
        POP      SB                    ;
        IRET                           ;
;**************************************;
TC0_ISR:PUSH     SB                    ;
        BITS     SYS_CLICK             ; SYS_CLICK = 1
        POP      SB                    ;
        IRET                           ;
;**************************************;
RESET:  TURN_ON_PWR                    ; EMB = 1, ERB = 0
        JPS      SYS_INIT              ; INITIAL HARDWARE
SYS_INIT_END:                          ;
        JPS      RAM_CLR               ; CLEAR BANK0 & BANK1
RAM_CLR_END:                           ;
        LD       A,#1111B              ;
        CALL     DISP_8888             ;
        CALL     GET_BENCHMARK         ; GET BENCHMARK & UNIT
        CALL     SOFT_INIT             ;
        EI                             ; ENABLE INTERRUPT
;**************************************;
;MAIN PROGRAM
;**************************************;
MAIN:   BTST     SYS_CLICK             ;
        JPS      MAIN                  ;
        BITR     SYS_CLICK             ;
        CALL     VOL_DETECT            ;
        CALL     KEYSCAN               ;
        CALL     KEY_PROCESS           ;
        CALL     USER_SET              ;
        CALL     CALIBRATION           ;
        CALL     DATA_PROCESS1         ;
        CALL     DATA_PROCESS2         ;
        CALL     FAT_TEST              ;
        JPS      MAIN                  ;
;**************************************;
.INCLUDE "INITIAL.ASM"                 ;
.INCLUDE "KEYSCAN.ASM"                 ;
.INCLUDE "SET.ASM"                     ;
.INCLUDE "CAL.ASM"                     ;
.INCLUDE "DATA_PRO2.ASM"               ;
.INCLUDE "DATA_PRO1.ASM"               ;
.INCLUDE "VOLD.ASM"                    ;
.INCLUDE "24C01.ASM"                   ;
.INCLUDE "LCD.ASM"                     ;
.INCLUDE "FAT_TEST.ASM"                ;
.INCLUDE "LIB.ASM"                     ;
.END                                   ;
;**************************************;

⌨️ 快捷键说明

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