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

📄 2194v301.asm

📁 基于PID温度控制系统
💻 ASM
📖 第 1 页 / 共 5 页
字号:
       MOV A,@R1
       CLR C
       SUBB A,#10
       JC SDISP_HUMI_VS3
       MOV R0,#DISP_BUF+1
       MOV @R0,#09H
       INC R0
       MOV @R0,#19H
       INC R0
       MOV @R0,#09H
       JnB point_flash_f,sdisp_sent_exit
       DEC r0
       DEC r0
       MOV @r0,#1fh
       INC r0
       MOV @r0,#1fh
       INC r0
       MOV @r0,#1fh
       SJMP SDISP_SENT_EXIT
SDISP_HUMI_VS3:
       MOV R0,#DISP_BUF+1
       MOV R1,#CALC_BUF1+1
       MOV A,@R1
       MOV @R0,A
       JNZ SDISP_HUMI_VS1
       MOV @R0,#1FH
SDISP_HUMI_VS1:
       INC R0
       DEC R1
       MOV A,@R1
       ANL A,#0F0H
       SWAP A
       ADD A,#10H
       MOV c,humi_run_f

       ANL c,/point_flash_f
       JNC sdisp_humi_vs2
       CLR c
       SUBB a,#10h
sdisp_humi_vs2:
       MOV @R0,A
       MOV A,@R1
       ANL A,#0FH
       INC R0
       MOV @R0,A
SDISP_SENT_EXIT:
       LCALL DISP2_VERIFY
       LCALL SENT_DISP2
CTRL_OUTPUT:
       JB POINT_FLASH_F,CTRL_HUMI
       LJMP SCAN_KEY
CTRL_HUMI:
       MOV c,temp_run_f
       ANL c,cooler_run_f
       ANL C,HUMI_RUN_F
       JC CTRL_HUMI_S6
       JNB backup_cmode_f,ctrl_humi_ss3
       CLR backup_cmode_f
       MOV cool_mode,backup_cool_mode
ctrl_humi_ss3:
       CLR HUMI_UP
       LJMP CTRL_HUMI_EXIT
CTRL_HUMI_S6:
       MOV R0,#CALC_BUF2+2
       CLR A
       MOV @R0,A
       DEC R0
       MOV @R0,A
       DEC R0
       MOV @R0,A
       MOV A,HUMI_SVALUE_L
       ANL A,#0FH
       MOV @R0,A
       MOV A,HUMI_SVALUE_L
       ANL A,#0F0H
       SWAP A
       MOV B,#0AH
       MUL AB
       ADD A,@R0
       MOV @R0,A
       MOV A,HUMI_SVALUE_H
       ANL A,#0FH
       MOV B,#64H
       MUL AB
       ADD A,@R0
       MOV @R0,A
       INC R0
       MOV A,B
       ADDC A,@R0
       MOV @R0,A
       LCALL CONTROL_CALC_HUMI
       mov r0,#calc_buf1
       mov r1,#calc_buf2
       clr c
       mov r2,#2
ctrl_humi_s1:
       mov a,@r0
       subb a,@r1
       mov @r0,a
       INC r0
       INC r1
       djnz r2,ctrl_humi_s1
       MOV r0,#calc_buf1
       MOV r1,#dec_humi_on_value
       LCALL compare_humi_value
       JNB calc_f0,ctrl_humi_s2
       clr inchumi_f
       CLR humi_up
       CLR inchumi_pwn_en
       JB backup_cmode_f,ctrl_humi_s2_0
       MOV backup_cool_mode,cool_mode
       SETB backup_cmode_f
ctrl_humi_s2_0:
       MOV cool_mode,#04h
       SJMP ctrl_humi_exit
ctrl_humi_s2:
       MOV R0,#CALC_BUF1
       MOV r1,#dec_humi_off_value
       LCALL compare_humi_value
       JNB calc_f0,ctrl_humi_s3

       clr inchumi_f
       CLR humi_up
       CLR inchumi_pwn_en
       SJMP ctrl_humi_exit
ctrl_humi_s3:
       CLR HG_VOPEN_DELAY_F
       clr HG_VOPEN_HOLD_F
       JNB backup_cmode_f,ctrl_humi_s4
       CLR backup_cmode_f
       MOV cool_mode,backup_cool_mode
ctrl_humi_s4:
       MOV r0,#calc_buf1
       MOV r1,#inc_humi_on_value
       LCALL compare_humi_value
       JNB calc_f0,ctrl_humi_s5
       MOV r0,#calc_buf1+1
       MOV a,@r0
       JNB acc.7,ctrl_humi_s8
       DEC r0
       MOV a,@r0
       CPL a
       ADD a,#1
       MOV r3,a
       INC r0
       MOV a,@r0
       CPL a
       ADDC a,#0
       MOV r2,a
       MOV a,@r1
       JB acc.7,ctrl_humi_s7
ctrl_humi_s8:
       clr inchumi_f
       CLR humi_up
       CLR inchumi_pwn_en
       SJMP ctrl_humi_exit
ctrl_humi_s7:
       setb inchumi_f
       MOV R6,#00H
       MOV R7,#64H
       LCALL MULD
       MOV r1,#inc_humi_on_value
       MOV a,@r1
       CPL a
       ADD a,#1
       MOV r7,a
       MOV r6,#0
       LCALL DIVD
       MOV inchumi_pwn_const,r3
       SETB inchumi_pwn_en
       SJMP ctrl_humi_exit
ctrl_humi_s5:
       setb inchumi_f
       SETB humi_up
       CLR inchumi_pwn_en
       mov inchumi_pwn_const,#0
ctrl_humi_exit:
CTRL_FAN_PUMP:
       JB PUMP_RUN_F,CTRL_PUMP_S1
       CLR PUMP_FAN
       SJMP CTRL_HEAT
CTRL_PUMP_S1:
       JB PUMP_FAN,CTRL_HEAT
       SETB PUMP_FAN
       MOV HEAT_DELAY_TIMES,#0
CTRL_HEAT:
       JB PUMP_RUN_F,CTRL_HEAT_S0
       CLR HEAT_PWN_EN
       CLR ENA_HEAT
       LJMP CTRL_COOLER
CTRL_HEAT_S0:
       JB TEMP_RUN_F, CTRL_HEAT_S01
       CLR ENA_HEAT
       LJMP CTRL_COOLER
CTRL_HEAT_S01:
       MOV TEMP_REGISTER_L,TEMP_SVALUE_L
       MOV TEMP_REGISTER_H,TEMP_SVALUE_H
        ;lcall HEAT_STABLE_SUB
       MOV A,TEMP_REGISTER_L
       PUSH A
       MOV A,TEMP_REGISTER_H
       PUSH A
CTRL_HM_START:
       MOV A,COOL_MODE
       MOV B,#3
       MUL AB
       MOV DPTR,#CTRL_HM_TAB
       JMP @A+DPTR
CTRL_HM_TAB:
       LJMP CTRL_HM_on
       LJMP CTRL_HM_nF
       LJMP CTRL_HM_on
       LJMP CTRL_HM_on
       LJMP CTRL_HM_hg
CTRL_HM_nF:
       JNB COOLER_RUN_F,CTRL_HM_nF_S2
       MOV A,COOL_TEMP_LOW
       JNB ACC.7,CTRL_HM_nF_S1
       CPL A
       ADD A,#1
       MOV B,#10
       MUL AB
       MOV R0,#CALC_BUF1
       MOV @R0,A
       INC R0
       MOV @R0,B
       CLR C
       MOV R1,#TEMP_REGISTER_L
       MOV R0,#CALC_BUF1
       MOV A,@R1
       SUBB A,@R0
       MOV @R1,A
       INC R0
       INC R1
       MOV A,@R1
       SUBB A,@R0
       MOV @R1,A
       LJMP CTRL_HM_nF_S2
CTRL_HM_nF_S1:
       MOV A,COOL_TEMP_LOW
       MOV B,#10
       MUL AB
       MOV R0,A
       MOV R1,B
       CLR C
       MOV A,TEMP_REGISTER_L
       ADD A,R0
       MOV TEMP_REGISTER_L,A
       MOV A,TEMP_REGISTER_H
       ADDC A,R1
       MOV TEMP_REGISTER_H,A
CTRL_HM_nF_S2:
       LJMP CTRL_HM_S0
CTRL_HM_on:
       LJMP CTRL_HM_S0
CTRL_HM_hg:
       clr c
       mov c,COOLER_RUN_F
       ANL C,backup_cmode_f
       JNC CTRL_HM_HG_S0
       MOV A,BACKUP_COOL_MODE
       XRL A,#1
       JNZ CTRL_HM_HG_S0
       LJMP CTRL_HM_nF
CTRL_HM_HG_S0:
       LJMP CTRL_HM_S0
CTRL_HM_S0:
       MOV R1,#CALC_BUF1
       mov r0,#temp_la_l
       CLR C
CTRL_HEAT_S1:
       MOV A,TEMP_REGISTER_L
       SUBB A,@R0
       MOV @R1,a
       INC R0
       INC R1
       MOV A,TEMP_REGISTER_h
       SUBB A,@R0
       MOV @R1,A
       JB ACC.7,CTRL_HEAT_S3
       CLR C
       MOV A,CALC_BUF1
       SUBB A,#64H
       MOV R1,#CALC_BUF2
       MOV @R1,A
       MOV R1,#CALC_BUF1+1
       MOV A,@R1
       SUBB A,#0
       MOV R1,#CALC_BUF2+1
       MOV @R1,A
       JB ACC.7, CTRL_HEAT_S2
       SETB ENA_HEAT
       CLR HEAT_PWN_EN
       mov heat_pwn_count,#0
       LJMP CTRL_HEAT_EXIT
CTRL_HEAT_S2:
       MOV R0,#CALC_BUF1
       MOV A,@R0
       MOV R3,A
       INC R0
       MOV A,@R0
       MOV R2,A
       MOV HEAT_PWN_CONST,R3
       SETB HEAT_PWN_EN
       LJMP CTRL_HEAT_EXIT
CTRL_HEAT_S3:
       CLR HEAT_PWN_EN
       mov heat_pwn_count,#0
       CLR ENA_HEAT
CTRL_HEAT_EXIT:
       POP A
       MOV TEMP_REGISTER_H,A
       POP A
       MOV TEMP_REGISTER_L,A
CTRL_COOLER:
       MOV c,temp_run_f
       ANL C,COOLER_RUN_F
       JC CTRL_COOLER_S1
       CLR COOL_VALVE
       CLR COOLER
       CLR ena_cl
       LJMP CTRL_TPROG_CHAN
CTRL_COOLER_S1:
       MOV A,COOL_MODE
       CLR C
       SUBB A,#5
       JC CTRL_COOLER_S2
       MOV COOL_MODE,#cool_mode_const
CTRL_COOLER_S2:
       MOV A,COOL_MODE
       MOV B,#3
       MUL AB
       MOV DPTR,#CTRL_CM_TAB
       JMP @A+DPTR
CTRL_CM_TAB:
       LJMP CTRL_CM_OFF
       LJMP CTRL_CM_OF
       LJMP CTRL_CM_DOF
       LJMP CTRL_CM_ON
       LJMP ctrl_cm_hg
CTRL_CM_OFF:
       CLR COOL_VALVE
       CLR COOLER
       CLR ena_cl
       LJMP CTRL_TPROG_CHAN
CTRL_CM_ON:
       CLR COOL_VALVE
       SETB COOLER
       SETB ena_cl
       LJMP CTRL_TPROG_CHAN
CTRL_CM_DOF:
       CLR COOL_VALVE
       JNB COOL_REQ_F,CTRL_CMDOF_OFF
       JNB cooler,ctrl_cmdof_ons1
       CLR COOL_OFF_DFLAG
       SJMP CTRL_CMDOF_ONS3
CTRL_CMDOF_ONS1:
       JB COOL_ON_DFLAG,CTRL_CMDOF_ONS3
       SETB COOLER
       SETB ena_cl
CTRL_CMDOF_ONS3:
       SJMP CTRL_CMDOF_EXIT
CTRL_CMDOF_OFF:
       CLR COOL_VALVE
       JNB cooler,ctrl_cmdof_exit
       JB COOL_OFF_DFLAG,CTRL_CMDOF_OFFS2
       SETB COOL_OFF_DFLAG
       MOV COOL_OFF_DTIME_L,#0
       MOV COOL_OFF_DTIME_H,#0
CTRL_CMDOF_OFFS2:
       MOV A,COOL_OFF_DTIME_L
       CLR C
       SUBB A,#0B0H
       MOV A,COOL_OFF_DTIME_H
       SUBB A,#4
       JC CTRL_CMDOF_EXIT
       CLR COOLER
       CLR ena_cl
       SETB COOL_ON_DFLAG
       MOV COOL_ON_DTIME,#180
CTRL_CMDOF_EXIT:
       LJMP CTRL_TPROG_CHAN
CTRL_CM_OF:
       CLR COOL_VALVE
       MOV A,COOL_TEMP_HIGH
       CLR CALC_F0
       JNB ACC.7,CTRL_CMOF_S1
       SETB CALC_F0
       CPL A
       ADD A,#1
CTRL_CMOF_S1:
       MOV B,#0AH
       MUL AB
       MOV R0,#CALC_BUF2
       JNB CALC_F0,CTRL_CMOF_S2
       CPL A
       ADD A,#1
       MOV @R0,A
       INC R0
       MOV A,B
       CPL A
       ADDC A,#0
       MOV @R0,A
       SJMP CTRL_CMOF_S3
CTRL_CMOF_S2:
       MOV @R0,A
       INC R0
       MOV @R0,B
CTRL_CMOF_S3:
       MOV R1,#TEMP_REGISTER_L
CTRL_CMOF_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
       JNB ACC.7,ctrl_cmof_nfd1
       LJMP CTRL_CMOF_S5
ctrl_cmof_nfd1:
       MOV a,cdoff_const
       JZ ctrl_cmof_ndf3
       MOV r0,#temp_la_h
       MOV a,@r0
       JB acc.7,ctrl_cmof_ndf5
       DEC r0
       CLR c
       MOV a,@r0
       SUBB a,#0e8h
       INC r0
       MOV a,@r0
       SUBB a,#3
       JNC ctrl_cmof_ndf3
ctrl_cmof_ndf5:
       JB cmnf_stop_f,ctrl_cmof_stop
       MOV a,cdon_time_l
       ORL a,cdon_time_h
       JNZ ctrl_cmof_ndf3
       SETB cmnf_stop_f
       MOV cdoff_time,cdoff_const
       SJMP ctrl_cmof_ndf6
ctrl_cmof_stop:
       MOV a,cdoff_time
       JNZ ctrl_cmof_ndf6
       CLR cmnf_stop_f
       MOV cdon_time_l,cdon_const_l
       MOV cdon_time_h,cdon_const_h
       SJMP ctrl_cmof_ndf3
ctrl_cmof_ndf6:
       CLR cooler
       CLR ena_cl
       LJMP ctrl_tprog_chan
ctrl_cmof_ndf3:

⌨️ 快捷键说明

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