📄 shibiema.asm
字号:
MOVF FSR,0
XORLW 04H ; 4 TO TIAOWEN
BTFSC STATUS,2
GOTO TIAOWEN_L ;等待键放!
GOTO TIAOWEN_NO ;键放!
TIAOWEN_NO
BTFSC TWEN_F,0
GOTO TIAOWEN1
;______________________________
BCF LED
NOP
NOP
NOP
BCF JIARE ;no tiaowen!关加热器
NOP
NOP
NOP
RETURN
;______________________________
TIAOWEN1
CALL TIAOWEN_ZI ;调用调温子程序.
RETURN
QUE_SHUI
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 区1,2开或关判断子程序 自动状态下
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
QU12_ZI
BTFSC FBIAO,0 ;水位检测
RETURN
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO QU1_NO ;ZI DONG
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO QU1_NO
CALL TRANSLATE
MOVF FSR,0
XORLW .2 ; 2 TO TONGDAO 1
BTFSS STATUS,2
GOTO QU1_NO
GOTO QU1_YES
QU1_YES
;_________
MOVLW .1
ADDWF T1_F
;_________
QU1_L
CALL KEYSCAN
COMF VALUE,0 ;ZI DONG
BTFSC STATUS,2 ;等待键放!
GOTO QU1_NO ;键放!
CALL TRANSLATE
MOVF FSR,0
XORLW .2 ; 2 TO QU1
BTFSC STATUS,2
GOTO QU1_L ;等待键放!
GOTO QU1_NO ;键放!
QU1_NO
BTFSS T1_F,0
GOTO QU1_KAI
GOTO QU1_GUAN
;______________________________________
QU1_KAI
BSF LAG_KAIGUAN,1
;=======================
;BCF LAG_FA,1 ;一定不能要,因为区开的时候不代表阀门是否开??
;=======================
BSF T1LED
NOP
NOP
NOP
CALL XIAN_SHI1 ;湿度1采集,BCD转化,显示
CALL SHANGXIA_DIS1 ;上下限1显示
CALL DEL1MS
CALL DEL1MS
CALL QU1PAN ;子程序中检测了水位/
GOTO QU2
;ZI DONG
QU1_GUAN
BCF LAG_KAIGUAN,1
;=======================================
;CALL SHUNXU_CLOSE1
BSF LAG_FA,1
;____________________________
BTFSC LAG_FA,2
GOTO GG1
;========================================
BCF T1LED ;关掉灯
NOP
NOP
BCF FA1
NOP
NOP
GG1
CLRF BUF1
CLRF BUF2 ;关掉湿度显示 ;ZI DONG
CALL Z3SHI1
CLRF BUF1
CLRF BUF2
CLRF BUF3 ;关掉上下限1显示
CLRF BUF4
CALL Z1
;BCF T1LED ;change
NOP
NOP
BCF FLAG_PENWU,0
GOTO QU2
;______________________________________
QU2
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO QU2_NO
CALL DEL100MS ;ZI DONG
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO QU2_NO
CALL TRANSLATE
MOVF FSR,0
XORLW .3 ; 3 TO TONGDAO 2
BTFSS STATUS,2
GOTO QU2_NO
GOTO QU2_YES
QU2_YES
;_________
MOVLW .1
ADDWF T2_F
;_________
QU2_L
CALL KEYSCAN
COMF VALUE,0 ;ZI DONG
BTFSC STATUS,2 ;等待键放!
GOTO QU2_NO ;键放!
CALL TRANSLATE
MOVF FSR,0
XORLW .3 ; 3 TO QU2
BTFSC STATUS,2
GOTO QU2_L ;等待键放!
GOTO QU2_NO ;键放!
QU2_NO
BTFSS T2_F,0
GOTO QU2_KAI
GOTO QU2_GUAN
;_____________________
QU2_KAI
BSF LAG_KAIGUAN,2
;========================
;BCF LAG_FA,2 ;一定不能要,因为区开的时候不代表阀门是否开??
;========================
BSF T2LED ;ZI DONG
NOP
NOP
CALL XIAN_SHI2 ;湿度2采集,BCD转化,显示
CALL SHANGXIA_DIS2 ;上下限2显示
CALL DEL1MS
CALL DEL1MS
CALL QU2PAN ;子程序中检测了水位/
CALL BANG_PAN
RETURN
QU2_GUAN
BCF LAG_KAIGUAN,2
;=======================================
;CALL SHUNXU_CLOSE2
BSF LAG_FA,2
;____________________________
BTFSC LAG_FA,1
GOTO GG22
;========================================
BCF T2LED
NOP
nop
BCF FA2
NOP
NOP ;ZI DONG
GG22
CLRF BUF1
CLRF BUF2 ;关掉湿度显示
CALL Z3SHI2
CLRF BUF1
CLRF BUF2
CLRF BUF3 ;关掉上下限显示
CLRF BUF4
CALL Z2
NOP
NOP
BCF FLAG_PENWU,1
CALL BANG_PAN
;_____________________
RETURN
;===========================================================================
; 子程序
;===========================================================================
BANG_PAN
MOVF LAG_KAIGUAN,F
BTFSS STATUS,2
GOTO I00
BCF PENWU
NOP
NOP
;~~~~~~~~~~~~~~~~~~
BTFSS FANGYA,0
GOTO JJJ1
;=======================
CALL FA1_FA2
;=======================
;~~~~~~~~~~~~~~~~~~
JJJ1
BCF T1LED ;跳到此处是人工强制关区所致,需关区电源
NOP
NOP
BCF T2LED
NOP
NOP
GOTO KUQI1
I00 MOVF FLAG_PENWU,F
BTFSS STATUS,2
RETURN
BCF PENWU
NOP
NOP
;~~~~~~~~~~~~~~~~~~
BTFSS FANGYA,0
GOTO KUQI1
;=======================
CALL FA1_FA2
;=======================
;~~~~~~~~~~~~~~~~~~
KUQI1
BCF FA1
NOP
NOP
BCF FA2
NOP
NOP
NOP
;CLRF LAG_FA
CLRF FANGYA
RETURN
;=======================================
;=======================================
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 区1,2开或关判断子程序 手动状态下
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
QU12_SHOU
BTFSC FBIAO,0 ;水位检测
RETURN
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO QU1_NO8
CALL DEL100MS
CALL KEYSCAN ;SHOU_DONG
COMF VALUE,0
BTFSC STATUS,2
GOTO QU1_NO8
CALL TRANSLATE
MOVF FSR,0
XORLW .2 ; 2 TO TONGDAO 1
BTFSS STATUS,2
GOTO QU1_NO8
GOTO QU1_YES8
QU1_YES8
;_________
MOVLW .1
ADDWF T1_F
;_________
QU1_L8
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2 ;等待键放!
GOTO QU1_NO8 ;键放!
CALL TRANSLATE
MOVF FSR,0
XORLW .2 ; 2 TO QU1
BTFSC STATUS,2
GOTO QU1_L8 ;等待键放!
GOTO QU1_NO8 ;键放! ;SHOU_DONG
QU1_NO8
BTFSS T1_F,0
GOTO QU1_KAI8
GOTO QU1_GUAN8
;______________________________________
QU1_KAI8
BSF LAG_KAIGUAN,1
;=======================================
BCF LAG_FA,1 ;要,手动状态下,区开的情况下,阀门一定是开的,在从手动向自动跳时有用
;=======================================
BSF T1LED
NOP
CALL XIAN_SHI1 ;湿度1采集,BCD转化,显示
CALL SHANGXIA_DIS1 ;上下限1显示
;CALL QU1PAN ;子程序中检测了水位/
CALL DEL1MS
CALL DEL1MS
BSF PENWU
NOP
NOP ;SHOU_DONG
BSF FANGYA,0
BSF FA1
NOP
NOP
;BSF T1LED
NOP
NOP
BSF FLAG_PENWU,0 ;重要,不可删
GOTO QU28
QU1_GUAN8
BCF LAG_KAIGUAN,1
;=======================================
;CALL SHUNXU_CLOSE1
BSF LAG_FA,1
;____________________________
BTFSC LAG_FA,2
GOTO GO1
;========================================
BCF T1LED ;关掉灯
NOP
nop
BCF FA1
NOP
NOP ;SHOU_DONG
GO1
CLRF BUF1
CLRF BUF2 ;关掉湿度显示
CALL Z3SHI1
CLRF BUF1
CLRF BUF2
CLRF BUF3 ;关掉上下限1显示
CLRF BUF4
CALL Z1
;BCF T1LED
NOP
NOP
BCF FLAG_PENWU,0
GOTO QU28
;______________________________________
QU28
CALL KEYSCAN
COMF VALUE,0 ;SHOU_DONG
BTFSC STATUS,2
GOTO QU2_NO8
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO QU2_NO8
CALL TRANSLATE
MOVF FSR,0
XORLW .3 ; 3 TO TONGDAO 2
BTFSS STATUS,2
GOTO QU2_NO8
GOTO QU2_YES8
QU2_YES8
;_________
MOVLW .1
ADDWF T2_F
;_________
QU2_L8
CALL KEYSCAN
COMF VALUE,0 ;SHOU_DONG
BTFSC STATUS,2 ;等待键放!
GOTO QU2_NO8 ;键放!
CALL TRANSLATE
MOVF FSR,0
XORLW .3 ; 3 TO QU2
BTFSC STATUS,2
GOTO QU2_L8 ;等待键放!
GOTO QU2_NO8 ;键放!
QU2_NO8
BTFSS T2_F,0
GOTO QU2_KAI8
GOTO QU2_GUAN8
;_____________________
QU2_KAI8
BSF LAG_KAIGUAN,2
;=======================================
BCF LAG_FA,2 ;要,手动状态下,区开的情况下,阀门一定是开的,在从手动向自动跳时有用
;=======================================
BSF T2LED
NOP
NOP
CALL XIAN_SHI2 ;湿度2采集,BCD转化,显示
CALL SHANGXIA_DIS2 ;上下限2显示
;CALL QU2PAN ;子程序中检测了水位/
CALL DEL1MS
CALL DEL1MS
BSF PENWU
NOP
NOP
BSF FANGYA,0 ;SHOU_DONG
BSF FA2
NOP
NOP
;BSF T2LED
NOP
NOP
BSF FLAG_PENWU,1
RETURN
QU2_GUAN8
BCF LAG_KAIGUAN,2
;=======================================
;CALL SHUNXU_CLOSE2
BSF LAG_FA,2
;____________________________
BTFSC LAG_FA,1
GOTO GO2
;========================================
BCF T2LED
NOP
NOP
BCF FA2 ;SHOU_DONG
NOP
NOP
GO2
CLRF BUF1
CLRF BUF2 ;关掉湿度显示
CALL Z3SHI2
CLRF BUF1
CLRF BUF2
CLRF BUF3 ;关掉上下限显示
CLRF BUF4
CALL Z2
NOP
NOP
BCF FLAG_PENWU,1 ;SHOU_DONG
CALL BANG_PAN
;_____________________;;
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
FA1_FA2
SIYANG01
MOVLW .9
MOVWF JISU
YAN2S1
CALL DELAY200MS
CALL DELAY200MS
CALL CAI_WEN_YA
CALL DELAY200MS
CALL DELAY200MS
DECFSZ JISU,F
GOTO YAN2S1
;CLRF LAG_FA ;不能在在这清,不然会影响!!!也就是在放压时也不能清,别的时候保持原状态
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
CLEAR_1
CLRF BUF1
CLRF BUF2
CLRF BUF3
CLRF BUF4
CALL Z1 ;QING 上限,清空!灭.
CALL Z2 ;QING 下限,清空!灭.
CALL Z3SHI1 ;清所有七段显示码,清空!灭.
CALL Z3SHI2 ;清湿度2,灭.
CALL Z4 ;清空水温和压力,灭.
CLRF RC
CLRF RD
CLRF RE ;____所有输出为低
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 程序开始
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
START
;——————————————————————————
;bsf STATUS,5
;MOVLW B'00000011'
;MOVWF OPTION_REG ;16预分频,16次TMR0加1
BCF STATUS,5
CLRF INTCON
BCF INTCON,TOIE
BCF INTCON,GIE
BCF INTCON,TOIF
;MOVLW 00H
;MOVWF TMR0
;——————————————————————————
CLRF LAG_KAIGUAN
CLRF FANGYA
CLRF SIJI
CLRF LAG
CLRF LAG2
CLRF FBIAO
CLRF SZDF
CLRF TWEN_F
CLRF FLAG_PENWU
CLRF T1_F
CLRF T2_F
CLRF LAG_FA
BSF LAG_FA,1
BSF LAG_FA,2
MOVLW .1
MOVWF ADCNT
CLRF MS
CLRF MS+1
CLRF MS50
CLRF SECOND
;CLRF MINUTE
;——————————————————————————
BCF STATUS,5
MOVLW B'11111111' ;全为按键接口!
BSF STATUS,5
MOVWF TRISB
BCF STATUS,5
;——————————————————————————
NOP
NOP
MOVLW B'00000000'
BSF STATUS,5
MOVWF TRISC
;BCF STATUS,5
CLRF RC
;——————————————————————————
MOVLW B'00000000'
BSF STATUS,5
MOVWF TRISD
BCF STATUS,5
CLRF RD
;——————————————————————————
NOP
BANKSEL ADCON1
MOVLW B'010'
MOVWF ADCON1 ;A口全为模拟口,E口全为数字口
MOVLW B'010'
BSF STATUS,5
MOVWF TRISE
BCF STATUS,5
;——————————————————————————
MOVLW B'11111111'
BSF STATUS,5
MOVWF TRISA
BCF STATUS,5
;——————————————————————————
MOVLW 77H
MOVWF 70H
MOVLW 0B7H
MOVWF 71H
MOVLW 0D7H
MOVWF 72H
MOVLW 0E7H
MOVWF 73H
MOVLW 7BH
MOVWF 74H
MOVLW 0BBH
MOVWF 75H
MOVLW 0DBH
MOVWF 76H
MOVLW 0EBH
MOVWF 77H
MOVLW 7DH
MOVWF 78H
MOVLW 0BDH
MOVWF 79H
MOVLW 0DDH
MOVWF 7AH
MOVLW 0EDH
MOVWF 7BH
MOVLW 7EH
MOVWF 7CH
MOVLW 0BEH
MOVWF 7DH
MOVLW 0DEH
MOVWF 7EH
MOVLW 0EEH
MOVWF 7FH
CALL ROMR_TIME ;开机定时器开始运行.把EEPROM中的天数和小时积存器调出。
;——————————————————————————
DIANYUAN
CALL CLEAR_1
CLRF FBIAO ;CLER 缺水标志位.为加水重新启动做准备@@@@%^&*()~~~~~~~~~~~~
;——————————————————————————
;下面等待启动键!电源键.AND 启动识别码!!!
;——————————————————————————
;=========================================
; 动识别码!!!
;=========================================
CALL SHIBIEMA_R
MOVLW .79
BANKSEL SHIBIEMA
XORWF SHIBIEMA,W
SKPZ
GOTO $
;========================================
CHECK
MOVLW .180 ;本程序设置20天
XORWF TIAN,W
;MOVLW .5 ;本程序设置2MINUTE
;XORWF MINUTE,W
SKPNZ
BSF SIJI,0
;——————————————————————————
BTFSS SIJI,0
GOTO SI_NO
BCF INTCON,TOIE ;定时器停止运行(实际停止中断,时间积存器停止自加)
BCF INTCON,GIE
CALL SERVE
GOTO $ ;进入死循环
;——————————————————————————
SI_NO
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO CHECK ;等待启动键!
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO CHECK
CALL TRANSLATE
MOVF FSR,0
XORLW 00H ;0 TO POWER
BTFSS STATUS,2
GOTO CHECK
;———————
DENG_0
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2 ;等待键放!
GOTO FANG_0
CALL TRANSLATE
MOVF FSR,0
XORLW 00H ;0 TO POWER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -