⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zdcs-080816.lst

📁 基于89C2051单片机的水塔自动抽水控制器汇编源码
💻 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 + -