📄 key.asm
字号:
$NOMOD51
NAME KEY
POINTPULSEPIN BIT 090H.6
P1 DATA 090H
P3 DATA 0B0H
T0 BIT 0B0H.4
AC BIT 0D0H.6
P4 DATA 0C0H
T1 BIT 0B0H.5
T2 BIT 090H.0
EA BIT 0A8H.7
WDKEY DATA 0AEH
UISTA DATA 0E8H
ENI1 BIT 0D8H.6
IE DATA 0A8H
a0 BIT 0E0H.0
P1_0 BIT 090H.0
a1 BIT 0E0H.1
P1_1 BIT 090H.1
a2 BIT 0E0H.2
P1_2 BIT 090H.2
P3_0 BIT 0B0H.0
a3 BIT 0E0H.3
P1_3 BIT 090H.3
CARD_IO BIT 0C0H.0
P4_0 BIT 0C0H.0
P3_1 BIT 0B0H.1
a4 BIT 0E0H.4
P1_4 BIT 090H.4
P4_1 BIT 0C0H.1
P3_2 BIT 0B0H.2
a5 BIT 0E0H.5
P1_5 BIT 090H.5
P4_2 BIT 0C0H.2
P3_3 BIT 0B0H.3
EXF2 BIT 0C8H.6
WDRST DATA 0A6H
a6 BIT 0E0H.6
P1_6 BIT 090H.6
P4_3 BIT 0C0H.3
P3_4 BIT 0B0H.4
a7 BIT 0E0H.7
P1_7 BIT 090H.7
P4_4 BIT 0C0H.4
P3_5 BIT 0B0H.5
ES BIT 0A8H.4
S1SETUP DATA 0D1H
P4_5 BIT 0C0H.5
P3_6 BIT 0B0H.6
S2SETUP DATA 0D2H
IP DATA 0B8H
P4_6 BIT 0C0H.6
P3_7 BIT 0B0H.7
P4_7 BIT 0C0H.7
RI BIT 098H.0
ADAT DATA 096H
ADDR BIT 0D8H.3
INT0 BIT 0B0H.2
CY BIT 0D0H.7
UDR0 DATA 0EFH
INT1 BIT 0B0H.3
TI BIT 098H.1
UDT0 DATA 0E7H
UDT1 DATA 0E6H
RXD2 BIT 090H.2
ACON DATA 097H
RCAP2H DATA 0CBH
TXD2 BIT 090H.3
PS BIT 0B8H.4
SP DATA 081H
T2EX BIT 090H.1
DDCADR DATA 0D6H
ASCL DATA 095H
DDCSDA BIT 0C0H.0
OV BIT 0D0H.2
PWM0 DATA 0A2H
DDCDAT DATA 0D5H
PWM1 DATA 0A3H
RCAP2L DATA 0CAH
A15 BIT 0B0H.2
PWM2 DATA 0A4H
PWM3 DATA 0A5H
C_T2 BIT 0C8H.1
EOPF BIT 0E8H.1
PSCL0H DATA 0B2H
RCLK BIT 0C8H.5
UADR DATA 0EEH
DDCCON DATA 0D7H
TCLK BIT 0C8H.4
DDCSCL BIT 0C0H.1
PSCL0L DATA 0B1H
PWMCH0 BIT 0C0H.3
SBUF DATA 099H
PCON DATA 087H
PWMCH1 BIT 0C0H.4
UIEN DATA 0E9H
PWMCH2 BIT 0C0H.5
PWMCH3 BIT 0C0H.6
SCON DATA 098H
TMOD DATA 089H
TCON DATA 088H
USCL DATA 0E1H
IE0 BIT 088H.1
USTA DATA 0EDH
IE1 BIT 088H.3
RAMBUF DATA 0D4H
RSTF BIT 0E8H.5
B DATA 0F0H
CP_RL2 BIT 0C8H.0
CR0 BIT 0D8H.0
CR1 BIT 0D8H.1
CR2 BIT 0D8H.7
ACC DATA 0E0H
PrnCS BIT 090H.5
ET0 BIT 0A8H.1
ET1 BIT 0A8H.3
TF0 BIT 088H.5
ET2 BIT 0A8H.5
TF1 BIT 088H.7
TF2 BIT 0C8H.7
RB8 BIT 098H.2
TH0 DATA 08CH
EX0 BIT 0A8H.0
IT0 BIT 088H.0
TH1 DATA 08DH
PRN_D9 BIT 0B0H.5
EX1 BIT 0A8H.2
IT1 BIT 088H.2
TB8 BIT 098H.3
TH2 DATA 0CDH
P BIT 0D0H.0
IEA DATA 0A7H
A_0 BIT 0E0H.0
SM0 BIT 098H.7
TL0 DATA 08AH
B_0 BIT 0F0H.0
A_1 BIT 0E0H.1
SM1 BIT 098H.6
TL1 DATA 08BH
B_1 BIT 0F0H.1
A_2 BIT 0E0H.2
SM2 BIT 098H.5
TL2 DATA 0CCH
B_2 BIT 0F0H.2
A_3 BIT 0E0H.3
B_3 BIT 0F0H.3
A_4 BIT 0E0H.4
RESUMF BIT 0E8H.0
PT0 BIT 0B8H.1
B_4 BIT 0F0H.4
A_5 BIT 0E0H.5
I2CSC BIT 0B0H.7
PT1 BIT 0B8H.3
RS0 BIT 0D0H.3
B_5 BIT 0F0H.5
A_6 BIT 0E0H.6
CARD_IO_SAM BIT 0C0H.4
I2CSD BIT 0B0H.6
PT2 BIT 0B8H.5
TR0 BIT 088H.4
RS1 BIT 0D0H.4
PWMCON DATA 0A1H
B_6 BIT 0F0H.6
A_7 BIT 0E0H.7
TR1 BIT 088H.6
B_7 BIT 0F0H.7
TR2 BIT 0C8H.2
PX0 BIT 0B8H.0
PX1 BIT 0B8H.2
IPA DATA 0B7H
S1ADR DATA 0DBH
DPH DATA 083H
S2ADR DATA 0DFH
S1DAT DATA 0DAH
SUSPND BIT 0E8H.7
S2DAT DATA 0DEH
DPL DATA 082H
DDCVSYNC BIT 0C0H.2
PRN_LIFT_RIGHT BIT 090H.7
EXEN2 BIT 0C8H.3
SBUF2 DATA 09BH
RXD0F BIT 0E8H.3
REN BIT 098H.4
S1CON DATA 0D8H
RXD1F BIT 0E8H.2
UCON0 DATA 0EAH
S2CON DATA 0DCH
SCON2 DATA 09AH
TXD0F BIT 0E8H.4
UCON1 DATA 0EBH
T2MOD DATA 0C9H
T2CON DATA 0C8H
STA BIT 0D8H.5
UCON2 DATA 0ECH
S1STA DATA 0D9H
RXD BIT 0B0H.0
S2STA DATA 0DDH
P1SFS DATA 091H
TXD BIT 0B0H.1
P3SFS DATA 093H
P4SFS DATA 094H
F0 BIT 0D0H.5
STO BIT 0D8H.4
ADC0 BIT 090H.4
ADC1 BIT 090H.5
ADC2 BIT 090H.6
PSW DATA 0D0H
ADC3 BIT 090H.7
?PR?GetKey?KEY SEGMENT CODE
?DT?GetKey?KEY SEGMENT DATA OVERLAYABLE
?C_INITSEG SEGMENT CODE
?XD?KEY SEGMENT XDATA
?XD?GetKey?KEY SEGMENT XDATA OVERLAYABLE
EXTRN CODE (DL30MS)
EXTRN DATA (keyc)
EXTRN XDATA (f_shouxie)
PUBLIC UPSD_xreg
PUBLIC keybuffer
PUBLIC GetKey
XSEG AT 0200H
UPSD_xreg: DS 256
RSEG ?DT?GetKey?KEY
?GetKey?BYTE:
i?040: DS 1
Prekey?041: DS 1
RSEG ?XD?KEY
keybuffer: DS 47
RSEG ?XD?GetKey?KEY
j?042: DS 2
RSEG ?XD?GetKey?KEY
k?043: DS 2
RSEG ?C_INITSEG
DB 060H
DB 02FH
DW keybuffer
DB 071H
DB 077H
DB 065H
DB 072H
DB 074H
DB 079H
DB 075H
DB 069H
DB 06FH
DB 070H
DB 06CH
DB 06BH
DB 07AH
DB 078H
DB 063H
DB 076H
DB 062H
DB 06EH
DB 02EH
DB 02BH
DB 003H
DB 006H
DB 009H
DB 008H
DB 061H
DB 073H
DB 064H
DB 066H
DB 067H
DB 068H
DB 020H
DB 06AH
DB 06DH
DB 00DH
DB 096H
DB 000H
DB 01BH
DB 00BH
DB 093H
DB 080H
DB 00FH
DB 03FH
DB 007H
DB 005H
DB 004H
DB 002H
DB 001H
RSEG ?PR?GetKey?KEY
GetKey:
USING 0
CLR A
MOV i?040,A
MOV DPTR,#UPSD_xreg+07H
MOV A,#07H
MOVX @DPTR,A
CLR A
MOV DPTR,#UPSD_xreg+05H
MOVX @DPTR,A
?C0001:
MOV DPTR,#f_shouxie
MOVX A,@DPTR
MOV R7,A
CJNE A,#01H,?C0003
MOV keyc,#020H
RET
?C0003:
MOV A,R7
CJNE A,#02H,?C0005
MOV keyc,#0F0H
RET
?C0005:
MOV DPTR,#UPSD_xreg+05H
MOV A,i?040
MOVX @DPTR,A
ORL P1SFS,#010H
CLR A
MOV ASCL,A
ANL ACON,#0D1H
ORL ACON,#022H
LCALL DL30MS
?C0006:
MOV A,ACON
JNB ACC.0,?C0006
?C0007:
ANL ACON,#0DFH
MOV B,ADAT
MOV A,ADAT
CLR C
SUBB A,#0DCH
JC $ + 5H
LJMP ?C0008
CLR A
MOV DPTR,#j?042
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
?C0009:
MOV DPTR,#j?042+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0040
MOV DPTR,#j?042
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0040:
MOV DPTR,#j?042
MOVX A,@DPTR
CJNE A,#02EH,?C0009
INC DPTR
MOVX A,@DPTR
CJNE A,#0E0H,?C0009
?C0010:
MOV A,B
SETB C
SUBB A,#01BH
JNC ?C0012
MOV B,#08H
?C0012:
MOV A,B
CLR C
SUBB A,#01FH
JC ?C0013
MOV A,B
SETB C
SUBB A,#02DH
JNC ?C0013
MOV B,#07H
?C0013:
MOV A,B
CLR C
SUBB A,#037H
JC ?C0014
MOV A,B
SETB C
SUBB A,#046H
JNC ?C0014
MOV B,#06H
?C0014:
MOV A,B
CLR C
SUBB A,#050H
JC ?C0015
MOV A,B
SUBB A,#076H
JNC ?C0015
MOV B,#05H
?C0015:
MOV A,B
CLR C
SUBB A,#078H
JC ?C0016
MOV A,B
SETB C
SUBB A,#08CH
JNC ?C0016
MOV B,#04H
?C0016:
MOV A,B
CLR C
SUBB A,#08DH
JC ?C0017
MOV A,B
SETB C
SUBB A,#0A5H
JNC ?C0017
MOV B,#03H
?C0017:
MOV A,B
CLR C
SUBB A,#0AAH
JC ?C0018
MOV A,B
SETB C
SUBB A,#0B9H
JNC ?C0018
MOV B,#02H
?C0018:
MOV A,B
CLR C
SUBB A,#0BEH
JC ?C0019
MOV A,B
SETB C
SUBB A,#0CDH
JNC ?C0019
MOV B,#01H
?C0019:
MOV A,B
CLR C
SUBB A,#0CEH
JC ?C0021
MOV A,B
SETB C
SUBB A,#0E5H
JNC ?C0021
CLR A
MOV B,A
SJMP ?C0021
?C0008:
MOV B,#09H
?C0021:
MOV A,B
CJNE A,#09H,?C0022
MOV DPTR,#k?043+01H
MOVX A,@DPTR
INC A
MOVX @DPTR,A
JNZ ?C0042
MOV DPTR,#k?043
MOVX A,@DPTR
INC A
MOVX @DPTR,A
?C0042:
?C0022:
CLR C
MOV DPTR,#k?043+01H
MOVX A,@DPTR
SUBB A,#0D0H
MOV DPTR,#k?043
MOVX A,@DPTR
SUBB A,#07H
JC ?C0023
CLR A
MOV Prekey?041,A
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
?C0023:
MOV A,B
SETB C
SUBB A,#08H
JC $ + 5H
LJMP ?C0024
CLR A
MOV DPTR,#k?043
MOVX @DPTR,A
INC DPTR
MOVX @DPTR,A
MOV R7,B
MOV B,#06H
MOV A,i?040
MUL AB
ADD A,R7
MOV DPL,A
CLR A
ADDC A,B
MOV DPH,A
MOV A,DPL
ADD A,#LOW (keybuffer)
MOV DPL,A
MOV A,DPH
ADDC A,#HIGH (keybuffer)
MOV DPH,A
MOVX A,@DPTR
MOV keyc,A
MOV A,Prekey?041
XRL A,#093H
JNZ ?C0025
MOV A,keyc
CLR C
SUBB A,#061H
JC ?C0026
MOV A,keyc
SETB C
SUBB A,#07AH
JNC ?C0026
MOV A,#0E0H
ADD A,keyc
MOV keyc,A
?C0026:
MOV A,keyc
CJNE A,#01H,?C0027
MOV keyc,#021H
?C0027:
MOV A,keyc
CJNE A,#02H,?C0028
MOV keyc,#040H
?C0028:
MOV A,keyc
CJNE A,#03H,?C0029
MOV keyc,#023H
?C0029:
MOV A,keyc
CJNE A,#04H,?C0030
MOV keyc,#024H
?C0030:
MOV A,keyc
CJNE A,#05H,?C0031
MOV keyc,#025H
?C0031:
MOV A,keyc
CJNE A,#06H,?C0032
MOV keyc,#05EH
?C0032:
MOV A,keyc
CJNE A,#07H,?C0033
MOV keyc,#026H
?C0033:
MOV A,keyc
CJNE A,#08H,?C0034
MOV keyc,#02AH
?C0034:
MOV A,keyc
CJNE A,#09H,?C0035
MOV keyc,#028H
?C0035:
MOV A,keyc
JNZ ?C0036
MOV keyc,#029H
?C0036:
MOV A,keyc
CJNE A,#02DH,?C0037
MOV keyc,#05FH
?C0037:
MOV A,keyc
CJNE A,#03DH,?C0025
MOV keyc,#02BH
?C0025:
MOV Prekey?041,keyc
MOV A,keyc
CJNE A,#080H,?C0004
MOV DPTR,#UPSD_xreg+04H
MOVX A,@DPTR
ORL A,#020H
MOVX @DPTR,A
LCALL DL30MS
LCALL DL30MS
MOV DPTR,#UPSD_xreg+04H
MOVX A,@DPTR
ANL A,#0DFH
MOVX @DPTR,A
RET
?C0024:
INC i?040
ANL i?040,#07H
LJMP ?C0001
?C0004:
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -