?? 基于mcu的智能節水控制器源程序文件.asm
字號:
MOV 64H,7BH
MOV 63H,7CH
LCALL WRDS
GPPPPP: INC R5
MOV 2DH,#10H
GNH: CJNE R5,#00H, GNs
MOV 2AH,#91H
MOV 2CH,#00H
MOV 2DH,#00H
MOV 51H,#0AH;;;;;;;;;;;;;;;;;
CLR 73H
MOV 78H,62H
MOV 79H,61H
LCALL EXTBLOCK1
LJMP LOOP3
GNs: CJNE R5,#01H, GNn
MOV 2AH,#83H
MOV 2CH,#01H
MOV 2DH,#00H
MOV 51H,#0DH
MOV 78H,62H
MOV 79H,61H
LCALL EXTBLOCK1
LJMP LOOP3
GNn: CJNE R5,#02H, GNy
MOV 2AH,#83H
MOV 2CH,#80H
MOV 51H,#0CH
MOV 78H,61H
MOV 79H,60H
LCALL EXTBLOCK1
LJMP LOOP3
GNy: CJNE R5,#03H, GNd
MOV 2AH,#83H
MOV 2CH,#04H
MOV 2DH,#00H
MOV 51H,#0EH
MOV 78H,#20H
MOV 79H,66H
LCALL EXTBLOCK1
LJMP LOOP3
GNd: CJNE R5,#04H, GNP
MOV 2AH,#83H
MOV 2CH,#08H
MOV 51H,#0FH
MOV 78H,64H
MOV 79H,63H
LCALL EXTBLOCK1
LJMP LOOP3
GNP: CJNE R5,#05H, GNA
MOV 2AH,#0C1H
MOV 2CH,#20H
MOV 2DH,#00H
MOV 51H,#0BH ;放水時間長度設置
MOV R5,#10H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV 78H,7EH
LCALL HEX_BCDBLOCK
LJMP LOOP3
GNA: CLR C
MOV A,R5
SUBB A,#80H;;;;;;;;;;;;;;;;;;;;;;;70+10=80
JC GNx
MOV R5,#00H
MOV 2CH,#00H
MOV 2DH,#00H
CLR 25H
LJMP GNH
GNX: MOV 2AH,#83H
MOV 2CH,#02H
MOV 2DH,#00H
MOV 51H,R5
MOV A,R5
SUBB A,#10H
MOV R0,A
MOV XmtD,R0
LCALL RD_B
MOV 78H,RcvD
MOV A,#80H;;;;;;;;;
ADD A,R0
MOV R0,A
MOV 79H,@R0
LCALL EXTBLOCK1
LJMP LOOP3
KJSSK: MOV 2DH,#04H
JNB P2.5, RSTCL0
JB 60H, YWCL
JB 61H, YWCL
JB 62H, YWCL
JB 63H, YWCL
JB 64H, YWCL
JB 65H, PRESET0
JB 66H, YWCL
JB 67H, YWCL
;JB 68H, PRESET0
CLR 58H
CLR 5AH ;輸出標志位
CLR 73H
CLR P2.2 ;;;;;;;;;;
MOV 5BH,#7DH
LJMP LOOP3
YWCL: JNB 51H, YWCL1
MOV 2AH,#85H
LJMP LOOP3
YWCL1: MOV 2AH,#83H
LJMP LOOP3
RSTCL0: LJMP RSTCL
PRESET0: MOV 2AH,#0C1H
DEC 7EH ;放水時間長度設置
MOV 78H,7EH
LCALL HEX_BCDBLOCK
LJMP LOOP3
KJSSZ: MOV 2DH,#08H
JNB P2.6, RSTCL0
JB 60H, DJSJSZ
JB 61H, SSSZ
JB 62H, SXSZ
JB 63H, ZSSZ
JB 64H, XXSZ
JB 65H, PRESET1
JB 66H, WXSZ
JB 67H, FMSZ
;JB 68H, PRESET1
CLR 73H
LJMP LOOP3
PRESET1: LJMP PRESET
DJSJSZ: JNB 51H, DJSJSZ1
LCALL T_BLOCK5
LJMP LOOP3
DJSJSZ1: LCALL T_BLOCK1
LJMP LOOP3
SSSZ: JNB 51H, SSSZ1
LCALL T_BLOCK5
LJMP LOOP3
SSSZ1: LCALL T_BLOCK1
LJMP LOOP3
SXSZ: JNB 51H, SXSZ1
LCALL T_BLOCK6
LJMP LOOP3
SXSZ1: NOP
LJMP LOOP3
ZSSZ: JNB 51H, ZSSZ1
LCALL T_BLOCK2
LJMP LOOP3
ZSSZ1: LCALL T_BLOCK4
LJMP LOOP3
XXSZ: JNB 51H, XXSZ1
LCALL T_BLOCK5
LJMP LOOP3
XXSZ1: LCALL T_BLOCK1
LJMP LOOP3
WSSZ: JNB 51H, WSSZ1
LCALL T_BLOCK5
LJMP LOOP3
WSSZ1: LCALL T_BLOCK1
LJMP LOOP3
WXSZ: JNB 51H, WXSZ1
LCALL T_BLOCK5
LJMP LOOP3
WXSZ1: LCALL T_BLOCK1
LJMP LOOP3
FMSZ: JNB 51H, FMSZ1
LCALL T_BLOCK5
LJMP LOOP3
FMSZ1: LCALL T_BLOCK3
LJMP LOOP3
PRESET: INC 7EH ;放水時間長度設置
MOV 78H,7EH
LCALL HEX_BCDBLOCK
LJMP LOOP3
KJSJC: JB 5FH, LOOP35
SETB 5FH ;水滿檢測輔助位
JB 5BH, B00
MOV 75H,#00H
SETB 59H ;關閉輔助位
;MOV 5BH,#0FDH
;MOV 76H,#00H
B00: CLR 5BH ;消除第一次輔助位
;CLR 25H
;SETB 58H
;SETB 5AH ;輸出標志位
;SETB 5DH ;蜂鳴標志位
LOOP35: LJMP LOOP3
RSTCL: JB 5EH, LOOP35
SETB 5EH ;復位處理輔助位
LJMP READ_R1
YSCX: ;;ORL 0D0H,#18H
MOV 45H,#1FH;;;;;R5,#1FH
YSCX1: MOV 46H,#1AH;;;;;R6,#1AH
YSCX2: DJNZ 46H, YSCX2
DJNZ 45H, YSCX1
;;ANL 0D0H,#0E7H
RET
WDT_RST: MOV 0A6H,#1EH
MOV 0A6H,#0E1H
RET
Pause: CLR 50H
CLR 55H
MOV 2BH,#0FFH
MOV 51H,#0BH;;;;;;;;;
MOV 52H,#0FH
MOV 53H,#0EH
MOV 54H,#05H
MOV 55H,#27H
MOV 5BH,#0FDH
LJMP LOOP4
T0ZD: PUSH Acc ;每按鍵時間間隔處理
PUSH PSW
;JB 70H, ZJXS
DJNZ 70H, T0FW
MOV 70H,#03H
CLR TCON.4
SETB 72H
LJMP T0FW
ZJXS: SETB 73H
DJNZ 22H, T0FW
SETB 71H
MOV 22H,#05H
DJNZ 21H, T0FW
MOV 2DH,#08H
MOV 2AH,#00H;;;;;;;;;
MOV 2EH,#00H
MOV 50H,#0BH
CLR 25H
CLR TCON.4
T0FW: POP PSW
POP Acc
RETI
T1ZD: PUSH Acc
PUSH PSW
SETB TCON.4
CLR TCON.6
CLR 75H
SETB 77H
POP PSW
POP Acc
RETI
T2ZD: PUSH Acc
PUSH PSW
CLR 0CFH
INC 71H
MOV A,71H
CJNE A,#05H, FW0
CPL 55H
DJNZ 67H, SZ00
MOV 2DH,#00H
MOV 2CH,#00H
MOV 2AH,#11H
MOV 22H,#03H
MOV 51H,#0AH
MOV 67H,#6FH
MOV R5,#00H
CLR 25H
CLR 73H
;MOV 78H,61H
;MOV 79H,62H
;LCALL EXTBLOCK1
;CLR 25H
;CLR 6FH
SZ00: MOV 71H,#00H
JB 73H, FW0 ;
;;MOV 0A6H,#1EH;;;;;;;;;;;;;
;;MOV 0A6H,#0E1H;;;;;;;;;;;;;;
LCALL REDS2
;;;;;;;;;LCALL REDS1;;;;;;;;;;;;;;;;;;;;;;;
MOV 78H,62H
MOV 79H,61H
MOV 7AH,60H
JNB 67H, SZ02
;JNB 6BH, SZ01
LCALL EXTBLOCK3
LJMP SZ03
SZ01: ;LCALL EXTBLOCK5
LJMP SZ03
SZ02: LCALL EXTBLOCK1
SZ03: INC 72H
MOV A,72H
CJNE A,#02H, FW0
MOV 72H,#00H
JB 2FH, FW0
MOV A,61H
CJNE A,31H, SZ05
LJMP SZ5
SZ05: MOV 31H,61H
MOV R0,7DH ;R0值記憶
SZ0: MOV 7DH,R0 ;R0值保存
MOV XmtD,R0
LCALL RD_B
MOV A,RcvD
CJNE A,62H, SZ2
MOV A,R0
ADD A,#80H
MOV R0,A
SZ1: MOV A,@R0
CJNE A,61H, SZ2
CLR 58H
CLR 5AH ;輸出標志位
MOV 5BH,#7DH ;指示燈設置
LJMP SZ5
FW0: LJMP FW
SZ2: MOV R0,7DH ;R0值還原
INC R0
;MOV 0A6H,#1EH;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;MOV 0A6H,#0E1H;;;;;;;;;;;;;;;;;;;;;;;;;;;
DJNZ 7FH, SZ0
MOV 7DH,#00H
MOV 7FH,#50H;;;70H;;;時間點個數
;;;LJMP SZ5
SZ3: ;;;INC R0
;;;DJNZ 7FH, SZ1
;;;MOV 7DH,#00H
;;;LJMP SZ5
SZ5: JB 5AH, SZ60
LJMP SZ61
SZ60: JNB 25H, SZ7
SZ61: INC 75H
MOV A,75H
CJNE A,#03H, FW;;;設置延時量
JNB P3.7, SZ62
JNB 59H, SZ62
MOV 5BH,#0FDH
MOV 76H,#00H
CLR 25H
SETB 58H
CLR 59H ;關閉輔助位
SETB 5AH ;輸出標志位
CLR 5BH ;消除第一次輔助位
SETB 5DH ;蜂鳴標志位
SZ62: INC 76H
MOV 75H,#00H
MOV A,76H
CJNE A,7EH, FW ;放水時間長度設置
MOV 22H,#03H
MOV 73H,#00H
MOV 76H,#00H
MOV 5BH,#0FDH
CLR 25H
SETB 58H
CLR 59H ;關閉輔助位
SETB 5AH ;輸出標志位
CLR 5BH ;消除第一次輔助位
SETB 5DH ;蜂鳴標志位
CLR 7EH
SZ7: INC 73H
MOV A,73H
CJNE A,#3AH, FW
MOV A,62H
CJNE A,#00H, SZ8
;;;;;SETB 2FH
SZ8: CJNE A,#05H, SZ9
;;;;;CLR 2FH
SZ9: INC 74H
MOV 73H,#00H
MOV A,74H
CJNE A,#0AH, FW ;;;;#5FH, FW
MOV 74H,#00H
LCALL REDS1
MOV A,62H
CJNE A,#00H, FW
MOV A,64H
CLR C
SUBB A,#5
JC SZA
MOV A,64H
SUBB A,#10
JNC SZA
SETB 28H ;冬夏季節變換處理標志位
SETB 29H ;季節標志位"1"為夏,"0"為冬
LJMP FW
SZA: SETB 28H ;冬夏季節變換處理標志位
CLR 29H ;季節標志位"1"為夏,"0"為冬
FW: POP PSW
POP Acc
RETI
CYKZD: PUSH Acc
PUSH PSW
ANL SCON,#0FCH
POP PSW
POP Acc
RETI
XSEND: MOV R0,#08H
XSEND1: CLR SSclk
RRC A
MOV SData,C
NOP
NOP
SETB SSclk
NOP
DJNZ R0, XSEND1
RET
T_BLOCK1: NOP
A1: INC 53H
MOV A,53H
CJNE A,#04H, B1
MOV A,52H
CLR C
SUBB A,#02H
JC C1
MOV 53H,#00H
MOV 52H,#00H
RET
B1: SUBB A,#0AH ;;;;;;;;;;;;;;;;;
JC C1;;;;;;;;;;;;;;;;;
INC 52H
MOV 53H,#00H
C1: RET
T_BLOCK2: NOP
D1: INC 55H
MOV A,55H
CJNE A,#02H, E1
MOV A,54H
CLR C
SUBB A,#03H
JC F1
MOV 55H,#01H
MOV 54H,#00H
RET
E1: SUBB A,#0AH ;;;;;;;;;;;;;;;;;
JC F1;;;;;;;;;;;;;;;;;
INC 54H
MOV 55H,#00H
F1: RET
T_BLOCK3: INC 53H
MOV A,53H
CLR C
SUBB A,#0AH
JC A3
INC 52H
MOV 53H,#00H
MOV A,52H
CLR C
SUBB A,#06H
JC A3
MOV 53H,#00H
MOV 52H,#00H
A3: RET
T_BLOCK4: NOP
H1: INC 53H
MOV A,53H
CJNE A,#03H, M1
MOV A,52H
CLR C
SUBB A,#01H
JC N1
MOV 53H,#01H
MOV 52H,#00H
RET
M1: SUBB A,#0AH ;;;;;;;;;;;;;;;;;
JC N1;;;;;;;;;;;;;;;;;
INC 52H
MOV 53H,#00H
N1: RET
T_BLOCK5: INC 55H
MOV A,55H
CLR C
SUBB A,#0AH
JC A5
INC 54H
MOV 55H,#00H
MOV A,54H
CLR C
SUBB A,#06H
JC A5
MOV 55H,#00H
MOV 54H,#00H
A5: RET
T_BLOCK6: NOP
W1: INC 55H
MOV A,55H
CJNE A,#06H, U1
MOV A,54H
CLR C
SUBB A,#02H
JC V1
MOV 55H,#00H
MOV 54H,#00H
RET
U1: SUBB A,#0AH ;;;;;;;;;;;;;;;;;
JC V1;;;;;;;;;;;;;;;;;
INC 54H
MOV 55H,#00H
V1: RET
HEX_BCDBLOCK: MOV B,#0AH
MOV A,78H
DIV AB
MOV 58H,A
MOV 55H,B
MOV B,#0AH
MOV A,58H
DIV AB
MOV 53H,A
;JZ B6
MOV 54H,B
MOV 52H,#10H;;#0FH
;MOV 53H,#16H
RET
B6: MOV 52H,#16H
MOV 53H,#16H
MOV 55H,B
RET
EXTBLOCK1: MOV A,78H
ANL A,#0F0H
SWAP A
MOV 52H,A
MOV A,78H
ANL A,#0FH
MOV 53H,A
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -