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

📄 温湿度读取及报警多机通信差拨号自动复位3.asm

📁 温湿度控制器(485通讯),开关量输出.
💻 ASM
📖 第 1 页 / 共 3 页
字号:
CHA_L_1:	JNB	P1.3,CHA_L_2	
	SETB	0BH	;P1.3为1时将0BH置位	
CHA_L_2:	JNB	P1.4,CHA_L_3	
	SETB	0CH	;P1.4为1时将0CH置位	
CHA_L_3:	MOV	R1,29H	
	LCALL	DISPLAY_CHA	;显示上限报警撤警之差2AH中	
	SETB	P2.7	;L标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#11000111B	;显示L	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;C标志位显示	
	SETB	P2.6	
	CLR	P2.5	
	MOV	A,#11000110B	;显示C	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,CHA_L_G1	
	CLR	0AH	;键按下没复位无效	
	JB	P1.5,CHA_L_G1	;P1.2=0且0AH=1则切换到QITA设置	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	LJMP	ADD_L_WD	
CHA_L_G1:	JB	P1.3,CHA_L_G2	
	JNB	0BH,CHA_L_G2	
	CLR	0BH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,29H	
	JZ	CHA_L_G2	;下限为0	
	DEC	A	;设置值减1	
	MOV	29H,A	
CHA_L_G2:	JB	P1.4,CHA_L_G3	
	JNB	0CH,CHA_L_G3	
	CLR	0CH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,29H	
	CJNE	A,#08H	,CHA_L_ADD1	;上限为8	
	LJMP	CHA_L_G3
CHA_L_ADD1:	;	JNC	CHA_L_G3	
	INC	A	;设置值加1	
	MOV	29H,A	
CHA_L_G3:	JB	P1.2,CHA_L_G4	
	RET	
CHA_L_G4:	MOV	A,69H
	JZ	CHA_J_1_6AH_YN
	DEC	69H
	LJMP	CHA_SHEZHI_CIRCLE
CHA_J_1_6AH_YN:	MOV	A,6AH
	JNZ	CHA_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_4
	RET
CIRCLE_2_4:	DEC	6BH
	LJMP	CHA_SHEZHI_CIRCLE
CHA_J_1_6AH:	DEC	6AH
CHA_SHEZHI_CIRCLE:	LJMP	CHA_L_WD
ADD_L_WD:	JNB	P1.5,ADD_L_1	;P1.2为1时将0AH置位	
	SETB	0AH	
ADD_L_1:	JNB	P1.3,ADD_L_2	
	SETB	0BH	;P1.3为1时将0BH置位	
ADD_L_2:	JNB	P1.4,ADD_L_3	
	SETB	0CH	;P1.4为1时将0CH置位	
ADD_L_3:	MOV	R1,2CH	
	LCALL	DISPLAY_CHA	
	SETB	P2.7	;A标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#88H	;显示A	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,ADD_L_G1	
	CLR	0AH	;键按下没复位无效	
	JB	P1.5,ADD_L_G1	;P1.2=0且0AH=1则切换到QITA设置	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	LJMP	SD_H_WD	
ADD_L_G1:	JB	P1.3,ADD_L_G2	
	JNB	0BH,ADD_L_G2	
	CLR	0BH	;键按下没复位无效
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH	
	MOV	6CH,#0FFH
	MOV	A,2CH	
	JZ	ADD_L_G2	;下限为0	
	DEC	A	;设置值减1	
	MOV	2CH,A	
ADD_L_G2:	JB	P1.4,ADD_L_G3	
	JNB	0CH,ADD_L_G3	
	CLR	0CH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,2CH	
	CJNE	A,#1FH	,ADD_L_ADD1	;上限为31	
	LJMP	ADD_L_G3
ADD_L_ADD1:	;JNC	ADD_L_G3	
	INC	A	;设置值加1	
	MOV	2CH,A	
ADD_L_G3:	JB	P1.2,ADD_L_G4	
	RET	
ADD_L_G4:	MOV	A,69H
	JZ	ADD_J_1_6AH_YN
	DEC	69H
	LJMP	ADD_SHEZHI_CIRCLE
ADD_J_1_6AH_YN:	MOV	A,6AH
	JNZ	ADD_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_5
	RET
CIRCLE_2_5:	DEC	6BH
	LJMP	ADD_SHEZHI_CIRCLE
ADD_J_1_6AH:	DEC	6AH
ADD_SHEZHI_CIRCLE:	LJMP	ADD_L_WD
SD_H_WD:	JNB	P1.5,SD_H_1	;P1.2为1时将0AH置位	
	SETB	0AH	
SD_H_1:	JNB	P1.3,SD_H_2	
	SETB	0BH	;P1.3为1时将0BH置位	
SD_H_2:	JNB	P1.4,SD_H_3	
	SETB	0CH	;P1.4为1时将0CH置位	
SD_H_3:	MOV	R1,66H	
	LCALL	DISPLAY_CHA	
	SETB	P2.7	;A标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#92H	;显示S	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;标志位显示	
	SETB	P2.6	
	CLR	P2.5	
	MOV	A,#89H	;显示H	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,SD_H_G1	
	CLR	0AH	;键按下没复位无效
	JB	P1.5,SD_H_G1	;P1.2=0且0AH=1则切换设置
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH	
	MOV	6CH,#0FFH
	LJMP	SD_L_WD	
SD_H_G1:	JB	P1.3,SD_H_G2	
	JNB	0BH,SD_H_G2	
	CLR	0BH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,66H	
	JZ	SD_H_G2	;下限为0	
	DEC	A	;设置值减1	
	MOV	66H,A	
SD_H_G2:	JB	P1.4,SD_H_G3	
	JNB	0CH,SD_H_G3	
	CLR	0CH	;键按下没复位无效
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH	
	MOV	6CH,#0FFH
	MOV	A,66H	
	CJNE	A,#63H	,SD_H_SD1	;上限为99	
	LJMP	SD_H_G3
SD_H_SD1:	;	JNC	SD_H_G3	
	INC	A	;设置值加1	
	MOV	66H,A	
SD_H_G3:	JB	P1.2,SD_H_G4	
	RET	
SD_H_G4:	MOV	A,69H
	JZ	SDH_J_1_6AH_YN
	DEC	69H
	LJMP	SDH_SHEZHI_CIRCLE
SDH_J_1_6AH_YN:	MOV	A,6AH
	JNZ	SDH_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_6
	RET
CIRCLE_2_6:	DEC	6BH
	LJMP	SDH_SHEZHI_CIRCLE
SDH_J_1_6AH:	DEC	6AH
SDH_SHEZHI_CIRCLE:	LJMP	SD_H_WD
SD_L_WD:	JNB	P1.5,SD_L_1	;P1.2为1时将0AH置位	
	SETB	0AH	
SD_L_1:	JNB	P1.3,SD_L_2	
	SETB	0BH	;P1.3为1时将0BH置位	
SD_L_2:	JNB	P1.4,SD_L_3	
	SETB	0CH	;P1.4为1时将0CH置位	
SD_L_3:	MOV	R1,65H	
	LCALL	DISPLAY_CHA	
	SETB	P2.7	;A标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#92H	;显示S	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;L标志位显示	
	SETB	P2.6	
	CLR	P2.5	
	MOV	A,#0C7H	;显示L	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,SD_L_G1	
	CLR	0AH	;键按下没复位无效	
	JB	P1.5,SD_L_G1	;P1.2=0且0AH=1则切换到QITA设置	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	LJMP	SD_H_C_WD	
SD_L_G1:	JB	P1.3,SD_L_G2	
	JNB	0BH,SD_L_G2	
	CLR	0BH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,65H	
	JZ	SD_L_G2	;下限为0	
	DEC	A	;设置值减1	
	MOV	65H,A	
SD_L_G2:	JB	P1.4,SD_L_G3	
	JNB	0CH,SD_L_G3	
	CLR	0CH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,65H	
	CJNE	A,#63H	,SD_L_SD1	;上限为99	
	LJMP	SD_L_G3
SD_L_SD1:	;JNC	SD_L_G3	
	INC	A	;设置值加1	
	MOV	65H,A	
SD_L_G3:	JB	P1.2,SD_L_G4	
	RET	
SD_L_G4:	MOV	A,69H
	JZ	SDL_J_1_6AH_YN
	DEC	69H
	LJMP	SDL_SHEZHI_CIRCLE
SDL_J_1_6AH_YN:	MOV	A,6AH
	JNZ	SDL_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_7
	RET
CIRCLE_2_7:	DEC	6BH
	LJMP	SDL_SHEZHI_CIRCLE
SDL_J_1_6AH:	DEC	6AH
SDL_SHEZHI_CIRCLE:	LJMP	SD_L_WD
SD_H_C_WD:	JNB	P1.5,SD_H_C_1	;P1.2为1时将0AH置位	
	SETB	0AH	
SD_H_C_1:	JNB	P1.3,SD_H_C_2	
	SETB	0BH	;P1.3为1时将0BH置位	
SD_H_C_2:	JNB	P1.4,SD_H_C_3	
	SETB	0CH	;P1.4为1时将0CH置位	
SD_H_C_3:	MOV	R1,68H	
	LCALL	DISPLAY_CHA	
	SETB	P2.7	;A标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#92H	;显示S	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;标志位显示	
	SETB	P2.6	
	CLR	P2.5	
	MOV	A,#86H	;显示E	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,SD_H_C_G1	
	CLR	0AH	;键按下没复位无效	
	JB	P1.5,SD_H_C_G1	;P1.2=0且0AH=1则切换设置	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	LJMP	SD_L_C_WD	
SD_H_C_G1:	JB	P1.3,SD_H_C_G2	
	JNB	0BH,SD_H_C_G2	
	CLR	0BH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,68H	
	JZ	SD_H_C_G2	;下限为0	
	DEC	A	;设置值减1	
	MOV	68H,A	
SD_H_C_G2:	JB	P1.4,SD_H_C_G3	
	JNB	0CH,SD_H_C_G3	
	CLR	0CH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,68H	
	CJNE	A,#20	,SD_H_C_SD1	;上限为99	
	LJMP	SD_H_C_G3
SD_H_C_SD1:	;JNC	SD_H_C_G3	
	INC	A	;设置值加1	
	MOV	68H,A	
SD_H_C_G3:	JB	P1.2,SD_H_C_G4	
	RET	
SD_H_C_G4:	MOV	A,69H
	JZ	SDHC_J_1_6AH_YN
	DEC	69H
	LJMP	SDHC_SHEZHI_CIRCLE
SDHC_J_1_6AH_YN:	MOV	A,6AH
	JNZ	SDHC_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_8
	RET
CIRCLE_2_8:	DEC	6BH
	LJMP	SDHC_SHEZHI_CIRCLE
SDHC_J_1_6AH:	DEC	6AH
SDHC_SHEZHI_CIRCLE:	LJMP	SD_H_C_WD
SD_L_C_WD:	JNB	P1.5,SD_L_C_1	;P1.2为1时将0AH置位	
	SETB	0AH	
SD_L_C_1:	JNB	P1.3,SD_L_C_2	
	SETB	0BH	;P1.3为1时将0BH置位	
SD_L_C_2:	JNB	P1.4,SD_L_C_3	
	SETB	0CH	;P1.4为1时将0CH置位	
SD_L_C_3:	MOV	R1,67H	
	LCALL	DISPLAY_CHA	
	SETB	P2.7	;A标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#92H	;显示S	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;标志位显示	
	SETB	P2.6	
	CLR	P2.5	
	MOV	A,#8EH	;显示F	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,SD_L_C_G1	
	CLR	0AH	;键按下没复位无效
	JB	P1.5,SD_L_C_G1	;P1.2=0且0AH=1则切换设置
	MOV	69H,#0FFH
	MOV	6AH,#0FFH	
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	LJMP	TELNUM	
SD_L_C_G1:	JB	P1.3,SD_L_C_G2	
	JNB	0BH,SD_L_C_G2	
	CLR	0BH	;键按下没复位无效
	MOV	69H,#0FFH
	MOV	6AH,#0FFH	
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,67H	
	JZ	SD_L_C_G2	;下限为0	
	DEC	A	;设置值减1	
	MOV	67H,A	
SD_L_C_G2:	JB	P1.4,SD_L_C_G3	
	JNB	0CH,SD_L_C_G3	
	CLR	0CH	;键按下没复位无效
	MOV	69H,#0FFH
	MOV	6AH,#0FFH	
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,67H	
	CJNE	A,#20	,SD_L_C_SD1	;上限为20	
	LJMP	SD_L_C_G3
SD_L_C_SD1:	;JNC	SD_L_C_G3	
	INC	A	;设置值加1	
	MOV	67H,A	
SD_L_C_G3:	JB	P1.2,SD_L_C_G4	
	RET	
SD_L_C_G4:	MOV	A,69H
	JZ	SDLC_J_1_6AH_YN
	DEC	69H
	LJMP	SDLC_SHEZHI_CIRCLE
SDLC_J_1_6AH_YN:	MOV	A,6AH
	JNZ	SDLC_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_9
	RET
CIRCLE_2_9:	DEC	6BH
	LJMP	SDLC_SHEZHI_CIRCLE
SDLC_J_1_6AH:	DEC	6AH
SDLC_SHEZHI_CIRCLE:	LJMP	SD_L_C_WD
TELNUM:	MOV	R1,#40H	;当前号码的存贮地址
	MOV	R2,#01H	;当前设置的是第几个号码
TEL:	JNB	P1.5,TEL1_1	;P1.5为1时将0AH置位	
	SETB	0AH	
TEL1_1:	JNB	P1.3,TEL1_2	
	SETB	0BH	;P1.3为1时将0BH置位	
TEL1_2:	JNB	P1.4,TEL1_3_1	
	SETB	0CH	;P1.4为1时将0CH置位
TEL1_3_1:	JNB	P1.2,TEL1_3_2	
	SETB	0DH	;P1.2为1时将0DH置位
TEL1_3_2:	MOV	A,@R1
	MOV	DPTR,#DATA1
	MOVC	A,@A+DPTR
	MOV	P0,A
	SETB	P2.7	
	CLR	P2.6	
	CLR	P2.5	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;标志位显示	
	SETB	P2.6	
	SETB	P2.5	
	MOV	A,#8CH	;显示P	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	SETB	P2.7	;标志位显示	
	SETB	P2.6	
	CLR	P2.5
	MOV	DPTR,#DATA1
	MOV	A,R2
	MOVC	A,@A+DPTR	
	MOV	P0,A	
	LCALL	DELAY1
	MOV	P0,#0FFH
	JNB	0AH,TEL1_G1	
	CLR	0AH	;键按下没复位无效	
	JB	P1.5,TEL1_G1	;P1.5=0且0AH=1则切换设置
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	CJNE	R2,#12,NEQ_P_12
	LJMP	TELNUM
NEQ_P_12:	INC	R1
	INC	R2
	LJMP	TEL
TEL1_G1:	JB	P1.3,TEL1_G2	
	JNB	0BH,TEL1_G2	
	CLR	0BH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,@R1	
	JZ	TEL1_G2	;下限为0	
	DEC	@R1	;设置值减1	
	;	MOV	@R1,A	
TEL1_G2:	JB	P1.4,TEL1_G3	
	JNB	0CH,TEL1_G3	
	CLR	0CH	;键按下没复位无效	
	MOV	69H,#0FFH
	MOV	6AH,#0FFH
	MOV	6BH,#0FFH
	MOV	6CH,#0FFH
	MOV	A,@R1	
	CJNE	A,#9	,TEL1_SD1_NEQ	;上限为	9
TEL1_SD1_EQ:	LJMP	TEL1_G3
TEL1_SD1_NEQ:	INC	@R1	;设置值加1	
	;	MOV	@R1,A	
TEL1_G3:	JNB	0DH,TEL1_G4	
	CLR	0AH	;键按下没复位无效	
	JB	P1.2,TEL1_G4	;P1.2=0且0DH=1则退出
	RET	
TEL1_G4:	MOV	A,69H
	JZ	TEL_J_1_6AH_YN
	DEC	69H
	LJMP	TEL_SHEZHI_CIRCLE
TEL_J_1_6AH_YN:	MOV	A,6AH
	JNZ	TEL_J_1_6AH
	MOV	A,6BH
	JNZ	CIRCLE_2_10
	RET
CIRCLE_2_10:	DEC	6BH
	LJMP	TEL_SHEZHI_CIRCLE
TEL_J_1_6AH:	DEC	6AH
TEL_SHEZHI_CIRCLE:	LJMP	TEL
DISPLAY_CHA:	LCALL	BCD
	SETB	P2.7	
	CLR	P2.6	
	CLR	P2.5	
	MOV	A,R4
	ANL	A,#0FH
	MOV	DPTR,#DATA1	
	MOVC	A,@A+DPTR	
	MOV	P0,A	
	LCALL	DELAY1	
	MOV	P0,#0FFH
	MOV	A,R4
	ANL	A,#0F0H
	JZ	NO_DSP_BAI
	RR	A
	RR	A
	RR	A
	RR	A
	MOV	DPTR,#DATA1	
	MOVC	A,@A+DPTR	
	MOV	P0,A	
	SETB	P2.7	
	CLR	P2.6	
	SETB	P2.5
	LCALL	DELAY1	
	MOV	P0,#0FFH
NO_DSP_BAI:	RET
DISPLAY2H:	LCALL	BCD	;设置显示程序	
	SETB	P2.7	
	CLR	P2.6	
	CLR	P2.5	
	MOV	A,R4	
	ANL	A,#0FH	
	MOV	DPTR,#DATA1	
	MOVC	A,@A+DPTR	
	MOV	P0,A	
	LCALL	DELAY1	
	MOV	P0,#0FFH	
	MOV	A,R4	
	ANL	A,#0F0H	
	RR	A	
	RR	A	
	RR	A	
	RR	A	
	MOV	R4,A	
	MOV	A,R5	
	ANL	A,#0FH	
	JNZ	BAIWEISHU_1	
	MOV	A,R4	
	JZ	PAS1	;如果百位、十位上数字为0,则十位不用显示,跳过.	
BAIWEISHU_1:	MOV	A,R4
	MOV	DPTR,#DATA1	
	MOVC	A,@A+DPTR	
	MOV	P0,A	;十位数	
	SETB	P2.7	
	CLR	P2.6	
	SETB	P2.5	
	LCALL	DELAY1
	MOV	P0,#0FFH	
PAS1:	MOV	A,R5	
	ANL	A,#0FH	
	JZ	BIZI_H	;如果百位为零则不显示	
	MOV	DPTR,#DATA1	
	MOVC	A,@A+DPTR	
	MOV	P0,A	
	SETB	P2.7	;百位显示	
	SETB	P2.6	
	CLR	P2.5	
	LCALL	DELAY1	
	MOV	P0,#0FFH	
BIZI_H:	CLR	A	
	MOV	R1,A	
	MOV	R4,A	
	MOV	R5,A	
	;CLR	08H	百位标志
	RET	
BCD:	MOV	R0,#8	;这里将一个八位二进制数据变成BCD码放于R5和R4。R5为高位。R0记数,R1中存放待转换数据。	
	CLR	A
	MOV	R5,A	
	MOV	R4,A
	MOV	A,R1
	MOV	C,ACC.7
	JNC	LOOPX1
	CPL	A
	INC	A
	MOV	R1,A
	;	SETB	0FH
	LJMP	LOOPX
LOOPX1:	;	CLR	0FH
LOOPX:	CLR	C	
	MOV	A,R1	
	RLC	A	
	MOV	R1,A	
	MOV	A,R4	
	ADDC	A,R4	
	DA	A	
	MOV	R4,A	
	MOV	A,R5	
	ADDC	A,R5	
	DA	A	
	MOV	R5,A	
	DJNZ	R0,LOOPX	
	RET	
BAOJING:	MOV	A,27H
	JB	09H,NOT_BAOJING_H
	CLR	C
	SUBB	A,26H
	JC	NOT_BAOJING_H
	CLR	P1.0
	LJMP	OVER_H
NOT_BAOJING_H:	MOV	A,27H
	ADD	A,2AH	;撤警时和报警时上限相差X度
	CLR	C
	SUBB	A,26H
	JNC	OVER_H
	SETB	P1.0
OVER_H:	CLR	C	;从这里开始是下限报警判断,其详细说明在资料夹中另行记录。
	PUSH	25H
	PUSH	2BH
	MOV	A,25H
	ADD	A,#60
	MOV	25H,A
	MOV	A,2BH
	ADD	A,#60
	MOV	2BH,A
	CJNE	A,25H,BJ_NEQ1
BJ_EQ1:	CLR	P1.1
	LJMP	BJ_OVER1
BJ_NEQ1:	JC	BJ_LOW1
	LJMP	BJ_OVER1
BJ_LOW1:	CLR	P1.1
	LJMP	BJ_OVER1
BJ_OVER1:	CLR	C
	MOV	A,25H
	ADD	A,29H
	MOV	25H,A
	MOV	A,2BH
	CJNE	A,25H,CJ_NEQ2
CJ_EQ2:	SETB	P1.1
CJ_NEQ2:	JC	CJ_LOW2
	SETB	P1.1
CJ_LOW2:	LJMP	CJ_OVER2
CJ_OVER2:	POP	2BH
	POP	25H

⌨️ 快捷键说明

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