📄 zdcs-080816.lst
字号:
A51 MACRO ASSEMBLER ZDCS_080816 08/26/2008 01:24:54 PAGE 1
MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN ZDCS-080816.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE ZDCS-080816.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
1 ;定义:
2 ;P1.0:抽水机马达驱动控制端, "1"为停止,"0"为驱动.
3 ;P1.2(LED2/红):P1.2=>水位异常指示, 水位异常时灯号0.3S周期交替闪亮/ 等待检测状态时---->恒亮
4 ;P1.3(LED3/绿):P1.3=>抽水时灯恒亮/水满时--->0.3S周期闪亮
5 ;LED5: 电源指示灯
6 ;P3.0:P3.0=> 水位检测,水位已到为高电平输入。
7 ;P3.1:水满检测,水满时,P3.1输入为高电位。
8 ;P3.2:程序模式切换路线输入,"0""1"分别切换不同控制程序。
9 ;P3.3:出水口是否有水检测,有水为"1",无水为"0"
10 ;P3.4:预留功能输入检测口。
11
0000 12 ORG 0000H
0000 0130 13 AJMP START
14
0030 15 ORG 0030H
0030 16 START:
0030 7590FF 17 MOV P1,#0FFH
0033 75B0FF 18 MOV P3,#0FFH ;初始化设置,P1,P3口全置高.
19
0036 20 MAIN:
0036 00 21 NOP
0037 00 22 NOP
0038 00 23 NOP
0039 00 24 NOP
003A 30B015 25 JNB P3.0, A0 ;是否缺水(P3.0为低), 若缺水转A0处.
003D 00 26 NOP
003E 00 27 NOP
003F 00 28 NOP
0040 20B165 29 JB P3.1, A1 ;是否水满,若水满,则转A1处
0043 00 30 NOP
0044 00 31 NOP
0045 30B308 32 JNB P3.3 , A8; 若检测到出水口没水(P3.3=0),转出水口异常处理程序A3(A8)
0048 0136 33 AJMP MAIN
004A 00 34 NOP ;PC出错处理
004B 00 35 NOP
004C 00 36 NOP
004D 020030 37 LJMP START
38
0050 01D4 39 A8: AJMP A3
40
41 ;---------------------------------------
42 ;缺水处理程序
0052 43 A0:
0052 311B 44 ACALL DELAY100MS
0054 20B04F 45 JB P3.0, A5
0057 7590F6 46 MOV P1,#11110110B ;打开抽水马达电源及抽水指示灯.
005A 3132 47 ACALL DELAY1M ; 延时1分钟.
005C 20B047 48 JB P3.0, A5
005F 3132 49 ACALL DELAY1M ; 延时1分钟.
0061 20B042 50 JB P3.0, A5
0064 3132 51 ACALL DELAY1M ; 延时1分钟.
0066 20B03D 52 JB P3.0, A5
0069 3132 53 ACALL DELAY1M ; 延时1分钟.
006B 20B038 54 JB P3.0, A5 ;如果检测到水位(P3.0=1),转MAIN.
006E 20B335 55 JB P3.3, A5 ;如果水位未到(P3.0=0),但检测到出水口有水,也转到MAIN.
0071 3124 56 ACALL DELAY300MS ;延时0.3S
0073 20B330 57 JB P3.3, A5 ;检测出水口有水(P3.3=1),转到Main
0076 311B 58 ACALL DELAY100MS
A51 MACRO ASSEMBLER ZDCS_080816 08/26/2008 01:24:54 PAGE 2
0078 20B02B 59 JB P3.0, A5 ;检测检测水位有水(P3.0=1),转到Main
007B 20B328 60 JB P3.3, A5 ;检测出水口有水(P3.3=1),转到Main
007E 7590FB 61 MOV P1,#11111011B ;关闭抽水机,水位异常LED2恒亮报敬.
0081 30B215 62 JNB P3.2, A6 ;如果跳线JP1插Pin2_3(P3.2=0),跳转到A6.
0084 3139 63 ACALL DELAY1H; 如果跳线JP1插Pin1_2(P3.2=1),延时一个小时.
0086 3139 64 ACALL DELAY1H; 再延时一个小时
0088 3139 65 ACALL DELAY1H; 再延时一个小时
008A 7590F6 66 MOV P1,#11110110B ;再次打开抽水马达电源及抽水指示灯.
008D 3132 67 ACALL DELAY1M; 延时1Min
008F 3132 68 ACALL DELAY1M; 再延时1Min
0091 20B312 69 JB P3.3, A5 ; 如出水口有水,转到MAIN.
0094 3124 70 ACALL DELAY300ms; 延时0.3S
0096 20B30D 71 JB P3.3, A5 ; 如出水口有水,转到MAIN.
72
0099 73 A6:
0099 7590FF 74 MOV P1,#0FFH ;关闭P1口(即关闭马达与指示灯)
009C 75 CG2:
009C C292 76 CLR P1.2 ; 水位异常指示灯闪亮,进入死循环
009E 3124 77 ACALL DELAY300ms
00A0 D292 78 SETB P1.2
00A2 3124 79 ACALL DELAY300ms
00A4 019C 80 AJMP CG2
00A6 81 A5:
00A6 0136 82 AJMP MAIN
83
84 ;---------------------------------------
85 ;水满处理程序
00A8 86 A1:
00A8 311B 87 ACALL DELAY100MS
00AA 30B125 88 JNB P3.1, A9 ;如果水还没满,,转MAIN
00AD 312B 89 ACALL DELAY10s ; 检测到水满后,再抽水10秒,以保持稳定状态
00AF 7590FF 90 MOV P1,#0FFH ;
00B2 91 CG3:
00B2 C293 92 CLR P1.3 ; 水满指示灯(LED3)闪亮。
00B4 3124 93 ACALL DELAY300MS
00B6 B293 94 CPL P1.3
00B8 3124 95 ACALL DELAY300MS
00BA 30B102 96 JNB P3.1, nofill ; 如果用了水(水不满了),跳出循环转MAIN
00BD 01B2 97 AJMP CG3
98
00BF 99 nofill:
00BF C293 100 CLR P1.3 ; 水满指示灯(LED3)闪亮。
00C1 3124 101 ACALL DELAY300MS
00C3 B293 102 CPL P1.3
00C5 3124 103 ACALL DELAY300MS
00C7 3124 104 ACALL DELAY300MS
00C9 3124 105 ACALL DELAY300MS
00CB 3124 106 ACALL DELAY300MS
00CD 30B002 107 JNB P3.0, A9
00D0 01BF 108 AJMP nofill
109
00D2 0136 110 A9: AJMP MAIN
111
112 ;---------------------------------------------
113 ;出水口没水异常处理程序
00D4 114 A3:
00D4 311B 115 ACALL DELAY100MS
00D6 00 116 NOP
00D7 20B33F 117 JB P3.3 , A4 ;如检测到出水口有水,再转到MAIN.
00DA 311B 118 ACALL DELAY100MS
00DC 00 119 NOP
00DD 20B339 120 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
00E0 3124 121 ACALL DELAY300ms
00E2 00 122 NOP
00E3 20B333 123 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
00E6 312B 124 ACALL DELAY10s ; 延时10S
A51 MACRO ASSEMBLER ZDCS_080816 08/26/2008 01:24:54 PAGE 3
00E8 00 125 NOP
00E9 20B32D 126 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
00EC 3124 127 ACALL DELAY300ms
00EE 00 128 NOP
00EF 20B327 129 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
00F2 312B 130 ACALL DELAY10s ; 延时10S
00F4 20B322 131 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
00F7 3124 132 ACALL DELAY300ms
00F9 00 133 NOP
00FA 20B31C 134 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
00FD 3124 135 ACALL DELAY300ms
00FF 00 136 NOP
0100 20B316 137 JB P3.3, A4 ;如检测到出水口有水,再转到MAIN.
0103 00 138 NOP
0104 7590FF 139 MOV P1, #0FFH ;关闭抽水机及抽水指示灯,并打开水位异常报警LED.
0107 140 CG4:
0107 B292 141 CPL P1.2
0109 C293 142 CLR P1.3
010B 3124 143 ACALL DELAY300MS
010D C292 144 CLR P1.2
010F B293 145 CPL P1.3
0111 3124 146 ACALL DELAY300MS
0113 30B003 147 JNB P3.0, A4 ; 如缺水,转到MAIN
0116 2107 148 AJMP CG4
149
0118 00 150 NOP
0119 151 A4:
0119 0136 152 AJMP MAIN ; 跳转MAIN.
153 ;----------------------------------------------
154
011B 155 DELAY100ms: ; 100ms延时程序
011B 79F9 156 MOV R1,#249
011D 7AC8 157 D1: MOV R2,#200
011F DAFE 158 D2: DJNZ R2,D2
0121 D9FA 159 DJNZ R1,D1
0123 22 160 RET
161
0124 162 DELAY300ms: ;300ms延时子程序
0124 7B03 163 MOV R3,#3
0126 311B 164 D3: ACALL DELAY100ms
0128 DBFC 165 DJNZ R3, D3
012A 22 166 RET
167
012B 168 DELAY10s: ;10S延时子程序
012B 7C63 169 MOV R4,#99
012D 311B 170 D4: ACALL DELAY100ms
012F DCFC 171 DJNZ R4, D4
0131 22 172 RET
173
0132 174 DELAY1M: ;1min延时子程序
0132 7D06 175 MOV R5,#6
0134 312B 176 D5: ACALL DELAY10S
0136 DDFC 177 DJNZ R5, D5
0138 22 178 RET
179
0139 180 DELAY1H: ;1H延时子程序
0139 7E3B 181 MOV R6,#59
013B 3132 182 D6: ACALL DELAY1M
013D DEFC 183 DJNZ R6, D6
013F 22 184 RET
185
186 END
A51 MACRO ASSEMBLER ZDCS_080816 08/26/2008 01:24:54 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
A0 . . . . . . . . C ADDR 0052H A
A1 . . . . . . . . C ADDR 00A8H A
A3 . . . . . . . . C ADDR 00D4H A
A4 . . . . . . . . C ADDR 0119H A
A5 . . . . . . . . C ADDR 00A6H A
A6 . . . . . . . . C ADDR 0099H A
A8 . . . . . . . . C ADDR 0050H A
A9 . . . . . . . . C ADDR 00D2H A
CG2. . . . . . . . C ADDR 009CH A
CG3. . . . . . . . C ADDR 00B2H A
CG4. . . . . . . . C ADDR 0107H A
D1 . . . . . . . . C ADDR 011DH A
D2 . . . . . . . . C ADDR 011FH A
D3 . . . . . . . . C ADDR 0126H A
D4 . . . . . . . . C ADDR 012DH A
D5 . . . . . . . . C ADDR 0134H A
D6 . . . . . . . . C ADDR 013BH A
DELAY100MS . . . . C ADDR 011BH A
DELAY10S . . . . . C ADDR 012BH A
DELAY1H. . . . . . C ADDR 0139H A
DELAY1M. . . . . . C ADDR 0132H A
DELAY300MS . . . . C ADDR 0124H A
MAIN . . . . . . . C ADDR 0036H A
NOFILL . . . . . . C ADDR 00BFH A
P1 . . . . . . . . D ADDR 0090H A
P3 . . . . . . . . D ADDR 00B0H A
START. . . . . . . C ADDR 0030H A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -