📄 shibiema.asm
字号:
BCF RD,6
NOP
NOP
BTFSC BUF2,7
BSF RD,0 ;BUF1是高位,BUF2是低位.
BTFSS BUF2,7
BCF RD,0
NOP
NOP
RLF BUF1,1
RLF BUF2,1
BSF RD,6
NOP
NOP
DECFSZ BIT,1
GOTO C3
RETLW 0
;*************************************
; SHI2 CLK->E2
;*************************************
Z3SHI2
MOVLW .16
MOVWF BIT
BCF STATUS,0
C32 NOP
BCF RE,2
NOP
NOP
BTFSC BUF2,7
BSF RD,0
BTFSS BUF2,7
BCF RD,0
NOP
NOP
RLF BUF1,1
RLF BUF2,1
BSF RE,2
NOP
NOP
DECFSZ BIT,1
GOTO C32
RETLW 0
;****************************************
; SHUI WEN AND YALI CLK-->D7
;*************************************
Z4
MOVLW .32
MOVWF BIT
BCF STATUS,0
C4 NOP
BCF RD,7
NOP
NOP
BTFSC BUF2,7
BSF RD,0
BTFSS BUF2,7
BCF RD,0
RLF BUF3,1
RLF BUF4,1 ;BUF3、BUF4,BUF1、BUF2
RLF BUF1,1 ; 高 , 低 , 高 ,低
RLF BUF2,1
NOP
BSF RD,7
NOP
DECFSZ BIT,1
GOTO C4
RETLW 0
;****************************************
; MAX1 AND MIN1,MAX1 SHAN
;****************************************
SHAN1
;BSF LAG,0
MOVLW 5
MOVWF DAT1
AN1
CALL DELAY200MS
;______________________________
MOVF ZUF,0 ;ZUF 不变,BUF SHAN
MOVWF MUF
CALL BCD
;______________________________
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0 ; XIA限 SHANG限
MOVWF BUF4 ;BUF3、BUF4,BUF1、BUF2
;______________________________ ; 高 , 低 , 高 ,低
; ZUF BUF
MOVLW 00H ; 闪
MOVWF BUF1
MOVLW 00H
MOVWF BUF2
;______________________________
CALL Z1 ;开始显示
;______________________________
CALL JIAN_T
MOVF FSR,0 ;闪动中有键按下,+,-两键.
XORLW .6
BTFSC STATUS,2
CALL JIA1
XORLW .7
BTFSC STATUS,2
CALL JIAN1
CALL DELAY200MS
;______________________________
MOVF ZUF,0 ;ZUF AND BUF 还原
MOVWF MUF
CALL BCD
;______________________________
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0
MOVWF BUF4
;______________________________ ;BUF3、BUF4,BUF1、BUF2
MOVF BUF,0
MOVWF MUF
CALL BCD
;______________________________
CALL Z1
;______________________________
DECFSZ DAT1
GOTO AN1
RETLW 0
;****************************************
;MAX1 AND MIN1,MIN1 SHAN MIN-MAX
;****************************************
SHAN2
;BCF LAG,0 ; XIA限 SHANG限
MOVLW 5 ;BUF3、 BUF4, BUF1、BUF2
MOVWF DAT1 ; 高 , 低 , 高 ,低
; ZUF BUF
AN2 ; 闪
CALL DELAY200MS
;______________________________
MOVF BUF,0 ;BUF 不变, ZUF 闪
MOVWF MUF
CALL BCD ;转化后BUF1 AND BUF2确定了
MOVLW 00H
MOVWF BUF3
MOVLW 00H ;ZUF清0
MOVWF BUF4
;______________________________
CALL Z1 ;显示
;______________________________
;BUF3、BUF4,BUF1、BUF2
CALL JIAN_T
MOVF FSR,0 ;闪动中有键按下,+,-两键.
XORLW .6
BTFSC STATUS,2
CALL JIA1
XORLW .7
BTFSC STATUS,2
CALL JIAN1
CALL DELAY200MS
;______________________________
MOVF ZUF,0 ;ZUF AND BUF 还原
MOVWF MUF
CALL BCD
;______________________________
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0
MOVWF BUF4
;______________________________
MOVF BUF,0
MOVWF MUF
CALL BCD
;______________________________
CALL Z1
;______________________________
DECFSZ DAT1
GOTO AN2
RETLW 0
;****************************************
;MAX2 AND MIN2,MAX2 SHAN MIN-MAX
;****************************************
SHAN3
;BSF LAG2,0
MOVLW 5
MOVWF DAT1
AN3
CALL DELAY200MS
;______________________________
MOVF BMIN,0 ;BMIN 不变,BMAX SHAN
MOVWF MUF
CALL BCD
;______________________________
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0
MOVWF BUF4
;______________________________ ;BUF3、BUF4,BUF1、BUF2
MOVLW 00H
MOVWF BUF1
MOVLW 00H
MOVWF BUF2
;______________________________
CALL Z2
;______________________________
CALL JIAN_T
MOVF FSR,0 ;闪动中有键按下,+,-两键.
XORLW .9
BTFSC STATUS,2
CALL JIA2
XORLW .10
BTFSC STATUS,2
CALL JIAN2
CALL DELAY200MS
;______________________________
MOVF BMIN,0 ;ZUF AND BUF 还原
MOVWF MUF
CALL BCD
;______________________________
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0
MOVWF BUF4
;______________________________
MOVF BMAX,0
MOVWF MUF
CALL BCD
;______________________________
CALL Z2
;______________________________
DECFSZ DAT1
GOTO AN3
RETLW 0
;****************************************
;MAX2 AND MIN2,MIN2 SHAN MIN-MAX
;****************************************
SHAN4
;BCF LAG2,0
MOVLW 5
MOVWF DAT1
AN4
CALL DELAY200MS
;______________________________
MOVF BMAX,0 ;BMAX 不变,BMIN SHAN
MOVWF MUF
CALL BCD ;转化后BUF1 AND BUF2确定了
MOVLW 00H
MOVWF BUF3
MOVLW 00H
MOVWF BUF4
;______________________________
CALL Z2 ;显示
;______________________________ ;BUF3、BUF4,BUF1、BUF2
CALL JIAN_T
MOVF FSR,0 ;闪动中有键按下
XORLW .9
BTFSC STATUS,2
CALL JIA2
XORLW .10
BTFSC STATUS,2
CALL JIAN2
CALL DELAY200MS
;______________________________
MOVF BMIN,0 ;ZUF AND BUF 还原
MOVWF MUF
CALL BCD
;______________________________
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0
MOVWF BUF4
;______________________________
MOVF BMAX,0
MOVWF MUF
CALL BCD
;______________________________
CALL Z2
;______________________________
DECFSZ DAT1
GOTO AN4
RETLW 0
;****************************************
; A/D
;****************************************
ADCAI
NOP
NOP
NOP
NOP
CLRF 2EH
CLRF 2FH
MOVLW .11
MOVWF CNT1
TAOYUANYA
CALL DEL1MS
;CALL TESTKEY
BSF ADCON0, 2 ;设定A/D转换模块的状态
ADWAITYA
BTFSC ADCON0, 2
GOTO ADWAITYA
MOVF ADRES,0
CALL CHENGJI
MOVF SHANGL,W
ADDWF 2EH,F
BTFSC STATUS,0
INCF 2FH
DECFSZ CNT1
GOTO TAOYUANYA
CALL CHU5
MOVF SHANGL,W
MOVWF ADRES
RETLW 0
;****************************************
; 初始化子程序
;****************************************
INITIAL
BSF STATUS,5
MOVLW B'11111111'
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
MOVLW B'00000000'
MOVWF TRISD
BANKSEL ADCON1
MOVLW B'010'
MOVWF ADCON1
MOVLW B'010'
BSF STATUS,5
MOVWF TRISE
BCF STATUS,5
MOVLW B'11111111'
BSF STATUS,5
MOVWF TRISA
BCF STATUS,5
RETURN
;****************************************
;****************************************
DELAY200MS
MOVLW 0F0H
MOVWF CASE1
Y2 MOVLW 9FH
MOVWF CASE2
Y1 DECFSZ CASE2
GOTO Y1
DECFSZ CASE1
GOTO Y2
RETLW 0
DEL1MS
MOVLW 01H
MOVWF CASE1
D2 MOVLW 0FFH
MOVWF CASE2
D1 DECFSZ CASE2
GOTO D1
DECFSZ CASE1
GOTO D2
RETLW 0
DEL100MS
MOVLW 0FH
MOVWF CASE1
LS2 MOVLW 0FFH
MOVWF CASE2
LS1 DECFSZ CASE2
GOTO LS1
DECFSZ CASE1
GOTO LS2
RETURN
;****************************************
;采集并显示温度和压力,温度和压力从一个口发出
;****************************************
CAIWHOLE
DECFSZ ADCNT,1
RETURN
TCAI
MOVLW .15
MOVWF ADCNT
CAI_WEN_YA
MOVLW B'01001001'
MOVWF ADCON0 ;三 ,A1口、设置时钟源8TOSC,,启动A/D转换模块
MOVLW .150
MOVWF CHUNG
CALL ADCAI
MOVF SHANGL,0
MOVWF MUF
MOVWF WENBUF ;为后面温度比较用
CALL BCD ;______________________
;______________________
;BUF3、BUF4,BUF1、BUF2
MOVF BUF1,0 ; 温度 , 压力
MOVWF BUF3 ;______________________
MOVF BUF2,0 ;温度显示
MOVWF BUF4
MOVLW B'01000001'
MOVWF ADCON0 ;三、A0口 ,设置时钟源8TOSC,,启动A/D转换模块
MOVLW .140
MOVWF CHUNG
CALL ADCAI
MOVF SHANGL,W
;================================
SUBLW .10
SKPC
GOTO DAYU10
MOVLW .0
GOTO XIXIXI
DAYU10
MOVF SHANGL,W
;================================
XIXIXI
MOVWF MUF
CALL BCD
CALL Z4 ;压力显示
CALL DEL1MS
CALL DEL1MS
RETURN
;****************************************
; 采集并显示湿度2
;****************************************
XIAN_SHI2
MOVLW B'01010001'
MOVWF ADCON0 ;三、A2口,设置时钟源8TOSC,,启动A/D转换模块
MOVLW .99
MOVWF CHUNG
CALL ADCAI
MOVF SHANGL,0
MOVWF MUF
MOVWF SHIBUF2
CALL BCD
CALL Z3SHI2
RETURN ;湿度2显示
;****************************************
; 采集并显示湿度1
;****************************************
XIAN_SHI1
MOVLW B'01011001'
MOVWF ADCON0 ;三、A3口,设置时钟源8TOSC,,启动A/D转换模块
MOVLW .99
MOVWF CHUNG
CALL ADCAI
MOVF SHANGL,0
MOVWF MUF
MOVWF SHIBUF
CALL BCD
CALL Z3SHI1 ;湿度1显示
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 调温子程序,检测FBIAO
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TIAOWEN_ZI
BSF LED
NOP
NOP
NOP
MOVLW .40
SUBWF WENBUF,W
BTFSC STATUS,0
GOTO RBOFF
MOVLW .30
SUBWF WENBUF,W
BTFSC STATUS,0
GOTO BACK1
RBON
NOP
BSF JIARE
NOP
NOP
GOTO BACK1
RBOFF
NOP
BCF JIARE
NOP
GOTO BACK1
BACK1
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 键翻译子程序
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TRANSLATE
MOVLW 70H
MOVWF FSR
XUN_LOOP1
MOVF 0,0
XORWF VALUE,0
BTFSC STATUS,2
GOTO XUN_LOOP2
INCF FSR,1
;________________
;________________
MOVLW 7FH ;鉴于此处是从70H处放键值码,所以作了改动,原为BTFSS FSR,4一条指令
XORWF FSR ,W ;________________
BTFSS STATUS,Z
;________________
GOTO XUN_LOOP1
MOVLW .12 ;可能多键同时按下,因为12未用,所以返回一个未用键
MOVWF FSR
RETURN
XUN_LOOP2
BCF FSR,6
BCF FSR,5
BCF FSR,4
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 上下限1显示
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
SHANGXIA_DIS1
;上下限1显示
MOVF ZUF,W
MOVWF MUF
CALL BCD
MOVF BUF1,0
MOVWF BUF3 ;SHANGXIA_DIS1 AND SHANGXIA_DIS1发送的脉冲口不同
MOVF BUF2,0
MOVWF BUF4
MOVF BUF,W
MOVWF MUF
CALL BCD
CALL Z1
RETURN
;_________________________
SHANGXIA_DIS2
MOVF BMIN,W ;SHANGXIA_DIS1 AND SHANGXIA_DIS2发送的脉冲口不同
MOVWF MUF
CALL BCD ;上下限2显示
MOVF BUF1,0
MOVWF BUF3
MOVF BUF2,0
MOVWF BUF4
MOVF BMAX,W
MOVWF MUF
CALL BCD
CALL Z2
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;检测水位, 水位子程序, 缺水,不工作,并且置位FBIAO位!
;_______________________________________________
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
T_SHUIWEI
BTFSC SHUIWUI
GOTO SJIAN
CALL DEL100MS
BTFSC SHUIWUI
GOTO SJIAN
GOTO QUESHUI ;缺水,不工作,
SJIAN
BTFSC FBIAO,0
GOTO QUESHUI
RETURN
;_________________________
QUESHUI ;缺水,停
BSF FBIAO,0 ;置缺水标志位
NOP
NOP
BCF JIARE
NOP
NOP
NOP
BSF POLICE
NOP
NOP
NOP
BCF PENWU
NOP
NOP
;~~~~~~~~~~~~~~~~~~
BTFSS FANGYA,0
GOTO KUQI_SHUI1
;~~~~~~~~~~~~~~~~~~
;==========================
;CALL SHUNXU_CLOSE1
CALL FA1_FA2
;==========================
KUQI_SHUI1
BCF FA1
NOP
NOP
BCF FA2
NOP
NOP
BCF T1LED ;change
NOP
NOP
BCF T2LED ;change
NOP
NOP
;CLRF FANGYA
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
; 调温判断子程序,也检测FBIAO
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TIAOWENPAN
BTFSC FBIAO,0
GOTO QUE_SHUI
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO TIAOWEN_NO
CALL DEL100MS
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2
GOTO TIAOWEN_NO
CALL TRANSLATE
MOVF FSR,0
XORLW 04H ; 4 TO TIAOWEN
BTFSS STATUS,2
GOTO TIAOWEN_NO
GOTO TIAOWEN_YES
TIAOWEN_YES
;__________
MOVLW .1
ADDWF TWEN_F
;__________
TIAOWEN_L
CALL KEYSCAN
COMF VALUE,0
BTFSC STATUS,2 ;等待键放!
GOTO TIAOWEN_NO ;键放!
CALL TRANSLATE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -