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

📄 dskeyn.asm

📁 视频监控控制键盘原代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
              MOV    37H,    #0C8H
              MOV    38H,    #0A3H
              MOV    39H,    #0ADH
              MOV    3AH,    #020H
              MOV    3BH,    #020H
              LCALL  LCDSHOW_DATA
              MOV   41H,    #00H
              MOV   42H,    #00H
              MOV   4FH,    #04H
              LCALL  ORDER_SEND
              LJMP   KEY_SCANRET
PARK_4H8L:    MOV    TH0,    #00H
              MOV    TL0,    #00H
              CJNE   A,      #08H,   PARK_5H8L
              CLR    KEY_DATA_C
              JNB   SHIFT_LED,   LOOP48
              MOV    41H,    #13H                ;云台右
              MOV    42H,    #0EFH
              MOV    4FH,    #04H                ;指令字节数
              MOV    34H,    #0D4H
              MOV    35H,    #0C6H
              MOV    36H,    #0CCH
              MOV    37H,    #0A8H
              MOV    38H,    #0D3H
              MOV    39H,    #0D2H
              LCALL  LCDSHOW_DATA
              LCALL  ORDER_SEND
LOOP48:       LJMP   KEY_SCANRET
PARK_5H8L:    MOV    TH0,    #00H
              MOV    TL0,    #00H
              CJNE   A,   #10H,  PARKRET1
              CLR    KEY_DATA_C
              JNB   SHIFT_LED,   PARKRET1
              MOV    41H,    #13H                 ;云台下
              MOV    42H,    #0FDH
              MOV    4FH,    #04H                 ;指令字节数
              MOV    34H,    #0D4H
              MOV    35H,    #0C6H
              MOV    36H,    #0CCH
              MOV    37H,    #0A8H
              MOV    38H,    #0CFH
              MOV    39H,    #0C2H
              LCALL  LCDSHOW_DATA
              LCALL  ORDER_SEND                   ;发送指令
PARKRET1:     LJMP   KEY_SCANRET

PARK_L2:     MOV    TH0,    #00H
             MOV    TL0,    #00H
             CPL    WATCH_DOG
             JB     P2.5,  KEY_SCAN_CON
             SETB   P2.0
             SETB   P2.1
             SETB   P2.2
             SETB   P2.3
             SETB   P2.4
             CLR    P2.5
             MOV    A,     P2
             ANL    A,     #1FH
             CPL    A
             ANL    A,     #1FH
             CJNE   A,     #01H,      PARK_2H9L
             CLR    KEY_DATA_C
             JNB   SHIFT_LED,   LOOP19
             MOV   41H,    #00H        ;键"变焦+"
             MOV   42H,    #00H
             MOV   4FH,    #04H
             MOV    34H,    #0B1H
             MOV    35H,    #0E4H
             MOV    36H,    #0BDH
             MOV    37H,    #0B9H
             MOV    38H,    #0A3H
             MOV    39H,    #0ABH
             LCALL  LCDSHOW_DATA
             LCALL  ORDER_SEND
             LJMP   KEY_SCANRET
LOOP19:      MOV    34H,    #0B1H     ;"饱和度+"
              MOV    35H,    #0A5H
              MOV    36H,    #0BAH
              MOV    37H,    #0CDH
              MOV    38H,    #0B6H
              MOV    39H,    #0C8H
              MOV    3AH,    #0A3H
              MOV    3BH,    #0ABH
              LCALL  LCDSHOW_DATA
              MOV   41H,    #00H
              MOV   42H,    #00H
              MOV   4FH,    #04H
              LCALL  ORDER_SEND
              LJMP   KEY_SCANRET
KEY_SCAN_CON:  LJMP  KEY_SCAN

PARK_2H9L:   MOV    TH0,    #00H
             MOV    TL0,    #00H
             CJNE   A,   #02H,   PARK_3H9L
             CLR    KEY_DATA_C
             JNB   SHIFT_LED,   LOOP29
             MOV   41H,    #00H       ;键"调焦+"
             MOV   42H,    #00H
             MOV   4FH,    #04H
             MOV    34H,    #0B5H
             MOV    35H,    #0F7H
             MOV    36H,    #0BDH
             MOV    37H,    #0B9H
             MOV    38H,    #0A3H
             MOV    39H,    #0ABH
             LCALL  LCDSHOW_DATA
             LCALL  ORDER_SEND
             LJMP   KEY_SCANRET
loop29:       MOV    34H,    #0B6H     ;"对比度+"
              MOV    35H,    #0D4H
              MOV    36H,    #0B1H
              MOV    37H,    #0C8H
              MOV    38H,    #0B6H
              MOV    39H,    #0C8H
              MOV    3AH,    #0A3H
              MOV    3BH,    #0ABH
              LCALL  LCDSHOW_DATA
              MOV   41H,    #00H
              MOV   42H,    #00H
              MOV   4FH,    #04H
              LCALL  ORDER_SEND
              LJMP   KEY_SCANRET
