📄 usesub.asm
字号:
ORG 8000H
IN_INT0: POP ACC
RETI
ORG 8008H
IN_INT1: POP ACC
RETI
ORG 8010H
uEVTPROC: LJMP iEVTPROC
ORG 8014H
uCOMPROC: LJMP iCOMPROC
ORG 8018H
uADLMTCHK: LJMP iADLMTCHK
ORG 801CH
uSYSINIT: LJMP iSYSINIT
ORG 8020H
uCVTR_AD: LJMP iCVTR_AD
ORG 8024H
uSTATCHK: LJMP iSTATCHK
ORG 8028H
uREADYDOT: LJMP iREADYDOT
ORG 8040H
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: STATCHK - CHECK THE DI PORT FOR ERROR DETECTION
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN SDISPLAY CALL), R7
; RETURN: NONE
;------------------------------------------------------------
PROC iSTATCHK, TURNSYS, CTRLENERGY, FORENDEC, FORENINC
iSTATCHK: MOV A, tMKDELAY
CJNE A, #cDLYCHK, ClrMark
DEC tMKDELAY ; 复位显示屏亮度
ACALL RSTLIGHT
AJMP SysRunChk
ClrMark: CJNE A, #1, SysRunChk
DEC tMKDELAY
MOV R0, #xSYSMK_1 ; 恢复用户设定屏蔽码
MOV A, #0FFH
MOVX @R0, A
INC R0 ; HAVE problam FOR SYSMK_2
MOVX @R0, A
SysRunChk: CALL TURNSYS
RET
;//// LOCAL SUBROUTNE FOR LCD LIGHT RESET
RSTLIGHT: CLR B_LCDCTL ; RESET LCD RIGHT CONTROL
NOP
SETB B_LCDADJ
NOP
NOP
SETB B_LCDCTL
SETB B_LCDADJ ; ...\\
MOV DPTR, #xLCDRIGHT
MOVX A, @DPTR
NtPluse: JNZ PlusOut
RET
PlusOut: SETB B_LCDCTL
CLR B_LCDADJ ; ...\\
NOP
NOP
SETB B_LCDADJ
DEC A
JMP NtPluse
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: TURNSYS - TURN THE SYSTEM ON OR OFF, AS NEED
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN SDISPLAY CALL), R7
; RETURN: NONE
;------------------------------------------------------------
TURNSYS: JB bSYSON, Wtr_On
JMP TurnOffIn
Wtr_On: MOV A, dSYSMODE
CJNE A, #cSYSSTART, SysStart
MOV R6, #DO_CHLPUMP ; 10 开冷冻、冷却水泵
MOV DPTR, #aPSD2 ;
CALL sON_R6BIT
MOV R6, #DO_COLPUMP ; 9
MOV DPTR, #aPSD2 ;
CALL sON_R6BIT
MOV R6, #DO_ENY11 ; 调能调阀至25%
MOV DPTR, #aPSD1 ; 3
CALL sON_R6BIT
MOV R6, #DO_ENY12 ; 2
MOV DPTR, #aPSD1 ;
CALL sOFF_R6BIT
MOV R6, #DO_ENY13 ; 1
MOV DPTR, #aPSD1 ;
CALL sOFF_R6BIT
INC dSYSMODE ; WAITING FOR TURN MAIN MOTOR ON
MOV sSYSDELAY, #cMOTORONs
MOV A, tMKDELAY
JNZ SysStart
MOV tMKDELAY, #cMKDELAYt
SysStart: MOV A, sSYSDELAY
JNZ NoAction
MOV R6, #DO_STARTCHNL
MOV R0, #dOUT1SET ; REVERSE THE OIL PUMP RETURN STATUS
CALL dTOC_R6BIT
JC SysTemRun
MOV dEXTPART, #cADSEG ; SET A/D DATA ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xWTRODTT
CALL MOVPR0_RS
MOV R0, #xWTROMDT ; GET THE MIDDLE TEMP. + 2*(delta)
CALL F3_ADD ; \\....
MOV R0, #xWTRORDT
CALL F3_SUB
MOV dEXTPART, #0 ; %%%%%
MOV pPORT2, dEXTPART
JZ NoAction
JC NoAction
MOV R6, #DO_STARTDELT ; DO_STARTDELT = 6
MOV DPTR, #aPSD1 ; the i/o port
CALL sON_R6BIT
MOV R6, #DO_STARTCHNL ; DO_STARTCHNL = 7
MOV DPTR, #aPSD1 ; the i/o port
CALL sON_R6BIT ; TURN ON THE START RUN...
MOV R6, #DO_SYSON ; DO_SYSON = 11, GAVE SYSTEM START FLAG
MOV DPTR, #aPSD2 ; the i/o port
CALL sON_R6BIT
SETB bSYSONB
MOV R6, #IN_STARTRET
MOV R0, #xIN_2SOC ; REVERSE THE MAIN MOTOR RETURN STATUS
CALL xSET_R6BIT
MOV R0, #xSYSMK_2 ; MARK 高低压开关量
MOV R6, #MK_PSHERR
CALL xCLR_R6BIT
MOV R0, #xSYSMK_2
MOV R6, #MK_PSLERR
CALL xCLR_R6BIT
MOV tMKDELAY, #cMKDELAYt
;%% CLR B_LOCKMEAS
MOV A, #cTURNON ; SYSTEM INTO TURN ON
MOV B, #eSTACHG
CALL SAVEMSG
MOV tCLOCK_01, #19 ; DELAY 0.9S
MOV sSYSDELAY, #cSTART_Ds ; THE DELAY TIME FOR TURN TO RUN
MOV dSYSMODE, #cSTARTMODE
MOV dEXTPART, #0 ; INC THE RUN TIME COUNTER
MOV pPORT2, dEXTPART
MOV R0, #xSUMCOUNT
MOVX A, @R0
INC A
MOVX @R0, A
RET
NoAction: MOV dEXTPART, #0
MOV pPORT2, dEXTPART ; RESET THE HIGH BYTE FOR RAM ADDRESS
RET
SystemRun: MOV R6, #DO_STARTDELT ; DO_STARTDELT = 2
MOV R0, #dOUT1SET ; CHECK THAT SYSTEM IS IN DELT STATUS
CALL dTOC_R6BIT
JNC SetEnTo50
MOV DPTR, #aPSD1 ; the i/o port
CALL sOFF_R6BIT
MOV R6, #DO_LVCHNL ; DO_LVCHNL = 3
MOV DPTR, #aPSD1 ; the i/o port
CALL sON_R6BIT
MOV tMKDELAY, #cMKDELAYt
INC dSYSMODE
MOV sSYSDELAY, #cFSTENCHKs
MOV dEXTPART, #0 ; %%%%%
MOV pPORT2, dEXTPART
RET
SetEnTo50: MOV A, dSYSMODE
CJNE A, #cDELTAMODE, AdjustEn
CALL FORENINC
MOV sSYSDELAY, #cCHENERGYs ; RESET ENERGY CHECK delay 60sec
RET
AdjustEn: JNB bAUT_LOC, NoAction
CALL CTRLENERGY
MOV dEXTPART, #cADSEG ; SET A/D DATA ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xWTRORDT ; R0 is point to T1(out water of chiller)
CALL sMOVPR0_RS ; GET THE T1 TEMPERTURE TO R7R4R5
MOV A, R7
CLR C
SUBB A, #cF3_ERR ; NoErr IS
JZ NoAction
MOV R0, #xWTROODT ; R0 is point to old T1 buffer
CALL sMOVRS_PR0 ; SAVE IT
AJMP NoAction
TurnOffIn: MOV A, dSYSMODE
JZ NoAction
MOV A, sSYSDELAY
JNZ TurnOver
CALL FORENDEC
MOV A, sSYSDELAY
JNZ TurnOver
MOV A, dSYSMODE
TurnSysOff: CJNE A, #cSYSSTART, MotorOff
MOV R6, #DO_CHLPUMP ; 10 关冷冻、冷却水泵
MOV DPTR, #aPSD2 ;
CALL sOFF_R6BIT
MOV R6, #DO_COLPUMP ; 9
MOV DPTR, #aPSD2 ;
CALL sOFF_R6BIT
MOV R6, #DO_ENY11 ; Turn off 能调阀25%
MOV DPTR, #aPSD1 ; 3
CALL sOFF_R6BIT
CALL sPOWEROFF ; TURN OFF THE 12V POWER OFF
JNB bSYSONB, ResetMode
MOV sSYSDELAY, #cRESTARTs
CLR bSYSONB
ResetMode: MOV dSYSMODE, #cSYSOFF
MOV A, #cTURNOFF ; SYSTEM HAS TURN OFF
MOV B, #eSTACHG
CALL SAVEMSG
MOV R0, #xSYSMK_2
MOV pPORT2, #0
MOV A, #0FFH
MOVX @R0, A
MOV A, #dSYSBITS2
CALL sFLDUPDATE
MOV A, tMKDELAY
JNZ TurnOver
MOV tMKDELAY, #cMKDELAYt
TurnOver: MOV dEXTPART, #0 ; %%%%%
MOV pPORT2, dEXTPART
RET
MotorOff: CJNE A, #cSTARTMODE+1, StartOff
DEC A
StartOff: CJNE A, #cSTARTMODE, TurnOver
MOV R6, #DO_STARTCHNL
MOV R0, #dOUT1SET
CALL dTOC_R6BIT
JNC TurnOver
MOV DPTR, #aPSD1 ; the i/o port
CALL sOFF_R6BIT
MOV R6, #DO_STARTDELT ; DO_STARTCHNL = 6
MOV DPTR, #aPSD1 ; the i/o port
CALL sOFF_R6BIT
MOV R6, #DO_LVCHNL ; DO_LVCHNL = 5
MOV DPTR, #aPSD1 ; the i/o port
CALL sOFF_R6BIT
MOV R0, #xSYSMK_2
MOV R6, #MK_PSLERR
CALL xCLR_R6BIT
MOV R0, #xSYSMK_2
MOV R6, #MK_PSHERR
CALL xCLR_R6BIT
MOV tMKDELAY, #cMKDELAYt
MOV R0, #xIN_2SOC ; REVERSE THE MAIN MOTOR RETURN STATUS
MOV R6, #IN_STARTRET
CALL xCLR_R6BIT
MOV R6, #DO_SYSON ; DO_SYSON = 11
MOV DPTR, #aPSD2 ; the i/o port
CALL sOFF_R6BIT
MOV dSYSMODE, #cSYSSTART
MOV sSYSDELAY, #cSTART_Ds ; FOR WATER PUMP OFF DELAY
JMP TurnOver
;#############################################################
; FILE NAME TURNSYS.ASM
; SUBROUTE: CTRLENERGY - CONTROL FOR CHANGE ENERGY
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN SDISPLAY CALL), R7
; RETURN: NONE
;------------------------------------------------------------
CTRLENERGY: MOV sSYSDELAY, #cCHENERGYs ; RESET ENERGY CHECK delay 60sec
MOV dEXTPART, #cADSEG ; SET A/D DATA ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xWTRORDT
CALL sMOVPR0_RS
CJNE R7, #cF3_ERR, SubMidt
MOV dEXTPART, #0 ; RESET EXTERN RAM HIGH BYTE
MOV pPORT2, dEXTPART
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -