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

📄 rd_data.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
📖 第 1 页 / 共 3 页
字号:
;                MOV	FL_NUM,A          ;读取第6费率表底 
;		CALL	RD_ZR_FL_INT
;		CALL    RD_TO_CAL
		
;		INC     FL_NUM            ; 读取第7费率表底
;		CALL	RD_ZR_FL_INT
;		CALL    CAL_DL_SUM
		
;		INC     FL_NUM        ;读取第8费率表底
;		CALL	RD_ZR_FL_INT
;		CALL    CAL_DL_SUM
				                                               
;RD_JL_ZR_ZDL1:               
;	        CALL     RD_ZR_ZDL1
;		RET
;*****************************************
;读昨日冻结电量
;****************************************                
;EER_812:        JMP     RESET_SYS
;RD_ZR_FL_INT:	CLR	C
;		MOV	A,FL_NUM	;费率数为2,3,4,
;		SUBB	A,#2
;		JC	EER_812
;		CJNE    A,#3,RD_ZR_FL_INT1	        
;	        JMP     EER_812
	        
;RD_ZR_FL_INT1:  CJNE    A,#6,RD_ZR_FL_INT2
;RD_ZR_FL_INT3:	MOV	B,#08H
;		MUL	AB
;		ADD	A,#ZR_PFL2_INT_24
;		MOV	ADDR_24,A
;		MOV	WR_ID,#WR_2412   
;		MOV	RD_N,#5
;		CALL    RD24_DO_CHK
;		RET
		
;RD_ZR_FL_INT2:  JC     RD_ZR_FL_INT3
;                JMP    EER_812
;******************************************
;按计量方式读昨日冻结电量
; FL_NUM_BAK=2、3、4   05-11-30  LIHENG
;******************************************
;RD_JL_ZR_FL_INT:
;               CALL    CAL_TO_0
;               CALL    RD_YG_JLFS
;                MOV     A,RD_BUF0
;                CJNE    A,#11H,RD_JL_ZR_FL_INT1  ;=11 正+反
;                MOV     A,FL_NUM_BAK
;                ADD     A,#4
;                MOV	FL_NUM,A          ;读取第?费率表底                
;		CALL	RD_ZR_FL_INT
;		CALL    RD_TO_CAL       
	       						                                               
;RD_JL_ZR_FL_INT1: 
;               MOV     FL_NUM,FL_NUM_BAK                  
;		CALL	RD_ZR_FL_INT 
;		CALL    CAL_DL_SUM          	        
;		RET
;****************************************
;读昨日冻结日期
;****************************************
;RD_ZR_DAY:      MOV	ADDR_24,#ZR_DAY_24
;		MOV	WR_ID,#WR_2412   
;		MOV	RD_N,#2
;		CALL    RD24_DO_CHK
;		RET		
;****************************************
;读昨日最大需量    
;****************************************
;RD_ZR_XL:                 
;                MOV	ADDR_24,#ZR_XL_INT_24
;		MOV	WR_ID,#WR_2412   
;		MOV	RD_N,#4
;		CALL    RD24_DO_CHK
;		RET		
;****************************************
;读昨日最大需量发生时间    
;****************************************
;RD_ZR_XL_TIME:                 
;                MOV	ADDR_24,#ZR_XL_TIME_24
;		MOV	WR_ID,#WR_2412  
;		MOV	RD_N,#5
;		CALL    RD24_DO_CHK
;		RET					
;******************************************************
;读时钟系数
;******************************************************
RD_SZ:  	MOV	RD_N,#2
		MOV	ADDR_24,#SZ_24
		MOV	WR_ID,#WR_2414
		CALL    RD24_DO_CHK              
         	RET 
;******************************************************
;读停电时刻快速保存
;******************************************************
;RD_STOP_ONE:  	MOV	RD_N,#6
;		MOV	ADDR_24,#STOP_ONE_24
;		MOV	WR_ID,#WR_2410
;		CALL    RD24_DO_CHK              
;         	RET 
;******************************************************
;读停电时刻
;******************************************************
;RD_STOP_TIME:  	MOV	RD_N,#6
;                MOV     ADDR_24,A
;		MOV	WR_ID,#WR_2416
;		CALL    RD24_DO_CHK              
;         	RET 

;******************************************************
;读来电时刻
;******************************************************
;RD_OPEN_TIME:  	MOV	RD_N,#6		
;               MOV     ADDR_24,A
;		MOV	WR_ID,#WR_2416
;		CALL    RD24_DO_CHK              
;         	RET
         	
;******************************************************
;读来电时刻记录
;******************************************************
;RD_OPEN_JL:  	MOV	RD_N,#2
;		MOV	ADDR_24,#OPEN_JL_24
;		MOV	WR_ID,#WR_2416
;		CALL    RD24_DO_CHK		 		          
;         	RET 
         	       	
;******************************************************
;读停电时刻记录
;******************************************************
;RD_STOP_JL:  	MOV	RD_N,#2
;		MOV	ADDR_24,#STOP_JL_24
;		MOV	WR_ID,#WR_2416
;		CALL    RD24_DO_CHK             
;         	RET         	
	
;**************************************************************
;读循显数据项,数据放在RD_BUF0-3
;**************************************************************
RD_DIS_CRLB:   CLR      C	
               MOV      A,LCD_CTRL_B0
               ADD      A,LCD_CTRL_B1
               ADD      A,LCD_CTRL_B2
               ADD      A,#'X'
               MOV      R0,#LCD_CTRL_BX
               MOV      B,@R0
               CJNE     A,B,RD_DIS_CRLB_24
               MOV      RD_BUF0,LCD_CTRL_B0
               MOV      RD_BUF1,LCD_CTRL_B1
               MOV      RD_BUF2,LCD_CTRL_B2
               RET
	
RD_DIS_CRLB_24:	MOV	RD_N,#5
		MOV	ADDR_24,#DIS_CRLB_24
		MOV	WR_ID,#WR_2414
		CALL    RD24_DO_CHK
		JNC     DIS_CRLB_RET
		MOV     A,RD_BUF0
		JNZ     DIS_CRLB_RET1      
		MOV     A,RD_BUF1
		JNZ     DIS_CRLB_RET1
		MOV     A,RD_BUF2
		JZ      DIS_CRLB_RET

DIS_CRLB_RET1:  CLR      C	
                MOV      A,RD_BUF0
                ADD      A,RD_BUF1
                ADD      A,RD_BUF2
                ADD      A,#'X'
                MOV      R0,#LCD_CTRL_BX
                MOV      @R0,A
                RET
                           
DIS_CRLB_RET:   MOV     RD_BUF0,#0FFH      ;默认全显
                MOV     RD_BUF1,#0FFH
                MOV     RD_BUF2,#0FFH

		JMP     DIS_CRLB_RET1	

;*********************************************                
RD_VI:          MOVX    A,@DPTR          ;VI
                MOV     RD_BUF0,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF1,A
                INC     DPTR
                MOVX    A,@DPTR
                MOV     RD_BUF2,A
                MOV     A,RD_BUF0
                ADD     A,RD_BUF1
                ADD     A,#'X'               
                CJNE    A,RD_BUF2,RD_VI_RET      
		RET		
		
RD_VI_RET:      MOV    RD_BUF0,#00H
                MOV    RD_BUF1,#00H 
                RET

;******************************************
;2004.6.12  电量求和
;IN:CAL_BUF0、1、2、3,RD_BUF0、1、2、3
;OUT:CAL_BUF0,1,2,3,BUF0为低字节
;******************************************
CAL_DL_SUM:
		MOV	A,CAL_BUF0
		ADD	A,RD_BUF0
		DA	A
		MOV	CAL_BUF0,A
		MOV	A,CAL_BUF1
		ADDC	A,RD_BUF1
		DA	A
		MOV	CAL_BUF1,A
		MOV	A,CAL_BUF2
		ADDC	A,RD_BUF2
		DA	A
		MOV	CAL_BUF2,A
		MOV	A,CAL_BUF3
		ADDC	A,RD_BUF3
		DA	A
		MOV	CAL_BUF3,A
		RET
		
		
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;数据转移  05-11-30  LIHENG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;		
;RD_TO_CAL:      
;                MOV     CAL_BUF0,RD_BUF0
;                MOV     CAL_BUF1,RD_BUF1
;                MOV     CAL_BUF2,RD_BUF2
 ;               MOV     CAL_BUF3,RD_BUF3
;                RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;数据转移  05-11-30  LIHENG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;		
CAL_TO_RD:      
                MOV     RD_BUF0,CAL_BUF0
                MOV     RD_BUF1,CAL_BUF1
                MOV     RD_BUF2,CAL_BUF2
                MOV     RD_BUF3,CAL_BUF3
                RET		
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;数据清0  05-11-30  LIHENG
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CAL_TO_0:	MOV     CAL_BUF0,#0
                MOV     CAL_BUF1,#0
                MOV     CAL_BUF2,#0
                MOV     CAL_BUF3,#0
                RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;用于读有功正向和反向小数
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RD_FLOAT_ZYG:   NOP
                MOV     A,FL_NUM
                CLR     C
                SUBB    A,#5
              ;  JNC     RD_FLOAT_FYG    ;反向转移  LI  05-11-28
                MOV     A,FL_NUM
                CJNE    A,FL_NUM_JS,RD_FLT_24   ;判断所读费率时段与当前时段 
                MOV     R0,#NOW_FLOAT_ZYG      ;是否相同,相同读RAM,不同读24  
                MOV     A,@R0
                MOV     RD_BUF0,A
                ADD     A,#'X'
                MOV     B,A
                INC     R0
                MOV     A,@R0
                MOV     RD_BUF1,A
                CJNE    A,B,RD_FLT_24
                RET
                
RD_FLT_24:      NOP
                MOV     A,FL_NUM
                DEC     A
                DEC     A    ;-2
                MOV     B,#4
                MUL     AB
                ADD     A,#PFL2_FLOAT_24
                MOV     ADDR_24,A
                MOV	WR_ID,#WR_2410
		MOV	RD_N,#2
		CALL    RD24_DO_CHK

		RET  

;RD_FLOAT_FYG:   NOP
 ;               MOV     A,FL_NUM
 ;               CLR     C
;                SUBB    A,#4
;                CJNE    A,FL_NUM_JS,RD_FLT_24_F   ;判断所读费率时段与当前时段 
;                MOV     R0,#NOW_FLOAT_FYG      ;是否相同,相同读RAM,不同读24  
;                MOV     A,@R0
;                MOV     RD_BUF0,A
 ;               ADD     A,#'X'
;                MOV     B,A
;                INC     R0
;                MOV     A,@R0
;                MOV     RD_BUF1,A
;                CJNE    A,B,RD_FLT_24_F
;                RET
                
;RD_FLT_24_F:    NOP
;;               MOV     A,FL_NUM
;                CLR     C
;                SUBB    A,#6
;                MOV     B,#4
;;                MUL     AB
;                ADD     A,#PFL2_FX_FLOAT_24
;                MOV     ADDR_24,A
;                MOV	WR_ID,#WR_2410
;		MOV	RD_N,#2
;		CALL    RD24_DO_CHK
;		RET  

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;用于读无功正向和反向小数
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;RD_FLOAT_WG:    NOP
;                MOV     R0,#NOW_FLOAT_WG      ;是否相同,相同读RAM,不同读24  
;                MOV     A,@R0
;                MOV     RD_BUF0,A
;                ADD     A,#'X'
;                MOV     B,A
;                INC     R0
;                MOV     A,@R0
;                MOV     RD_BUF1,A
;                CJNE    A,B,RD_FLT_24_W
;                RET
;RD_FLT_24_W:    NOP
;                MOV     ADDR_24,#QFL_FLOAT_24
;                MOV	WR_ID,#WR_2410
;		MOV	RD_N,#2
;		CALL    RD24_DO_CHK
;		RET  

;RD_FLOAT_FX_WG: NOP
;               MOV     R0,#NOW_FLOAT_FWG      ;是否相同,相同读RAM,不同读24  
;                MOV     A,@R0
;               MOV     RD_BUF0,A
;                ADD     A,#'X'
;                MOV     B,A
;                INC     R0
;                MOV     A,@R0
;                MOV     RD_BUF1,A
;                CJNE    A,B,RD_FLT_FX_24_W
;                RET
;RD_FLT_FX_24_W: NOP
;                MOV     ADDR_24,#QFL_FLOAT_FX_24
;                MOV	WR_ID,#WR_2410
;		MOV	RD_N,#2
;		CALL    RD24_DO_CHK
;		RET  
                
                
                END

⌨️ 快捷键说明

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