📄 usesub.asm
字号:
RET
SubMidt: MOV R0, #xWTROMDT ;R0 is pointer of Tsp(setpoint of T0)
LCALL sF3_SUB ;Tsp - T1
JC CalcEn
MOV R0, #xWTRODTT
LCALL sF3_SUB ;dltT - (Tsp - T1)
MOV dEXTPART, #0 ; RESET EXTERN RAM HIGH BYTE
MOV pPORT2, dEXTPART
JC ForEnProc
RET
ForEnProc: MOV R0, #xENERGY ; 50
MOVX A, @R0
CJNE A, #50, DecEnIs ; CHECK THE 50% FLAG INPUT
; 自动停机 RET
AutOff: MOV R6, #DO_STARTCHNL ; DO_STARTCHNL = 0
MOV DPTR, #aPSD1 ; the i/o port
CALL sOFF_R6BIT
MOV R6, #DO_STARTDELT ; DO_STARTCHNL = 1
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 sOFF_R6BIT
MOV R0, #xSYSMK_2
MOV R6, #MK_PSHERR
CALL xCLR_R6BIT
MOV R0, #xSYSMK_2
MOV R6, #MK_PSLERR
CALL xCLR_R6BIT
MOV tMKDELAY, #cMKDELAYt
MOV R0, #xIN_2SOC ; REVERSE THE MAIN MOTOR RETURN STATUS
MOV R6, #IN_STARTRET
CALL xCLR_R6BIT
MOV sSYSDELAY, #cRESTARTs ; DELAY TIME FOR restart
DecEnIs: CALL FORENDEC
SETB C
RET
CalcEn: MOV A, R7
MOV dEXTPART, #cSCDRAM ; SET TMPBUF ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xTMPBUF1 ; GET THE TEMPERARY BUFFER1
CALL sMOVRS_PR0
MOV dEXTPART, #cADSEG ; SET A/D DATA ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xWTRODTT
CALL sMOVPR0_RS
MOV dEXTPART, #cSCDRAM ; SET TMPBUF ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xTMPBUF1
CALL sF3_DIV ; (Tsp-T1)/dTsp
CALL sF3_INT ; Integer of 2*(Tsp-T1)/dTsp
MOV R1, B
MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
CJNE R1, #0, G_Energy
RET
G_Energy: MOV dEXTPART, #0
MOV pPORT2, dEXTPART
CJNE R1, #8, IsGread
IsGread: JNC IncEnergy ; SetDelay
MOV dEXTPART, #cADSEG ; SET A/D DATA ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xWTROODT
CALL sMOVPR0_RS
MOV R0, #xWTRORDT ;R0 is pointer of T1 (out water of chiller)
GetDrop: CALL sF3_SUB ; T1 - oT1
JNZ DoDrop
JNC DoDrop
MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
RET
DoDrop: MOV dEXTPART, #cSCDRAM ; SET TMPBUF ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xTMPBUF1
CALL sMOVRS_PR0
MOV R7, #7FH
MOV R4, #0C0H
MOV R5, #0
CALL sF3_ADD ; (T1 - OT1) - (-0.375)
JNC IncEnergy ; >= 0
MOV R7, #02H
MOV R4, #0C0H
CALL sF3_ADD ; (T1 - OT1) - (-3.00)
MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
JNC UnDoEn
JMP DecEnIs
UnDoEn: CLR C
RET
IncEnergy: CALL FORENINC
SETB C
RET
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: FORENDEC - FOR DEC SYSTEM ENERGY
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN DISPLAY CALL), R6
; RETURN: NONE
;------------------------------------------------------------
FORENDEC: MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xENERGY
MOVX A, @R0
CJNE A, #50, IsEn75Dec
; JB bSYSON, IsEn75Dec
MOV B, #DO_ENY11
AJMP IsEnDec
IsEn75Dec: CJNE A, #75, IsEn100Dec
MOV B, #DO_ENY12
AJMP IsEnDec
IsEn100Dec:CJNE A, #100, ChgEnd
MOV B, #DO_ENY13
IsEnDec: SUBB A, #25
MOVX @R0, A
DEC dSYSMODE
JB bSYSON, DoEnChg
MOV sSYSDELAY, #cFSTENCHKs
CJNE A, #25, DoEnChg
MOV sSYSDELAY, #cFSTENCHKs-10
DoEnChg: PUSH B
MOV R6, #DO_ENY11
MOV DPTR, #aPSD1 ; the i/o port
CALL sOFF_R6BIT
MOV R6, #DO_ENY12
MOV DPTR, #aPSD1
CALL sOFF_R6BIT
MOV R6, #DO_ENY13
MOV DPTR, #aPSD1
CALL sOFF_R6BIT
POP ACC
JZ OverChg
MOV R6, A
MOV DPTR, #aPSD1
CALL sON_R6BIT
OverChg: MOV A, #xENERGY
CALL sFLDUPDATE
MOV A, tMKDELAY
JNZ ChgEnd
MOV tMKDELAY, #cMKDELAYt
ChgEnd: RET
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: FORENINC - FOR INC SYSTEM ENERGY
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN DISPLAY CALL), R6
; RETURN: NONE
;------------------------------------------------------------
FORENINC: MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
MOV R0, #xENERGY
MOVX A, @R0
CJNE A, #25, IsEn50Inc
MOV B, #DO_ENY12
AJMP IsEnInc
IsEn50Inc: CJNE A, #50, IsEn75Inc
MOV B, #DO_ENY13
AJMP IsEnInc
IsEn75Inc: CJNE A, #75, ChgEnd
MOV B, #0
IsEnInc: ADD A, #25
MOVX @R0, A
INC dSYSMODE
AJMP DoEnChg
END
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: ADLMTCHK - A/D DATA LIMIT CHECK FOR ERROR DETECTION
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN DISPLAY CALL), R7
; RETURN: NONE
;------------------------------------------------------------
PROC iADLMTCHK
iADLMTCHK:MOV dEXTPART, #cADSEG ; SET A/D DATA ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
CJNE R7, #cWTRORDT, In_wtrC
MOV R1, #xWTROSTT
JMP DnChkAD
In_WtrC: CJNE R7, #cWTRIRDT, NoChkAD
MOV R1, #xWTRISTT
JMP DnChkAD
;OutGas: CJNE R7, #cAIRORDT, In_Gas
; MOV R1, #xAIROSTT
; JMP UpChkAD
;In_Gas: CJNE R7, #cAIRIRDT, NoChkAD
; MOV R1, #xAIRISTT
; JMP DnChkAD
NoChkAD: RET
DnChkAD: CALL sMOVPR1_RS
CALL sF3_SUB
JNC OverChkAD
SaveADErr:MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
CLR A
MOV R6, nAD_CHNL
CALL sADERRSAV ; IF THE COOL WATER LOW SET LIMIT TEMP.
OverChkAD:MOV dEXTPART, #0 ; RESET RAM ADDRESS HIGH BYTE
MOV pPORT2, dEXTPART
RET
UpChkAD: CALL sMOVPR1_RS
CALL sF3_SUB
JC OverChkAD
JMP SaveADErr
END
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: SYSINIT - DO INIALIZE FOR APPLICATION
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN SDISPLAY CALL), R7
; RETURN: NONE
;------------------------------------------------------------
iSYSINIT: MOV DPTR, #xSCHEDULE ; INITIALIZE SCHEDULE TABLE
MOV R2, #7
NextDay:MOV A, #8
MOVX @DPTR, A
INC DPTR
CLR A
MOVX @DPTR, A
INC DPTR
MOV A, #18
MOVX @DPTR, A
CLR A
INC DPTR
MOVX @DPTR, A
INC DPTR
DJNZ R2, NextDay
MOV dEXTPART, #0
MOV pPORT2, dEXTPART
MOV R1, #xSUMTIME ; CLEAR THE SUM OF RUN TIME 清累计运行时间
CLR A
MOVX @R1, A
INC R1
MOVX @R1, A
INC R1
MOVX @R1, A
INC R1
MOVX @R1, A
INC R1
MOVX @R1, A
mov R1, #xDATEBUF
dec R1
mov A, #10H
movx @R1, A
inc R1
mov A, #24H
movx @R1, A
inc R1
mov A, #10H
movx @R1, A
MOV A, #25 ; INITIALIZE ENERGY AS 25%
MOV R1, #xENERGY
MOVX @R1, A
RET
;#############################################################
; FILE NAME USESUB.ASM
; SUBROUTE: READYDOT - READY FOR NEXT DOT OUTPUT
; FUNCTION:
; PARMENTERS:
; USEING REGISTER: A, B, R0(IN SDISPLAY CALL), R7
; RETURN: NONE
;------------------------------------------------------------
iREADYDOT: RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -