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

📄 ask_zb_data.asm

📁 基于PL3000芯片的单相复费率多功能电表的应用程序。
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;************************************************************
;文档类型: 原代码 
;项目编号: 
;文档编号: 
;修订版本: v1.0
;生成日期: 2005.6.6
;文档作者: LIHENG
;审    核: 
;************************************************************
;相关文档: ZB协议处理
;文档编号      说明 
;************************************************************
;修订版本: 
;修订版本: 
;************************************************************
$INCLUDE	(RAML128.INC)
$INCLUDE	(RAMH128.INC)
$INCLUDE	(PL3200.INC)
$INCLUDE	(24ADDR.INC)
$INCLUDE	(RAM.INC)

CODE_REG	SEGMENT	CODE
RSEG		CODE_REG
PUBLIC          ZFS_DATE_TIME
PUBLIC          ZFS_MTR_RELY
PUBLIC          ZFS_MTR_REV

PUBLIC          ZFS_NOW_DL_ALL
PUBLIC          ZFS_NOW_DL234
PUBLIC          ZFS_NOW_ZDL
PUBLIC          ZFS_JL_NOW_DL_ALL
PUBLIC          ZFS_JL_NOW_DL234
PUBLIC          ZFS_JL_NOW_ZDL
PUBLIC          ZFS_NOW_W_ZDL
PUBLIC          ZFS_NOW_XL
PUBLIC          ZFS_NOW_XL_TIME

PUBLIC          ZFS_UP_MM_DL_ALL
PUBLIC          ZFS_UP_MM_DL
PUBLIC          ZFS_UP_MM_DL234
PUBLIC          ZFS_JL_UP_MM_DL_ALL
PUBLIC          ZFS_JL_UP_MM_DL
PUBLIC          ZFS_JL_UP_MM_DL234
PUBLIC          ZFS_LAST_W_ZDL
PUBLIC          ZFS_LAST_XL
PUBLIC          ZFS_LAST_XL_TIME

PUBLIC          ZFS_ZR_ZDL         ;ZB抄总电量
PUBLIC          ZFS_ZR_DL_ALL     ;ZB抄所有电量
PUBLIC          ZFS_ZR_DL234
PUBLIC          ZFS_JL_ZR_ZDL         ;ZB抄总电量
PUBLIC          ZFS_JL_ZR_DL_ALL     ;ZB抄所有电量
PUBLIC          ZFS_JL_ZR_DL234
PUBLIC          ZFS_ZR_W_ZDL
PUBLIC          ZFS_ZR_XL
PUBLIC          ZFS_ZR_XL_TIME

PUBLIC          ZFS_VA
PUBLIC          ZFS_IA
PUBLIC          ZFS_GL
;*******************************;调用子程序情况: 
EXTRN   CODE(RD_MTR_RELY) 
EXTRN   CODE(RD_REV_BCD)
EXTRN   CODE(LOOP_R1_TO_R0)


EXTRN   CODE(RD_V_A)
EXTRN   CODE(RD_I_A)

EXTRN   CODE(RD_LAST_FL_INT)
EXTRN   CODE(RD_LAST_ZDL)
EXTRN   CODE(RD_LAST_W_INT)
EXTRN   CODE(RD_LAST_XL)
EXTRN   CODE(RD_LAST_XL_TIME)

EXTRN   CODE(RD_NOW_W_INT)
EXTRN   CODE(RD_NOW_FL_INT) 
EXTRN   CODE(RD_NOW_ZDL) 
EXTRN   CODE(RD_NOW_Y_XL)
EXTRN   CODE(RD_NOW_Y_XL_TIME)

EXTRN   CODE(RD_ZR_W_INT)
EXTRN   CODE(RD_ZR_FL_INT) 
EXTRN   CODE(RD_ZR_ZDL)
EXTRN   CODE(RD_ZR_XL)
EXTRN   CODE(RD_ZR_XL_TIME)
EXTRN   CODE(RD_FLOAT_WG)
EXTRN   CODE(RD_FLOAT_ZYG)

EXTRN   CODE(RD_NOW_FL_DL)
EXTRN   CODE(RD_JL_NOW_ZDL)
EXTRN   CODE(RD_JL_NOW_FL_DL)
EXTRN   CODE(RD_JL_LAST_FL_INT)
EXTRN   CODE(RD_JL_LAST_ZDL)
EXTRN   CODE(RD_JL_ZR_FL_INT)
EXTRN   CODE(RD_JL_ZR_ZDL)

EXTRN   CODE(RD_JL_NOW_W)
EXTRN   CODE(RD_JL_LAST_W)
EXTRN   CODE(RD_JL_ZR_W)
;**************************************************************
;**ZB抄年,月,日,周,时,分,秒
;**************************************************************
;ZFS_DATE_TIME:	
;	        MOV     R0,#ZB_BUF6	
;		MOV	EXT_ADR,#81H	;读秒,时钟
;		MOV	@R0,EXT_DAT
	
;		INC     R0
;		MOV	EXT_ADR,#82H	;读分,时钟
;		MOV	@R0,EXT_DAT
		
;		INC     R0
;		MOV	EXT_ADR,#83H	;读时,时钟
;		MOV	@R0,EXT_DAT
	
;		INC     R0
;		MOV	EXT_ADR,#84H	;读周,时钟
;		MOV	@R0,EXT_DAT
	
;		INC     R0
;		MOV	EXT_ADR,#85H	;读日,时钟
;		MOV	@R0,EXT_DAT
	
;		INC     R0
;		MOV	EXT_ADR,#86H	;读月,时钟
;		MOV	@R0,EXT_DAT
	
;		INC     R0
;		MOV	EXT_ADR,#87H	;读年,时钟
;		MOV	@R0,EXT_DAT
;		RET
;**************************************************************
;ZB抄电表继电器状态,MOV TO ZB_BUF6
;**************************************************************
ZFS_MTR_RELY:
		CALL	RD_MTR_RELY
		MOV	R0,#ZB_BUF6
		MOV	A,RD_BUF0
		ANL	A,#0FH
		MOV	@R0,A
		RET		
;**************************************************************
;ZB抄当前电表常数,进行BCD CHANG 校验 MOV TO ZB_BUF6--8
;**************************************************************
ZFS_MTR_REV:
		CALL	RD_REV_BCD
ZFS_DATA_3:     MOV	R0,#ZB_BUF6 
		MOV	@R0,RD_BUF0
		INC     R0
		MOV	@R0,RD_BUF1
		INC     R0
		MOV	@R0,RD_BUF2
		RET
				
;***********************************************
;ZB读当前所有电量
;***********************************************
ZFS_NOW_DL_ALL:	NOP
		MOV     FL_NUM,FL_NUM_BAK		
		CALL	ZFS_NOW_ZDL
		
		;MOV	FL_NUM,#2         ;2004.6.12,第2费率表底
		MOV     FL_NUM,FL_NUM_BAK
		CALL	RD_NOW_FL_DL
		MOV	R0,#ZB_BUF10      ;发送数据填在ZB_BUF10、11、12、13
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		
		;MOV	FL_NUM,#3         ;2004.6.12,第3费率表底
		INC     FL_NUM
		CALL	RD_NOW_FL_DL
		MOV	R0,#ZB_BUF14      ;发送数据填在ZB_BUF14、15、16、17
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		;MOV	FL_NUM,#4         ;2004.6.12,第3费率表底
		INC     FL_NUM
		CALL	RD_NOW_FL_DL
		MOV	R0,#ZB_BUF18      ;发送数据填在ZB_BUF18、19、20、21
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET
;**************************************************************
;ZB读FL X电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_NOW_DL234:	
		MOV	FL_NUM,A          ;2004.6.12
		CALL	RD_NOW_FL_DL
ZFS_DATA_RD4:	MOV	R0,#ZB_BUF6       ;发送数据填在ZB_BUF6、7、8、9
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET		
;**************************************************************
;ZB读总电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_NOW_ZDL:;	MOV     FL_NUM_BAK,#2  
                CALL	RD_NOW_ZDL
ZFS_DATA_CAL4:  MOV	R0,#ZB_BUF6
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET		
;***********************************************
;ZB读当前所有电量
;***********************************************
ZFS_JL_NOW_DL_ALL:
          	NOP
		MOV     FL_NUM,FL_NUM_BAK		
		CALL	ZFS_JL_NOW_ZDL
		
		;MOV	FL_NUM,#2         ;2004.6.12,第2费率表底
		MOV     FL_NUM,FL_NUM_BAK
		CALL	RD_JL_NOW_FL_DL
		MOV	R0,#ZB_BUF10      ;发送数据填在ZB_BUF10、11、12、13
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		
		;MOV	FL_NUM,#3         ;2004.6.12,第3费率表底
		INC     FL_NUM_BAK
		CALL	RD_JL_NOW_FL_DL
		MOV	R0,#ZB_BUF14      ;发送数据填在ZB_BUF14、15、16、17
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		
		;MOV	FL_NUM,#4         ;2004.6.12,第3费率表底
		INC     FL_NUM_BAK
		CALL	RD_JL_NOW_FL_DL
		MOV	R0,#ZB_BUF18      ;发送数据填在ZB_BUF18、19、20、21
		MOV     R1,#CAL_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		RET
;**************************************************************
;ZB读FL X电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_JL_NOW_DL234:	
		MOV	FL_NUM_BAK,A          ;2004.6.12
		CALL	RD_JL_NOW_FL_DL
	;	MOV	R0,#ZB_BUF6       ;发送数据填在ZB_BUF6、7、8、9
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_CAL4		
;**************************************************************
;ZB读总电量,进行BCD CHANG 校验 MOV TO ZB_BUF6--9
;**************************************************************
ZFS_JL_NOW_ZDL:;	MOV     FL_NUM_BAK,#2  
                CALL	RD_JL_NOW_ZDL
	;	MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
	        JMP     ZFS_DATA_CAL4
;*************************************************
;读当前最大需量
;*************************************************
ZFS_NOW_XL:	CALL	RD_NOW_Y_XL
	        JMP     ZFS_DATA_3
;*************************************************
;读当前最大需量发生时间
;
;*************************************************
ZFS_NOW_XL_TIME:
        	CALL	RD_NOW_Y_XL_TIME
ZFS_DATA_5:    	MOV	R0,#ZB_BUF6
		MOV     R1,#RD_BUF0
		MOV     R7,#5
		CALL    LOOP_R1_TO_R0
		RET

;*************************************************
;读当前无功总电量
;*************************************************
ZFS_NOW_W_ZDL:  
                CALL    RD_JL_NOW_W
	     ;   MOV	R0,#ZB_BUF6
	;	MOV     R1,#CAL_BUF0
	;	MOV     R7,#4
	;	CALL    LOOP_R1_TO_R0
	;	RET
                JMP     ZFS_DATA_CAL4
;***********************************************
;ZB读所有电量
;***********************************************
ZFS_ZR_DL_ALL:	MOV     FL_NUM,FL_NUM_BAK		
		CALL	ZFS_ZR_ZDL
		
		MOV     FL_NUM,FL_NUM_BAK
		;MOV	FL_NUM,#2         ;2004.6.12,第2费率表底
		CALL	RD_ZR_FL_INT
		MOV	R0,#ZB_BUF10      ;发送数据填在ZB_BUF10、11、12、13
		MOV     R1,#RD_BUF0
		MOV     R7,#4
		CALL    LOOP_R1_TO_R0
		INC     FL_NUM
		;MOV	FL_NUM,#3         ;2004.6.12,第3费率表底
		CALL	RD_ZR_FL_INT

⌨️ 快捷键说明

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