⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ge15.asm

📁 同步发电机同步电动机软启动电子开关通用的晶砸管控制程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
		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 + -