PARK_3H9L:   MOV    TH0,    #00H
             MOV    TL0,    #00H
             CJNE   A,     #04H,     PARK_4H9L
             CLR    KEY_DATA_C
             JNB   SHIFT_LED,   LOOP39
             MOV   41H,    #00H         ;键"光圈+"
             MOV   42H,    #00H
             MOV   4FH,    #04H
             MOV    34H,    #0B9H
             MOV    35H,    #0E2H
             MOV    36H,    #0C8H
             MOV    37H,    #0A6H
             MOV    38H,    #0A3H
             MOV    39H,    #0ABH
             LCALL  LCDSHOW_DATA
             LCALL  ORDER_SEND
             LJMP   KEY_SCANRET
loop39:       MOV    34H,    #0C1H     ;"亮度+"
              MOV    35H,    #0C1H
              MOV    36H,    #0B6H
              MOV    37H,    #0C8H
              MOV    38H,    #0A3H
              MOV    39H,    #0ABH
              MOV    3AH,    #020H
              MOV    3BH,    #020H
              LCALL  LCDSHOW_DATA
              MOV   41H,    #00H
              MOV   42H,    #00H
              MOV   4FH,    #04H
              LCALL  ORDER_SEND
              LJMP   KEY_SCANRET
PARK_4H9L:   MOV    TH0,    #00H
             MOV    TL0,    #00H
             CJNE   A,   #08H,  PARK_5H9L
             CLR    KEY_DATA_C
             JNB   SHIFT_LED,   LOOP49
             MOV    41H,    #13H       ;是否云台左
             MOV    42H,    #0F7H
             MOV    4FH,    #04H       ;指令字节数
             MOV    34H,    #0D4H
             MOV    35H,    #0C6H
             MOV    36H,    #0CCH
             MOV    37H,    #0A8H
             MOV    38H,    #0D7H
             MOV    39H,    #0F3H
             LCALL  LCDSHOW_DATA
             LCALL  ORDER_SEND         ;发送指令
LOOP49:      LJMP   KEY_SCANRET
PARK_5H9L:   MOV    TH0,    #00H
             MOV    TL0,    #00H
             CJNE    A,    #10H,   PARKRET
             CLR    KEY_DATA_C
             JNB   SHIFT_LED,   PARKRET
             MOV    41H,    #13H         ;云台上
             MOV    42H,    #0FBH
             MOV    4FH,    #04H         ;指令字节数
             MOV    34H,    #0D4H
             MOV    35H,    #0C6H
             MOV    36H,    #0CCH
             MOV    37H,    #0A8H
             MOV    38H,    #0C9H
             MOV    39H,    #0CFH
             LCALL  LCDSHOW_DATA
             LCALL  ORDER_SEND           ;发送指令
PARKRET:     MOV    TH0,      #00H
             MOV    TL0,      #00H
             CPL    WATCH_DOG
             LJMP   KEY_SCANRET

;*************************************
;         键盘扫描程序段
;         INT1中断引发
;*************************************

KEY_SCAN:  MOV     TH0,      #00H
           MOV     TL0,      #00H
           CPL     WATCH_DOG
      ;-----------送行数据00H,读P1口列值-------------
           ANL     P2,       #0E0H
           MOV     P1,       #0FFH
           MOV     A,        P1
           CJNE    A,        #0FFH,    KEY_READ    ;判断有无按键按下
           NOP
           LJMP    KEY_SCANRET
KEY_READ:  LCALL   DELAY_1MS
           MOV     A,       P1
           CJNE    A,       #0FFH,    KEY_READ1
           LJMP    KEY_SCANRET
KEY_READ1: LCALL   DELAY_1MS
           MOV     A,       P1
           CJNE    A,       #0FFH,    L_SAVE
           LJMP    KEY_SCANRET
L_SAVE:    MOV     A,       P1
           CPL     A
           ANL     A,       #7FH
           MOV     52H,     A                       ;列数据存入52H
      ;----------送列数据00H,读行值----------
           ANL     P1,      #80H
           SETB    P2.0
           SETB    P2.1
           SETB    P2.2
           SETB    P2.3
           SETB    P2.4
           MOV     A,     P2
           CPL     A
           ANL     A,     #1FH
           MOV     53H,   A                          ;行数据存入53H
           MOV     TH0,      #00H
           MOV     TL0,      #00H
     ;--------查找行列号-----------

H_VALUETEST: MOV   R3,      #01H
           MOV    A,        #01H
H_CONE:    CJNE   A,        53H,   RLEFT_H
           NOP
           MOV    53H,      R3                 ;按键行号存入53H单元
           MOV    R3,       #01H
           MOV    A,        #01H
           LJMP   L_VALUETEST
RLEFT_H:   MOV    TH0,    #00H
           MOV    TL0,    #00H
           INC    R3
           RL     A
           MOV     TH0,      #00H
           MOV     TL0,      #00H
           CJNE   R3,    #06H,   H_CONE
           LJMP   KEY_SCANRET
L_VALUETEST: MOV    TH0,    #00H
           MOV    TL0,    #00H
           CJNE  A,   52H,    RLEFT_L
           NOP
           MOV    52H,      R3         ;按键列号存入52H单元
           LJMP   KEY_VALUEDETE
RLEFT_L:   INC    R3
           RL     A
           MOV     TH0,      #00H
           MOV     TL0,      #00H
           CJNE   R3,    #08H,   L_VALUETEST
           LJMP   KEY_SCANRET

   ;------------合成键值---------------
KEY_VALUEDETE: MOV    TH0,    #00H
              MOV    TL0,    #00H
              CPL   WATCH_DOG
              MOV   A,      53H
              SWAP  A
              ADD   A,      52H
              MOV   54H,    A
              MOV   A,      53H
              MOV     TH0,      #00H
              MOV     TL0,      #00H
              MOV    3AH,    #0A1H
              MOV    3BH,    #0A0H
              MOV    3CH,    #0A1H
              MOV    3DH,    #0A0H
              MOV    3EH,    #0A1H
              MOV    3FH,    #0A0H
              MOV    40H,    #0FFH
              MOV    43H,    #01H
              CJNE  A,    #01H,    KEY_2H
              LJMP  KEY_1HDTE
KEY_2H:       CJNE  A,    #02H,    KEY_3H
              LJMP  KEY_2HDTE
KEY_3H:       CJNE  A,    #03H,    KEY_4H
              LJMP  KEY_3HDTE
KEY_4H:       CJNE  A,    #04H,    KEY_5H
              LJMP  KEY_4HDTE
KEY_5H:       CJNE  A,    #05H,    KEY_SCANRET2
              LJMP  KEY_5HDTE
KEY_SCANRET2: LJMP  KEY_SCANRET

   ;-----------键值编码判定------------
KEY_1HDTE:    MOV     TH0,      #00H
              MOV     TL0,      #00H
              CPL     WATCH_DOG
              MOV   A,    54H
              CJNE  A,    #11H,   KEY_1H2L_C        ;键"主机"
              CLR    KEY_DATA_C
              JNB   SHIFT_LED,   LOOP11
              MOV   A,      KEY_TIMES
              CJNE  A,  #00H,  KEY_11_N1
              MOV   38H,     #30H
              MOV   A,       20H
              ADD   A,       #30H
              MOV   39H,     A
              LJMP  KEY_11_N2
KEY_11_N1:    MOV    A,      20H
              ADD    A,      #30H
              MOV    38H,    A
              MOV    A,      21H
              ADD    A,      #30H
              MOV    39H,    A
KEY_11_N2:    MOV    34H,    #0D6H
              MOV    35H,    #0F7H
              MOV    36H,    #0BBH
              MOV    37H,    #0FAH
              MOV    3AH,    #20H
              MOV    3BH,    #20H
              LCALL  LCDSHOW_DATA
              MOV    34H,    #0D6H
              MOV    35H,    #0F7H
              MOV    36H,    #0BBH
              MOV    37H,    #0FAH
              MOV    38H,    #03AH
              MOV    39H,    #00H
              MOV    A,   KEY_TIMES
              CJNE   A,   #00H,   LOOP11_1
              MOV    A,   20H
              ADD    A,   #30H
              MOV    3AH,    #30H
              MOV    3BH,    #20H
              MOV    3CH,    A
              MOV    3DH,    #20H
              LJMP   LOOP11_SHOW
KEY_1H2L_C:   LJMP   KEY_1H2L
LOOP11_1:     MOV    A,    20H
              ADD    A,    #30H
              MOV    3AH,   A
              MOV    3BH,   #20H
              MOV    A,    21H
              ADD    A,     #30H
              MOV    3CH,   A
              MOV    3DH,   #20H
 LOOP11_SHOW: LCALL  LCDSHOW_MADD
              MOV   41H,    #00H
              MOV   42H,    #00H
              MOV   4FH,    #04H
              LCALL  ORDER_SEND
 LOOP11:      LJMP   KEY_SCANRET
KEY_1H2L:     MOV    TH0,    #00H
              MOV    TL0,    #00H
              CJNE   A,     #12H,    KEY_1H3L
              CLR    KEY_DATA_C
              JNB    SHIFT_LED,  LOOP12
              MOV   41H,    #11H           ;键"菜单   MENU"
              MOV   42H,    #0F7H
              MOV   4FH,    #04H
              MOV    34H,    #0B2H
              MOV    35H,    #0CBH
              MOV    36H,    #0B5H
              MOV    37H,    #0A5H
              MOV    38H,    #0A1H
              MOV    39H,    #0A0H
              LCALL  LCDSHOW_DATA
              LCALL  ORDER_SEND
LOOP12:       LJMP   KEY_SCANRET
KEY_1H3L:     MOV     TH0,      #00H
              MOV     TL0,      #00H
              CJNE   A,     #13H,    KEY_1H4L
              CLR    KEY_DATA_C
              JNB    SHIFT_LED,  LOOP13
              MOV   41H,    #12H              ;键"回放  F1"
              MOV   42H,    #0FDH

⌨️ 快捷键说明

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