📄 ge15.asm
字号:
LDB AHR,[DX]
; LDB DL,6[BX]
; ANDB DL,#0FH
; CMPB DL,#1
; JNE CPVS13
; CMPB AL,#3 ;If (AL)=3, not display point
; JE CPVS13
; ORB AHR,#80H
CPVS13: STB AHR,[CX]+
CMPB AL,#3
JNE CPVS14
RET
CPVS14: ADD EX,#DPCODE ;Forth numer
LDB AHR,[EX]
STB AHR,[CX]
RET
CPVS1: LD EX,#200 ;DIVU DX,#1000
SUB DX,EX,DX
CLRB AL
LD CX,#LCD1
;CPVS3: CMPB DL,0 ;First number
; JE CPVS5
; INCB AL
; ADD DX,#DPCODE
; LDB AHR,[DX]
; STB AHR,[CX]+
;CPVS5: LD DX,EX ;Second number
LJMP CPVS8
PV_SET: LD DX,AX ;Display on LCD
CLR EX
LDB BL,P_ORDER
MULUB BX,BL,#8
ADD BX,#(P_EPRM-80)
CMPB P_ORDER,#42
JNE PVS1
CMP DX,#100
JGT CPVS1
PVS1: DIVU DX,#1000
CLRB AL
LD CX,#LCD1
PVS3: CMPB DL,0 ;First number
JE PVS5
INCB AL
ADD DX,#DPCODE
LDB AHR,[DX]
STB AHR,[CX]+
PVS5: LD DX,EX ;Second number
CLR EX
DIVU DX,#100
CMPB AL,0
JNE PVS6
CMPB DL,0
JNE PVS6
PVS6: INCB AL
ADD DX,#DPCODE
LDB AHR,[DX]
LDB DL,6[BX]
ANDB DL,#0FH
CMPB DL,#2
JNE PVS8
ORB AHR,#80H
PVS8: STB AHR,[CX]+
PVS10: LD DX,EX ;Third number
CLR EX
DIVU DX,#10
CMPB AL,0
JNE PVS11
CMPB DL,0
JNE PVS11
LDB AHR,6[BX]
ANDB AHR,#0FH
CMPB AHR,#1
JE PVS11
LDB AHR,0
BR PVS13
PVS11: INCB AL
ADD DX,#DPCODE
LDB AHR,[DX]
LDB DL,6[BX]
ANDB DL,#0FH
CMPB DL,#1
JNE PVS13
CMPB AL,#3 ;If (AL)=3, not display point
JE PVS13
ORB AHR,#80H
PVS13: STB AHR,[CX]+
CMPB AL,#3
JNE PVS14
RET
PVS14: ADD EX,#DPCODE ;Forth numer
LDB AHR,[EX]
STB AHR,[CX]
RET
DPCODE: DCB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;0---9
PV_CAL: MULUB AX,P_ORDER,#2
ADD AX,#(TABLE3-20)
LD AX,[AX]
BR [AX]
TABLE3: DCW P10PGM,P11PGM,P12PGM,P13PGM,P14PGM
DCW P15PGM,P16PGM,P17PGM,P18PGM,P19PGM
DCW P20PGM,P21PGM,P22PGM,P23PGM,P24PGM
DCW P25PGM,P26PGM,P27PGM,P28PGM,P29PGM
DCW P30PGM,P31PGM,P32PGM,P33PGM,P34PGM
DCW P35PGM,P36PGM,P37PGM,P38PGM,P39PGM
DCW P40PGM,P41PGM,P42PGM,P43PGM,P44PGM
DCW P45PGM,P46PGM,P47PGM,P48PGM,P49PGM
DCW P50PGM,P51PGM,P52PGM,P53PGM,P54PGM
DCW P55PGM,P56PGM,P57PGM,P58PGM,P59PGM
P10PGM: ANDB FLAG4,#11101111B
JBS FLAG4,7,P10PGM1
CMP BX,#1
JNE P10PGM1
ORB FLAG4,#00010000B
P10PGM1: RET
P11PGM: ANDB FLAG8,#00011111B
CMP BX,#1
JE P11PGM1
CMP BX,#2
JE P11PGM2
CMP BX,#3
JNE P11PGM1
ORB FLAG8,#10000000B
LJMP P11PGM3
P11PGM1: ORB FLAG8,#00100000B
LJMP P11PGM3
P11PGM2: ORB FLAG8,#01000000B
P11PGM3: JBS FLAG1,2,P11PGM4
RET
P11PGM4: ORB PORT2,#11000000B
JBS FLAG4,3,P11PGM7
JBC FLAG8,5,P11PGM5
ANDB PORT2,#10111111B
P11PGM5: JBC FLAG8,6,P11PGM6
ANDB PORT2,#01111111B
P11PGM6: JBC FLAG8,7,P11PGM7
ANDB PORT2,#00111111B
P11PGM7: RET
P12PGM: ST BX,P12V[0]
; ORB FLAG6,#00000100B
CALL KC12
RET
P13PGM: MULU BX,#819 ;When stator voltage = rated value,CH7=4V,(819)
DIVU BX,#100
JBC FLAG5,6,P13PGM1
LD AX,P47V[0] ;TH_STRV=P13*(P47V/P46V)
MULU BX,AX
LD AX,P46V[0]
DIVU BX,AX
P13PGM1: ST BX,TH_STRV
RET
P14PGM: RET
P15PGM: MULU BX,#100 ;Unit: (10ms)
ST BX,P15V[0]
RET
P16PGM: MULU BX,#60 ;Unit: S(Second)
ST BX,P16V[0]
RET
P17PGM: CMP BX,0
JE P17PGM1
ORB FLAG1,#00010000B
RET
P17PGM1: ANDB FLAG1,#11101111B
P17PGM2: RET
P18PGM: ANDB FLAG4,#01110000B
CMP BX,#2
JNE P18PGM1
ORB FLAG4,#00000010B ;SET Bit1=1
RET
P18PGM1: CMP BX,#3
JNE P18PGM2
ORB FLAG4,#00000100B ;SET Bit2=1
RET
P18PGM2: CMP BX,#0
JNE P18PGM3
ORB FLAG4,#10000000B
CALL P10PGM
RET
P18PGM3: ORB FLAG4,#00000001B ;SET Bit0=1
RET
P19PGM: CMP BX,#1
JNE P19PGM1
ORB FLAG4,#01000000B ;SET Bit6=1
RET
P19PGM1: ANDB FLAG4,#10111111B
RET
P20PGM: MULU BX,RATEDBITS ;When I=Ie,CH1=5V (1023)
DIVU BX,#500 ;P20V=P20% * 1023/10=P20*RATEDBITS/500
JBC FLAG5,5,P20PGM1
LD AX,P48V[0]
MULU BX,AX
LD AX,P49V[0]
DIVU BX,AX
P20PGM1: ST BX,P20V[0]
RET
P21PGM: ST BX,P21V[0]
ORB FLAG6,#00000100B
RET
P22PGM: ST BX,P22V[0]
ORB FLAG6,#00000100B
RET
P23PGM: CMP BX,0
JE P23PGM1
ORB FLAG6,#00001000B
ST YK_1,YK_2
ST YK_12,YK_22
RET
P23PGM1: ANDB FLAG6,#11110111B
RET
P24PGM: ST BX,P24V[0]
ORB FLAG6,#00000100B
RET
P25PGM: RET
P26PGM: MULU BX,#1000 ;Slope function climbing time
DIVU BX,#33
ST BX,P26V[0]
RET
P27PGM: MULU BX,#20
ST BX,P27V[0]
RET
P28PGM: MULU BX,#20
ST BX,P28V[0]
RET
P29PGM: CMP BX,#1
JNE P29PGM1
ORB FLAG5,#00001000B
RET
P29PGM1: ANDB FLAG5,#11110111B
RET
P30PGM: CMP BX,#80 ;Limit ALFA between 80 and 100 degree.
JH P30PGM1
LD BX,#80
P30PGM1: CMP BX,#100
JNH P30PGM2
LD BX,#100
P30PGM2: MULU BX,#20
ST BX,P30V[0]
RET
P31PGM: CMP BX,#20
JGE P31PGM2
LD BX,#30
P31PGM2: MULU BX,RATEDBITS ;When I=Ie,CH1=5V (1023)
DIVU BX,#50 ;P31V=P31% * 1023/100=P31% *RATEDBITS/50
; JBC FLAG5,5,P31PGM1
; LD AX,P48V[0]
; MULU BX,AX
; LD AX,P49V[0]
; DIVU BX,AX
P31PGM1: ST BX,P31V[0]
; ORB FLAG6,#00000100B
CALL KC12
RET
P32PGM: CMP BX,#1
JNE P32PGM1
LD BX,#LOWCURLT1
ST BX,P32V[0]
LJMP P32PGM3
P32PGM1: CMP BX,#3
JNE P32PGM2
LD BX,#LOWCURLT3
ST BX,P32V[0]
LJMP P32PGM3
P32PGM2: LD BX,#LOWCURLT2
ST BX,P32V[0]
P32PGM3: LDB BL,0BH[BX]
CLRB BHR
MULU BX,RATEDBITS
DIVU BX,#100
JBC FLAG5,5,P32PGM4
MULU BX,P48V[0]
DIVU BX,P49V[0]
P32PGM4: ST BX,LOWCUR1[0]
RET
P33PGM: MULU BX,RATEDBITS ;The same as above
DIVU BX,#100
JBC FLAG5,5,P33PGM1
LD AX,P48V[0]
MULU BX,AX
LD AX,P49V[0]
DIVU BX,AX
P33PGM1: ST BX,P33V[0]
RET
P34PGM: CMP BX,#1
JNE P34PGM1
LD BX,#OVERCURT1
ST BX,P34V[0]
RET
P34PGM1: CMP BX,#3
JNE P34PGM2
LD BX,#OVERCURT3
ST BX,P34V[0]
RET
P34PGM2: LD BX,#OVERCURT2
ST BX,P34V[0]
RET
P35PGM: CMP BX,#1
JNE P35PGM1
ANDB FLAG2,#11011111B
RET
P35PGM1: ORB FLAG2,#00100000B
P35PGM2: RET
P36PGM: ST BX,P36V[0]
RET
P37PGM: ST BX,P37V[0]
RET
P38PGM: ST BX,P38V[0]
RET
P39PGM: ST BX,P39V[0]
RET
P40PGM: CLR CX
DIVU BX,#10
ST BX,P40V[0]
RET
P41PGM: MULU BX,#819
DIVU BX,#100
JBC FLAG5,6,P41PGM1
MULU BX,P47V[0]
DIVU BX,P46V[0]
P41PGM1: ST BX,P41V[0]
RET
P42PGM: CMP BX,#49
JNH P42PGM1
CMP BX,#150
JNH P42PGM2
P42PGM1: LD BX,#110
P42PGM2: ST BX,AX
SUB BX,#50
SHL BX,#1
ADD BX,#ARCCOSTAB
LD BX,[BX]
MULU BX,#512
DIVU BX,#90
ST BX,CX
LD BX,#512
CMP AX,#100
JNH P42PGM3
ADD BX,CX
ST BX,P42V[0]
RET
P42PGM3: SUB BX,CX
ST BX,P42V[0]
RET
P43PGM: ST BX,P43V[0]
RET
P44PGM: MULU BX,RATEDBITS ;When If=Ie,CH1=2.5V (512)
DIVU BX,#100 ;P44V=P44% * 512=P44*RATEDBITS/100
JBC FLAG5,5,P44PGM1
LD AX,P48V[0]
MULU BX,AX
LD AX,P49V[0]
DIVU BX,AX
P44PGM1: ST BX,P44V[0]
RET
P45PGM: MULU BX,RATEDBITS ;When If=Ie,CH1=2.5V (512)
DIVU BX,#100 ;P45V=P45% * 512=P45*RATEDBITS/100
JBC FLAG5,5,P45PGM1
LD AX,P48V[0]
MULU BX,AX
LD AX,P49V[0]
DIVU BX,AX
P45PGM1: ST BX,P45V[0]
RET
P46PGM: ST BX,P46V[0]
CMP BX,0
JE P46PGM1
LD AX,P47V[0] ;P47
CMP AX,0
JE P46PGM1
ORB FLAG5,#01000000B ;When P46 & P47\=0,set FLAG5.6=1
LD AX,#(P_RAM+13*2) ;P13
LD BX,[AX]
CALL P13PGM
LD AX,#(P_RAM+41*2) ;P41
LD BX,[AX]
CALL P41PGM
LD BX,P47V[0]
LD AX,P46V[0]
MULU BX,#320 ;0.5*819=409 99,7,6
DIVU BX,AX
ST BX,LOSSVTG[0]
RET
P46PGM1: ANDB FLAG5,#10111111B ;or clear FLAG5.6=0
RET
P47PGM: ST BX,P47V[0]
CMP BX,0
JE P47PGM1
LD AX,P46V[0] ;P46
CMP AX,0
JE P47PGM1
ORB FLAG5,#01000000B ;When P46 & P47\=0,set FLAG5.6=1
LD AX,#(P_RAM+13*2) ;P13
LD BX,[AX]
CALL P13PGM
LD AX,#(P_RAM+41*2) ;P41
LD BX,[AX]
CALL P41PGM
LD BX,P47V[0]
LD AX,P46V[0]
MULU BX,#320 ;0.5*819=409 99,7,6
DIVU BX,AX
ST BX,LOSSVTG[0]
RET
P47PGM1: ANDB FLAG5,#10111111B ;or clear FLAG5.6=0
RET
P48PGM: ST BX,P48V[0]
CMP BX,0
JE P48PGM1
LD AX,P49V[0] ;P49
CMP AX,0
JE P48PGM1
ORB FLAG5,#00100000B ;When P48 & P49\=0,set FLAG5.5=1
LD AX,#(P_RAM+20*2) ;P20
LD BX,[AX]
CALL P20PGM
LD AX,#(P_RAM+31*2) ;P31
LD BX,[AX]
CALL P31PGM
LD AX,#(P_RAM+32*2) ;P32
LD BX,[AX]
CALL P32PGM
LD AX,#(P_RAM+33*2) ;P33
LD BX,[AX]
CALL P33PGM
LD AX,#(P_RAM+44*2) ;P44
LD BX,[AX]
CALL P44PGM
LD AX,#(P_RAM+45*2) ;P45
LD BX,[AX]
CALL P45PGM
RET
P48PGM1: ANDB FLAG5,#11011111B ;or clear FLAG5.5=0
RET
P49PGM: ST BX,P49V[0]
CMP BX,0
JE P49PGM1
LD AX,P48V[0] ;P48
CMP AX,0
JE P49PGM1
ORB FLAG5,#00100000B ;When P48 & P49\=0,set FLAG5.5=1
LD AX,#(P_RAM+20*2) ;P20
LD BX,[AX]
CALL P20PGM
LD AX,#(P_RAM+31*2) ;P31
LD BX,[AX]
CALL P31PGM
LD AX,#(P_RAM+32*2) ;P32
LD BX,[AX]
CALL P32PGM
LD AX,#(P_RAM+33*2) ;P33
LD BX,[AX]
CALL P33PGM
LD AX,#(P_RAM+44*2) ;P44
LD BX,[AX]
CALL P44PGM
LD AX,#(P_RAM+45*2) ;P45
LD BX,[AX]
CALL P45PGM
RET
P49PGM1: ANDB FLAG5,#11011111B ;or clear FLAG5.5=0
RET
P50PGM: RET
P51PGM: RET
P52PGM: CMP BX,#1
JNE P52PGM5
ORB LS373C1V,#00001000B
STB LS373C1V,LS373C1[0]
LD AX,#P_EEPRM
LD BX,#(P_RAM+20)
LDB DL,#48
P52PGM1: LD CX,[BX]
CMPB CL,[AX]
JNE P52PGM2
CMPB CHR,2[AX]
JE P52PGM3
P52PGM2: STB CL,[AX]
CALL DLY
STB CHR,2[AX]
CALL DLY
P52PGM3: ADD AX,#4
ADD BX,#2
CMP BX,#(P_RAM+102) ;98,12
JNE P52PGM4
ADD AX,#12
ADD BX,#6
PUSH BX
LD BX,#0EEEH
LDB CL,[BX]
LDB CHR,2[BX]
POP BX
; ANDB FLAG8,#0FEH
; CMP CX,P54V[0]
; JNE P52PGM4
; ORB FLAG8,#1
; LD CX,#(P_RAM+108)
; ST R0,[CX]
P52PGM4: DJNZ DL,P52PGM1
ANDB LS373C1V,#11110111B
STB LS373C1V,LS373C1[0]
CLR AX
LD BX,#(P_RAM+52*2) ;Clear P52=2 after finished writting
ST AX,[BX]
P52PGM5: RET
P53PGM: CLR CX
DIVU BX,#10
LDB MASKWD,CL
ANDB MASKWD,#7
DIVUB BX,#10
AND BX,#707H
SHLB BHR,#3
SHLB BL,#6
ORB MASKWD,BHR
ORB MASKWD,BL
RET
P54PGM: ST BX,P54V[0]
RET
P55PGM: CMP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -