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

📄 基于mcu的智能节水控制器源程序文件.asm

📁 基于8051单片机设计的智能节水控制器
💻 ASM
📖 第 1 页 / 共 3 页
字号:
         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 + -