📄 lpc936
字号:
MOV A,R0
CLR C
SUBB A,#X00_07R
JNZ DSP_XS3
MOV A,#8
SJMP DSP_XS5
DSP_XS3:
CJNE A,#01,DSP_XS4
MOV A,#12
SJMP DSP_XS5
DSP_XS4:
MOV A,#16
DSP_XS5:
CLR C
SUBB A,R2
MOVC A,@A+DPTR
SJMP DSP_XS0
DSP_XS0:
ACALL LCDW_DAT
DJNZ R2,DSP_XS2
RET
;************************************
DSP_SPED:
MOV DPTR,#TAB11
CLR F0
ACALL LCDW_L
RET
DSP_SP0:
LCALL HBCD2A
MOV A,TMP_4+1
ANL A,#0FH
ADD A,#30H
LCALL LCDW_DAT
MOV R0,#TMP_4
MOV R2,#1
LCALL DSP13
RET
;**************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTLCD:
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL DELAY
ACALL LCDSETUP
ACALL DELAY
ACALL DELAY
ACALL DELAY
MOV A,#1
ACALL LCDW_COM
MOV R7,#20
ACALL DELAY ;显示初始化
ACALL DELAY
ACALL DELAY
ACALL DELAY
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; MOV A,#0A0H
; ACALL LCDW_COM
; MOV R2,#32
; ACALL INLCD
; MOV DPTR,#TAB12
; SETB F0
; ACALL LCDW_L
; MOV A,#090H
; ACALL LCDW_COM
; MOV DPTR,#TAB13
; SETB F0
; ACALL LCDW_L
; MOV R2,#16
; ACALL INLCD
;;;;;;;;;;;;;;;;屏1
; MOV R7,#255
; MOV R2,#30
AB3:
; ACALL DELAY
; DJNZ R2,AB3
; MOV R7,#255
; MOV R2,#30
;;;;;;;;;;;;;;;;;;;;;;;;;
; MOV R7,#255
; MOV R2,#30
AB4:
; ACALL DELAY
; DJNZ R2,AB4
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#080H
ACALL LCDW_COM
MOV R2,#32
ACALL INLCD
MOV DPTR,#TAB10
SETB F0
ACALL LCDW_L
MOV R2,#16
ACALL INLCD
;;;;;;;;;;;;;;;;屏2
MOV R7,#255
MOV R2,#30
AB2:
ACALL DELAY
DJNZ R2,AB2
MOV A,#080H
ACALL LCDW_COM
MOV R2,#64
ACALL INLCD
;;;;;;;;;;;;;;;;;;清屏
MOV A,#080H
ACALL LCDW_COM
MOV R2,#32
ACALL INLCD
MOV DPTR,#TAB0
SETB F0
ACALL LCDW_L
MOV R2,#16
ACALL INLCD
;;;;;;;;;;;;;;;;屏3
MOV R7,#255
MOV R2,#30
AB1:
ACALL DELAY
DJNZ R2,AB1
MOV A,#080H
ACALL LCDW_COM
MOV R2,#64
ACALL INLCD
;;;;;;;;;;;;;;;;;;清屏
MOV A,#080H
ACALL LCDW_COM
MOV DPTR,#TAB1
MOV R3,#16
ACALL LCDWL1
MOV R2,#16
ACALL INLCD
MOV DPTR,#TAB3
MOV R3,#8
ACALL LCDWL1
MOV R2,#10
INLCD0:
MOV R7,#100
ACALL DELAY
; ACALL DELAY
ACALL DELAY
DJNZ R2,INLCD0
MOV A,#080H
ACALL LCDW_COM
MOV R2,#64
ACALL INLCD
MOV R7,#100
; ACALL DELAY
ACALL DELAY
ACALL DELAY
ret
//**************************************
LJMP ERR
LJMP ERR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************
;**************************
IN2KSUB:
MOV A,M_PAGE
MUL AB
MOV B,A
ADD A,R1
MOV R1,A
MOV R2,#3
IN2KSUB0:
MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,IN2KSUB0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
;**************************
IN2KS1:
MOV A,M_PAGE
CJNE A,#0,IN2KS10
MOV C,UGDIR
MOV P1DIR,C
MOV C,XGDIR
MOV X1DIR,C
SETB E2G1P
SJMP IN2KS1END
IN2KS10:
CJNE A,#1,IN2KS11
MOV C,UGDIR
MOV P2DIR,C
MOV C,XGDIR
MOV X2DIR,C
SETB E2G2P
mov 4AH,#055H
SJMP IN2KS1END
IN2KS11:
RET
CJNE A,#2,IN2KS12
MOV C,UGDIR
MOV P3DIR,C
MOV C,XGDIR
MOV X3DIR,C
SETB E2G3P
SJMP IN2KS1END
IN2KS12:
CJNE A,#3,IN2KS1END
MOV C,UGDIR
MOV P4DIR,C
MOV C,XGDIR
MOV X4DIR,C
SETB E2G4P
IN2KS1END:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
IN3KSUB:
ADD A,@R0
MOV @R0,A
INC R0
CLR A
ADDC A,@R0
MOV @R0,A
INC R0
CLR A
ADDC A,@R0
MOV @R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
;**************************
IN3KSUB0:
MOV A,C_UPD
CJNE A,#0,IN3KS0
MOV A,#1
SJMP IN3KS4
IN3KS0:
CJNE A,#1,IN3KS2
MOV A,#10
SJMP IN3KS4
IN3KS2:
CJNE A,#2,IN3KS3
MOV A,#100
IN3KS4:
CLR C
RET
IN3KS3:
SETB C
RET
;******************************************
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
IN4KSUB:
CLR C
XCH A,@R0
SUBB A,@R0
MOV @R0,A
CLR A
INC R0
XCH A,@R0
SUBB A,@R0
MOV @R0,A
CLR A
INC R0
XCH A,@R0
SUBB A,@R0
MOV @R0,A
JNC IN4KSUB0
CLR A
MOV @R0,A
DEC R0
MOV @R0,A
DEC R0
MOV @R0,A
IN4KSUB0:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
;********************************************
INKEXE: ;按键解释执行
;|7|6|5| 4|3|2| 1 | 0 |
;|0|0|0|<<|-|+|ENTER|PAGE|
;SB1=翻页=#01H
;SB2=确认=#02H
;SB3=+ =#04H
;SB4=- =#08H
;SB5=<< =#10H
;**********************
CJNE A,#01H,IN2K
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;SB1=翻页=#01H ;
MOV R0,#XL_INT
MOV @R0,#0AAH
JNB M_UPD,IN1K0 ;
CLR M_UPD ;
AJMP INKEND ;
IN1K0: ;
MOV A,M_PAGE
JZ IN1K5
MOV M_PAGE,#0
SJMP IN1K4
IN1K5:
MOV R0,#0D0H
INC @R0
CJNE @R0,#5,IN1K2
INC M_PAGE ;
MOV A,#1
CJNE A,M_PAGE,IN1K1 ;
IN1K1: ;
JNC IN1K3 ;
MOV M_PAGE,#0 ;
IN1K3:
MOV A,M_PAGE
JZ IN1K4
MOV @R0,#4
SJMP IN1K2
IN1K4:
MOV @R0,#0
IN1K2: ;
RET ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
IN2K:
CJNE A,#02H,IN3K
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R0,#0D0H
mov @r0,#0 ;SB2=确认=#02H
JNB M_UPD,IN2KEND
IN2K0:
MOV R0,#GP_UPD
mov a,m_page
cjne a,#0,in2ka
lCALL MAX
in2ka:
cjne a,#1,in2kb
lcall max300
in2kb:
MOV R0,#GP_UPD
MOV R1,#G1P
MOV B,#6
ACALL IN2KSUB
MOV R0,#GX_UPD
MOV R1,#G1X
MOV B,#3
MOV A,GX_UPD
ORL A,GX_UPD+1
ORL A,GX_UPD+2
JNZ IN2K1
ACALL IN2KSUB
IN2K1:
CLR M_UPD
ACALL IN2KS1
IN2KEND:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
IN3K:
CJNE A,#04H,IN4K; ;SB3="+"=#04H
IN3K5:
MOV R0,#0D0H
mov @r0,#0
JNB M_UPD,in3k6
ACALL IN3KSUB0
JC IN3K3
IN3K1:
MOV R0,#GP_UPD
ACALL IN3KSUB
MOV R0,#GP_UPD
mov a,m_page
cjne a,#0,in3k2
lCALL MAX
in3k2:
cjne a,#1,in3ka
lcall max300
in3ka:
RET
LJMP ERR
;**************************
IN3K3:
CJNE A,#3,IN3K4
CPL UGDIR
RET
;**************************
LJMP ERR
LJMP ERR
;**************************
IN3K4:
CJNE A,#4,in3ka
CLR A
MOV GX_UPD,A
MOV GX_UPD+1,A
MOV GX_UPD+2,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
IN3K6:
INC 4EH
IN3K9:
MOV A,#15
CJNE A,4EH,IN3K7
IN3K7:
JNC IN3K8
MOV 4EH,#15
IN3K8:
LCALL WE2PROM
mov 4ah,#55h
RET
;**************************
LJMP ERR
LJMP ERR
;**************************
IN4K:
CJNE A,#08H,IN5K ;SB4=- =#08H
MOV R0,#0D0H
mov @r0,#0
IN4K2:
JNB M_UPD,IN4K3
ACALL IN3KSUB0
JC IN3K3
MOV R0,#GP_UPD
ACALL IN4KSUB
MOV R0,#GP_UPD
LCALL MAX
RET
IN4K3:
MOV A,4EH
CJNE A,#0,IN4K4
RET
IN4K4:
DEC 4EH
LJMP IN3K9
;;;;;;;;;;;;;;;;;;;;;
IN5K:
CJNE A,#10H,INKEND
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R0,#0D0H
mov @r0,#0
MOV R0,#XL_INT
CJNE @R0,#055H,IN5K3
INC R0
INC R0
INC @R0
CJNE @R0,#4,IN5K4
IN5K4:
JC INKEND
MOV R0,#XL_INT
IN5K3:
MOV @R0,#0AAH
IN5K5:
JB M_UPD,IN5K2 ;SB5=<< =#10H
SETB M_UPD
RET
LJMP ERR
LJMP ERR
;**************************
IN5K2:
INC C_UPD ;
mov a,m_page
jz ddd5
mov a,#2
sjmp ddd6
ddd5:
MOV A,#04 ;
ddd6:
CJNE A,C_UPD,IN5K1 ;
IN5K1: ;
JNC INKEND ;
MOV C_UPD,#0 ;
INKEND:
RET
;********************************************
LJMP ERR
;**************************
LJMP ERR
;**************************
INPUTK:
MOV c,sb001
mov acc.0,c
MOV c,sb002
mov acc.1,c
MOV c,sb003
mov acc.2,c
MOV c,sb004
mov acc.3,c
MOV c,sb005
mov acc.4,c
CPL A
ANL A,#1FH
JZ IK0
INC KAGE
XCH A,KSBUF
XRL A,KSBUF
JZ IK1
IK0:
CLR KACT
MOV KAGE,#0
SJMP IK4
IK1:
MOV B,#KEY_AGE ;#0FEH
JNB KACT,IK2
MOV B,#KEY_F ;#0f5H
MOV A,KSBUF
CJNE A,#08H,IK3
SJMP IK2
IK3:
CJNE A,#04H,IK4
IK2:
MOV A,KAGE
ADD A,B
JNC IK4
MOV A,KSBUF
SETB KACT
MOV KAGE,#0
SJMP IKEND
IK4:
CLR A
IKEND:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
HBCD2A:
MOV TMP_3,@R0
INC R0
MOV TMP_3+1,@R0
INC R0
MOV TMP_3+2,@R0
HBCD2:
MOV R0,#TMP_3
MOV R1,#TMP_4
MOV DPL,R0
MOV DPH,R1
MOV R2,#4 ;转换数为3字节
CLR A
HBCD21:
MOV @R1,A
INC R1
DJNZ R2,HBCD21
MOV R2,#24
HBCD20:
MOV R3,#3
MOV R0,DPL
HBCD22:
MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R3,HBCD22
MOV R3,#4
MOV R1,DPH
HBCD23:
MOV A,@R1
ADDC A,@R1
DA A
MOV @R1,A
INC R1
DJNZ R3,HBCD23
DJNZ R2,HBCD20
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
;**************************
DTSP:
JB M_UPD,DTSPE ;修改状态,转DSP19
;;;;;;;;;;;;;;;;;;;;;;;;;以下为非修改状态显示处理
MOV A,M_PAGE
MOV B,#6
MUL AB
ADD A,#G1P
MOV R0,A
MOV GP_UPD,@R0 ;进给量送到显示缓存GP_UPD
INC R0
MOV GP_UPD+1,@R0
INC R0
MOV GP_UPD+2,@R0
;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,M_PAGE
MOV B,#3
MUL AB
ADD A,#G1X
MOV R0,A
MOV GX_UPD,@R0
INC R0 ;坐标值送到显示缓存GP_XPD
MOV GX_UPD+1,@R0
INC R0
MOV GX_UPD+2,@R0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,M_PAGE
CJNE A,#0,DTP0
MOV C,P1DIR
MOV F0,C
MOV C,X1DIR
SJMP DTPE
DTP0:
CJNE A,#1,DTP1
MOV C,P2DIR
MOV F0,C
MOV C,X2DIR
SJMP DTPE
DTP1:
CJNE A,#2,DTP2
MOV C,P3DIR
MOV F0,C ;进给量和坐标的符号送到显示缓存
MOV C,X3DIR
SJMP DTPE
DTP2:
CJNE A,#3,DTPE
MOV C,P4DIR
MOV F0,C
MOV C,X4DIR
DTPE:
MOV XGDIR,C
MOV C,F0
MOV UGDIR,C
DTSPE:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
;**************************
DSP:
ACALL LCDSETUP
MOV A,#80H
ACALL LCDW_COM ;岩祺科技
mov r0,#tmrh
MOV A,@r0
JB ACC.2, dspA0
MOV DPTR,#TAB9
jmp dspA1
dspA0:
MOV DPTR,#TAB0
DSPA1:
CLR F0
ACALL LCDW_L
;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#90H
ACALL LCDW_COM
MOV A,M_PAGE
MOV B,#06
MUL AB
MOV DPTR,#TAB5
ADD A,DPL
MOV DPL,A ;“左垂:”、“右垂:“、”左侧:”“右侧:“
JNC DSP0
INC DPH
DSP0:
MOV R3,#3
ACALL LCDWL1
;;;;;;;;;;;;;;;;;;;;;;;;;;;
JNB M_UPD,DSP1
MOV A,C_UPD
CJNE A,#3,DSP1
JB FLASH,DSP1 ;进给量符号闪烁处理
MOV A,#' '
SJMP DSP2
;;;;;;;;;;;;;;;;;;;;;;;;;;;
DSP1:
mov a,M_PAGE
; jz dd3
; mov a,#' '
; sjmp dsp2
dd3:
JB UGDIR,DSP3
MOV A,#'+'
SJMP DSP2
DSP3: ;进给量符号显示
MOV A,#'-'
DSP2:
ACALL LCDW_DAT
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R0,#GP_UPD
CLR ET1 ;暂时关T1中断
MOV TMP_3,@R0
INC R0
MOV TMP_3+1,@R0
INC R0
MOV TMP_3+2,@R0
SETB ET1 ;开T1中断
ACALL HBCD2 ;转换为BCD数据送到TMP_4
MOV R0,#TMP_4
MOV A,#2
CJNE A,C_UPD,DSP4
JNB M_UPD,DSP4
JB FLASH,DSP4
MOV A,TMP_4+1
SWAP A
ANL A,#0FH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -