📄 lpc936
字号:
ADD A,#30H
ACALL LCDW_DAT
MOV A,#' '
ACALL LCDW_DAT
SJMP DSP5
DSP4:
MOV A,TMP_4+1
SWAP A
ANL A,#0FH
ADD A,#30H
ACALL LCDW_DAT
MOV A,TMP_4+1
ANL A,#0FH
ADD A,#30H
ACALL LCDW_DAT
DSP5:
; MOV A,M_PAGE
; jz dd0
; sjmp ddd1
dd0:
mov a,#'.'
dd1:
ACALL LCDW_DAT
ddd1:
JNB M_UPD,DSP6
JB FLASH,DSP6
MOV A,#1
CJNE A,C_UPD,DSP8
MOV A,TMP_4
ANL A,#0FH
ADD A,#30H
MOV R2,A
MOV A,#' '
SJMP DSP7
DSP8:
MOV A,C_UPD
JNZ DSP6
MOV R2,#' '
SJMP DSP18
DSP6:
MOV A,TMP_4
ANL A,#0FH
ADD A,#30H
MOV R2,A
DSP18:
MOV A,TMP_4
SWAP A
ANL A,#0FH
ADD A,#30H
DSP7:
ACALL LCDW_DAT
MOV A,R2
ACALL LCDW_DAT
MOV R2,#4
mov a,M_PAGE
jz dsp17
mov r2,#5
DSP17:
MOV A,#' '
ACALL LCDW_DAT
DJNZ R2,DSP17
;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A,#88H ;显示坐标值
ACALL LCDW_COM
mov a,M_PAGE
jz ddd2
mov r2,#11
Ddd3:
MOV A,#' '
ACALL LCDW_DAT
DJNZ R2,Ddd3
ljmp ddd4
;
ddd2:
JNB M_UPD,DSP16
JB FLASH,DSP16
MOV A,#4
CJNE A,C_UPD,DSP16
MOV R2,#10
DSP9:
MOV A,#' '
ACALL LCDW_DAT
DJNZ R2,DSP9
SJMP DSP10
DSP16:
MOV R0,#GX_UPD
ACALL HBCD2A
JB XGDIR,DSP11
MOV A,#'+'
SJMP DSP12
DSP11:
MOV A,#'-'
DSP12:
ACALL LCDW_DAT
MOV R0,#TMP_4+3
MOV R2,#3
ACALL DSP13
MOV A,#'.'
ACALL LCDW_DAT
MOV R2,#1
ACALL DSP13
DSP10:
MOV A,#' '
LCALL LCDW_DAT
ddd4:
MOV DPTR,#TABSPED
MOV A,4EH
MOV B,#2
MUL AB
MOV R3,A
INC A
MOVC A,@A+DPTR
MOV R2,A
MOV A,R3
MOVC A,@A+DPTR
LCALL LCDW_DAT
MOV A,R2
LCALL LCDW_DAT ;倍率显示
MOV A,#'/'
LCALL LCDW_DAT
MOV A,#'1'
LCALL LCDW_DAT
MOV A,#'6'
LCALL LCDW_DAT
RET
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
LJMP ERR
;**************************
DSP13: ;转换成ASC2
MOV A,@R0
SWAP A
ANL A,#0FH
ADD A,#30H
ACALL LCDW_DAT
MOV A,@R0
ANL A,#0FH
ADD A,#30H
ACALL LCDW_DAT
DEC R0
DJNZ R2,DSP13
RET
;*****************************************
LJMP ERR
LJMP ERR
;**************************
T10:
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW ;键盘、输入信号、显示器处理程序
SETB RS0
CLR RS1
MOV TH1,#HIGH(THTL1)
MOV TL1,#LOW(THTL1)
inc tmrl
mov a,tmrl
jnz t103
mov r0,#tmrh
inc @r0
t103:
ACALL INPUTX ;239T R0-R5,TMP-3,TMP-3+1,BUFB,32-3DH,X00-12.
LCALL INXEXE ;85T
ANL GING,#011h
LCALL INPUTK ;5T
;push acc
LCALL INKEXE ;14T
LCALL DTSP ;显示缓存数据传送
JNB LCDE,T102
lcall LCDSETUP
LCALL DSP_X
JB DSPE,T102
LCALL DSP
MOV R2,#0
MOV R3,#high(bc_2)
MOV R4,#low(bc_2)
lcall speedaaa
T102:
MOV A,GING
JZ T100
jnb x04r,T100
SETB TR0
SETB ET0
MOV IP0,#02H
SJMP T101
T100:
CLR ET0
CLR TR0
mov ging,#0
LCALL W_E2P
T101:
LCALL CLRWDT
T107:
POP PSW
POP DPL
POP DPH
POP ACC
RETI ;共382T
//**************************************
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
MOVP:
MOV A,R0
ADD A,#3
MOV R1,A
MOV A,@R0
MOV @R1,A
INC R0
INC R1
MOV A,@R0
MOV @R1,A
INC R0
INC R1
MOV A,@R0
MOV @R1,A
RET
MOVP_B:
MOV A,G1PING
ORL A,G1PING+1
ORL A,G1PING+2
JNZ MOVP_B3
RET
MOVP_B3:
MOV A,R0
PUSH ACC
MOV R0,#0C0H
MOV A,@R0
CJNE A,#055H,MOVP_B0
JNB G1DIR,MOVP_B1
MOVP_B2: ;;;方向变化,加间隙量
MOV A,G1PING
ADD A,G2P
; ADD A,#2CH
MOV G1PING,A
MOV A,G1PING+1
ADDC A,G2P+1
; ADDC A,#01
MOV G1PING+1,A
MOV A,G1PING+2
ADDC A,G2P+2
; ADDC A,#0
MOV G1PING+2,A
MOVP_B1:
POP ACC
MOV R0,A
RET
MOVP_B0:
JNB G1DIR,MOVP_B2
SJMP MOVP_B1
;***************************
LJMP ERR
LJMP ERR
;**************************
INXEXE:
MOV R0,#X00_07
MOV R1,#X00_07R
LCALL XRLX
INC R0
INC R1
LCALL XRLX
INC R0
INC R1 ;上升沿位在X00_07中,新值在X00_07R中
LCALL XRLX ;上升沿送到◎R0内,新值送到@R1
;::::::::::::::::::::::::::::::::::::
MOV R0,#G1P
JNB X02R,IX0
JB X03R,IX1END
CLR C1DIR
SJMP IX2
IX0:
JNB X03R,IX3
SETB C1DIR
IX2:
CLR G1ING
JNB P1DIR,IX7
CPL C1DIR
IX7:
SETB C1G
SJMP IX1END
IX3:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;点动处理
CLR C1G ;清除连续进给标志
JB G1ING,IX1END
JNB X00,IX4
JB X01R,IX1END
CLR G1DIR
SJMP IX5
IX4:
JNB X01,IX1END
JB X00R,IX1END
SETB G1DIR
IX5:
JNB P1DIR,IX6
CPL G1DIR
IX6:
LCALL MOVP
LCALL MOVP_B
SETB G1ING
;********************************
IX1END:
ret
MOV R0,#G2P
JNB X06R,IX20
JB X07R,IX2END
CLR C2DIR
SJMP IX22
IX20:
JNB X07R,IX23
SETB C2DIR
IX22:
CLR G2ING
JNB P2DIR,IX27
CPL C2DIR
IX27:
SETB C2G
SJMP IX2END
IX23:
CLR C2G
JB G2ING,IX2END
JNB X04,IX24
JB X05R,IX2END
CLR G2DIR
SJMP IX25
IX24:
JNB X05,IX2END
JB X04R,IX2END
SETB G2DIR
IX25:
JNB P2DIR,IX26
CPL G2DIR
IX26:
LCALL MOVP
SETB G2ING
;********************************
IX2END:
ret
MOV R0,#G3P
JNB X10R,IX30
JB X11R,IX3END
CLR C3DIR
SJMP IX32
IX30:
JNB X11R,IX33
SETB C3DIR
IX32:
CLR G3ING
JNB P3DIR,IX37
CPL C3DIR
IX37:
SETB C3G
SJMP IX3END
IX33:
CLR C3G
JB G3ING,IX3END
JNB X08,IX34
JB X09R,IX3END
CLR G3DIR
SJMP IX35
IX34:
JNB X09,IX3END
JB X08R,IX3END
SETB G3DIR
IX35:
JNB P3DIR,IX36
CPL G3DIR
IX36:
LCALL MOVP
SETB G3ING
;************************************
IX3END:
RET ;取消4轴进给
MOV R0,#G4P
JNB X14R,IX40
JB X15R,IX4END
CLR C4DIR
SJMP IX42
IX40:
JNB X15R,IX43
SETB C4DIR
IX42:
; CLR G4ING
JNB P4DIR,IX47
CPL C4DIR
IX47:
SETB C4G
SJMP IX4END
IX43:
CLR C4G
JB G4ING,IX4END
JNB X12,IX44
JB X13R,IX4END
CLR G4DIR
SJMP IX45
IX44:
JNB X13,IX4END
JB X12R,IX4END
SETB G4DIR
IX45:
JNB P4DIR,IX46
; CPL G4DIR
IX46:
lCALL MOVP
; SETB G4ING
IX4END:
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
INDE:
MOV A,@R0
INC R0
ORL A,@R0
INC R0
ORL A,@R0
DEC R0
DEC R0
JNZ ID2
MOV C,F0
CLR F0
SJMP ID3
ID2:
JC ID4
JB F0,ID5
ID6:
CLR F0
SJMP ID3
ID4:JB F0,ID6
ID5:
SETB F0
ID3:
JB F0,INDE0
MOV F0,C
MOV A,@R0
ADD A,#1
MOV @R0,A
INC R0
MOV A,@R0
ADDC A,#0
MOV @R0,A
INC R0
MOV A,@R0
ADDC A,#0
MOV @R0,A
MOV C,F0
RET
LJMP ERR
LJMP ERR
;**************************
DEC1:
; RET
NOP
INDE0:
MOV F0,C
CLR C
MOV A,@R0
SUBB A,#1
MOV @R0,A
INC R0
MOV A,@R0
SUBB A,#0
MOV @R0,A
INC R0
MOV A,@R0
SUBB A,#0
MOV @R0,A
MOV C,F0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
DIRPUS1:
MOV A,R0
PUSH ACC
MOV R0,#0C0H
MOV A,#055H
JC DP10
SETB DIR1
CLR PUS1
SJMP DP11
DP10:
SETB PUS1
CLR DIR1
MOV A,#0AAH
DP11:
MOV @R0,A ;进给方向保存到P4DIR
POP ACC
MOV R0,A
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RE2P:
MOV R2,#4
MOV R3,#0
RE2P0:
CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
CJNE R2,#1,RE2P1
SJMP RE2P2
RE2P1:
ADD A,R3
MOV R3,A
RE2P2:
DJNZ R2,RE2P0
RET
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
E2PTOG1P:
MOV R2,#3
E2PTOGP0:
MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,E2PTOGP0
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
RE2PS1:
MOV DPL,R4
MOV DPH,R5
MOV R0,#E2P_4
ACALL RE2P
MOV C,ACC.7
MOV F0,C
CLR ACC.7
CPL A
XCH A,R3
SETB ACC.7
XRL A,R3
JNZ INGZ0
MOV R0,#E2P_4
ACALL E2PTOG1P
CLR C
SJMP INGZ1
INGZ0:
CLR A
MOV R0,#E2P_4
INGZ2:
MOV @R0,A
MOV @R1,A
INC R0
INC R1
CJNE R0,#E2P_4+3,INGZ2
CPL A
MOV @R0,A
MOV R0,#E2P_4
ACALL PGM_USER
SETB C
CLR F0
INGZ1:
RET
LJMP ERR
LJMP ERR
;**************************
LJMP ERR
LJMP ERR
;**************************
INTGXP:
CLR F0
MOV R4,#LOW(E2PA)
MOV R5,#HIGH(E2PA)
MOV R1,#G1P
ACALL RE2PS1
MOV C,F0
MOV P1DIR,C
MOV R4,#LOW(E2PA)+10H
MOV R1,#G1P+6
ACALL RE2PS1
MOV C,F0
MOV P2DIR,C
MOV R4,#LOW(E2PA)+20H
MOV R1,#G1P+12
ACALL RE2PS1
MOV C,F0
MOV P3DIR,C
MOV R4,#LOW(E2PA)+30H
MOV R1,#G1P+18
ACALL RE2PS1
MOV C,F0
MOV P4DIR,C
RET
;;;;;;;;;;;;;;;;;;;;;
MOV DPTR,#E2PB
MOV R0,#G1X
MOV R2,#12
INTGXP0:
CLR A
MOVC A,@A+DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R2,INTGXP0
CLR A
MOVC A,@A+DPTR
ANL A,#0F0H
MOV R2,A
MOV A,22H
ANL A,#0FH
ORL A,R2
MOV 22H,A
RET
;**************************
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;0E00H-0FFFH = 512B ISP代码
;0DC0H-0DFFH = 64B E2PROM数据区 4
;0D80H-0DBFH = 64B E2PROM数据区3
;0D40H-0D7FH = 64B E2PROM数据区2
;0D00H-0D3FH = 64B E2PROM数据区1
;0C00H-0CFFH = TAB表格区
;0C00H-0FFFH = 扇区3 (不加密)
;0800H-0BFFH = 扇区2
;0400H-07FFH = 扇区1
;0000H-03FFH = 扇区0
E2PA EQU 30c0h; 0DC0H
E2PB EQU 3080h; 0D80H
E2PC EQU 3040h; 0D40H
W_E2P:
MOV R4,#LOW(E2PA)
MOV R5,#HIGH(E2PA)
JNB E2G1P,W_E2P2P
CLR E2G1P
MOV R3,#0
MOV C,P1DIR
MOV F0,C
SJMP W_E2PA
W_E2P2P:
JNB E2G2P,W_E2PEND
MOV R3,#1
CLR E2G2P
MOV C,P2DIR
MOV F0,C
W_E2PA:
MOV B,R3
MOV A,#16
MUL AB
ADD A,R4
MOV R4,A
MOV B,R3
MOV A,#6
MUL AB
ADD A,#G1P
W_E2PA2:
MOV R1,A
MOV R2,#3
MOV R3,#0
MOV R0,#E2P_4
W_E2PA0:
MOV A,@R1
MOV @R0,A
ADD A,R3
MOV R3,A
INC R0
INC R1
DJNZ R2,W_E2PA0
CPL A
MOV C,F0
MOV ACC.7,C
MOV @R0,A
W_E2PA1:
ACALL PGM_USER
W_E2PEND:
RET
;**************************
LJMP ERR
;**************************
LJMP ERR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;************************************************
;;*编程用户代码 *
;;************************************************
;;* *
;;* 输入: *
;;* R2 = 编程字节数(字节) *
;;* DPH = 页地址MSB(字节) *
;;* DPL = 页地址LSB(字节) *
;;* R0 = RAM数据缓冲区指针(字节) *
;;* 输出 : *
;;* R0 = 状态(字节) *
;;* C = 无错时清零,有错时置位 *
;;************************************************
LOAD EQU 00H
EP EQU 68H
PGM_USER:
MOV R2,#4
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -