📄 dskeyn.asm
字号:
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 + -