📄 h516s1.asm
字号:
;系统晶振是 6.0 MHz
ORG 0D00H
START:
MOV SP,#60H
mov A,#01H
MOV R0,#79H
MOV @R0,A
INC R0
MOV A,#10H
MOV @R0,A
INC R0
MOV A,#01H
MOV @R0,A
INC R0
MOV A,#03H
MOV @R0,A
INC R0
MOV A,#00H
MOV @R0,A
INC R0
MOV A,#08H
MOV @R0,A
MOV A,#7EH
MOV DPTR,#1FFFH
MOVX @DPTR,A
MOV SCON,#50H ;串口 方式 1
MOV TMOD,#20H ;T1 方式 1
MOV TL1,#0CCH ;波特率 9600 的常数
MOV TH1,#0CCH
SETB TR1 ;开中断
CLR ET1
CLR ES
REDIKEY:LCALL KEYDISP ;读键盘
CJNE A,#10H,SS0
SS0: JNC REDIKEY
MOV SBUF,A ;串口输出键盘输入的值
NOP
SS: JBC TI,REDIKEY ;是否发送完毕
SJMP SS
KEYDISP:LCALL DISP
LCALL KEYSM
MOV R4,A ;KEYDATA
MOV R1,#76H ;DATASAME TIME
MOV A,@R1
MOV R2,A
INC R1
MOV A,@R1
MOV R3,A ;LAST KEYDATA
XRL A,R4
;TWO TIME KEYDATA
MOV R3,04H ;NEW KEYDATA---R3
MOV R4,02H ;TIME---R4
JZ KEYDISP1
MOV R2,#88H
MOV R4,#88H
KEYDISP1:DEC R4
MOV A,R4
XRL A,#82H
JZ KEYDISP2
MOV A,R4 ;R4=TIME
XRL A,#0EH
JZ KEYDISP2
MOV A,R4
ORL A,R4
JZ KEYDISP3
MOV R4,#20H ;R4=20H
DEC R2
LJMP KEYDISP5
KEYDISP3:MOV R4,#0FH
KEYDISP2:MOV R2,04H
MOV R4,03H
KEYDISP5:MOV R1,#76H
MOV A,R2
MOV @R1,A
INC R1
MOV A,R3
MOV @R1,A
MOV A,R4 ;****
CJNE R3,#10H,KEYDISP4
KEYDISP4:RET
DISP: SETB 0D4H
MOV R1,#7EH
MOV R2,#20H
MOV R3,#00H
DISP1:
MOV DPTR,#DATACO
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A
MOV DPTR,#0FF21H
MOV A,R2
MOVX @DPTR,A
LCALL DELAY
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1
CLR 0D4H
RET
DELAY: MOV R6,#02H
DELAY0: MOV R7,#0FFH
DELAY1: DJNZ R7,DELAY1
DJNZ R6,DELAY0
RET
DATACO: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0BFH,0CH,89H,0DEH
KEYSM:
SETB 0D4H
MOV A,#0FFH
MOV DPTR,#0FF22H
MOVX @DPTR,A ;OFF DISP
KEYSM0: MOV R2,#0FEH
MOV R3,#08H
MOV R0,#00H
KEYSM1: MOV A,R2
MOV DPTR,#0FF21H
MOVX @DPTR,A
NOP
RL A
MOV R2,A
MOV DPTR,#0FF23H
MOVX A,@DPTR
CPL A
NOP
NOP
NOP
ANL A,#0FH
JNZ KEYSM2
INC R0 ;NOKEY
DJNZ R3,KEYSM1
SJMP KEYSM10
KEYSM2: ;YKEY
CPL A
JB 0E0H,KEYSM3
MOV A,#00H
SJMP KEYSM7
KEYSM3: JB 0E1H,KEYSM4
MOV A,#08H
SJMP KEYSM7
KEYSM4: JB 0E2H,KEYSM5
MOV A,#10H
SJMP KEYSM7
KEYSM5: JB 0E3H,KEYSM10
MOV A,#18H
KEYSM7: ADD A,R0
CLR 0D4H
CJNE A,#10H,KEYSM9
KEYSM9: JNC KEYSM10
MOV DPTR,#KEYDATA
MOVC A,@A+DPTR
KEYSM10:RET
KEYDATA:DB 07H,04H,08H,05H,09H,06H,0AH,0BH
DB 01H,00H,02H,0FH,03H,0EH,0CH,0DH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -