?? 基于mcu的智能節水控制器源程序文件.asm
字號:
;智能節水控制器
SEC DATA 60H ;秒寄存器
MIN DATA 61H ;分寄存器
HR DATA 62H ;時寄存器
DAET DATA 63H ;日期寄存器
MONTH DATA 64H ;月寄存器
DAY DATA 65H ;星期寄存器
YEAR DATA 66H ;年寄存器
XmtDat DATA 68H ;發送數據緩沖器
RcvDat DATA 69H ;接收數據緩沖器
COMP0 DATA 6AH ;小時比較輔助寄存器
COMP1 DATA 6BH ;小時比較輔助寄存器
COMP2 DATA 6CH ;小時比較輔助寄存器
Work DATA 6DH ;工作輔助寄存器
SCLK BIT P2.0 ;時鐘控制端口
SDAI_O BIT P2.1 ;數據輸入輸出
RST BIT P2.2 ;復位
SCK BIT P0.5 ;時鐘控制
SI BIT P0.6 ;數據輸入
SO BIT P0.2 ;數據輸出
CS BIT P0.1 ;片選
XmtD DATA 6EH ;發送數據緩沖器
RcvD DATA 6FH ;接收數據緩沖器
SSclk BIT P2.4 ;顯示時鐘控制輸出
SData BIT P2.3 ;顯示數據串行輸出
ORG 0000H
AJMP INIT_0
ORG 000BH
LJMP T0ZD
ORG 001BH
LJMP T1ZD
ORG 0023H
LJMP CYKZD
ORG 002BH
LJMP T2ZD
ORG 0050H
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH
DB 7CH ;;H
DB 0F8H;;P
DB 2CH;;;n
DB 6CH;;;h
DB 5DH ;;y
DB 3DH ;;d
;DB 75H ;;U
;DB 0E9H;;E
DB 00H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;10
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;20
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;30
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;40
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;50
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;60
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;70
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;80
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;90
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;100
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;110
DB 0F5H
DB 14H
DB 0B9H
DB 9DH
DB 5CH
DB 0CDH
DB 0EDH
DB 94H
DB 0FDH
DB 0DDH;90
DB 7CH ;;H
DB 0F8H;;P
DB 2CH;;;n
DB 6CH;;;h
DB 0F4H
DB 0FCH;;A
DB 75H ;;U
DB 0E9H;;E
DB 00H
ORG 00F0H
INIT_0: MOV 22H,#02H
MOV 24H,#00H
MOV 25H,#00H
MOV 2AH,#00H
MOV 2BH,#6DH
MOV 2CH,#00H
MOV 2DH,#08H
MOV 2EH,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#05H
MOV 34H,#06H
MOV 35H,#06H
MOV 50H,#00H
MOV 51H,#0AH
MOV 52H,#00H
MOV 53H,#00H
MOV 56H,#00H
MOV 58H,#01H
MOV 59H,#01H
MOV 5AH,#00H
MOV 5BH,#0FDH
MOV 5CH,#0FH
MOV 5DH,#1EH
MOV 5EH,#00H;465
MOV 60H,#00H
MOV 61H,#57H
MOV 62H,#23H
MOV 63H,#30H
MOV 64H,#09H
MOV 65H,#04H
MOV 66H,#06H
MOV 67H,#6FH
MOV 70H,#03H
MOV 71H,#00H
MOV 72H,#00H
MOV 73H,#00H
MOV 74H,#00H
MOV 75H,#00H
MOV 76H,#00H
MOV 7DH,#00H
MOV 7EH,#78H;;;;;;5FH;;;;#1CH
MOV 7FH,#50H;;;;;;70H;;;時間點個數初置
;;;;LCALL WRDS0;;;;;;;;;;;;;;;;;;;;
;;;;LCALL WRDS;;;;;;;;;;;;;;;;;;;;;;;;
MOV R5,#00H
MOV R6,#18H
MOV R7,#35H
LCALL REDS2
LCALL REDS1
LCALL REDS2
MOV A,64H
CLR C
SUBB A,#5
JC INIT_1
MOV A,64H
SUBB A,#10
JNC INIT_1
SETB 29H ;季節標志位"1"為夏,"0"為冬
LJMP INIT_10
INIT_1: CLR 29H ;季節標志位"1"為夏,"0"為冬
INIT_10: LCALL WR_SR
LJMP INLOOP0;;;;;;;;;;
READ_R1: CLR IE.7
MOV R0,#00H
MOV R1,#00H
MOV R2,#50H;;;;;;#70H;;;;;;;;;;時間點個數初置
JNB 29H, READ10
MOV DPH,#15H
MOV DPL,#80H
LJMP READ1
READ10: MOV DPH,#18H
MOV DPL,#80H
READ1: MOV A,R1
MOVC A,@A+DPTR
;;;;MOV @R0,A
MOV XmtD,R0
MOV RcvD,A
LCALL WR_B
INC R0
INC R1
LCALL WD_RST
DJNZ R2, READ1
READ_R2: MOV R0,#80H
MOV R1,#00H
MOV R2,#50H;;;;;;#70H;;;;;;;;;;時間點個數初置
JNB 29H, READ20
MOV DPH,#16H
MOV DPL,#00H
LJMP READ2
READ20: MOV DPH,#19H
MOV DPL,#00H
READ2: MOV A,R1
MOVC A,@A+DPTR
;;;;MOV @R0,A
MOV XmtD,R0
MOV RcvD,A
LCALL WR_B
INC R0
INC R1
LCALL WD_RST
DJNZ R2, READ2
MOV XmtD,#0FEH
MOV RcvD,#78H;;;;;;;;5FH;;;;;#1CH
LCALL WR_B
INLOOP0: ;;;;;;LCALL WRDS0;;;;;;;;;;
;;;;;;LCALL WRDS;;;;;;;;;;;
READ_R0: MOV R0,#80H
MOV R2,#50H;;;;;;#70H;;;;;;;;;;;時間點個數
READ: MOV XmtD,R0
LCALL RD_B
MOV @R0,RcvD
INC R0
LCALL WD_RST
DJNZ R2, READ
;MOV XmtD,#50H
;LCALL RD_B
;MOV 24H,RcvD ;時間修正狀態記憶
MOV XmtD,#0FEH
LCALL RD_B
MOV 7EH,RcvD
LCALL WD_RST
INIT_2: MOV TCON,#00H
MOV TMOD,#11H
MOV 0C8H,#04H
MOV 0CAH,#0B4H
MOV 0CBH,#3CH
MOV 0CCH,#0B4H
MOV 0CDH,#3CH
MOV SCON,#00H
MOV IE,#0BAH
;LCALL EXTBLOCK1
CLR 25H
SETB 58H
CLR 59H ;關閉輔助位
SETB 5AH ;輸出標志位
SETB 5BH ;消除第一次輔助位
SETB 5DH ;蜂鳴標志位
MOV 22H,#03H
MOV 2DH,#00H
MOV 2CH,#00H
MOV 2AH,#11H
MOV 2EH,#00H
MOV 51H,#0AH
MOV 5BH,#0FDH
MOV 76H,#00H
LOOP0: MOV R1,#55H;;;;#51H
MOV R2,#10H;;;;#01H
MOV R3,#05H
LOOP1: MOV DPH,#00H
MOV DPL,#50H
MOV A,@R1
MOVC A,@A+DPTR
JNB 6FH, LOOP2
ADD A,#02H
LOOP2: LCALL XSEND ;送段碼數據
MOV A,R2
JNB 55H, SSCL
JNB 50H, SSCL
ANL A,5AH
SSCL: LCALL XSEND ;送位碼數據
MOV A,5BH
LCALL XSEND ;指示燈位處理緩沖單元數據
MOV 6BH,A
MOV A,#03H
ADD A,R2
JB P3.7, A00
CLR 5FH ;水滿檢測輔助位
A00: JB 5FH, A01
JB P3.7, KJSJC0
A01: JNB P2.5, KSM00
JNB P2.6, KSM00
JNB P2.7, KSM00
;;;;;JNB P3.7, KJSJC0
CLR 5EH ;復位處理輔助位
;;;;;CLR 5FH ;水滿檢測輔助位
JNB 72H, ABC
ANL 2EH,#0BH
CLR 72H
ABC: JNB 28H, JJBWCL
CLR 28H ;冬夏季節變換處理標志位
LJMP READ_R1
JJBWCL: SETB 50H
SETB 54H
;;;;;JB 2FH, XY0
LOOP3: JNB 55H, LOOP4
;;;;;JNB 50H, LOOP4
JB 51H, XY1
JB 52H, XY2
JB 53H, XY3
JB 56H, XY6
JB 54H, XY5
LOOP4: LCALL YSCX
CLR 6FH
LOOP5: MOV A,R2
RR A;;;;;;;;;;RL A
MOV R2,A
JB 55H, LOOP7
LOOP6: CJNE A,#04H, LOOP7
JB 65H, LOOP7
SETB 6FH
LOOP7: DEC R1;;;INC R1
DJNZ R3, LOOP1
LCALL WD_RST
MOV P1,2BH ;;;;;;;;;;
MOV A,66H
CJNE A,#06H, GD
;;;;;SETB 2FH ;Pause標志位
GD: JNB 72H, GPP
JB 76H, JS
GPP: JB 2EH, FMCL
GPPP: ;JNB 26H, LOOP00
;JB 27H, SJSZ
LOOP00: LJMP LOOP0
KJSJC0: LJMP KJSJC
KSM00: LJMP KSM0
XY0: LJMP Pause
XY1: MOV 5AH,#0E7H
LJMP LOOP4
XY2: MOV 5AH,#0F9H
LJMP LOOP4
XY3: MOV 5AH,#0FBH
LJMP LOOP4
XY5: MOV 5AH,#0FEH
LJMP LOOP4
XY6: MOV 5AH,#0E1H
LJMP LOOP4
JS: DJNZ R7, GPP
CLR 76H
MOV R7,#0FH
LJMP GPP
FMCL: DJNZ R6, GPPP
MOV R6,#18H
SETB 5DH ;蜂鳴標志位
LJMP GPPP
SJSZ: MOV A,60H
CJNE A,#04H, LOOP00
MOV 60H,#00H
LCALL WRDS
;CLR 26H
;CLR 27H
;MOV XmtD,#50H
;MOV RcvD,24H ;時間修正狀態記憶
;LCALL WR_B
LJMP LOOP0
KSM0: JB 75H, LOOP30
JB 76H, LOOP30
JB 77H, KSM1
MOV TL1,#0EBH
MOV TH1,#0EEH
MOV 76H,#00H
MOV 67H,#6FH
;;;;;CLR 2FH
SETB TCON.6
SETB 2EH
CLR 5DH ;蜂鳴標志位
SETB 75H
LOOP30: LJMP LOOP3
KSM1: JB 72H, KSM2
JB 76H, LOOP30
KSM2: SETB 73H
SETB 76H
JB 2FH, LOOP30;;;;;;;;
JNB P2.5, KJSSZ0
JNB P2.6, KJSSK0
JNB P2.7, KJSGN0
;;;;;JNB P3.7, KJSJC0
CLR 73H
LJMP LOOP3
KJSSZ0: LJMP KJSSZ
KJSSK0: LJMP KJSSK
KJSGN0: JB 25H, KJSGN
SETB 7EH
DJNZ 22H, LOOP30
CLR 7AH
CLR 6AH
CLR 6BH
SETB 25H
MOV R5,#00H
MOV 22H,#02H
LJMP GNH
KJSGN: ORL 2DH,#10H
JB 6AH, GN0
JB 6BH, GN0
LJMP GPPPPP
GN0: JB 60H, DJSJ
JB 61H, SX
JB 62H, YEAR0
JB 63H, DAET0
JB 65H, SETUP
JB 67H, FM
LJMP GPPPPP
SX: LCALL TRACTBLOCK
MOV A,R5
CLR C
SUBB A,#11H
;;;;;;;;;;;DEC A;;;;;;;;;;;
MOV R0,A
;;;;;;;;;;;MOV @R0,7BH
MOV XmtD,R0
MOV RcvD,7BH;;;@R0
LCALL WR_B
MOV A,R0
ADD A,#80H
MOV R0,A
MOV @R0,7CH
MOV XmtD,R0
MOV RcvD,@R0
LCALL WR_B
LJMP GPPPPP
SETUP: MOV XmtD,#0FEH
MOV RcvD,7EH
LCALL WR_B
LJMP GPPPPP
DJSJ: LCALL TRACTBLOCK
MOV 62H,7BH
MOV 61H,7CH
LCALL WRDS
LJMP GPPPPP
FM: LCALL TRACTBLOCK
MOV 61H,7BH
MOV 60H,7CH
LCALL WRDS
LJMP GPPPPP
YEAR0: LCALL TRACTBLOCK
;;;;;MOV 66H,7BH
MOV 66H,7CH
LCALL WRDS
LJMP GPPPPP
DAET0: LCALL TRACTBLOCK
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -