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

📄 2194v301.asm

📁 基于PID温度控制系统
💻 ASM
📖 第 1 页 / 共 5 页
字号:
       SETB COOLER
       SETB ena_cl
       LJMP CTRL_TPROG_CHAN
CTRL_CMOF_S5:
       MOV A,COOL_TEMP_LOW
       CLR CALC_F0
       JNB ACC.7,CTRL_CMOF_S6
       SETB CALC_F0
       CPL A
       ADD A,#1
CTRL_CMOF_S6:
       MOV B,#0AH
       MUL AB
       MOV R0,#CALC_BUF2
       JNB CALC_F0,CTRL_CMOF_S7
       CPL A
       ADD A,#1
       MOV @R0,A
       INC R0
       MOV A,B
       CPL A
       ADDC A,#0
       MOV @R0,A
       SJMP CTRL_CMOF_S8
CTRL_CMOF_S7:
       MOV @R0,A
       INC R0
       MOV @R0,B
CTRL_CMOF_S8:
       MOV R1,#TEMP_REGISTER_L
CTRL_CMOF_S9:
       MOV R0,#CALC_BUF2
       MOV A,@R0
       ADD A,@R1
       MOV @R0,A
       INC R0
       INC R1
       MOV A,@R0
       ADDC A,@R1
       MOV @R0,A
       MOV R1,#temp_la_l
       MOV R0,#CALC_BUF2
       CLR C
       MOV A,@R1
       SUBB A,@R0
       INC R0
       INC R1
       MOV A,@R1
       SUBB A,@R0
       JNB ACC.7,CTRL_CMOF_EXIT
       CLR COOLER
       CLR ena_cl
CTRL_CMOF_EXIT:
       LJMP CTRL_TPROG_CHAN
ctrl_cm_hg:
       SETB cooler
       SETB ena_cl
       MOV A,COOL_TEMP_HIGH
       CLR CALC_F0
       JNB ACC.7,CTRL_CMhg_S1
       SETB CALC_F0
       CPL A
       ADD A,#1
CTRL_CMhg_S1:
       MOV B,#0AH
       MUL AB
       MOV R0,#CALC_BUF2
       JNB CALC_F0,CTRL_CMhg_S2
       CPL A
       ADD A,#1
       MOV @R0,A
       INC R0
       MOV A,B
       CPL A
       ADDC A,#0
       MOV @R0,A
       SJMP CTRL_CMhg_S3
CTRL_CMhg_S2:
       MOV @R0,A
       INC R0
       MOV @R0,B
CTRL_CMhg_S3:
       MOV R1,#TEMP_REGISTER_L
CTRL_CMhg_S4:
       MOV R0,#CALC_BUF2
       MOV A,@R0
       ADD A,@R1
       MOV @R0,A
       INC R0
       INC R1
       MOV A,@R0
       ADDC A,@R1
       MOV @R0,A
       MOV R1,#temp_la_l
       MOV R0,#CALC_BUF2
       CLR C
       MOV A,@R1
       SUBB A,@R0
       INC R0
       INC R1
       MOV A,@R1
       SUBB A,@R0
       JB ACC.7,CTRL_CMhg_S5
       CLR cool_valve
       LJMP CTRL_TPROG_CHAN
CTRL_CMhg_S5:
       MOV A,COOL_TEMP_LOW
       CLR CALC_F0
       JNB ACC.7,CTRL_CMhg_S6
       SETB CALC_F0
       CPL A
       ADD A,#1
CTRL_CMhg_S6:
       MOV B,#0AH
       MUL AB
       MOV R0,#CALC_BUF2
       JNB CALC_F0,CTRL_CMhg_S7
       CPL A
       ADD A,#1
       MOV @R0,A
       INC R0
       MOV A,B
       CPL A
       ADDC A,#0
       MOV @R0,A
       SJMP CTRL_CMhg_S8
CTRL_CMhg_S7:
       MOV @R0,A
       INC R0
       MOV @R0,B
CTRL_CMhg_S8:
       MOV R1,#TEMP_REGISTER_L
CTRL_CMhg_S9:
       MOV R0,#CALC_BUF2
       MOV A,@R0
       ADD A,@R1
       MOV @R0,A
       INC R0
       INC R1
       MOV A,@R0
       ADDC A,@R1
       MOV @R0,A
       MOV R1,#temp_la_l
       MOV R0,#CALC_BUF2
       CLR C
       MOV A,@R1
       SUBB A,@R0
       INC R0
       INC R1
       MOV A,@R1
       SUBB A,@R0
       JB ACC.7,CTRL_CMhg_S9_GOON
       LJMP CTRL_CMhg_EXIT
CTRL_CMhg_S9_GOON:
ctrl_cmhg_svalve3:
       MOV r0,#temp_la_l
       MOV CALC_BUF1,#0E8H
       MOV CALC_BUF1+1,#3H
       CLR C
       MOV A,@R0
       SUBB A,CALC_BUF1
       INC R0
       MOV A,@R0
       SUBB A,CALC_BUF1+1
       JNB ACC.7,ctrl_cmhg_svalve3_3
       MOV C,HG_VOPEN_HOLD_F
       ORL C, HG_VOPEN_DELAY_F
       JNC ctrl_cmhg_svalve3_GOON
       LJMP ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_GOON:
       MOV R0,#HG_VOPEN_DELAY_HOLD_COUNT
       MOV @R0,#10
       MOV R0,#HG_VOPEN_HOLD_VALUE
       MOV @R0,#HG_VOPEN_HOLD_01CONST
       clr cool_valve
       SETB HG_VOPEN_DELAY_F
       Ljmp ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_3:
       MOV r0,#temp_la_l
       MOV CALC_BUF1,#0D0H
       MOV CALC_BUF1+1,#7H
       CLR C
       MOV A,@R0
       SUBB A,CALC_BUF1
       INC R0
       MOV A,@R0
       SUBB A,CALC_BUF1+1
       JNB ACC.7,ctrl_cmhg_svalve3_2
       MOV C,HG_VOPEN_HOLD_F
       ORL C,HG_VOPEN_DELAY_F
       JNC ctrl_cmhg_svalve3_3_GOON
       LJMP ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_3_GOON:
       MOV R0,#HG_VOPEN_DELAY_HOLD_COUNT
       MOV @R0,#10
       MOV R0,#HG_VOPEN_HOLD_VALUE
       MOV @R0,#HG_VOPEN_HOLD_21CONST
       clr cool_valve
       SETB HG_VOPEN_DELAY_F
       Ljmp ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_2:
       MOV r0,#temp_la_l
       MOV CALC_BUF1,#0B8H
       MOV CALC_BUF1+1,#0BH
       CLR C
       MOV A,@R0
       SUBB A,CALC_BUF1
       INC R0
       MOV A,@R0
       SUBB A,CALC_BUF1+1
       JNB ACC.7,ctrl_cmhg_svalve3_2_1
       MOV C,HG_VOPEN_HOLD_F
       ORL C, HG_VOPEN_DELAY_F
       JNC ctrl_cmhg_svalve3_2_GOON
       LJMP ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_2_GOON:
       MOV R0,#HG_VOPEN_DELAY_HOLD_COUNT
       MOV @R0,#10
       MOV R0,#HG_VOPEN_HOLD_VALUE
       MOV @R0,#HG_VOPEN_HOLD_32CONST
       clr cool_valve
       SETB HG_VOPEN_DELAY_F
       Ljmp ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_2_1:
       MOV r0,#temp_la_l
       MOV CALC_BUF1,#0c4H
       MOV CALC_BUF1+1,#9H
       CLR C
       MOV A,@R0
       SUBB A,CALC_BUF1
       INC R0
       MOV A,@R0
       SUBB A,CALC_BUF1+1
       JNB ACC.7,ctrl_cmhg_svalve3_1
       MOV C,HG_VOPEN_HOLD_F
       ORL C, HG_VOPEN_DELAY_F
       JNC ctrl_cmhg_svalve3_2_1_GOON
       LJMP ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_2_1_GOON:
       MOV R0,#HG_VOPEN_DELAY_HOLD_COUNT
       MOV @R0,#10
       MOV R0,#HG_VOPEN_HOLD_VALUE
       MOV @R0,#HG_VOPEN_HOLD_32_1CONST
       clr cool_valve
       SETB HG_VOPEN_DELAY_F
       Ljmp ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_1:
       MOV r0,#temp_la_l
       MOV CALC_BUF1,#0A0H
       MOV CALC_BUF1+1,#0FH
       CLR C
       MOV A,@R0
       SUBB A,CALC_BUF1
       INC R0
       MOV A,@R0
       SUBB A,CALC_BUF1+1
       JNB ACC.7,ctrl_cmhg_svalve3_0
       MOV C,HG_VOPEN_HOLD_F
       ORL C,HG_VOPEN_DELAY_F
       JNC ctrl_cmhg_svalve3_1_GOON
       LJMP ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_1_GOON:
       MOV R0,#HG_VOPEN_DELAY_HOLD_COUNT
       MOV @R0,#8
       MOV R0,#HG_VOPEN_HOLD_VALUE
       MOV @R0,#HG_VOPEN_HOLD_43CONST
       clr cool_valve
       SETB HG_VOPEN_DELAY_F
       Ljmp ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_0:
       MOV r0,#temp_la_l
       MOV CALC_BUF1,#88H
       MOV CALC_BUF1+1,#13H
       CLR C
       MOV A,@R0
       SUBB A,CALC_BUF1
       INC R0
       MOV A,@R0
       SUBB A,CALC_BUF1+1
       JNB ACC.7,ctrl_cmhg_svalve4
       MOV C,HG_VOPEN_HOLD_F
       ORL C,HG_VOPEN_DELAY_F
       JNC ctrl_cmhg_svalve3_0_GOON
       LJMP ctrl_cmhg_svalve3_EXIT
ctrl_cmhg_svalve3_0_GOON:
       MOV R0,#HG_VOPEN_DELAY_HOLD_COUNT
       MOV @R0,#6
       MOV R0,#HG_VOPEN_HOLD_VALUE
       MOV @R0,#HG_VOPEN_HOLD_54CONST
       clr cool_valve
       SETB HG_VOPEN_DELAY_F
ctrl_cmhg_svalve3_EXIT:
       sjmp CTRL_CMhg_EXIT
ctrl_cmhg_svalve4:
       SETB cool_valve

CTRL_CMhg_EXIT:
       LJMP ctrl_tprog_chan
CTRL_TPROG_CHAN:
       LCALL CTRL_PROG
CTRL_LIGHT:
       MOV A,PIC_CTRL_BYTE
       ANL A,#0c0H
       MOV PIC_CTRL_BYTE,A
       JNB LIGHT_RUN_F,SCAN_KEY
       MOV A,PIC_CTRL_BYTE
       ANL A,#0C0H
       ORL A,LIGHT_INTENSION
       MOV C,ACC.4
       MOV ACC.5,C
       MOV PIC_CTRL_BYTE,A
scan_key:
       LCALL CHECK_KEY
       JNB KEY_PUSH_F,MAIN_LP3
       LCALL key_process
MAIN_LP3:
       MOV C,START_CALC_SOMV_F
       ANL C,TEMP_RUN_F
       JC MAIN_LP3_0
       LJMP MAIN_LP4
MAIN_LP3_0:
       CLR START_CALC_SOMV_F
MAIN_LP3_COMPARE:
        MOV R0,#HIS_TEMP_BUF+2
        MOV calc_buf1,@R0
        INC R0
        MOV CALC_BUF1+1,@R0
        MOV R0,#HIS_TEMP_BUF+4
        MOV R1,#calc_buf2
        MOV A,@R0
        MOV @R1,A
        INC R0
        INC R1
        MOV A,@R0
        MOV @R1,A
        MOV R1,#CALC_BUF1
        MOV R0,#CALC_BUF2
        MOV A,CALC_BUF1
        CLR C
        SUBB A,@R0
        MOV @R1,A
        INC R1
        INC R0
        MOV A,@R1
        SUBB A,@R0
        MOV @R1,A
        JNB ACC.7,MAIN_LP3_COMPARE_1
        SETB CALC_F0
        MOV A,CALC_BUF1
        CPL A
        ADD A,#1
        MOV CALC_BUF1,A
        MOV A,CALC_BUF1+1
        CPL A
        ADDC A,#0
        MOV CALC_BUF1+1,A
MAIN_LP3_COMPARE_1:
        CLR C
        MOV A,CALC_BUF1
        SUBB A,#WTXZ_CONST
        MOV A,CALC_BUF1+1
        SUBB A,#0
        JC MAIN_LP3_CALC_OFFSET_0
        LJMP MAIN_LP3_COMPARE_EXIT1
MAIN_LP3_CALC_OFFSET_0:
        MOV R0,#HIS_TEMP_BUF+2
        MOV calc_buf1,@R0
        INC R0
        MOV CALC_BUF1+1,@R0
        MOV R0,#HIS_TEMP_BUF+4
        MOV R1,#calc_buf2
        MOV A,@R0
        MOV @R1,A
        INC R0
        INC R1
        MOV A,@R0
        MOV @R1,A
MAIN_LP3_EMA2:
       MOV R2,CALC_BUF1+1
       MOV R3,CALC_BUF1
       MOV R6,#0
       MOV R7,#10
       LCALL MULS
       MOV R6,#0
       MOV R7,#20
       LCALL DIVS
       MOV CALC_BUF1+2,R3
       MOV CALC_BUF1+3,R2
MAIN_LP3_EMA2_STEP1:
       MOV R0,#CALC_BUF2
       MOV A,@R0
       MOV R3,A
       INC R0
       MOV A,@R0
       MOV R2,A
       MOV R6,#0
       MOV R7,#10
       LCALL MULS
       MOV R6,#0
       MOV R7,#20
       LCALL DIVS
MAIN_LP3_EMA2_STEP2:
       MOV R6,CALC_BUF1+3
       MOV R7,CALC_BUF1+2
       LCALL NADD
       MOV R1,#HIS_TEMP_BUF
       MOV A,R5
       MOV @R1,A
       INC R1
       MOV A,R4
       MOV @R1,A
       MOV R0,#HIS_TEMP_BUF
       MOV R1,#TEMP_SVALUE_L
MAIN_LP3_CALC_OFFSET_0_0:
       MOV R0,#HIS_TEMP_BUF
       MOV R1,#TEMP_SVALUE_L
       CLR C
       MOV A,@R1
       SUBB A,@R0
       MOV CALC_BUF1,A
       INC R1
       INC R0
       MOV A,@R1
       SUBB A,@R0
       MOV CALC_BUF1+1,A
MAIN_LP3_CALC_OFFSET_2:
        MOV R0,#STABLE_OFFSET_L
        MOV A,CALC_BUF1
        ADD A,@R0
        MOV @R0,A
        INC R0
        MOV A,CALC_BUF1+1
        ADDC A,@R0
        MOV @R0,A
       MOV R0,#STABLE_OFFSET_H
       MOV A,@R0
       JB ACC.7, MAIN_LP3_CALC_OFFSET_2_0_NEG
       CLR C
       MOV R0,#STABLE_OFFSET_L
       MOV A,@R0
       SUBB A,#64H
       INC R0
       MOV A,@R0
       SUBB A,#0
       JC MAIN_LP3_CALC_OFFSET_2_EXIT
       MOV R0,#STABLE_OFFSET_L
       MOV @R0,#64H
       INC R0
       MOV @R0,#0
MAIN_LP3_CALC_OFFSET_2_EXIT:
       LJMP MAIN_LP3_COMPARE_EXIT2
MAIN_LP3_CALC_OFFSET_2_0_NEG:
        MOV R0,#STABLE_OFFSET_L
        MOV A,@R0
        CPL A
        ADD A,#1
        MOV R1,#CALC_BUF2
        MOV @R1,A
        INC R0
        MOV A,@R0
        CPL A
        ADDC A,#0
        INC R1
        MOV @R1,A
MAIN_LP3_CALC_

⌨️ 快捷键说明

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