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

📄 keyscan.asm

📁 给香港公司做的出口欧洲的电子称项目全部源代码 CPU:KS57C2308 RANGE:(0 -150KG)/d = 0.1kg
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        LD       CAL_STATE,A           ;
        LD       A,#0000B              ;
        JP       DISP_8888             ;
;----------------------                ;
PRO_CAL_1:                             ;
        CPSE     A,#CAL_MODE_CON       ; SYS IN CAL MODE ?
        RET                            ; NO.  EXIT
        BITS     CAL_PRESSED           ; YES.
        RET                            ;
;**************************************;

;***************************************************************************;
;                              PROCESS_USER_SELECT                          ;
;***************************************************************************;
; INPUT: ACC                           ;
PRO_USER_SELECT:                       ;
        LD       A,RUN_MODE_REG        ;
        CPSE     A,#SCALE_MODE_CON     ; SYS IN SCALE MODE ?
        JPS      PUS_1                 ; NO.
PUS_0:  LD       A,#USER_MODE_CON      ; YES. LOAD MODE CON
        LD       RUN_MODE_REG,A        ;
        LD       A,#01H                ;      USER_NUM = 1
        LD       USER_NUM,A            ;
        JPS      PUS_2                 ;
PUS_1:  CPSE     A,#USER_MODE_CON      ; SYS IN USER MODE ?
        RET                            ; NO. EXIT
;--------------------------            ;
;USER_NUM ++                           ;
PUS_11: INCS     USER_NUM              ; USER_NUM ++
        NOP                            ;
        LD       A,USER_NUM            ;
        CPSE     A,#USER_NUM_CON       ;
        JPS      PUS_2                 ;
        LD       A,#01H                ;
        LD       USER_NUM,A            ;
PUS_2:  BITS     SET_EN                ; ENABLE SET MODULE
        LD       A,#04H                ;
        LD       SET_STATE,A           ;
        RET                            ;
;----------------------                ;
;USER_NUM --                           ;
PUS_21:                                ;
        LD       A,USER_NUM            ;
        CPSE     A,#01H                ;
        JPS      PUS_3                 ;
        LD       A,#USER_NUM_CON       ;
PUS_3:  DECS     A                     ;
        NOP                            ;
        LD       USER_NUM,A            ;
        JPS      PUS_2                 ;
;**************************************;

;***************************************************************************;
;                              PROCESS UP OR DN                             ;
;***************************************************************************;
; FUNCTION: WHEN "UP"/"DN" KEY PRESSED,PROCESS IT
;**************************************;
;PROCESS "UP" KEY                      ;
PROCESS_UP:                            ;
        LD       A,RUN_MODE_REG        ; SYS IN SET MODE ?
        CPSE     A,#SET_MODE_CON       ;
        JPS      PRO_UP_A              ; NO.
        JPS      PRO_UP_0              ; YES.
PRO_UP_A:                              ;
        CPSE     A,#USER_MODE_CON      ; SYS IN USER MODE ?
        RET                            ; NO.
        JPS      PUS_11                ; YES.
;---------------------                 ;
;SYS IN "SET MODE", USE "UP" KEY INPUT USER'S INFO
PRO_UP_0:                              ;
        BITS     UP_DN_PRESSED         ; UP_DN_PRESSED = 1
        LD       A,INFO_PTR            ;
        CPSE     A,#0H                 ;
        JPS      PRO_UP_1              ;
;---------------------                 ;
        INCS     USER_NUM              ; USER_NUM ++
        LD       A,USER_NUM            ;
        CPSE     A,#USER_NUM_CON       ;
        RET                            ;
        LD       A,#1H                 ;
        LD       USER_NUM,A            ;
        RET                            ;
;---------------------                 ;
PRO_UP_1:                              ;
        CPSE     A,#1H                 ; SEX ++
        JPS      PRO_UP_2              ;
        BTST     SEX                   ;
        JPS      PRO_UP_11             ;
        BITR     SEX                   ;
        RET                            ;
PRO_UP_11:                             ;
        BITS     SEX                   ;
        RET                            ;
;------------------------              ;
PRO_UP_2:                              ; AGE + +
        CPSE     A,#02H                ; 
        JPS      PRO_UP_3              ;
        LD       EA,AGE                ;
        LD       WX,#99                ; ( 10 - 100 )
        CPSE     EA,WX                 ;
        JPS      PRO_UP_21             ;
        LD       EA,#10                ;
        JPS      PRO_UP_22             ;
PRO_UP_21:                             ;
        LD       WX,EA                 ;
        INCS     WX                    ;
        LD       EA,WX                 ;
PRO_UP_22:                             ;
        LD       AGE,EA                ;
        RET                            ;
;----------------------                ;
PRO_UP_3:                              ; HEIGHT ++
        BTSF     KG_FLAG               ; UNIT IS KG ?
        JPS      PRO_UP_32             ; YES.
;---------------------                 ;
; UNIT IS LB/ST                        ; NO.
        LD       A,HT_BUF+0            ;
        CPSE     A,#0BH                ; [HT_BUF+0] FULL ?
        JPS      PRO_UP_31             ; NO.
        LD       A,#0H                 ; YES.
        LD       HT_BUF+0,A            ;
        INCS     HT_BUF+1              ; [HT_BUF+1]++
        RET                            ;
PRO_UP_31:                             ;
        INCS     HT_BUF+0              ; [HT_BUF+0] ++
        LD       EA,HT_BUF             ;
        LD       WX,#73H               ; HT >= 7 FT 3 INCH ?
        SBS      EA,WX                 ;
        JPS      PRO_UP_31A            ; YES.
        RET                            ; NO.
PRO_UP_31A:                            ;
        LD       EA,#34H               ; YES.
        LD       HT_BUF,EA             ;
        RET                            ;
;------------------------              ;
; UNIT IS KG                           ;
PRO_UP_32:                             ;
        LD       EA,HEIGHT             ;
        LD       WX,#220               ; ( 100 - 220 )
        CPSE     EA,WX                 ;
        JPS      PRO_UP_33             ;
        LD       EA,#100               ;
        JPS      PRO_UP_34             ;
PRO_UP_33:                             ;
        LD       WX,EA                 ;
        INCS     WX                    ;
        LD       EA,WX                 ;
PRO_UP_34:                             ;
        LD       HEIGHT,EA             ;
        RET                            ;
;**************************************;

;**************************************;
;PROCESS "DOWN" KEY                    ;
PROCESS_DN:                            ;
        LD       A,RUN_MODE_REG        ; SYS IN SET MODE ?
        CPSE     A,#SET_MODE_CON       ;
        JPS      PRO_DN_A              ; NO.
        JPS      PRO_DN_0              ; YES.
PRO_DN_A:                              ;
        CPSE     A,#USER_MODE_CON      ; SYS IN USER MODE ?
        RET                            ; NO.
        JPS      PUS_21                ; YES.  USER_NUM - -
;--------------------------            ;
;USE "DOWN" KEY TO INPUT USER'INFO ......
PRO_DN_0:                              ;
        BITS     UP_DN_PRESSED         ; YES. UP_DN_PRESSED = 1
        LD       A,INFO_PTR            ;
        CPSE     A,#0H                 ;
        JPS      PRO_DN_1              ;
;--------------------------            ;
PRO_DN_00:                             ;
        LD       A,USER_NUM            ; USER_NUM - = 1
        CPSE     A,#0H                 ;
        JPS      PRO_DN_01             ;
        LD       A,#USER_NUM_CON       ;
        LD       USER_NUM,A            ;
        JPS      PRO_DN_02             ;
PRO_DN_01:                             ;
        CPSE     A,#1H                 ;
        JPS      PRO_DN_02             ;
        LD       A,#USER_NUM_CON       ;
        LD       USER_NUM,A            ;
PRO_DN_02:                             ;
        DECS     A                     ;
        LD       USER_NUM,A            ;
        RET                            ;
;-----------------------               ;
PRO_DN_1:                              ;
        CPSE     A,#1H                 ; SEX - = 1
        JPS      PRO_DN_2              ;
        BTST     SEX                   ;
        JPS      PRO_DN_11             ;
        BITR     SEX                   ;
        RET                            ;
PRO_DN_11:                             ;
        BITS     SEX                   ;
        RET                            ;
;------------------------              ;
PRO_DN_2:                              ; AGE - = 1
        CPSE     A,#02H                ; 
        JPS      PRO_DN_3              ;
                              ; 
        LD       EA,AGE                ;
        LD       WX,#10                ; ( 10 - 100 )
        CPSE     EA,WX                 ;
        JPS      PRO_DN_21             ;
        LD       EA,#99                ;
        JPS      PRO_DN_22             ;
PRO_DN_21:                             ;
        DECS     EA                    ;
PRO_DN_22:                             ;
        LD       AGE,EA                ;
        CALL     DISP_AGE              ;        
        RET                            ;
;-----------------------
PRO_DN_3:                              ;   HEIGHT - = 1
        BTSF     KG_FLAG               ;
        JPS      PRO_DN_33             ;
;-------------------------             ;
; UNIT IS LB/ST                        ;
        LD       EA,HT_BUF             ; HT_BUF < = 3:04 INCH ?
        LD       WX,#34H               ;
        SBS      WX,EA                 ;
        JPS      PRO_DN_31A            ;
        JPS      PRO_DN_31             ;
PRO_DN_31A:                            ;
        LD       EA,#72H               ; YES.
        LD       HT_BUF,EA             ;
        RET                            ;
PRO_DN_31:                             ;
        LD       A,HT_BUF+0            ; NO.
        CPSE     A,#0H                 ;
        JPS      PRO_DN_32             ;
        LD       A,HT_BUF+1            ;
        DECS     A                     ;
        NOP                            ;
        LD       HT_BUF+1,A            ;
        LD       A,#0BH                ;
        LD       HT_BUF+0,A            ;
        RET                            ;
PRO_DN_32:                             ;
        DECS     A                     ;
        LD       HT_BUF+0,A            ;
        RET                            ;
;-------------------------             ;
; UNIT IS KG                           ;
PRO_DN_33:                             ;
        LD       EA,HEIGHT             ;
        LD       WX,#100               ; ( 100 - 220 )
        CPSE     EA,WX                 ;
        JPS      PRO_DN_34             ;
        LD       EA,#220               ;
        JPS      PRO_DN_35             ;
PRO_DN_34:                             ;
        DECS     EA                    ;
PRO_DN_35:                             ;
        LD       HEIGHT,EA             ;
        RET                            ;
;**************************************;

;***************************************************************************;
;                              PROCESS_SET                                  ;
;***************************************************************************;
; FUNCTION: WHEN "SET" KEY PRESSED,PROCESS IT
; OUTPUT: SET_EN,SURE_FLAG             ;
PROCESS_SET:                           ;
        LD       A,RUN_MODE_REG        ;
        CPSE     A,#SCALE_MODE_CON     ; SYS IN SCALE MODE ?
        JPS      PRO_SET_1             ; NO.
;----------------------------          ;
; HERE SYS ENTER INTO SET MODE....     ;
        BTSF     FAT_TEST_EN           ; FAT_TEST_EN = 1 ?; 
        JP       PRO_SET_21            ; YES. 
        LD       A,#SET_MODE_CON       ; NO.
        LD       RUN_MODE_REG,A        ;
        BITS     SET_EN                ; SYS ENTER SET MODULE
        BITR     SET_OK                ; SET_OK = 0 , SET USER INFO START .
        LD       A,#0H                 ;
        LD       INFO_PTR,A            ; INIT POINTER,SET_STATE & USER NUM.
        LD       USER_NUM,A            ;
        LD       SET_STATE,A           ;
        JP       DISP_8888             ;
;----------------------------          ;
;NOW SYS IN SET MODE, PROCESS SET KEY  ;
PRO_SET_1:                             ;
        CPSE     A,#SET_MODE_CON       ; SYS IN SET MODE ?
        JPS      PRO_SET_2             ; NO.
        LD       A,USER_NUM            ; YES.
        CPSE     A,#0H                 ; USER_NUM = 0 ?
        JPS      PRO_SET_11            ; |
        LD       A,#01H                ; YES
        LD       USER_NUM,A            ; |
        RET                            ; |
PRO_SET_11:                            ; |
        BITS     SET_PRESSED           ; NO. SET_PRESSED = 1
        INCS     INFO_PTR              ; INFO_PTR + +
        LD       A,INFO_PTR            ; USER_NUM = 4 ?
        CPSE     A,#04H                ; |
        RET                            ; NO.  EXIT
        BITS     SET_OK                ; YES. SET_OK = 1
        BITS     FAT_TEST_EN           ;
        LD       A,#0H                 ;      INFO_PTR RESTORE TO 0
        LD       INFO_PTR,A            ;
        CALL     DISP_HEIGHT           ; YES.
        RET                            ;
;----------------------                ;
PRO_SET_2:                             ;
        CPSE     A,#USER_MODE_CON      ; SYS IN USER MODE ?
        RET                            ; NO.
PRO_SET_21:                            ;
        BITS     SET_EN                ; ENTER SET MODE TO MODIFY USER INFO
        BITR     FAT_TEST_EN           ; = 0
        BITR     SET_OK                ; = 0  BEGIN TO MODIFY USER INFO
        LD       A,#SET_MODE_CON       ;
        LD       RUN_MODE_REG,A        ;
        LD       A,#00H                ; 01 --->(MODIFY) 00H
        LD       INFO_PTR,A            ;
        LD       A,#01H                ;
        LD       SET_STATE,A           ; !!! NOTE HERE !!!
        LD       A,#(16-11)            ;
        LD       FLASH_CNT,A           ;
        LD       A,#00H                ;
        CALL     DISP_8888             ;
        CALL     SEX_ICON_ON           ;
        CALL     DISP_NUM              ;
        CALL     DISP_AGE              ;
        CALL     DISP_HEIGHT           ;
        JP       LOAD_SETDLY_2S        ; SET DLY_TIMER (1S) FOR WAITING FOR SET/UP/DN PRESSED
;**************************************;

⌨️ 快捷键说明

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