📄 ask_zb_data.asm
字号:
;************************************************************
;文档类型: 原代码
;项目编号:
;文档编号:
;修订版本: 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 + -