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

📄 chongdianqi.txt

📁 51单片机的程序,这是方波的实现方面的的,希望给大家带来方便!
💻 TXT
字号:
读键子程序
;出口:    KEY_NUM    =键号值
;中间:    KEY_DL    =计数器
;说明:
/*
短击:键按下时间<500MS
长击:键按下时间>500MS
两次按键间隔时间<700MS
键号定义:
    KEY_NUM="00000000":    无键按下
    KEY_NUM="00000001":    无意义
    KEY_NUM="00000010":    单次短击
    KEY_NUM="00000011":    单次长击
    KEY_NUM="00000100":    短击 + 短击
    KEY_NUM="00000101":    短击 + 长击
    KEY_NUM="00000110":    长击 + 短击
    KEY_NUM="00000111":    长击 + 长击
    ...
    ...
    KEY_NUM="11111110":    长击 + 长击 + 长击 + 长击 + 长击 + 长击 + 短击
    KEY_NUM="11111111":    长击 + 长击 + 长击 + 长击 + 长击 + 长击 + 长击
*/
    ZHBIT    EQU    2      ;按键组合位(选择范围1~7)
;********************************
READKEY:
    CLR    KEY_NUM          ;清键号
    JKOFF    READKEYF       ;键未按下跳
    BS    KEY_NUM,0         ;"1" -> 键号低位
;=================
READKEYA:
    CLR    KEY_DL           ;清计数器
READKEYB:
    CALL    DL10MS
    INC    KEY_DL
    MOV    A,@50
    SUB    A,KEY_DL
    JBC    R3,C
    JMP    READKEYC         ;计数器溢出跳
    JKON    READKEYB        ;键未释放跳
    BC    R3,C              ;C="0"
    JMP    READKEYD
;=================
READKEYC:
    WDTC                    ;喂狗
    JKON    READKEYC        ;键未释放跳
    BS    R3,C              ;C="1"
READKEYD:
    RLLC    KEY_NUM         ;键号左移一位,C -> 键号低位
    JBC    KEY_NUM,ZHBIT    ;按键检测未完成继续
    RET
;=================
    CLR    KEY_DL           ;清计数器
READKEYE:
    CALL    DL10MS
    INC    KEY_DL
    MOV    A,@70
    SUB    A,KEY_DL
    JBC    R3,C
READKEYF:
    RET                  ;计数器溢出返回
    JKOFF    READKEYE    ;键未按下跳
    JMP    READKEYA      ;再次检测
;=================
;键闭合跳(宏)
;=================
JKON    MACRO    ADDRESS
    JBS    R5,KEY          ;键断开跳
    FJMP    ADDRESS        ;键闭合跳
    CALL    DL10MS         ;延时去抖动
    JBS    R5,KEY          ;键断开跳
    FJMP    ADDRESS        ;键闭合跳
ENDM
;=================
;键断开跳(宏)
;=================
JKOFF    MACRO    ADDRESS
    JBC    R5,KEY           ;键闭合跳
    FJMP    ADDRESS         ;键断开跳
    CALL    DL10MS          ;延时去抖动
    JBC    R5,KEY           ;键闭合跳
    FJMP    ADDRESS         ;键断开跳
ENDM

⌨️ 快捷键说明

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