📄 hwspsb0613.asm
字号:
MOVLW B'00001000'
MOVWF PORTB
NOP
; BSF PCLATH, 3
; CALL DISNUM
; BCF PCLATH, 3
; CALL DELAY200MS
CALL DELAY10MS
;CALL DELAY10MS
;BCF FLAG3, PASS
;BSF PCLATH, 3
;CALL VALVE
;BCF PCLATH, 3
NOP
CALL DELAY3MS
NOP
MAIN1: BTFSS PORTB, UPPOWER
GOTO MAIN901
BCF FLAG1, LOWPOWER
BCF FLAG5, DWPOWER
MAIN901: BTFSS PORTB, DOWNPOWER
GOTO MAIN90
BCF FLAG5, DWPOWER
MAIN90: BTFSC FLAG1, LOWPOWER
GOTO MAIN902
BTFSC FLAG5, DWPOWER
GOTO MAIN902
BCF FLAG3, POWERD
MAIN902: BTFSC PORTB, INT0
CALL ICPROCESS
CALL DELAY3MS
BSF PORTB, FW1
CALL DELAY3MS
CALL DELAY10MS
MOVF PORTB,0
MOVWF TEMP
XORWF ATEMP,1
BTFSC PORTB, UPPOWER
GOTO PIC_ISR20
BSF FLAG1, LOWPOWER
GOTO PIC_ISR200
PIC_ISR20: BCF FLAG1, LOWPOWER
PIC_ISR200: BTFSC PORTB, DOWNPOWER
GOTO PIC_ISR21
BSF FLAG5, DWPOWER
BSF FLAG1, LOWPOWER
GOTO PIC_ISR210
PIC_ISR21: BCF FLAG5, DWPOWER
PIC_ISR210: BTFSC FLAG1, LOWPOWER
BSF FLAG3, POWERD
BTFSC FLAG5, DWPOWER
BSF FLAG3, POWERD
BCF FLAG2, EMIB
BTFSS ATEMP, VALSIG1
GOTO MAIN22
CALL DELAY3MS
BTFSS PORTB, VALSIG1
GOTO MAIN22
CALL DELAY3MS
BTFSC PORTB, VALSIG2
CALL DELAY3MS
BTFSC PORTB, VALSIG2
GOTO PIC_ISR3
; BTFSC FLAG3, SETBG1
; GOTO MAIN100
BSF FLAG2, PULSE1
; BSF FLAG3, SETBG1
; BCF FLAG4, SETBG2
GOTO MAIN100
MAIN22: BTFSS ATEMP, VALSIG2
GOTO MAIN100
CALL DELAY3MS
BTFSS PORTB, VALSIG2
GOTO MAIN100
CALL DELAY3MS
BTFSC PORTB, VALSIG1
CALL DELAY3MS
BTFSC PORTB, VALSIG1
GOTO PIC_ISR3
; BTFSC FLAG4, SETBG2
; GOTO MAIN100
; BCF FLAG3, SETBG1
; BSF FLAG4, SETBG2
BSF FLAG2, PULSE2
GOTO MAIN100
PIC_ISR3: BSF FLAG2, EMIB
MAIN100: CLRW
MOVWF PORTB
MOVF TEMP,0
MOVWF ATEMP
CLRW
BTFSC FLAG1, LOWPOWER ;设置表状态字
IORLW 0X08
BTFSC FLAG1, YZWATER
IORLW 0X00
BTFSC FLAG1, MEMERR
IORLW 0X02
BTFSC FLAG1, VALVEERR
IORLW 0X01
MOVWF DISBUFFER
MOVLW DISBUFFER+.1
MOVWF FSR
MOVLW WSKBFLAG
MOVWF READDRESS
MOVLW 0X01
MOVWF READLENGTH
CALL READ24C02
MOVF DISBUFFER+.1, 0
ANDLW 0X0F
XORWF DISBUFFER, 0
BTFSC STATUS, Z
GOTO MAIN2
MOVF DISBUFFER+.1, 0
ANDLW 0X10
IORWF DISBUFFER, 0
MOVWF DISBUFFER
MOVLW DISBUFFER
MOVWF FSR
MOVLW WSKBFLAG
MOVWF READDRESS
MOVLW 0X01
MOVWF READLENGTH
CALL WR24C02
MAIN2: BTFSS FLAG2, EMIB
GOTO MAIN3
; BCF INTCON, RBIF
BSF FLAG3, EMI
MOVLW DISBUFFER
MOVWF FSR
MOVLW WDCCS
MOVWF READDRESS
MOVLW 0X01
MOVWF READLENGTH
CALL READ24C02
INCF DISBUFFER, 1
MOVLW DISBUFFER
MOVWF FSR
MOVLW WDCCS
MOVWF READDRESS
MOVLW 0X01
MOVWF READLENGTH
CALL WR24C02
MAIN3: BSF FLAG2, ENBLEDIS
BTFSS FLAG2, EMIB
GOTO MAIN4
BCF FLAG2, EMIB
GOTO MAIN7
MAIN4: BTFSC FLAG5, DWPOWER
GOTO MAIN40
BTFSC FLAG1, LOWPOWER
GOTO MAIN5
MAIN6: BTFSS FLAG2, ZERO
GOTO MAIN8
BCF FLAG2, ENBLEDIS
GOTO MAIN7
MAIN40: BCF FLAG3, PASS
BTFSS FLAG3, FLAG
GOTO MAIN5
BSF PCLATH, 3
CALL VALVE
BCF PCLATH, 3
MAIN5: BSF FLAG2, ENBLEDIS
BCF FLAG3, ICERR
BSF PCLATH, 3
CALL DISPLCD
BCF PCLATH, 3
GOTO MAIN8
MAIN7: BCF FLAG3, PASS
BTFSS FLAG3, FLAG
GOTO MAIN71
BSF PCLATH, 3
CALL VALVE
BCF PCLATH, 3
MAIN71: NOP
BSF PCLATH, 3
CALL DISPLCD
BCF PCLATH, 3
MAIN8: BTFSS FLAG2, PULSE1
GOTO MAIN9
BTFSS FLAG2, PULSE2
GOTO MAIN9
BSF PCLATH, 3
CALL CCOST
BCF PCLATH, 3
NOP
BSF PCLATH, 3
CALL WATERCHECK
BCF PCLATH, 3
BTFSC FLAG2, ZERO
GOTO MAIN6
MAIN9: MOVLW 0X20
MOVWF FSR
MOVLW RAMBF
MOVWF READDRESS
MOVLW 0X04
MOVWF READLENGTH
CALL WR24C02
MOVLW 0X7D
MOVWF FSR
MOVLW TEMPBF
MOVWF READDRESS
MOVLW 0X01
MOVWF READLENGTH
CALL WR24C02
MOVLW FMCOUNT
MOVWF FSR
MOVLW WARNF
MOVWF READDRESS
MOVLW 0X01
MOVWF READLENGTH
CALL WR24C02
BSF STATUS, RP0
CLRW
MOVWF TRISA
MOVLW 0XF7
MOVWF TRISB
MOVLW B'00000000'
MOVWF TRISC
BCF STATUS, RP0
MOVLW B'00111111'
MOVWF PORTA
MOVLW B'00011100'
MOVWF PORTC
BCF FLAG3, EMI
; BCF INTCON, RBIF
NOP
; BSF INTCON, RBIE
; MOVLW B'10011000'
; MOVWF INTCON
; BTFSC INTCON, RBIF
; GOTO MAIN
MOVLW B'00000000'
MOVWF PORTB
MOVLW B'00011100'
MOVWF PORTC
MOVLW B'00011100'
MOVWF PORTC
BCF PORTC, PCP
NOP
NOP
NOP
NOP
SLEEP
NOP
NOP
NOP
NOP
GOTO $
;***************************************************************
ICPROCESS: BSF PCLATH, 3
CALL HEADDISPLAY
BCF PCLATH, 3
BTFSC FLAG5, DWPOWER
GOTO ICPROEND2
BCF PORTB, FW1
BCF INTCON, INTF
BCF PORTC, DYK
BCF FLAG1, MEMERR
CALL READCARD
BCF FLAG3, ICERR
MOVF RECBUFFER, 0
XORLW 0X48
BTFSS STATUS, Z
GOTO ICPROERR ;NOT EQU THEN JMP
ICPRO1: MOVF RECBUFFER+.1, 0
XORLW 0X31
BTFSS STATUS, Z
GOTO ICPRO4
CALL INITIAIC
BTFSC FLAG3, ICERR
GOTO ICPROERR
GOTO ICPROEND
ICPRO4: MOVF RECBUFFER+.1, 0
XORLW 0X32
BTFSS STATUS, Z
GOTO ICPRO5
CALL BUYIC
BTFSC FLAG3, ICERR
GOTO ICPROERR
GOTO ICPROEND
ICPRO5: MOVF RECBUFFER+.1, 0
XORLW 0X33
BTFSS STATUS, Z
GOTO ICPRO6
CALL MENDIC
GOTO ICPROEND
ICPRO6: MOVF RECBUFFER+.1, 0
SUBLW 0X04
BTFSS STATUS, Z
GOTO ICPRO7
CALL CHECKIC
GOTO ICPROEND
ICPRO7: MOVF RECBUFFER+.1, 0
SUBLW 0X05
BTFSS STATUS, Z
GOTO ICPRO8
CALL SETIC
GOTO ICPROEND
ICPRO8: MOVF RECBUFFER+.1, 0
SUBLW 0X06
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -