📄 shibiema.asm
字号:
BTFSC STATUS,2
GOTO DENG_0
GOTO FANG_0
;———————
FANG_0
BSF POWER_LED
NOP
NOP
NOP
;——————————————————————————
CALL ROMR ;读ROM数据.
;——————————————————————————
MOVF BUF,W
MOVWF BUF_B
MOVF ZUF,W
MOVWF ZUF_B
MOVF BMAX,W
MOVWF BMAX_B
MOVF BMIN,W
MOVWF BMIN_B
MOVLW .35
MOVWF YANSHI
YAN
CALL DELAY200MS
DECFSZ YANSHI,1
GOTO YAN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;_________________________
; S/Z TEST???
;_________________________
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ZIDONG
MOVLW .180 ;本程序设置20天
XORWF TIAN,W
;MOVLW .5 ;本程序设置2MINUTE
;XORWF MINUTE,W
SKPNZ
BSF SIJI,0
;——————————————————————————
BTFSS SIJI,0
GOTO WORK_1
BCF INTCON,TOIE ;定时器停止运行(实际停止中断,时间积存器停止自加)
BCF INTCON,GIE
CALL CLEAR_1
CALL SERVE
GOTO $ ;进入死循环
;——————————————————————————
WORK_1
;_________________________
;电源按键检测,由自动状态-->关机
;_________________________
CALL INITIAL
;——————————————————————————
MOVLW .12
MOVWF SHIJIAN
XUN_01
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO XIUCLOUD ;无键按下
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO XIUCLOUD ;无键按下
CALL TRANSLATE
MOVF FSR,0
XORLW 00H ;0 TO POWER
BTFSS STATUS,2
GOTO XIUCLOUD ;不是电源键按下
CALL DELAY200MS
DECFSZ SHIJIAN,1
GOTO XUN_01
DENG_0A
;CALL KEYSCAN
;COMF VALUE,0
;BTFSC STATUS,2 ;等待键放!
;GOTO FANG_0A
;CALL TRANSLATE
;MOVF FSR,0
;XORLW 00H ;0 TO POWER
;BTFSC STATUS,2
;GOTO DENG_0A
;GOTO FANG_0A
FANG_0A
CALL CLEAR_1
MOVLW .16
MOVWF SHIJIAN
FANG_0AA
CALL DELAY200MS
DECFSZ SHIJIAN,1
GOTO FANG_0AA
GOTO DIANYUAN
;_________________________
XIUCLOUD
CALL SERVE ;查询ZUF和BUF有无变化,
;_________________________
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO SZD_NO
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2 ;检测手自动
GOTO SZD_NO
CALL TRANSLATE
MOVF FSR,0
XORLW 01H ; 1 TO SZDONG
BTFSS STATUS,2
GOTO SZD_NO
GOTO SZD_YES
SZD_YES
;___________________
MOVLW .1
ADDWF SZDF
;___________________
SZD_L
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2 ;等待键放!
GOTO SZD_NO ;键放!
CALL TRANSLATE
MOVF FSR,0
XORLW 01H ; 1 TO SZDONG
BTFSC STATUS,2
GOTO SZD_L ;等待键放!
GOTO SZD_NO ;键放!
SZD_NO
BTFSC SZDF,0
GOTO SHOUDONG
GOTO ZIDONG0
;_________________________
;下面进入自动状态!
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;首先检测是否缺水?
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ZIDONG0
bsf SZLED
CALL TESTKEY ;按键扫描
CALL T_SHUIWEI ;首先检测是否缺水?子程序中停.置FBIAO
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CALL TIAOWENPAN ;子程序中检测了缺水标志位FBIAO
;***************************************
CALL QU12_ZI ;1区和2区的判断>, 检测了缺水标志位FBIAO
CALL CAIWHOLE ;采集并且显示水温和压力
GOTO ZIDONG
;***************************************
;##################################&&&&&&&&&&&$$$$$$$$$@@@@@@@@@@@@@@@!!!!!!!!!!!!!
;##################################&&&&&&&&&&&$$$$$$$$$@@@@@@@@@@@@@@@!!!!!!!!!!!!!
;--------------------------手动状态-----------
;##################################&&&&&&&&&&&$$$$$$$$$@@@@@@@@@@@@@@@!!!!!!!!!!!!!
SHOUDONG
MOVLW .180 ;本程序设置20天
XORWF TIAN,W
;MOVLW .5 ;本程序设置2MINUTE
;XORWF MINUTE,W
SKPNZ
BSF SIJI,0
;——————————————————————————
BTFSS SIJI,0
GOTO WORK_2
BCF INTCON,TOIE ;定时器停止运行(实际停止中断,时间积存器停止自加)
BCF INTCON,GIE
CALL CLEAR_1
CALL SERVE
GOTO $ ;进入死循环
WORK_2
;_________________________
;电源按键检测
;_________________________
CALL INITIAL
MOVLW .12
MOVWF SHIJIAN
;——————————————————————————
XUN_02
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO SHOWCLOUD
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO SHOWCLOUD
CALL TRANSLATE
MOVF FSR,0
XORLW 00H ;0 TO POWER
BTFSS STATUS,2
GOTO SHOWCLOUD
CALL DELAY200MS
DECFSZ SHIJIAN,1
GOTO XUN_02
DENG_0B
;CALL KEYSCAN
;COMF VALUE,0
;BTFSC STATUS,2 ;等待键放!
;GOTO FANG_0B
;CALL TRANSLATE
;MOVF FSR,0
;XORLW 00H ;0 TO POWER
;BTFSC STATUS,2
;GOTO DENG_0B
;GOTO FANG_0B
FANG_0B
CALL CLEAR_1
MOVLW .16
MOVWF SHIJIAN
FANG_0BB
CALL DELAY200MS
DECFSZ SHIJIAN,1
GOTO FANG_0BB
GOTO DIANYUAN
;_________________________
SHOWCLOUD
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO SZD_NO2
CALL DEL100MS
CALL KEYSCAN ;检测手自动
COMF VALUE,0
BTFSC STATUS,2
GOTO SZD_NO2
CALL TRANSLATE
MOVF FSR,0
XORLW 01H ; 1 TO SZDONG
BTFSS STATUS,2
GOTO SZD_NO2
GOTO SZD_YES2
SZD_YES2
;____________
MOVLW .1
ADDWF SZDF
;____________
SZD_L2
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2 ;等待键放!
GOTO SZD_NO2 ;键放!
CALL TRANSLATE
MOVF FSR,0
XORLW 01H ; 1 TO SZDONG
BTFSC STATUS,2
GOTO SZD_L2 ;等待键放!
GOTO SZD_NO2 ;键放!
SZD_NO2
BTFSC SZDF,0
GOTO SHOUDONG0
GOTO BEGINZI
;_________________________
;%%%%%%%%%%%%%%%%%%%%
;由手动向自动跳时要与下限进行判断
;%%%%%%%%%%%%%%%%%%%%
BEGINZI
CALL STOZ
GOTO ZIDONG
;%%%%%%%%%%%%%%%%%%%%
SHOUDONG0
;_________________________
bcf SZLED
CALL SERVE ;THIS TWO 同时有或同时删掉
CALL TESTKEY ;按键扫描
;_________________________
CALL T_SHUIWEI ;首先检测是否缺水?子程序中停.置FBIAO
CALL TIAOWENPAN ;子程序中检测了缺水标志位FBIAO
CALL CAIWHOLE ;采集并且显示水温和压力
CALL QU12_SHOU ;检测了缺水标志位FBIAO
GOTO SHOUDONG
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;SHOU TO ZI
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
STOZ
bsf SZLED
NOP
MOVLW B'01011001'
MOVWF ADCON0 ;三、A3口,设置时钟源8TOSC,,启动A/D转换模块
MOVLW .99
MOVWF CHUNG
CALL ADCAI ;在最后一个把CNTFLAG的0位置1!!!!
MOVF SHANGL,0
MOVWF MUF
MOVWF SHIBUF
MOVF BUF,W ;ZUF与BUF进行比较,
SUBWF ZUF,W
BTFSC STATUS,0
GOTO ZUFLARGV
GOTO BUFLARGV ;STOZ======
ZUFLARGV
MOVF BUF,W
SUBWF SHIBUF,W
BTFSC STATUS,0
GOTO GUANDIAO
GOTO BYE1
BUFLARGV
MOVF ZUF,W
SUBWF SHIBUF,W
BTFSC STATUS,0
GOTO GUANDIAO
GOTO BYE1
GUANDIAO
;=========================
;CALL SHUNXU_CLOSE1
;=========================
BSF LAG_FA,1
;____________________________
BTFSC LAG_FA,2 ;判断2区有无关掉
GOTO ZZZZ
;____________________________
BCF FA1 ;STOZ======
NOP
NOP
ZZZZ
NOP
NOP
BCF FLAG_PENWU,0
;*************
BYE1
MOVLW B'01010001'
MOVWF ADCON0 ;三、A2口,设置时钟源8TOSC,,启动A/D转换模块
MOVLW .99
MOVWF CHUNG
CALL ADCAI
MOVF SHANGL,0
MOVWF MUF
MOVWF SHIBUF2
MOVF BMAX,W ;BMAX与BMIN进行比较,
SUBWF BMIN,W
BTFSC STATUS,0
GOTO ZUFLARGV2
GOTO BUFLARGV2
ZUFLARGV2
MOVF BMAX,W ;STOZ======
SUBWF SHIBUF2,W
BTFSC STATUS,0
GOTO GUANDIAO2
GOTO BYE2
BUFLARGV2
MOVF BMIN,W
SUBWF SHIBUF2,W
BTFSC STATUS,0
GOTO GUANDIAO2
GOTO BYE2
GUANDIAO2
;=========================
;CALL SHUNXU_CLOSE2
;=========================
BSF LAG_FA,2
;____________________________
BTFSC LAG_FA,1
GOTO CCCC
;____________________________
BCF FA2
CCCC
NOP
NOP
NOP
BCF FLAG_PENWU,1
BYE2
CALL BANG_PAN
RETURN
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
; 湿度1比较检测!!!!
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
QU1PAN
BTFSC FBIAO,0
GOTO BACKSHI1
MOVF SHIBUF,W
MOVWF BIJIAO
MOVF BUF,W ;ZUF与BUF进行比较,
SUBWF ZUF,W
BTFSC STATUS,2
GOTO ZUFEQUAL
BTFSC STATUS,0
GOTO ZUFLARG
GOTO BUFLARG
ZUFEQUAL
MOVF SHIBUF,0
MOVWF BIJIAO
; 湿度1比较检测!!!!
MOVF ZUF,W
SUBWF BIJIAO,W
BTFSC STATUS,2
GOTO EQUAL
BTFSC STATUS,0
GOTO LARG
GOTO SMALL
ZUFLARG
MOVF SHIBUF,0 ; 湿度1比较检测!!!!
MOVWF BIJIAO
MOVF ZUF,W
SUBWF BIJIAO,W
BTFSC STATUS,2
GOTO EQUAL
BTFSC STATUS,0
GOTO LARG
MOVF BIJIAO,W
SUBWF BUF,W
BTFSC STATUS,2
GOTO SMALL
BTFSC STATUS,0
GOTO SMALL
GOTO BACKSHI1_BUDING ;当处于上下限之间时,必须建立标志位,见BACKSHI1_BUDING
BUFLARG
MOVF SHIBUF,0
MOVWF BIJIAO ; 湿度1比较检测!!!!
MOVF BUF,W
SUBWF BIJIAO,W
BTFSC STATUS,2
GOTO EQUAL
BTFSC STATUS,0
GOTO LARG
MOVF BIJIAO,W
SUBWF ZUF,W
BTFSC STATUS,2
GOTO SMALL
BTFSC STATUS,0
GOTO SMALL
GOTO BACKSHI1_BUDING ;当处于上下限之间时,必须建立标志位,见BACKSHI1_BUDING
; 湿度1比较检测!!!!
LARG
EQUAL
;CALL SHUNXU_CLOSE1
;===================================
BSF LAG_FA,1
;____________________________
BTFSC LAG_FA,2
GOTO VV
;===================================
BCF FA1
NOP
NOP
VV
;?????????????????????????
;BTFSS LAG_KAIGUAN,2
;GOTO SSS
;BCF FA1
;NOP
;NOP
;?????????????????????????
SSS
BCF FLAG_PENWU,0 ; 湿度1比较检测!!!!
GOTO BACKSHI1
SMALL
;=====================================
;一区开的情况下
BCF LAG_FA,1
;=====================================
BSF FLAG_PENWU,0
NOP
NOP
BSF FA1
NOP
NOP
;BSF T1LED ;change
NOP ; 湿度1比较检测!!!!
NOP
BSF PENWU
NOP
NOP
BSF FANGYA,0
GOTO BACKSHI1
BACKSHI1_BUDING
BACKSHI1
RETURN
;______________________________________
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;湿度2比较检测!!!!
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
QU2PAN
BTFSC FBIAO,0
GOTO BACKSHI2
MOVF SHIBUF2,W
MOVWF BIJIAO
MOVF BMAX,W ;BMAX与BMIN进行比较,
SUBWF BMIN,W
BTFSC STATUS,2
GOTO ZUFEQUAL1
BTFSC STATUS,0
GOTO ZUFLARG1
GOTO BUFLARG1
ZUFEQUAL1
MOVF SHIBUF2,0
MOVWF BIJIAO
MOVF BMIN,W
SUBWF BIJIAO,W
BTFSC STATUS,2
GOTO EQUAL1
BTFSC STATUS,0
GOTO LARG1
GOTO SMALL1
ZUFLARG1
MOVF SHIBUF2,0
MOVWF BIJIAO
MOVF BMIN,W
SUBWF BIJIAO,W
BTFSC STATUS,2
GOTO EQUAL1
BTFSC STATUS,0
GOTO LARG1
MOVF BIJIAO,W
SUBWF BMAX,W
BTFSC STATUS,2
GOTO SMALL1
BTFSC STATUS,0
GOTO SMALL1
GOTO BACKSHI2_BUDING
BUFLARG1
MOVF SHIBUF2,0
MOVWF BIJIAO
MOVF BMAX,W
SUBWF BIJIAO,W
BTFSC STATUS,2
GOTO EQUAL1
BTFSC STATUS,0
GOTO LARG1
MOVF BIJIAO,W
SUBWF BMIN,W
BTFSC STATUS,2
GOTO SMALL1
BTFSC STATUS,0
GOTO SMALL1
GOTO BACKSHI2_BUDING
EQUAL1
LARG1
;CALL SHUNXU_CLOSE2
;===================================
BSF LAG_FA,2
;____________________________
BTFSC LAG_FA,1
GOTO VVVV
;===================================
BCF FA2
NOP
NOP
VVVV
;?????????????????????????
;BTFSS LAG_KAIGUAN,1
;GOTO UUU
;BCF FA1
;NOP
;NOP
;?????????????????????????
UUU
BCF FLAG_PENWU,1
NOP
NOP
GOTO BACKSHI2
SMALL1
;===================================
BCF LAG_FA,2
;===================================
BSF FLAG_PENWU,1
NOP
NOP
BSF FA2
NOP
NOP
;BSF T2LED
NOP
NOP
BSF PENWU
NOP
NOP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -