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

📄 ge15.asm

📁 同步发电机同步电动机软启动电子开关通用的晶砸管控制程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
WEN MODULE MAIN,STACKSIZE(256)  ;注释版
R0			EQU		0H
AD_LOW		EQU		02H
AD_HI		EQU		03H
AD_CMD		EQU		02H
HSI_MD		EQU		03H

HSI_TIME		EQU		04H
HSO_TIME		EQU		04H
HSO_CMD		EQU		06H
HSI_ST		EQU		06H           ;状态寄存器
INT_MK		EQU		08H
INT_PD		EQU		09H
T1			EQU		0AH
T2			EQU		0CH
WATCHDOG		EQU		0AH
PORT0		EQU		0EH
PORT1		EQU		0FH
PORT2		EQU		10H
IOS0			EQU		15H
IOC0			EQU		15H
IOS1			EQU		16H
IOC1			EQU		16H
PWM			EQU		17H
SP			EQU		18H
		RSEG  AT  1AH
AX:			DSW		1	;1AH
BX:			DSW		1	;1CH
CX:			DSW		1	;1EH
DX:			DSW		1	;20H
EX:			DSW		1	;22H
FX:			DSW		1	;24H
GX:			DSW		1	;26H

AL			EQU		1AH
AHR			EQU		1BH
BL			EQU		1CH
BHR			EQU		1DH
CL			EQU		1EH
CHR			EQU		1FH
DL			EQU		20H
DHR			EQU		21H
EL			EQU		22H
EHR			EQU		23H
FL			EQU		24H
FHR			EQU		25H
GL			EQU		26H
GHR			EQU		27H

	RSEG AT   28H
AY:			DSW		1	;28H
BY:			DSW		1	;2AH
CY:			DSW		1	;2CH
DY:			DSW		1	;2EH

AYL			EQU		28H
AYH			EQU		29H
BYL			EQU		2AH
BYH			EQU		2BH
CYL			EQU		2CH
CYH			EQU		2DH
DYL			EQU		2EH
DYH			EQU		2FH

MASKWD		EQU		30H ;故障屏蔽字
K_TEMP		EQU		31H  
;			EQU		32H	;Word
PORT1TV		EQU		34H ;P1暂存器
FLAG9		EQU		36H
FRENCNT		EQU		37H   ;频率超差计数器

LCD1			EQU		38H
LCD2			EQU		39H
LCD3			EQU		3AH
DPTIME		EQU		3BH	;Display time 闪时间
BKLCD1		EQU		3CH	;Back for LCD1备份
BKLCD2		EQU		3DH
BKLCD3		EQU		3EH
BLKTIME		EQU		3FH	;Blank time灭时间

FLAG1		EQU		40H
FLAG2		EQU		41H
FLAG3		EQU		42H
FLAG4		EQU		43H
FLAG5		EQU		44H
FLAG6		EQU		45H
FLAG7		EQU		46H
FLAG8		EQU		47H
IOS1F		EQU		48H ;
PORT1V		EQU		4AH;P1口的值		;Word
LSC3V		EQU		4BH		;LS244C3 Value       373
P_ORDER		EQU		4CH ;参数序号
KEY		EQU		4DH;
NEW_K		EQU		4EH
FAULT		EQU		4FH;存放故障代码


BLKCNT1		EQU		50H		;Blinking counter 1闪时间
BLKCNT2		EQU		51H             ;灭
P0_9CNT		EQU		52H		;Counter for while P00--P09 display
K_CNT		EQU		53H
TKCNT		EQU		54H
INCNT1		EQU		55H		;LS244C1 input counter
RFCNT		EQU		56H		;Re_fresh counter
VCNT		EQU		57H		;Counter for lower stator voltage (V)
T6CNT		EQU		58H
P20CNT		EQU		59H		;Feedback Field Current Counter
FLTBCK		EQU		5AH		;Fault code back registor
THY_NUM_UP	EQU		5BH
IEQ0CNT		EQU		5CH
W_OR_F		EQU		5DH		;Work or fault
PULLOS		EQU		5EH		;Stator Voltage Counter
ICNT		EQU		5FH		;Counter for lower rator current (I)

