📄 gwdvp_m1.asm
字号:
DJNZ R2,MULNMZ
MULNMB: MOV R2,AD0
MOV R1,AD6
MOV R0,#ADA
CLR 00H
MULNML: MOV A,ADB
JZ MULNMD
MOV B,@R0
MUL AB
ADD A,@R1
MOV @R1,A
JNB 00H,MULNM1
INC B
MULNM1: MOV A,B
DEC R1
ADDC A,@R1
MOV @R1,A
MOV 00H,C
DEC R0
DJNZ R2,MULNML
MULNMD: MOV R0,AD5
CLR A
MOV R2,AD2
MULNMS: XCH A,@R0
INC R0
DJNZ R2,MULNMS
DJNZ R3,MULNMB
RET
; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KKEYI: LCALL KKS1 ; KEY SCANNING PROG
JNZ KLK1 ; 有键盘, 转跳 KLK1
KN1: LCALL DELAY
LCALL DELAY
SJMP KKEYI ; 无键,转跳 KKEYI 继续测键
KLK1: LCALL DELAY
LCALL DELAY
LCALL KKS1
JNZ KLK2 ; 确实有键,转跳至 KLK2
LCALL DELAY
SJMP KKEYI
; --------------------------------------------
KLK2: MOV P1,#0FEH ; THERE IS KEYI
NOP
JB P1.4,NOK1
MOV A,#00H
LJMP GOHM
NOK1: NOP
JB P1.5,NOK2
MOV A,#01H
LJMP GOHM
NOK2: NOP
JB P1.6,NOK3
MOV A,#02H
LJMP GOHM
NOK3: NOP
JB P1.7,NOK4
MOV A,#03H
LJMP GOHM
NOK4: NOP
; ---------------------------------------------
MOV P1,#0FDH ; THERE IS KEYI
NOP
JB P1.4,NOK5
MOV A,#04H
LJMP GOHM
NOK5: NOP
JB P1.5,NOK6
MOV A,#05H
LJMP GOHM
NOK6: NOP
JB P1.6,NOK7
MOV A,#06H
LJMP GOHM
NOK7: NOP
JB P1.7,NOK8
MOV A,#07H
LJMP GOHM
NOK8: NOP
; ---------------------------------------------
MOV P1,#0FBH ; THERE IS KEYI
NOP
JB P1.4,NOK9
MOV A,#08H
LJMP GOHM
NOK9: NOP
JB P1.5,NOKA
MOV A,#09H
LJMP GOHM
NOKA: NOP
JB P1.6,NOKB
MOV A,#0AH
LJMP GOHM
NOKB: NOP
JB P1.7,NOKC
MOV A,#0BH
LJMP GOHM
NOKC: NOP
; ---------------------------------------------
MOV P1,#0F7H ; THERE IS KEYI
NOP
JB P1.4,NOKD
MOV A,#0CH
LJMP GOHM
NOKD: NOP
JB P1.5,NOKE
MOV A,#0DH
LJMP GOHM
NOKE: NOP
JB P1.6,NOKF
MOV A,#0EH
LJMP GOHM
NOKF: NOP
JB P1.7,NOKR
MOV A,#0FH
LJMP GOHM
NOKR: RET
; ---------------------------------------------
GOHM: PUSH ACC
KLK3: LCALL DELAY
LCALL KKS1
JNZ KLK3
LCALL DELAY
LCALL KKS1
JNZ KLK3
POP ACC
RET
KKS1: MOV P1,#0F0H ; IS THERE ANY
NOP
NOP
NOP
NOP
NOP
MOV A,P1
ORL A,#0FH
CPL A
RET ; IF THERE IS KEYING THEN A =/= 0; 如果A=0表示没有任何键
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
; TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
BCDHEX : NOP ; N BYTES COMPRESSED BCD CODES TO M BYTES HEX CODES
MOV 30H,#07H ; HERE N=M=7 BCD(49,4A,4B,4C,4D,4E,4FH)--HEX(59,5A,5B,5C,5D,5E,5FH)
MOV 31H,#07H ; BCD码向16进制HEX码转换程序
MOV R1,#ADB
MOV R2,AD1
MOV R3,AD0
MOV A,#ADA
CLR C
SUBB A,R3
INC A
MOV R0,A
DBNZ: MOV @R1,#00H
DEC R1
DJNZ R2,DBNZ
SJMP DBNB
DBNJ: MOV R1,#ADB
MOV R2,AD1
CLR 00H
CLR A
DBNM: XCH A,@R1
MOV B,#64H
MUL AB
MOV C,00H
ADDC A,@R1
MOV @R1,A
MOV 00H,C
MOV A,B
DEC R1
DJNZ R2,DBNM
DBNB: CLR A
XCHD A,@R0
XCH A,@R0
SWAP A
MOV B,#0AH
MUL AB
ADD A,@R0
INC R0
DBNA: MOV R2,AD1
DEC R2
MOV R1,#ADB
ADD A,@R1
MOV @R1,A
DBNL: DEC R1
CLR A
ADDC A,@R1
MOV @R1,A
DJNZ R2,DBNL
DJNZ R3,DBNJ
RET
DB 02H,12H
; llllllllllllllllllllllllllllllllllllllllllll
HEXBCD : NOP ; 7 BYTE HEX TO 8 BYTE BCD : HEX(3XH-30H)-->BCD(4XH-40H)
MUBTD: MOV R0,#40H
MOV R7,#08H
CLR A
LOPP1: MOV @R0,A
INC R0
DJNZ R7,LOPP1
MOV R7,#38H
LOOP4: MOV R1,#30H
MOV R6,#07H
CLR C
LOPP2: MOV A,@R1
RLC A
MOV @R1,A
INC R1
DJNZ R6,LOPP2
MOV R5,#08H
MOV R0,#40H
LOOP3: MOV A,@R0
ADDC A,@R0
DA A
MOV @R0,A
INC R0
DJNZ R5,LOOP3
DJNZ R7,LOOP4
RET
;
;llllllllllllllllllllllllllllllllllllll
DSP1: MOV R1,40H
INC R1
MOV 40H,R1
MOV A,@R1 ; DAT1
MOV P1,A
SETB RS
CLR RW
nop
CLR E
NOP
NOP
SETB E
LCALL DDT9
DJNZ R2,DSP1
RET
ENABLE: CLR RS
CLR RW
MOV P1,DAT
CLR E
nop
SETB E
LCALL DDT9
RET
ASC1: MOV DPTR,#TAJ
MOVC A,@A+DPTR
RET
TAJ: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,41H,42H,43H,44H,45H,46H
; KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
ASC: MOV DPTR,#TA6
MOVC A,@A+DPTR
RET
TA6: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,20H,48H,7AH,4DH
DB 0E4H,73H,2EH ; 0EH- u ; 0FH- s ;10H ->.
DISP3: MOV DAT,#38H ;8bit 2 Rol 5*7
LCALL ENABLE
MOV DAT,#0FH ;OPEN LCD : 00001DCB
LCALL ENABLE
MOV DAT,#06H ;LEFT TO RIGHT:
LCALL ENABLE
RET
;
;
FB1: MOV R4,#14H
MOV R6,#00H
RC5: MOV A,R6
INC R6
MOVC A,@A+DPTR
MOV B,R5
INC R5
LCALL DISP2
DJNZ R4,RC5
RET
TC1: DB 20H,20H,53H,49H,47H,4EH,41H,4CH,20H,54H,65H,73H,74H,73H,20H,20H
; SIGNAL_TESTS
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
FB6: MOV R4,#0AH ; SQUARE: ,SAWTOOTH , TRIANGLE, LADDER
MOV R6,#00H
RCV: MOV A,R6
INC R6
MOVC A,@A+DPTR
MOV B,R5
INC R5
LCALL DISP2
DJNZ R4,RCV
RET
KONX: DB 20H,20H,20H,20H,4BH,4FH,4EH,58H,49H,4EH ; KONXIN
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
FCN9: MOV R4,#05H ;
MOV R6,#00H
RCT9: MOV A,R6
INC R6
MOVC A,@A+DPTR
MOV B,R5
INC R5
LCALL DISP2
DJNZ R4,RCT9
RET
;
FN_A : DB 46H,52H,45H,51H,3AH ; FREQ:
FN_B : DB 50H,57H,20H,20H,3AH ; PW :
FN_C : DB 44H,55H,54H,59H,3AH ; DUTY:
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
;
WW45: MOV A,20H
SJMP OOLK
DISP2: MOV 20H,A
CJNE A,#3AH,NNO3A
SJMP OOLK
NNO3A: ANL A,#0F0H
CJNE A,#30H,WW45
MOV A,20H
ANL A,#0FH
OOLK: MOV R0,B
MOV @R0,A
MOV DAT,B ; B是地址;A是显示数据
MOV A,20H
LCALL ENABLE
MOV P1,A
SETB RS
CLR RW
nop
CLR E
nop
SETB E
LCALL DDT9
RET
DISPV: MOV DAT,B ; B是地址;A是显示数据
LCALL ENABLE
MOV P1,A
SETB RS
CLR RW
nop
CLR E
nop
SETB E
LCALL DDT9
RET
;
;JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
DELAY: MOV R1,#0FH ; 9H
WWW: MOV R0,#0FFH
NMN: DJNZ R0,NMN
DJNZ R1,WWW
RET
WWA: MOV R0,#0F0H
NMA: DJNZ R0,NMA
DJNZ R1,WWA
RET
DDT9: MOV R3,#1FH
DDT8: MOV R2,#0FFH
DDT7: DJNZ R2,DDT7
DJNZ R3,DDT8
RET
H4F20: MOV 4FH,20H
MOV 4EH,21H
MOV 4DH,22H
MOV 4CH,23H
MOV 4BH,24H
MOV 4AH,#00H
MOV 49H,#00H
RET
H5AT4A: MOV 4AH,5AH
MOV 4BH,5BH
MOV 4CH,5CH
MOV 4DH,5DH
MOV 4EH,5EH
MOV 4FH,5FH
RET
; hhhhhhhhhhhhJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
; PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP
H5A27: MOV 5AH,#00H
MOV 5BH,#00H
MOV 5CH,27H
MOV 5DH,26H
MOV 5EH,25H
MOV 5FH,24H
RET
H5A23: MOV 5AH,#00H
MOV 5BH,#00H
MOV 5CH,23H
MOV 5DH,22H
MOV 5EH,21H
MOV 5FH,20H
RET
; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
NL0: MOV R2,#05H
NL1: CLR A
MOV @R1,A
INC R1
DJNZ R2,NL1
RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
SEND8: MOV R2,#0CH
SEND7: MOV R0,#44H
MOV R1,#54H
RRQ9: MOV A,@R1
INC R1
MOV @R0,A
INC R0
DJNZ R2,RRQ9
RET
RRQ10: MOV R2,#07H
WWE4: MOV A,@R1
DEC R1
MOV @R0,A
INC R0
DJNZ R2,WWE4
RET
DDD: MOV 30H,#07H
GNN: LCALL DDX
DJNZ 30H,GNN
RET
DDX: MOV 21,#0FFH
WWWA: MOV 20,#0FFH
NMNA: DJNZ 20,NMNA
DJNZ 21,WWWA
RET
;---------------------------------------------------------------
DPTR1: CLR C
MOV A,DPL
SUBB A,#01H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -