📄 ge15.asm
字号:
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 + -