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

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

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