📄 gwdvp_m1.asm
字号:
; 2005-12-22 'LCD
RS EQU P3.0
RW EQU P3.1
E EQU P3.2
DAT EQU 30H
DAT1 EQU 31H
ORG 0000H
MOV SP,#60H
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE ; 如果使用LCD液晶显示,在程序开头必须加上这句
LCALL DISP3
MOV DAT,#01H ; CLEAR
LCALL ENABLE
MOV R5,#80H
MOV DPTR,#KONX
LCALL FB6
MOV DPTR,#TC1
MOV R5,#0C0H
LCALL FB1
MOV DAT,#0CH ; 关闭光标
LCALL ENABLE
MOV 7AH,#00H
MOV 7BH,#00H
MOV 7CH,#00H
MOV 7DH,#00H
KKE1: LCALL KKEYI ;键盘信号搜索
KCACOM: LCALL KCOM1 ; A > 9 执行键盘命令
LJMP KKE1
;lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KCOM1: CJNE A,#00H,KN88 ; 键1 (04): ---------------------------(1)
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#46H
MOV B,#81H
LCALL DISP2
MOV A,#3AH
MOV B,#82H
LCALL DISP2
MOV A,7AH
INC A
ANL A,#0FH
MOV 7AH,A
ADD A,7BH
MOV P0,A
MOV A,7AH
ANL A,#0FH
LCALL ASC1
MOV B,#85H
LCALL DISP2
MOV A,7BH
SWAP A
ANL A,#0FH
LCALL ASC1
MOV B,#84H
LCALL DISP2
RET
;UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU 键2(K05) LLLLLLLLLLLLLLLLLLLLLLLLUUUUUUUUUUUUUUUUUUU UUUUKKKKKKKKKKKKKKKK
KNJ99: LJMP MMKL
KN88: CJNE A,#01H,KNJ99 ; ----------------(2)
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#46H
MOV B,#81H
LCALL DISP2
MOV A,#3AH
MOV B,#82H
LCALL DISP2
MOV A,7BH
SWAP A
INC A
ANL A,#0FH
SWAP A
MOV 7BH,A
MOV A,7AH
ADD A,7BH
MOV P0,A
MOV A,7AH
ANL A,#0FH
LCALL ASC1
MOV B,#85H
LCALL DISP2
MOV A,7BH
SWAP A
ANL A,#0FH
LCALL ASC1
MOV B,#84H
LCALL DISP2
RET
; LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键3(K06) JJJJJJJJJJJJJJJJJJJLLLLLLLLLLLLLLLLLLL
KAAN7: LJMP KAAN ;
MMKL : CJNE A,#02H,KAAN7
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#50H
MOV B,#0C1H
LCALL DISP2
MOV A,#3AH
MOV B,#0C2H
LCALL DISP2
MOV A,7CH
INC A
ANL A,#0FH
MOV 7CH,A
ADD A,7DH
MOV P2,A
MOV A,7CH
ANL A,#0FH
LCALL ASC1
MOV B,#0C5H
LCALL DISP2
MOV A,7DH
SWAP A
ANL A,#0FH
LCALL ASC1
MOV B,#0C4H
LCALL DISP2
RET
;--------------------------------------------------------------------------------------------------------------
;PPPPPPPPPPPPPPPPPPPPPPPPPPPPPLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键4(K07) SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
KBBN: LJMP KBBN3
KAAN: CJNE A,#03H,KBBN ;
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#50H
MOV B,#0C1H
LCALL DISP2
MOV A,#3AH
MOV B,#0C2H
LCALL DISP2
MOV A,7DH
SWAP A
INC A
ANL A,#0FH
SWAP A
MOV 7DH,A
MOV A,7CH
ADD A,7DH
MOV P2,A
MOV A,7CH
ANL A,#0FH
LCALL ASC1
MOV B,#0C5H
LCALL DISP2
MOV A,7DH
SWAP A
ANL A,#0FH
LCALL ASC1
MOV B,#0C4H
LCALL DISP2
RET
;JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 键5(K14) KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJ
KDDN : LJMP KDDN7
KBBN3: CJNE A,#04H,KDDN ; 键5仅
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#31H
MOV B,#81H
LCALL DISP2
MOV A,#34H
MOV B,#82H
LCALL DISP2
RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键6(K15) LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KEEN: LJMP KEEN8
OTHB: RET
KDDN7: CJNE A,#05H,KEEN ; 键6
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#31H
MOV B,#81H
LCALL DISP2
MOV A,#35H
MOV B,#82H
LCALL DISP2
RET
; JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ 键7(K16) KKKKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJJJJJJJJJJJ
KEEN8: CJNE A,#06H,KFFN
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#31H
MOV B,#81H
LCALL DISP2
MOV A,#36H
MOV B,#82H
LCALL DISP2
RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 键8(K17) LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KFFN: CJNE A,#07H,KF8 ; 键8控制
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#31H
MOV B,#81H
LCALL DISP2
MOV A,#37H
MOV B,#82H
LCALL DISP2
RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
KF8: CJNE A,#08H,KF9 ; 键9(K24)控制
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#32H
MOV B,#81H
LCALL DISP2
MOV A,#34H
MOV B,#82H
LCALL DISP2
RET
KF9: CJNE A,#09H,KF10 ; 键10(K25)控制
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#32H
MOV B,#81H
LCALL DISP2
MOV A,#35H
MOV B,#82H
LCALL DISP2
RET
KF10: CJNE A,#0AH,KF11 ; 键11(K26)控制
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#32H
MOV B,#81H
LCALL DISP2
MOV A,#36H
MOV B,#82H
LCALL DISP2
RET
KF11: CJNE A,#0BH,KF12 ; 键12(K27)控制
MOV DAT,#01H ; CLEAR 液晶显示初始化
LCALL ENABLE
MOV A,#4BH
MOV B,#80H
LCALL DISP2 ;
MOV A,#32H
MOV B,#81H
LCALL DISP2
MOV A,#37H
MOV B,#82H
LCALL DISP2
RET
KF12: CJNE A,#0CH,KF13 ; 键13(K34)控制
LCALL CLR88
MOV DAT,#01H ; CLEAR
LCALL ENABLE
; -----------------------------------------------测频率-------------------------------------
MOV DPTR,#FN_A ;以上程序显示液晶设置
MOV R5,#80H
LCALL FCN9
RRRV: LCALL TESTF ; 测频率子程序
LCALL TESTFF ; 数据显示调整子程序
SJMP RRRV
KF14A: LJMP KF14
KF13: CJNE A,#0DH,KF14A ; 键14(K35)控制
MOV DAT,#01H ; CLEAR
LCALL ENABLE
RRRC: MOV DPTR,#FN_B
MOV R5,#81H
LCALL FCN9
MOV 0BH,#00H
MOV 0AH,#00H
LCALL WITH ; 测脉宽子程序
LCALL TESTPW ; 数据显示调整子程序
SJMP RRRC
RET
KF14: CJNE A,#0EH,KF15 ; 键15(K36)控制
MOV DAT,#01H ; CLEAR
LCALL ENABLE
MOV DPTR,#FN_C
MOV R5,#81H
LCALL FCN9
MOV 0BH,#00H
MOV 0AH,#00H
RRRN: LCALL RATO ; 测占空比子程序
LCALL TESTD ; 数据显示调整子程序
SJMP RRRN
KF15: ; 键16(K37)控制
MOV A,#49H
MOV B,#80H
LCALL DISP2
MOV A,#43H
MOV B,#80H
LCALL DISP2
LJMP CCC
RET
RET
;LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
;
;KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
DIVD1: NOP ; 2N BYTE / N BYTE = N BYTE ,HERE N=3 IN 31H
MOV 30H,#0CH ; (4A,4B,4C,4D,4E,4FH)/(5D,5E,5FH)=(4D,4E,4FH)
MOV 31H,#06H ; 除法程序,30H放置被除数字节数,31H放置除数字节数
DIVPP: MOV A,AD1
MOV R2,A
RL A
RL A
RL A
MOV R3,A
CLR 0F0H
CLR C
MOV A,#ADA
SUBB A,R2
MOV AD3,A
MOV R1,#ADB
DIVMB2B: MOV A,@R1
JNZ DIVM2B
DEC R1
DJNZ R2,DIVMB2B
SETB 0F0H
RET
DIVM2B: MOV R2,AD1
MOV R1,#ADB
MOV R0,AD3
DIVM2L: MOV A,@R0
SUBB A,@R1
DEC R0
DEC R1
DJNZ R2,DIVM2L
JNC DIVM20
DIVM2D: LCALL SHIL1
JC DIVM2S
DIVM2C: MOV R0,AD3
MOV R1,#ADB
MOV R2,AD1
DIVM2CL: MOV A,@R0
SUBB A,@R1
DEC R0
DEC R1
DJNZ R2,DIVM2CL
JC DIVM2E
DIVM2S: INC ADA
MOV R2,AD1
MOV R0,AD3
MOV R1,#ADB
LCALL SUBMBB
DIVM2E: DJNZ R3,DIVM2D
RET
DIVM20: SETB 0F0H
RET
DB 02H,12H
SHIL1: MOV R2,AD0
MOV R0,#ADA
SHIL1B: CLR C
SHILL: MOV A,@R0
RLC A
MOV @R0,A
DEC R0
DJNZ R2,SHILL
RET
SUBMBB: CLR C
SUBMB1: MOV A,@R0
SUBB A,@R1
MOV @R0,A
DEC R0
DEC R1
DJNZ R2,SUBMB1
RET
AD0 EQU 30H
AD1 EQU 31H
AD2 EQU 32H
AD3 EQU 33H
AD4 EQU 34H
AD5 EQU 35H
AD6 EQU 36H
ADA EQU 4FH
ADB EQU 5FH
ADC EQU 4DH
ADDV EQU 5DH
MULNM: NOP ; N BYTES X M BYTES = N+M BYTES HERE N=3;M=3
MOV 30H,#06H ; (4D,4E,4FH)*(5D,5E,5FH)=(5A--5FH)
MOV 31H,#06H ; 乘法程序,30H放置被乘数字节数,31H放置乘数字节数
MULTT: MOV A,AD0
MOV R3,AD1
MOV R2,A
ADD A,R3
INC A
MOV AD2,A
MOV A,#ADB
CLR C
SUBB A,R3
MOV AD6,A
MOV R1,A
SUBB A,R2
MOV AD5,A
INC R2
MULNMZ: MOV @R1,#00H
DEC R1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -