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

📄 tj1025g.asm

📁 电压监测的源代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:
      CLR   C
      ADD   A,R7
      MOV   R7,A
      MOV   A,B
      ADDC  A,R6
      MOV   R6,A
      
      MOV   DPTR,#9000H
      CLR   C
      MOV   A,R7      
      ADD   A,DPL
      MOV   DPL,A
      MOV   A,R6
      ADDC  A,DPH
      MOV   DPH,A

      MOVX  A,@DPTR
      CJNE  A,#55H,HROR
      INC   DPTR
      MOV   R2,#55H
      MOV   B,#22 
 HROR1:MOVX A,@DPTR
      ADD  A,R2
      XCH  A,R2
      INC  DPTR
      DJNZ B,HROR1

      MOVX A,@DPTR
      CJNE A,02H,HROR
      LJMP BCC

 HROR:MOV  A,77H
      MOV  4CH,A
      MOV  A,74H
      MOV  4DH,A
      LCALL DOHOUR       

      LJMP   BCC              ;跳到主循环
;===================================
  MKT:MOV   R0,#30H                
      MOV   A,#80H         
 MKT1:MOV   @R0,A                 
      INC   R0             
      CJNE  R0,#50H,MKT1    
      RET
;===================================
 MRSB:LCALL WADOG
      MOV   R7,#00H
  MRB:MOV   R0,#30H        
      MOV   R1,#00H
      MOV   DPL,#00H
 MRB1:MOV   A,1AH
      MOV   DPH,A

      MOV   A,R7                  
      ADD   A,DPH
      XCH   A,DPH
      
      MOV   A,#24       
      MOV   B,R1                    
      MUL   AB            
      MOV   DPL,A
      MOV   A,B
      ADD   A,DPH
      MOV   DPH,A

      MOVX  A,@DPTR      
      CJNE  A,#55H,MRB3             
      INC   DPTR                        
            
      MOV   R6,#55H              
      MOV   R2,#22                
 MRB2:MOVX  A,@DPTR                      
      ADD   A,R6                  
      MOV   R6,A
      INC   DPTR
      DJNZ  R2,MRB2                           
      
      MOVX  A,@DPTR              
      CJNE  A,06H,MRB3              
      
      MOV   @R0,07H     
 MRB3:INC   R0                     
      INC   R1             
      CJNE  R1,#20H,MRB1   
      MOV   A,R7           
      ADD   A,#08H         
      MOV   R7,A
      CJNE  R7,#10H,MRB
      RET
;========================================
 JCLD:MOV   1AH,#82H
      MOV   1BH,#08H

      MOV   7AH,#00H
      MOV   7BH,#30H
 MTDK:MOV   R0,7BH
      MOV   A,@R0
      JNB   ACC.7,MTD1     
      MOV   A,77H
      LCALL BCH1
      DEC   A
      MOV   B,A
      MOV   A,7AH
      CJNE  A,B,MTD0
      LCALL COPE           
      MOV   B,7AH                         
      LCALL RECV                      
      LJMP  MTD2
 MTD0:MOV   B,7AH
      LCALL SEAA            
      LJMP  MTD2
 MTD1:PUSH  ACC
      MOV   A,7AH
      MOV   B,A
      POP   ACC
      LCALL COPD          
      MOV   B,7AH
      LCALL RECV           
 MTD2:INC   7AH
      INC   7BH
      MOV   A,7AH
      CJNE  A,#20H,MTDK
      RET
;=====================================
 JLLD:MOV   1AH,#85H
      MOV   1BH,#08H
      
      MOV   7AH,#00H
      MOV   7BH,#30H
 MLD0:MOV   R0,7BH
      MOV   A,@R0
      JNB   ACC.7,MLD1   
      MOV   B,7AH
      LCALL SEAA
      LJMP  MLD2
 MLD1:PUSH  ACC
      MOV   A,7AH
      MOV   B,A
      POP   ACC
      LCALL COPD        
      MOV   A,7AH
      MOV   B,A
      LCALL RECV                      
 MLD2:INC   7AH
      INC   7BH
      MOV   A,7AH
      CJNE  A,#20H,MLD0
      RET
;========================================
 SALD:NOP                
 SAL1:PUSH  B              
      LCALL SEAA                   
      POP   B              
      djnz  b,sal1           
      RET
;========================================
  BCC:MOV   DPTR,#0F500H            
      PUSH  DPH            
      PUSH  DPL                   
      MOV   DPTR,#FDDB     
      MOV   R6,DPH                
      MOV   R7,DPL         
      MOV   B,#30H                
 BCC1:CLR   A              
      MOV   DPH,R6               
      MOV   DPL,R7         
      MOVC  A,@A+DPTR           
      INC   DPTR           
      MOV   R6,DPH                
      MOV   R7,DPL         
      POP   DPL                  
      POP   DPH      
      lcall wrda
      INC   DPTR           
      PUSH  DPH                   
      PUSH  DPL            
      DJNZ  B,BCC1                
      POP   DPL            
      POP   DPH                   
;******************************************
;     主循环体
;******************************************
  CHR:CLR   A
      MOV   B,#70H
      MOV   R0,#10H
 CHR1:MOV   @R0,A
      INC   R0
      DJNZ  B,CHR1
;-------------------------
      LCALL SEDB            ;装载仪表参数
;-------------------------
      SETB  P1.1           
      SETB  P1.2           
      SETB  P1.3                  
      MOV   65H,#0FFH
      SETB  EX0
      SETB  EA 
ST10: LCALL WADOG                  
       JNB    7EH,ST10         
       CLR    7EH                    
 ST11: LCALL WADOG          
       JNB    7EH,ST11         
       CLR    7EH            
 ST12: LCALL WADOG                  
       JNB    7EH,ST12         
       LCALL  CAUP
       SETB   ET2        ;打开显示
       LCALL  SET2       ;URAT 9600  1.8.N.1   
       
 ST31: LCALL  WADOG
       JNB    7EH,ST32
       LCALL  CAUP                    
;------------------------
 ST32: MOV    A,7FH      
       CLR    C             
       SUBB   A,#04H          
       JNC    ST33                   
       LCALL  DSPP       ;显示当前电压和时间          
       LJMP   ST37       
 ST33: MOV    A,7FH          
       CLR    C                    
       SUBB   A,#20H       
       JC     ST36
       MOV   A,7FH
       CLR   C
       SUBB  A,#0A0H
       JC    ST35
       LCALL DSOF        ; 显示断电数据        
       LJMP  ST37
 ST35: LCALL  SEKY       ; 显示统计数据  
       LJMP   ST37
 ST36: LCALL  SETY         
       LJMP   ST31
;----------------------------
 ST37: JB     XT_G,ST38
       JB     SBUD_G,ST39
       JB     OR_G, ST3A      
       LJMP   ST31
;******************************************
;      心跳启动(10。28 心跳由仪表发出)
;******************************************
  ST38:LCALL  WADOG
       LCALL  XTDA
       MOV    0EH,#00H
       MOV    0FH,#1CH
       LCALL  FSTJ
       CLR    XT_G
       LJMP   ST31
;******************************************
;      上报超上限超下限数据
;******************************************
 ST39: LCALL  WADOG
       LCALL  FSBJ
       CLR    SBUD_G
;--------------------------
;      过程处理(接收响应)
;--------------------------
       LJMP   ST31
;==========================================               
  ST3A:LCALL  WADOG
       LCALL  GPRS_PROG  
       CLR    OR_G
       LJMP   ST31
;******************************************
;      GPRS 通讯程序 
;******************************************
 GPRS_PROG: LCALL   WADOG
            LJMP    GSPR0                 ;调试程序时使用,调试完毕删除
 ;-----------------------------------
            LCALL  CKAD
            JB     OR_OK,GPR0             ;数据校验和正确                    
            LJMP   GSPR9
       GPR0:LCALL  CKMA
            JB     MA_OK,GPR1             ;通讯密码正确
            LJMP   GSPR9
       GPR1:LCALL  CKTD
            JB     TD_OK,GSPR0            ;时延正确
            LJMP   GSPR9
 ;-----------------------------------           
      GSPR0:LCALL JXGN                    ;解析应用层功能码
           
            JNB   01H,GSPR1          
            SETB  XT_XY                   ;心跳响应(主站)
            LJMP  GSPR9
      GSPR1:JNB   02H,GSPR2
            LCALL CSSZ                    ;参数设置        
            LJMP  GSPR9                   
      GSPR2:JNB   03H,GSPR3
            LCALL CSCX                    ;查询参数         
            LJMP  GSPR9                   
      GSPR3:JNB   04H,GSPR4
            LCALL QQLS                    ;请求历史类统计数据  
            LJMP  GSPR9                   
      GSPR4:JNB   05H,GSPR5
            LCALL QQSJ                    ;请求断电数据
            LJMP  GSPR9                                      
      GSPR5:JNB   06H,GSPR6
            SETB  SBUD_XY                 ;超限响应(主站)
            LJMP  GSPR9
      GSPR6:JNB   07H,GSPR7
            SETB  SBOF_XY                 ;断电响应(主站)
            LJMP  GSPR9
      GSPR7:JNB   12H,GSPR8
            SETB  GPRS_XY
            LJMP  GSPR9  
      GSPR8:JNB   13H,GSPR9
            LCALL CXGPRS
            LJMP  GSPR9
            
      GSPR9:CLR   OR_G
                                      
      EGSPR:RET
;==========================================                        
;           解析应用层功能码
;      使用 RAM: 20H21H  BIT:00H--0FH
;                22H23H      10H--1FH
;           仪表与主站通讯标志
;     功能码                位地址
;     81H 心跳检查          01H
;     82H 参数设置          02H
;     83H 查询参数          03H
;     84H 请求历史类数据    04H
;     85H 请求事件数据      05H
;     86H 主动上报超限数据  06H
;     87H 主动上报断电数据  07H        
;           
;     数据存放:0F80CH
;==========================================
   JXGN:LCALL WADOG
        MOV   20H,#00H      ;00H--07H
        MOV   21H,#00H      ;08H--0FH
        MOV   22H,#00H      ;10H--17H
        MOV   23H,#00H      ;18H--1FH
        
        MOV   DPTR,#0F800H
        MOVX  A,@DPTR
        CJNE  A,#78H,COD0
        LJMP  COD7  
   COD0:MOV   DPTR,#0F80CH
        MOVX  A,@DPTR
        CJNE  A,#81H,COD1
        SETB  01H       
        LJMP  EXGN
   COD1:CJNE  A,#82H,COD2
        SETB  02H        
        LJMP  EXGN
   COD2:CJNE  A,#83H,COD3
        SETB  03H      
        LJMP  EXGN
   COD3:CJNE  A,#84H,COD4
        SETB  04H
        LJMP  EXGN
   COD4:CJNE  A,#85H,COD5
        SETB  05H
        LJMP  EXGN
   COD5:CJNE  A,#86H,COD6
        SETB  06H
        LJMP  EXGN
   COD6:CJNE  A,#87H,COD60
        SETB  07H
  COD60:LJMP  EXGN
;------------------------        
   COD7:MOV   DPTR,#0F80CH
        MOVX  A,@DPTR
        CJNE  A,#81H,COD8
        SETB  11H       
        LJMP  EXGN     
   COD8:CJNE  A,#82H,COD9
        SETB  12H     
        LJMP  EXGN   
   COD9:CJNE  A,#83H,EXGN
        SETB  13H     
      
   EXGN:RET
;==========================================
;     发送断电类数据
;使用RAM 08H       断电总次数 
;        09H       发送次数
;        0AH       
;        0BH0CH  (数据标识单元标识+数据)总和长度
;        0DH       每个(数据标识单元标识+数据)长度
;        0EH0FH    发送数据长度
;        10H-15H   数据标识单元数据    
;使用位地址:
;==========================================
   QQSJ:MOV   DPTR,#0F812H       
        MOVX  A,@DPTR            
        MOV   0AH,A              ;请求开始年
        MOV   DPTR,#0F813H 
        MOVX  A,@DPTR
        MOV   0BH,A              ;请求开始月 
        MOV   DPTR,#0F814H
        MOVX  A,@DPTR
        MOV   0CH,A              ;请求终止年
        MOV   DPTR,#0F815H
        MOVX  A,@DPTR
        MOV   0DH,A              ;请求终止月
;------------------------------        
        MOV   08H,#00H
        MOV   09H,#00H
;------------------------------ 
 SQDR:  MOV   DPTR,#0E000H
 
        MOV   A,09H
        MOV   B,#10H
        MUL   AB
        
        CLR   C
        ADD   A,DPL
        MOV   DPL,A
        MOV   A,B
        ADDC  A,DPH
        MOV   DPH,A 
        INC   DPTR                ;55 XXXXXX XXXXXX
               
        MOV   10H,DPH
        MOV   11H,DPL     
        
        
        MOVX  A,@DPTR             ; 年
        MOV   0EH,A
        INC   DPTR
        MOVX  A,@DPTR             ;月
        MOV   0FH,A
;--------------------------------------        
;      2005.4----2006.1
;--------------------------------------
        CLR   C
        MOV   A,0FH
        SUBB  A,0BH
        MOV   A,0EH
        SUBB  A,0AH
        JC    SQDD4               ;< 开始年月
        
        CLR   C 
        MOV   A,0DH
        SUBB  A,0FH
        MOV   A,0CH
        SUBB  A,0EH
        JC    SQDD4               ;>结束年月
        LJMP  SQDD5        
;-------------------------------
;       检索 下一条
;-------------------------------        
 SQDD4: MOV   A,09H
        ADD   A,#01H
        MOV   09H,A
        MOV   B,A
        MOV   DPTR,#007FH
        MOVX  A,@DPTR
        CJNE  A,B,SQDD6
        LJMP  SQDS
 SQDD6: LJMP  SQDR
;------------------------------
;       装配数据
;------------------------------                 
 SQDD5: LCALL LOADSJ                
        MOV   A,08H
        ADD   A,#01H
        MOV   08H,A
        LJMP  SQDD4         
;------------------------------
;       检索结束
;------------------------------        
 SQDS:  MOV   DPTR,#0F900H
        MOV   A,#68H
        LCALL WRDA
        
        MOV   A,08H
        MOV   B,#12
        MUL   AB

        CLR   C
        ADD   A,#18
        MOV   11H,A
        MOV   A,B
        ADDC  A,#00H
        MOV   10H,A
        
        CLR    C
        MOV    A,11H             
        RLC    A
        MOV    11H,A
        MOV    A,10H
        RLC    A
        MOV    10H,A
           
        CLR    C
        MOV    A,11H
        RLC    A
        MOV    11H,A
        MOV    A,10H
        RLC    A
        MOV    10H,A
        
        MOV    DPTR,#0F901H
        MOV    A,10H
        LCALL  WRDA
        INC    DPTR
        MOV    A,11H
        LCALL  WRDA
        INC    DPTR
        MOV    A,10H
        LCALL  WRDA
        INC    DPTR
        MOV    A,11H
        LCALL  WRDA
;----------------------------
     MOV    DPTR,#0F905H
     MOV    A,#68H             ;文件头 68H
     LCALL  WRDA
;----------------------------     
     MOV    DPTR,#0F906H
     MOV    A,#8FH             ;控制域C
     LCALL  WRDA
;----------------------------     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -