📄 10hz.asm
字号:
CALL WT24
CALL DISP_1
CALL DISP_2
CALL DISP_3
MOVF SHU1FM,0
MOVWF DAT
MOVLW 0X04
CALL WT24
MOVF SHU1OT,0
SUBWF SHU1FT,0
BTFSC STATUS,2
GOTO VICT2
MOVF SHU1OT,0
SUBWF SHU1FT,0
BTFSS STATUS,0
GOTO VICT21
BSF BZD1,BZD1F
GOTO OK2
VICT2 MOVF SHU1OM,0
SUBWF SHU1FM,0
BTFSS STATUS,0
GOTO VICT21
BSF BZD1,BZD1F
GOTO OK2
VICT21 BCF BZD1,BZD1F
OK2 MOVLW 0X20
SUBWF SHU1FT,0
BTFSC STATUS,0
GOTO OK2B
BSF BZD1,BZD1ALL
GOTO OK2A
OK2B BCF BZD1,BZD1ALL
OK2A MOVF SHU2OT,0
MOVWF TI
MOVF SHU2OM,0
MOVWF MI
;CALL WR2401
MOVF SECON,0 ;设置第2次开机时间
MOVWF WENDU
LOOP3 CLRWDT
INCF SS50,1
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
CLRF SS50
;QF41 CALL DISP_1
QF40 BTFSS PORTB,6 ;UP?
CALL TADD ;小时加
BTFSS PORTB,7
CALL MADD ;分钟加
;BTFSC BZD,BZSET ;防止设置按键去抖功能,BZSET进入正常设置子程序,BZSET1是按键预设置
BTFSS PORTB,5
GOTO SET2F
PNP4 INCF BJ15S,1 ;15秒内未设置完自动返回
CLRWDT
MOVLW 0XFE
SUBWF BJ15S,0
BTFSS STATUS,0
GOTO LOOP3
CLRF BJ15S
INCF BJ15SH,1
MOVLW 0X07
SUBWF BJ15SH,0
BTFSS STATUS,0
GOTO LOOP3
CLRF BJ15SH
CLRF BJ15S
CLRF BZD
CLRF SS50
RETURN
;=================================第二次时间设置OFF====================================
SET2F CLRF SS50
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,5
GOTO SET2F
BCF BZD,BZSET
BCF BZD,BZSET1
CLRF BJ15S
CLRF BJ15SH
BTFSS BZD,BZOK
GOTO OK3
MOVF TI,0
MOVWF SHU2OT
MOVF MI,0
MOVWF SHU2OM
BCF BZD,BZOK
MOVF SHU2OT,0
MOVWF DAT
MOVLW 0X05
CALL WT24
CALL DISP_1
CALL DISP_2
CALL DISP_3
MOVF SHU2OM,0
MOVWF DAT
MOVLW 0X06
CALL WT24
MOVF SHU2OT,0
SUBWF SHU2FT,0
BTFSC STATUS,2
GOTO VICT3
MOVF SHU2OT,0
SUBWF SHU2FT,0
BTFSS STATUS,0
GOTO VICT31
BSF BZD1,BZD1S
GOTO OK3
VICT3 MOVF SHU2OM,0
SUBWF SHU2FM,0
BTFSS STATUS,0
GOTO VICT31
BSF BZD1,BZD1S
GOTO OK3
VICT31 BCF BZD1,BZD1S
OK3 MOVF SHU2FT,0
MOVWF TI
MOVF SHU2FM,0
MOVWF MI
;CLRW
;CALL WR2401
MOVF SECOFF,0 ;设置第2次关机时间
MOVWF WENDU
LOOP4 CLRWDT
CALL DISP_1
CALL DISP_2
CALL DISP_3
QF50 BTFSS PORTB,6 ;UP?
CALL TADD ;小时加
BTFSS PORTB,7
CALL MADD ;分钟加
;防止设置按键去抖功能,BZSET进入正常设置子程序,BZSET1是按键预设置
BTFSS PORTB,5
GOTO SET3O
PNP5 INCF BJ15S,1 ;15秒内未设置完自动返回
CLRWDT
MOVLW 0XFE
SUBWF BJ15S,0
BTFSS STATUS,0
GOTO LOOP4
CLRF BJ15S
INCF BJ15SH,1
MOVLW 0X07
SUBWF BJ15SH,0
BTFSS STATUS,0
GOTO LOOP4
CLRF BJ15SH
CLRF BJ15S
CLRF BZD
CLRF SS50
RETURN
;================================第三次时间设置ON====================================
SET3O CLRF SS50
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,5
GOTO SET3O
BCF BZD,BZSET
BCF BZD,BZSET1
CLRF BJ15S
CLRF BJ15SH
BTFSS BZD,BZOK
GOTO OK4
MOVF TI,0
MOVWF SHU2FT
MOVF MI,0
MOVWF SHU2FM
BCF BZD,BZOK
MOVF SHU2FT,0
MOVWF DAT
MOVLW 0X07
CALL WT24
CALL DISP_1
CALL DISP_2
CALL DISP_3
MOVF SHU2FM,0
MOVWF DAT
MOVLW 0X08
CALL WT24
MOVF SHU2OT,0
SUBWF SHU2FT,0
BTFSC STATUS,2
GOTO VICT4
MOVF SHU2OT,0
SUBWF SHU2FT,0
BTFSS STATUS,0
GOTO VICT41
BSF BZD1,BZD1S
GOTO OK4
VICT4 MOVF SHU2OM,0
SUBWF SHU2FM,0
BTFSS STATUS,0
GOTO VICT41
BSF BZD1,BZD1S
GOTO OK4
VICT41 BCF BZD1,BZD1S
OK4 MOVF SHU3OT,0
MOVWF TI
MOVF SHU3OM,0
MOVWF MI
MOVF THIRON,0 ;设置第3次开机时间
MOVWF WENDU
LOOP5 CLRWDT
INCF SS50,1
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
CLRF SS50
;QF61 CALL DISP_1
QF60 BTFSS PORTB,6 ;UP?
CALL TADD ;小时加
BTFSS PORTB,7
CALL MADD ;分钟加
;BTFSC BZD,BZSET ;防止设置按键去抖功能,BZSET进入正常设置子程序,BZSET1是按键预设置
BTFSS PORTB,5
GOTO SET3F
PNP6 INCF BJ15S,1 ;15秒内未设置完自动返回
CLRWDT
MOVLW 0XFE
SUBWF BJ15S,0
BTFSS STATUS,0
GOTO LOOP5
CLRF BJ15S
INCF BJ15SH,1
MOVLW 0X07
SUBWF BJ15SH,0
BTFSS STATUS,0
GOTO LOOP5
CLRF BJ15SH
CLRF BJ15S
CLRF BZD
CLRF SS50
RETURN
;=================================第3次时间设置OFF====================================
SET3F CLRF SS50
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,5
GOTO SET3F
BCF BZD,BZSET
BCF BZD,BZSET1
CLRF BJ15S
CLRF BJ15SH
BTFSS BZD,BZOK
GOTO OK5
MOVF TI,0
MOVWF SHU3OT
MOVF MI,0
MOVWF SHU3OM
BCF BZD,BZOK
MOVF SHU3OT,0
MOVWF DAT
MOVLW 0X09
CALL WT24
CALL DISP_1
CALL DISP_2
CALL DISP_3
MOVF SHU3OM,0
MOVWF DAT
MOVLW 0X0A
CALL WT24
MOVF SHU3OT,0
SUBWF SHU3FT,0
BTFSC STATUS,2
GOTO VICT5
MOVF SHU3OT,0
SUBWF SHU3FT,0
BTFSS STATUS,0
GOTO VICT51
BSF BZD1,BZD1T
GOTO OK5
VICT5 MOVF SHU3OM,0
SUBWF SHU3FM,0
BTFSS STATUS,0
GOTO VICT51
BSF BZD1,BZD1T
GOTO OK5
VICT51 BCF BZD1,BZD1T
OK5 MOVF SHU3FT,0
MOVWF TI
MOVF SHU3FM,0
MOVWF MI
MOVF THIROFF,0 ;设置第3次关机时间
MOVWF WENDU
LOOP6 CLRWDT
INCF SS50,1
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRF SS50
CLRWDT
;QF71 CALL DISP_1
QF70 BTFSS PORTB,6 ;UP?
CALL TADD ;小时加
BTFSS PORTB,7
CALL MADD ;分钟加
;BTFSC BZD,BZSET ;防止设置按键去抖功能,BZSET进入正常设置子程序,BZSET1是按键预设置
BTFSS PORTB,5
GOTO SETTIME
PNP7 INCF BJ15S,1 ;15秒内未设置完自动返回
CLRWDT
MOVLW 0XFE
SUBWF BJ15S,0
BTFSS STATUS,0
GOTO LOOP6
CLRF BJ15S
INCF BJ15SH,1
MOVLW 0X07
SUBWF BJ15SH,0
BTFSS STATUS,0
GOTO LOOP6
CLRF BJ15SH
CLRF BJ15S
CLRF BZD
CLRF SS50
RETURN
;============================设置时钟调整=============================
SETTIME CLRF SS50
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,5
GOTO SETTIME
BCF BZD,BZSET
BCF BZD,BZSET1
CLRF BJ15S
CLRF BJ15SH
BTFSS BZD,BZOK
GOTO OK6
MOVF TI,0
MOVWF SHU3FT
MOVF MI,0
MOVWF SHU3FM
BCF BZD,BZOK
MOVF SHU3FT,0
MOVWF DAT
MOVLW 0X0B
CALL WT24
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
MOVF SHU3FM,0
MOVWF DAT
MOVLW 0X0C
CALL WT24
MOVF SHU3OT,0
SUBWF SHU3FT,0
BTFSC STATUS,2
GOTO VICT6
MOVF SHU3OT,0
SUBWF SHU3FT,0
BTFSS STATUS,0
GOTO VICT61
BSF BZD1,BZD1T
GOTO OK6
VICT6 MOVF SHU3OM,0
SUBWF SHU3FM,0
BTFSS STATUS,0
GOTO VICT61
BSF BZD1,BZD1T
GOTO OK6
VICT61 BCF BZD1,BZD1T
OK6 MOVF SHUTIME,0
MOVWF TI
MOVF SHUMIN,0
MOVWF MI
MOVF TIMESET,0 ;设置时钟显示调整
MOVWF WENDU
LOOP7 CLRWDT
INCF SS50,1
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRF SS50
CLRWDT
QF80 BTFSS PORTB,6 ;UP?
CALL TADD ;小时加
BTFSS PORTB,7
CALL MADD ;分钟加
;BTFSC BZD,BZSET ;防止设置按键去抖功能,BZSET进入正常设置子程序,BZSET1是按键预设置
BTFSS PORTB,5
GOTO SET9
PNP8 INCF BJ15S,1 ;15秒内未设置完自动返回
CLRWDT
MOVLW 0XFE
SUBWF BJ15S,0
BTFSS STATUS,0
GOTO LOOP7
CLRF BJ15S
INCF BJ15SH,1
MOVLW 0X07
SUBWF BJ15SH,0
BTFSS STATUS,0
GOTO LOOP7
CLRF BJ15SH
CLRF BJ15S
CLRF BZD
CLRF SS50
RETURN
SET9 CLRF SS50
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,5
GOTO SET9
BCF BZD,BZSET
BCF BZD,BZSET1
CLRF BJ15S
CLRF BJ15SH
BTFSS BZD,BZOK
GOTO SET91
MOVF TI,0
MOVWF SHUTIME
MOVF MI,0
MOVWF SHUMIN
MOVF SHUTIME,0
MOVWF DAT
MOVLW 0X04
CALL WT8563
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
MOVF SHUMIN,0
MOVWF DAT
MOVLW 0X03
CALL WT8563
CALL DISP_1
CALL DISP_2
CALL DISP_3
SET91 CLRF BJ15S
CLRF BJ15SH
CLRF BZD
CLRF SS50
RETURN
;===============================温度增加子程序==================================
TEADD BSF BZD,BZOK
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,6
GOTO TEADD
CLRF BJ15S
CLRF BJ15SH
INCF WENDU,1
MOVLW 0X9A
SUBWF WENDU,0
BTFSC STATUS,0
GOTO TEADD1
MOVLW 0X0F
ANDWF WENDU,0
MOVWF R1
MOVLW 0XF0
ANDWF WENDU,0
MOVWF R2
MOVLW 0X0A
SUBWF R1,0
BTFSS STATUS,0
RETURN
MOVLW 0XF0
ANDWF WENDU,1
MOVLW 0X10
ADDWF WENDU,0
MOVWF WENDU
RETURN
TEADD1 CLRF WENDU
RETURN
;===============================================================================================
;============================温度减小子程序=======================================
TESUB BSF BZD,BZOK
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,7
GOTO TESUB
CLRF BJ15S
DECF WENDU,1
MOVLW 0XF0
SUBWF WENDU,0
BTFSC STATUS,0
GOTO TESUB1
MOVLW 0X0F
ANDWF WENDU,0
MOVWF R1
MOVLW 0XF0
ANDWF WENDU,0
MOVWF R2
MOVLW 0X0A
SUBWF R1,0
BTFSS STATUS,0
RETURN
MOVLW 0XF0
ANDWF WENDU,1
MOVLW 0X00
SUBWF WENDU,1
MOVLW 0X09
ADDWF WENDU,0
MOVWF WENDU
RETURN
TESUB1 MOVLW 0X99
MOVWF WENDU
RETURN
;========================================================================================
;===================================小时增加子程序==========================================
TADD BSF BZD,BZOK
CALL DISP_1
CALL DISP_2
CALL DISP_3
CLRWDT
BTFSS PORTB,6
GOTO TADD
CLRF BJ15S
INCF TI,1
MOVLW 0X24
SUBWF TI,0
BTFSC STATUS,0
GOTO TADD1
MOVLW 0X0F
ANDWF TI,0
MOVWF R1
MOVLW 0XF0
ANDWF TI,0
MOVWF R2
MOVLW 0X0A
SUBWF R1,0
BTFSS STATUS,0
RETURN
MOVLW 0XF0
ANDWF TI,1
MOVLW 0X10
ADDWF TI,1
RETURN
TADD1 CLRF TI
RETURN
;========================================================================================
;============================================分钟增加子程序======================
MADD BSF BZD,BZOK
CALL DISP_1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -