?? 2194v301.asm
字號:
JC limit_chk_exit
CLR minute_f
MOV r2,#2
MOV r4,#7ah
MOV page_addr,#0
MOV r0,#calc_buf1
LCALL Rd24NBYT
MOV r0,#calc_buf1
MOV a,@r0
CLR c
SUBB a,#1
MOV @r0,a
INC r0
MOV a,@r0
SUBB a,#0
MOV @r0,a
DEC r0
ORL a,@r0
JNZ limit_chk_s1
MOV r2,#1
MOV r4,#79h
MOV page_addr,#0
MOV temp_reg,#53h
MOV r0,#temp_reg
LCALL wr24nbyt
SJMP limit_chk_exit
limit_chk_s1:
MOV r2,#2
MOV r4,#7ah
MOV page_addr,#3
MOV r0,#calc_buf1
LCALL wr24nbyt
limit_chk_exit:
;**\
JNB flash_disp2_f,main_loop_s00
CLR flash_disp2_f
LCALL flash_disp2
main_loop_s00:
JNB TRAN_WAIT_F,MAIN_LPS3
CLR TRAN_WAIT_F
SJMP MAIN_LPS2
MAIN_LPS3:
MOV A,NO_AD_COUNT
CLR C
SUBB A,#20
JC MAIN_LPS1
MAIN_LPS2:
LCALL start_ad_tran
MAIN_LPS1:
MOV R0,#DISP_BUF
MOV @R0,OUTPUT_762
INC R0
MOV @R0,OUTPUT_762
LCALL COMM_762
JB temp_run_f,check_alarm
LJMP control_pump
check_alarm:
MOV R0,#AD_TEMP_L
LCALL CALC_TEMP_LA
LCALL chk_alarm_sroute
MOV C,ALM_TEMP_F
ORL C,TEMP_H_ALM
ORL C,ALM_LEVEL_F
ORL C,ALM_PRESS_F
ORL C,TEMP_L_ALM
JC respond_alm00
LJMP respond_alm5
respond_alm00:
MOV R0,#ALRM_COUNT
MOV A,@R0
INC A
MOV @R0,A
CLR C
SUBB A,#ALRM_WAIT_CONST
JC respond_alm01
SJMP respond_alm0
respond_alm01:
LCALL DELAY_01S
LJMP MAIN_LOOP
respond_alm0:
MOV R0,#ALRM_COUNT
MOV A,#ALRM_WAIT_CONST
MOV @R0,A
MOV C,ALM_TEMP_F
ORL C,TEMP_H_ALM
ORL C,ALM_LEVEL_F
JNC respond_alm1
CLR PUMP_RUN_F
CLR PUMP_FAN
SJMP respond_alm3
respond_alm1:
MOV C,ALM_PRESS_F
ORL C,TEMP_L_ALM
JC respond_alm3
LJMP respond_alm5
respond_alm3:
JB ALM_STATUS_F,respond_alm4
MOV C,COOLER_RUN_F
MOV BALM_COOLER_S,C
CLR COOLER_RUN_F
CLR COOL_VALVE
CLR cooler
CLR ena_cl
SETB COOL_ON_DFLAG
MOV COOL_ON_DTIME,#180
CLR LED_COOLER1
CLR led_cooler2
SETB ALM_STATUS_F
MOV alarm_sound_count,#5
respond_alm4:
JNB half_sencond_F,respond_alm2
CLR half_sencond_f
CPL calc_f1
JNB calc_f1,respond_alm22
SETB led_alarm1
SETB LED_ALARM2
JNB BALM_COOLER_S,respond_alm4_0
SETB LED_COOLER1
SETB led_cooler2
respond_alm4_0:
MOV C,ALM_TEMP_F
ORL C,TEMP_H_ALM
ORL C,ALM_LEVEL_F
JNC respond_alm4_1
SETB LED_PUMP1
SETB LED_PUMP2
respond_alm4_1:
SJMP respond_alm24
respond_alm22:
CLR LED_ALARM2
CLR led_alarm1
JNB BALM_COOLER_S,respond_alm22_0
CLR LED_COOLER1
CLR led_cooler2
respond_alm22_0:
MOV C,ALM_TEMP_F
ORL C,TEMP_H_ALM
ORL C,ALM_LEVEL_F
JNC respond_alm22_1
CLR LED_PUMP1
CLR LED_PUMP2
respond_alm22_1:
respond_alm24:
LCALL flag_display
JNB alarm_sound_f,respond_alm2
MOV beep_times,#buzzer_const2
CLR alarm_sound_f
respond_alm2:
MOV R0,#DISP_BUF
MOV @R0,#0eh
INC R0
MOV @R0,#0fh
INC R0
MOV @R0,#0fh
INC R0
MOV @R0,#2FH
INC R0
MOV @R0,#2FH
INC R0
MOV @R0,#2FH
JNB ALM_TEMP_F,respond_alm6
MOV @R0,#1
SJMP respond_alm10
respond_alm6:
JNB TEMP_H_ALM,respond_alm7
MOV @R0,#2
SJMP respond_alm10
respond_alm7:
JNB TEMP_L_ALM,respond_alm8
MOV @R0,#3
SJMP respond_alm10
respond_alm8:
JNB ALM_LEVEL_F,respond_alm9
MOV r0,#disp_buf
MOV @r0,#1ch
INC r0
MOV @r0,#27h
INC r0
MOV @R0,#1dh
INC r0
MOV @r0,#1dh
INC r0
MOV @r0,#0fh
INC r0
MOV @r0,#1ch
SJMP respond_alm10
respond_alm9:
JNB ALM_PRESS_F,respond_alm10
MOV @R0,#5
respond_alm10:
LCALL display
LCALL delay_20ms
lcall check_key
JNB key_push_f,respond_alm21
MOV a,key_code2
JNZ respond_alm21
MOV a,key_code1
XRL a,#button_switch
JNZ respond_alm21
MOV beep_times,#buzzer_const2
CLR pump_run_f
CLR alm_status_f
clr led_alarm1
clr led_alarm2
respond_alm21:
LJMP main_loop
respond_alm5:
JB ALM_STATUS_F,respond_alm13
LJMP CHECK_SET_TEMP2
respond_alm13:
MOV c,auto_run_f
ORL c,prog_temp_on
JC respond_alm14
LCALL CHECK_KEY
JNB KEY_PUSH_F,respond_alm15
MOV a,key_code2
JNZ respond_alm15
MOV a,key_code1
XRL a,#7
JNZ respond_alm15
SJMP respond_alm14
respond_alm15:
JNB half_sencond_f,respond_alm25
CLR half_sencond_f
CPL calc_f0
JNB calc_f0,respond_alm23
SETB led_alarm1
SETB led_alarm2
SJMP respond_alm16
respond_alm23:
CLR led_alarm1
CLR led_alarm2
respond_alm16:
LCALL flag_display
JNB alarm_sound_f,respond_alm25
MOV beep_times,#buzzer_const2
CLR alarm_sound_f
respond_alm25:
LCALL delay_20ms
LCALL flash_disp2
SJMP respond_alm13
respond_alm14:
SETB buzzer
CLR led_alarm1
CLR led_alarm2
CLR ALM_STATUS_F
SETB pump_run_f
MOV C,BALM_COOLER_S
MOV COOLER_RUN_F,C
CHECK_SET_TEMP2:
MOV R0,#ALRM_COUNT
MOV A,#0
MOV @R0,A
control_pump:
JB alm_status_f,mainlp_flash_flag
MOV c,temp_run_f
MOV pump_run_f,c
MAINLP_FLASH_FLAG:
JNB pump_flash_f,MLP_FLASH_FS1 ;for some reason,pump is setted on,but not enable runing,
;pump_flash_f is setting.
SETB LED_PUMP1
SETB LED_PUMP2
JB POINT_FLASH_F,MLP_FLASH_FS2
CLR LED_PUMP1
CLR LED_PUMP2
SJMP MLP_FLASH_FS2
MLP_FLASH_FS1:
SETB LED_PUMP1
SETB LED_PUMP2
JB PUMP_RUN_F,MLP_FLASH_FS2
CLR LED_PUMP1
CLR LED_PUMP2
MLP_FLASH_FS2:
JB cooler_run_f,mlp_flash_cf1
CLR led_cooler1
CLR led_cooler2
SJMP mlp_flash_fs4
mlp_flash_cf1:
JB cooler,mlp_flash_cf2
CLR led_cooler1
CLR led_cooler2
JNB point_flash_f,mlp_flash_cf3
SETB led_cooler1
SETB led_cooler2
mlp_flash_cf3:
SJMP mlp_flash_fs4
mlp_flash_cf2:
JB cool_valve,mlp_flash_cf4
SETB led_cooler1
SETB led_cooler2
SJMP mlp_flash_fs4
mlp_flash_cf4:
CLR led_cooler1
CLR led_cooler2
JNB flash_2hz_f,mlp_flash_fs4
SETB led_cooler1
SETB led_cooler2
MLP_FLASH_FS4:
JB temp_run_f,mlp_flash_fs6
CLR HUMI_CONTROL_LED
MLP_FLASH_FS6:
LCALL FLAG_DISPLAY
MDISP_FLASH:
JB temp_run_f,chk_tran_resu
MOV R0,#DISP_BUF
MOV @R0,#2FH
INC R0
MOV @R0,#0
INC R0
MOV @R0,#28H
INC R0
MOV @R0,#28H
INC R0
MOV @R0,#2FH
INC R0
MOV @R0,#2FH
LCALL DISPLAY
SJMP SDISP_FLASH
CHK_TRAN_RESU:
;為解決DGT1小數點閃爍不均勻問題
;當存在新的模數轉換結果或存在半秒標志
;兩者之一條件滿足,刷新顯示 02-3-26 22:21
MOV C,NEW_ADRESULT_F
ORL C,half_sencond_f
JC DISP_RESULT
LJMP CTRL_OUTPUT
DISP_RESULT:
CLR new_adresult_f
CLR HALF_SENCOND_F
MOV A,MDISP_STATUS
ADD A,MDISP_STATUS
MOV DPTR,#DISP_RES_TAB
JMP @A+DPTR
disp_res_tab:
SJMP DISP_RES_RTEMP
SJMP DISP_RES_HUMI
SJMP DISP_RES_RTH ;display temperature and humidity transmigrate
DISP_RES_RTH:
JB DISP_FLASH_F,DISP_RES_RTEMP
SJMP DISP_RES_HUMI
DISP_RES_RTEMP:
LCALL ADT_TO_DISP
LCALL ADT_TO_DISP_V
JNB CALC_F1,disp_res_rtemp1
LJMP MAIN_LOOP
disp_res_rtemp1:
LCALL DISPLAY
SJMP SDISP_FLASH
DISP_RES_HUMI:
MOV R0,#AD_HUMI_L
LCALL ADH_TO_DISP
LCALL DISPLAY
SDISP_FLASH:
JB temp_run_f,sdisp_flash_s3
CLR humi_run_f
CLR prog_humi_on ;02-6-8 10:46 ***/
SDISP_FLASH_S3:
MOV A,SDISP_STATUS ;sdisp_status can be selected
;"0" meaning auto select
;"1" meaning display light
;"2" meaning display humidity
;"3" meaning display light and humidity transmigrate
;02-3-19 23:56
CLR C
SUBB A,#04H
JC SDISP_FLASH_S2
MOV SDISP_STATUS,#0
SDISP_FLASH_S2:
MOV A,SDISP_STATUS
MOV B,#3
MUL AB
MOV DPTR,#SDISP_TAB
JMP @A+DPTR
SDISP_TAB:
LJMP SDISP_AUTO_SELECT
LJMP SDISP_LIGHT_VALUE
LJMP SDISP_HUMI_VALUE
LJMP SDISP_LIGHT_HUMI
SDISP_AUTO_SELECT: ;02-3-20 20:17
;If humidity and light is all runing or humidity is runing only, display humidity (2003做了修改)
;If light is runing only, display light
;if nothing of light and humidity is runing, DGT7-DGT9 display black.
MOV C, prog_humi_on
ORL C, humi_run_f
JNC sdisp_auto_s1
CLR C
MOV C, prog_LIGHT_on
ORL C, LIGHT_run_f
JC sdisp_auto_s1_0
LJMP SDISP_HUMI_VALUE
sdisp_auto_s1_0:
JB DISP_FLASH_F,sdisp_auto_s2
LJMP SDISP_HUMI_VALUE
sdisp_auto_s1:
MOV C, prog_LIGHT_on
ORL C,LIGHT_run_f
JC sdisp_auto_s2
MOV r0,#disp_buf
MOV @r0,pic_ctrl_byte
INC r0
MOV @r0,#1fh
INC r0
MOV @r0,#1fh
INC r0
MOV @r0,#1fh
LJMP sdisp_sent_exit
sdisp_auto_s2:
JNB prog_light_on,sdisp_light_nflash
SJMP sdisp_light_value
SDISP_LIGHT_HUMI:
JB DISP_FLASH_F,SDISP_LIGHT_NFLASH
SJMP SDISP_HUMI_VALUE
SDISP_LIGHT_NFLASH:
MOV R0,#DISP_BUF
MOV @R0,PIC_CTRL_BYTE
INC R0
MOV @R0,#0CH
INC R0
JB LIGHT_RUN_F,SDISP_LIGHT_NVS1
MOV @R0,#1FH
INC R0
MOV @R0,#0
lJMP SDISP_SENT_EXIT
SDISP_LIGHT_NVS1:
MOV A,LIGHT_INTENSION
MOV B,#0AH
DIV AB
MOV @R0,A
JNZ SDISP_LIGHT_NVS3
MOV @R0,#1FH
SDISP_LIGHT_NVS3:
INC R0
MOV @R0,B
lJMP SDISP_SENT_EXIT
SDISP_LIGHT_VALUE:
MOV R0,#DISP_BUF
MOV @R0,PIC_CTRL_BYTE
INC R0
MOV @R0,#0CH
JNB PROG_LIGHT_ON,SDISP_LIGHT_VS2
JNB POINT_FLASH_F,SDISP_LIGHT_VS2
MOV @R0,#1CH
SDISP_LIGHT_VS2:
INC R0
JB LIGHT_RUN_F,SDISP_LIGHT_VS1
MOV @R0,#1FH
INC R0
MOV @R0,#0
SJMP SDISP_SENT_EXIT
SDISP_LIGHT_VS1:
MOV A,LIGHT_INTENSION
MOV B,#0AH
DIV AB
MOV @R0,A
JNZ SDISP_LIGHT_VS3
MOV @R0,#1FH
SDISP_LIGHT_VS3:
INC R0
MOV @R0,B
SJMP SDISP_SENT_EXIT
SDISP_HUMI_VALUE:
MOV R0,#DISP_BUF
MOV @R0,PIC_CTRL_BYTE
LCALL CALC_HUMI_VALUE
MOV R1,#CALC_BUF1+1
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -