LCALL SET_ALARM
LCALL RE_18B20 ;将设定的TH,TL值写入DS18B20
LCALL WRITE_E2 PROC_K2: LCALL MENU_OK LCALL TEMP_BJ PROC_END:RET
;*************************** 设定温度报警值 TH、***************************
SET_ALARM:LCALL LOOK_ALARM AS0: JB K1,AS00 LCALL BEEP_BL JNB K1,$
CPL 20H.1 ;UP/DOWN 标记 AS00: JB 20H.1,ASZ01 ;20H.1=1,增加 JMP ASJ01 ;20H.1=0,减小 ASZ01: JB K2,ASZ02 ;TH值调整(增加) LCALL BEEP_BL INC TEMP_TH MOV A,TEMP_TH CJNE A,#120,ASZ011
16
TL
MOV TEMP_TH,#0 ASZ011: LCALL LOOK_ALARM MOV R5,#10 LCALL DELAY JMP ASZ01
ASZ02: ASZ021: ASZ03: ASJ01: JB K3,ASZ03 ;TL值调整(增加) LCALL BEEP_BL INC TEMP_TL MOV A,TEMP_TL CJNE A,#99,ASZ021 MOV TEMP_TL,#00H LCALL LOOK_ALARM MOV R5,#10 LCALL DELAY JMP ASZ02
JB K4,AS0 ;确定调整 LCALL BEEP_BL JNB K4,$ RET
JB K2,ASJ02 ;TH值调整(减少)LCALL BEEP_BL DEC TEMP_TH
17
MOV A,TEMP_TH CJNE A,#0FFH,ASJ011 JMP ASJ022
ASJ011: LCALL LOOK_ALARM MOV R5,#10 LCALL DELAY JMP AS0
ASJ02: JB K3,ASJ03 ;TL值调整(减少) LCALL BEEP_BL DEC TEMP_TL MOV A,TEMP_TL CJNE A,#0FFH,ASJ021 JMP ASJ022
ASJ021: LCALL LOOK_ALARM ; MOV R5,#10 LCALL DELAY JMP AS0 ASJ022: CPL 20H.1 JMP ASZ01 ASJ03: JMP ASZ03 RET
RST_A1: DB \
18
;*********************** 实测温度值与设定温度值比较子程序 **********************
TEMP_COMP:MOV A,TEMP_TH
SUBB A,TEMP_ZH ;减数>被减数,则 JC CHULI1 MOV A,TEMPFC CJNE A,#0BH,COMP
SJMP CHULI2
COMP: MOV A,TEMP_ZH
SUBB A,TEMP_TL JC CHULI2 MOV DPTR,#BJ5 LCALL TEMP_BJ3
CLR RELAY RET
CHULI1: MOV DPTR,#BJ3 LCALL TEMP_BJ3
SETB RELAY LCALL BEEP_BL RET
CHULI2: MOV DPTR,#BJ4
19
;借位标志位C=1,转 ;减数>被减数,则 ;借位标志位C=1,转 ;点亮指示灯 ;熄灭指示灯 ;蜂鸣器响
LCALL TEMP_BJ3
SETB RELAY ;熄灭指示灯 LCALL BEEP_BL ;蜂鸣器响
RET
;----------------------------------------- TEMP_BJ3: MOV A,#0CEH LCALL WCOM MOV R1,#0 MOV R0,#2 BBJJ3: MOV A,R1 MOVC A,@A+DPTR LCALL WDATA INC R1
DJNZ R0,BBJJ3 RET BJ3: DB \BJ4: DB \BJ5: DB \;
;**************************** *************************** TEMP_BJ: MOV A,#0CBH
20
显示温度标记子程序