SFTIME2		EQU		60H		;Time for Softtimer 2
SFTIME3		EQU		62H
SFTIME4		EQU		64H
STOPCNT		EQU		66H		;停机记数器
STOPCNT1		EQU		67H
ENHANCNT		EQU		68H	;强励记数器
ENHANCNT1		EQU		69H
END_E_CNT		EQU		6AH	;强里次结束计数器
END_E_CNT1	EQU		6BH
END_E_CNT2	EQU		6CH
WORKCNT		EQU		6EH		;工作计数器
WORKCNT1		EQU		6FH

ALFA			EQU		70H	;;角度值
CVPICNT		EQU		72H		;;PI调节计数器
CFAICNT		EQU		74H		;;功率因素角
TEMP2		EQU		76H
TEMP3		EQU		78H
GDADD		EQU		7AH		;;附加给定值
ENHANCE		EQU		7CH		;Enhanced field value
DELTAN		EQU		7EH

NTIME		EQU		80H		;Now time
LTIME		EQU		82H		;Last time
INTELVAL		EQU		84H		;Period周期 time of netz 
BLINKCNT		EQU		86H
BLINKCNT1		EQU		87H
BLINKCNT2		EQU		88H
BLINKCNT3		EQU		89H
STR_OVERC		EQU		8AH	;;定子过流值
LOWCUR		EQU		8CH		;Low limit current for rator
PULSET		EQU		8EH		;;脉冲时间宽度

FFCM			EQU		90H		;Mean of Feedback Field Current value
GFCM			EQU		92H		;Mean of Gived Field Current value
STR_CM		EQU		94H		;Mean of stator current
STR_VM		EQU		96H		;Mean of Stator voltage
FAI			EQU		98H	;;功率因数角
FAIN			EQU		9AH	;;上一次的功率因数角
TH_STRV		EQU		9CH		;Threshold for stator voltage
TIMECNT1		EQU		9EH
TIMECNT3		EQU		9FH

TIMECNT2		EQU		0A0H
GFCMCOV		EQU		0A2H		;Coverted values for GFCM
RATEDBITS		EQU		0A4H	;;额定值
EN		     EQU		0A6H		;E(n)
EN_1			EQU		0A8H		;E(n-1)
EN_2			EQU		0AAH		;E(n-2)
                        ;YN_1		EQU		0ACH
                        ;YN_12		EQU		0AEH
WGI		EQU		0ACH

YK_2			EQU		0B0H
YK_22		EQU		0B2H
EK_1			EQU		0B4H
EK_12		EQU		0B6H
KP			EQU		0B8H
KP_2			EQU		0BAH
YK_1			EQU		0BCH
YK_12		EQU		0BEH

;SINFAIF		EQU		0C0H
;COSFAIG		EQU		0C2H
;PAUSE		EQU		0C4H
;COSFI		EQU		0C6H

TM			EQU		0E0H
TM_2			EQU		0E2H
TP			EQU		0E4H
TP_2			EQU		0E6H
COEF1		EQU		0E8H
COEF1_2		EQU		0EAH
;			EQU		0ECH
;			EQU		0EEH

COEF2		EQU		0F0H
COEF2_2		EQU		0F2H
COSFAIF		EQU		0F4H
LS373C1V		EQU		0F6H		
LS373C3V		EQU		0F7H     ;;映射空间 


P_EEPRM		EQU		900H
SPADR		EQU		1400H ;堆栈地址
P_RAM		EQU		1B00H  ;参数地址
P01V			EQU		1E00H
P02V			EQU		1E02H
P03V			EQU		1E04H
P04V			EQU		1E06H
P05V			EQU		1E08H
P06V			EQU		1E0AH
P10V			EQU		1E0CH
P11V			EQU		1E0EH
P12V			EQU		1E10H
P15V			EQU		1E12H
P16V			EQU		1E14H
P18V			EQU		1E16H
P19V			EQU		1E18H
P20V			EQU		1E1AH
P21V			EQU		1E1CH
P22V			EQU		1E1EH
P24V			EQU		1E20H
P25V			EQU		1E22H
P26V			EQU		1E24H
P27V			EQU		1E26H
P28V			EQU		1E28H
P29V			EQU		1E2AH
P30V			EQU		1E2CH
P31V			EQU		1E2EH
P32V			EQU		1E30H
P33V			EQU		1E32H
P34V			EQU		1E34H
P35V			EQU		1E36H
P36V			EQU		1E38H
P37V			EQU		1E3AH
P38V			EQU		1E3CH
P39V			EQU		1E3EH
P40V			EQU		1E40H
P41V			EQU		1E42H
P42V			EQU		1E44H
P43V			EQU		1E46H
P44V			EQU		1E48H
P45V			EQU		1E4AH
P46V			EQU		1E4CH
P47V			EQU		1E4EH
P48V			EQU		1E50H
P49V			EQU		1E52H
P54V			EQU		1E54H
P55V			EQU		1E56H
P56V			EQU		1E58H
P09V			EQU		1E5AH
P57V			EQU		1E5CH
P58V			EQU		1E5EH

KC1			EQU		1E60H
KC2			EQU		1E62H
KC3			EQU		1E64H
KC4			EQU		1E66H
GFCMTV			EQU		1E68H
LOWCUR1			EQU		1E6AH
THLD01			EQU		1E6CH
THLD11			EQU		1E6EH
LOSSVTG			EQU		1E70H
LMTOVCUR11		EQU		1E72H

LS373C1		EQU		600H		;Summing_up output
LS373C2		EQU		400H		;LCD data
LS373C3		EQU		700H		;Summing_up output
LS244C2		EQU		500H		;Summing_up input
LS244C3		EQU		300H		;Summing_up input
         
                					 
		CSEG	 AT 2020H
		DCW		0FFFFH

		CSEG  AT 2000H
		DCW	   T1INT
		DCW	   AD_SV		
		DCW	   HSIINT
		DCW	   HSOINT
		DCW	   SYNINT
		DCW	   SOFTINT
		DCW	   SERINT
		DCW	   EXTINT

	CSEG	AT 2080H
INITIAL:	LD	SP,#SPADR
		DI

C_REG1:	CLR	AX
		LD	BX,#30H
C_REG:	ST	AX,[BX]+
		CMP	BX,#0F8H
		JNE	C_REG                    ;故障位全部清零
		ORB	PORT2,#11000000B
WARM1:	LDB	LS373C1V,#11110110B
		STB	LS373C1V,LS373C1[0]
		LDB	LS373C3V,#01100111B
		STB	LS373C3V,LS373C3[0]
		LDB	IOC0,#00000001B;;       允许HSI.0输入
		LDB	IOC1,#01010001B   ;	;PWM/P2.5选择HSO.4.5
		LDB	HSI_MD,#00000010B	;HSI.0每个负跳变为一个事件
		LDB	INT_MK,#2EH   		;A/D HSI HSO 软件定时
		ORB	LS373C1V,#00001000B;	;选通EPROM
		STB	LS373C1V,LS373C1[0]
INITEEP:	LD	AX,#P_EEPRM 	;	;EPROM操作900H
		ADD	AX,#240
		LDB	BL,[AX]                ;[9F0]
		LDB	BHR,2[AX]
		ADD	AX,#4
		CMP	BX,#5AA5H		; 比较
		JNE	INITP1			;跳转
		LDB	BL,[AX]
		LDB	BHR,2[AX]
		ADD	AX,#4
		ADD	BX,#8
		DJNZ	DL,INITP2
		LD	BX,#(P_EEPRM+240)
		LD	AX,#5AA5H
		LDB	DL,#3
INITP4:	STB	AL,[BX]
INITP5:	CALL	DLY
		STB	AHR,2[BX]
		CALL	DLY
		ADD	BX,#4
		DJNZ	DL,INITP4
INITP6:	LD	AX,#(P_RAM+20)            ;P_RAM=1B00H
		LD	BX,#P_EEPRM	;P_EEPRM=900H
		LDB	DL,#50
INITP7:	LDB	CL,[BX]
		LDB	CHR,2[BX]
		ST	CX,[AX]+
		ADD	BX,#4
		DJNZ	DL,INITP7
		ANDB	LS373C1V,#11110111B
		STB	LS373C1V,LS373C1[0]
		LD	BX,#1E00H
CLRRAM:	ST	R0,[BX]+			;1E00H单元清零~1F00H
		CMP	BX,#1F00H
		JNH	CLRRAM
		LD	BX,#10240
		CLR	CX
		DIVU	BX,#20			;R75,R76 resistance value by 2 times
		ST	BX,RATEDBITS		;商BL=#512  余数BH=00
		ST	BX,AX
		DIVUB AX,#10
		CLRB	AHR
		ST	AX,THLD01[0]
		ADD	BX,AX
		ST	BX,THLD11[0]
		LD	BX,#320			;420,99,7,6
		ST	BX,LOSSVTG[0]
		LD	AX,#(P_RAM+48*2)	;P48同步发电机额定励磁电流值
		LD	BX,[AX]+
		ST	BX,P48V[0]
		CMP	BX,0
		JE	INITP8
		ST	BX,P49V[0]		;P49   励磁装置额定励磁电流值
		CMP	BX,0
		JE	INITP8
		ORB	FLAG5,#00100000B       ; ;有装置和电机励磁电流是置1
INITP8:	LD	AX,#(P_RAM+46*2)	;P46  同步发电机定子额定电压
		LD	BX,[AX]
		ST	BX,P46V[0]
		CMP	BX,0
		JE	INITP8A
		LD	AX,#(P_RAM+47*2)	;P47 励磁装置额定励磁电压值
		LD	BX,[AX]
		ST	BX,P47V[0]	
		CMP	BX,0
		JE	INITP8A
		ORB	FLAG5,#01000000B	;有装置和电机定子额定电压时为1
INITP8A:	LD	AX,#(P_RAM+10*2)
		LDB	CL,#50
		LDB	P_ORDER,#10     ; ;参数符号
INITP9:	LD	BX,[AX]+
		PUSH	AX
		PUSH	CX
		CALL	PV_CAL
		POP	CX
		POP	AX
		INCB	P_ORDER
		DJNZ	CL,INITP9 
		CLRB	P_ORDER
		CALL	PODPL            ;显示参数P__ __
		LDB	FLAG3,#20H       ;0010 0000刷新第一片数码管
		LD	TEMP2,#5200H
		LD	TEMP3,#999
		CLRB	INT_PD
		LDB	HSO_CMD,#38H       ; ;软件定时器0
		ADD	HSO_TIME,T1,#500    ;1 mS intruption(S_TIMER0)
		NOP
		NOP
		LDB	HSO_CMD,#39H		;;;软件定时器1
		ADD	HSO_TIME,T1,#5000   ;10 mS intruption(S_TIMER1)
		LDB	AL,HSI_ST			;Clear HSI.0
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.1
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.0
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.1
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.0
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.1
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.0
		LD	AX,HSI_TIME
		LDB	AL,HSI_ST			;Clear HSI.1
		LD	AX,HSI_TIME

INIDLP3:  LD	AX,#P_RAM		
		LD	BX,#1
		ST	BX,[AX]
		STB	BL,FLTBCK      ;故障代码
		LDB	W_OR_F,#1
		EI                         ;开中断???????????

INIDLP2:	LD	INTELVAL,#10000     ;周期时间
		LDB	NEW_K,#10H
		LDB	KEY,#4
	
MAIN0:	JBC	NEW_K,4,MAIN0
		ANDB	NEW_K,#0EFH
		JBC	FLAG1,0,MAIN2         ; 数码管显示F**字样
		JBC	KEY,2,MAIN1
		ANDB	FLAG1,#0FEH
		ANDB	FLAG3,#11100111B
		CALL	PODPL              ;   显示参数P
MAIN1:	CLRB	KEY
		BR	MAIN0
MAIN2:	CALL	PO_ALTER
		BR	MAIN0
AD_SV:	PUSHF
		LDB	INT_MK,#04H                   ; ;HSI数据有效
                                                      ;		EI
		PUSH	AX
		PUSH	BX
		LDB	AHR,AD_HI
		LDB	AL,AD_LOW
		ANDB	BL,AL,#7
		SHR	AX,#6
		MULUB BX,BL,#2
		;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
		ADD	BX,#CH_SEL
		LD	BX,[BX]
		BR	[BX]
CHAN0:	ADD	FFCM,AX			;反馈电流
		SHR	FFCM,#1
		LDB	AD_CMD,#9H
		BR	CHAN74
CHAN1:	ADD	GFCM,AX                 ;给定电流         
		SHR	GFCM,#1
                    ;		JBC	FLAG2,3,CHAN1A
                    ;		CMP	GFCM,GFCMTV[0]
                    ;		JNH	CHAN1A
                    ;		ANDB	FLAG2,#11110111B
                    ;CHAN1A:	JBC	FLAG2,4,CHAN1B
                    ;		CMP	GFCM,GFCMTV[0]
                    ;		JH	CHAN1B
                    ;		ANDB	FLAG2,#11101111B
CHAN1B:	LDB	AD_CMD,#0AH
		BR	CHAN74
CHAN2:	ADD	STR_VM,AX		;定子电压
		SHR	STR_VM,#1
		LDB	AD_CMD,#0BH
		BR	CHAN74
CHAN3:	ADD	STR_CM,AX		;定子电流
		SHR	STR_CM,#1
		LDB	AD_CMD,#0CH
		BR	CHAN74
CHAN4:	ADD	FAI,AX			;功率因素角
		SHR	FAI,#1
		LDB	AD_CMD,#0DH
		BR	CHAN74
CHAN5:  ADD     WGI,AX			;无功电流
		SHR	WGI,#1
		LDB	AD_CMD,#0EH
		
CHAN74:	POP	BX
		POP	AX
		POPF
		RET


FILTER:       	MULUB 	PROD,INPUT,#K				 ;数字滤波处理程序
		MULUB	PP,REG,#M		;REG先为0值
						;JBS	P0,0,FIL
						;LDB	REG,INPUT
						;SJMP	RETURN
FIL:		ADDB	REG,PROD_1,PP_1
RETURN:		RET                                                          

SYNINT1:	ST	NTIME,LTIME
		ORB	FLAG2,#80H
		LJMP	SYNINT8
SYNINT2:	ST	BX,INTELVAL
		ORB	FLAG2,#40H	;已经算得周期
		ST	NTIME,LTIME
		LJMP	SYNINT8		;出栈退出
		
HSOINT:	PUSHF
		PUSH	AX
		LDB	AL,IOS0
		JBC	AL,0,HSO1
		LDB	HSO_CMD,#0
		ADD	HSO_TIME,T1,#330	;Pulse width=12 deg =667uS
HSO1:	JBC	AL,1,HSO2
		LDB	HSO_CMD,#1
		ADD	HSO_TIME,T1,#330	;Pulse width=12 deg =667uS
HSO2:	JBC	AL,2,HSO3
		LDB	HSO_CMD,#2
		ADD	HSO_TIME,T1,#330	;Pulse width=12 deg =667uS
HSO3:	JBC	AL,3,HSO4
		LDB	HSO_CMD,#3
		ADD	HSO_TIME,T1,#330	;Pulse width=12 deg =667uS
HSO4:	JBC	AL,4,HSO5
		LDB	HSO_CMD,#4
		ADD	HSO_TIME,T1,#330	;Pulse width=12 deg =667uS
HSO5:	JBC	AL,5,HSO6
		LDB	HSO_CMD,#5
		ADD	HSO_TIME,T1,#330	;Pulse width=12 deg =667uS
HSO6:	POP	AX
		POPF
		RET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -