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

📄 fint.asm

📁 这是一个基于485的矩阵键盘程序源码
💻 ASM
字号:
;定时中断0 子程序
PTI:    PUSH   ACC
        PUSH   PSW
        PUSH   DPH
        PUSH   DPL
        SETB   RS0
        CLR    RS1
;充值数据检测用计数器
        MOV    TH0,#0EEH
        INC    JSQCZ              ;充值记数器的值加1
;消费数据上传用计数器
        DJNZ   JSQXF,PTI_001
        SETB   FXF
PTI_001:
        DJNZ   JSQ_X,PTI_12             ;分频计数器,分频后计数周期10MS
        MOV    JSQ_X,#4
        DJNZ   JSQ_MAIN_LOOP,PTI_01     ;主程序使用/主程序循环
        SETB   FLAG1
PTI_01:
        DJNZ   JSQ_LOCAL_LOOP,PTI_02    ;流程控制
        SETB   FLAG2
;---------------------------------------------------------------
PTI_02:
        JB     FERR,PTI_05             ;出错时蜂鸣器响
        DJNZ   JSQ_SPEAK,PTI_07        ;蜂鸣器一般鸣响
        SETB   SPEAK
        CLR    WORKLED
        SJMP   PTI_07
PTI_03:
        JB     WORKLED,PTI_04           ;蜂鸣器部分用
        DJNZ   JSQ4,PTI_07
        SETB   WORKLED
        CLR    SPEAK
        MOV    JSQ4,#10
        SJMP   PTI_07
PTI_04:
        DJNZ   JSQ4,PTI_07
        CLR    WORKLED
        SETB   SPEAK
        MOV    JSQ4,#50
        SJMP   PTI_07
PTI_05:
        JB     WORKLED,PTI_06
        DJNZ   JSQ5,PTI_07
        SETB   WORKLED
        CLR    SPEAK
        MOV    JSQ5,#10
        SJMP   PTI_07
PTI_06:
        DJNZ   JSQ5,PTI_07
        CLR    WORKLED
        SETB   SPEAK
        MOV    JSQ5,#5
        DJNZ   ERR_JSQ,PTI_07
        CLR    FERR
        LCALL  CDISBUF
        MOV    DIS_BUF+5,#0     ;出错最后清显示部分
PTI_07:
        DJNZ   SJSQ,PTI_12
        MOV    SJSQ,#100
        DJNZ   JSQFC,PTI_12

PTI_12:
;按键扫描
        JNB    FKEYA,PTI_13
        LJMP   YK3
PTI_13:
        SETB   KEY_10
        SETB   KEY_20
        SETB   KEY_30
        SETB   KEY_40
        CLR    KEY_01
        CLR    KEY_02
        CLR    KEY_03
        CLR    KEY_04
        LCALL  U4_MAP
        JNB    KEY_10,YK2
        JNB    KEY_20,YK2
        JNB    KEY_30,YK2
        JNB    KEY_40,YK2
        MOV    KEY_JSQ,#FD_JSZ
        LJMP   YK3
YK2:    CLR    A
        CLR    KEY_01
        SETB   KEY_02
        SETB   KEY_03
        SETB   KEY_04
        LCALL  U4_MAP
        JNB    KEY_10,YK4
        INC    A
        JNB    KEY_20,YK4
        INC    A
        JNB    KEY_30,YK4
        INC    A
        JNB    KEY_40,YK4
        INC    A

        SETB   KEY_01
        CLR    KEY_02
        SETB   KEY_03
        SETB   KEY_04
        LCALL  U4_MAP
        JNB    KEY_10,YK4
        INC    A
        JNB    KEY_20,YK4
        INC    A
        JNB    KEY_30,YK4
        INC    A
        JNB    KEY_40,YK4
        INC    A

        SETB   KEY_01
        SETB   KEY_02
        CLR    KEY_03
        SETB   KEY_04
        LCALL  U4_MAP
        JNB    KEY_10,YK4
        INC    A
        JNB    KEY_20,YK4
        INC    A
        JNB    KEY_30,YK4
        INC    A
        JNB    KEY_40,YK4
        INC    A

        SETB   KEY_01
        SETB   KEY_02
        SETB   KEY_03
        CLR    KEY_04
        LCALL  U4_MAP
        JNB    KEY_10,YK4
        INC    A
        JNB    KEY_20,YK4
        INC    A
        JNB    KEY_30,YK4
        INC    A
        JNB    KEY_40,YK4
        SJMP   YK3
YK4:    CJNE   A,KEY_BAK,YK5
        DJNZ   KEY_JSQ,YK3
        MOV    KEY_JSQ,#FD_JSZ
        SETB   FKEY                     ;有按键标识
        SJMP   YK3
YK5:    MOV    KEY_BAK,A
        MOV    KEY_JSQ,#FD_JSZ
        SJMP   YK3
YK3:
        LCALL  DISPLAY_ALL
        POP    DPL
        POP    DPH
        POP    PSW
        POP    A
        RETI

⌨️ 快捷键说明

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