📄 save_data.asm
字号:
;************************************************************
;文档类型: 原代码
;项目编号:
;文档编号:
;修订版本: v1.0
;生成日期: 2005.6.6
;文档作者: LIHENG
;审 核:
;************************************************************
;相关文档:
;文档编号
;************************************************************
;修订版本:
;修订版本:
;************************************************************
$INCLUDE (RAML128.INC)
$INCLUDE (RAMH128.INC)
$INCLUDE (24ADDR.INC)
$INCLUDE (IO.INC)
$INCLUDE (RAM.INC)
$INCLUDE (PL3200.INC)
CODE_REG SEGMENT CODE
RSEG CODE_REG
PUBLIC SAVE_NOW_FL_INT
PUBLIC SAVE_NOW_ALL_PLS
PUBLIC SAVE_PLS_24
;PUBLIC SAVE_W_PLS_RAM_24
PUBLIC WR_MTR_RELY
;PUBLIC SAVE_NOW_W_INT
PUBLIC SAVE_SZ
PUBLIC SAVE_DIS_CRLB
;PUBLIC SAVE_OPEN_TIME
;PUBLIC SAVE_STOP_TIME
;PUBLIC SAVE_OPEN_JL
;PUBLIC SAVE_STOP_JL
;PUBLIC SAVE_STOP_ONE
PUBLIC SAVE_FL_FLOAT
;PUBLIC SAVE_W_FLOAT
;PUBLIC SAVE_NOW_FX_W_INT
;PUBLIC SAVE_FX_W_FLOAT
;*******************************;调用子程序情况:
EXTRN CODE(WR_PARA_TO_24)
EXTRN CODE(RESET_SYS)
;EXTRN CODE(RD24_DO_CHK)
;**************************************************************
;保存当前费率整数, 24C01 BCD
;IN:WR_BUF0,1,2,3; FL_NUM=2、3、4
;OUT:
;WP_CTR=#'W' AND 校验必须通过
;**************************************************************
ERR_26: JMP RESET_SYS
SAVE_NOW_FL_INT:NOP
NOP
JB WP,ERR_26
CLR C
MOV A,FL_NUM ;费率数为2,3,4
SUBB A,#2
JC ERR_26
CJNE A,#3,SAVE_NOW_FL_INT1
JMP ERR_26
SAVE_NOW_FL_INT1:CJNE A,#6,SAVE_NOW_FL_INT2
SAVE_NOW_FL_INT3:
MOV B,#08H
MUL AB
ADD A,#PFL2_INT_24
MOV ADDR_24,A
MOV WR_ID,#WR_2410
MOV WR_N,#5
MOV A,#5
ADD A,#'X'
MOV WR_N_X,A
CALL WR_PARA_TO_24
RET
SAVE_NOW_FL_INT2: JC SAVE_NOW_FL_INT3
JMP ERR_26
;**************************************************************
;保存当前费率小数, 24C01 BCD
;IN:WR_BUF0,1,2,3; FL_NUM=2、3、4
;OUT:
;WP_CTR=#'W' AND 校验必须通过
;**************************************************************
SAVE_FL_FLOAT:
NOP
NOP
JB WP,ERR_26
CLR C
MOV A,FL_NUM ;费率数为2,3,4
SUBB A,#2
JC ERR_26
CJNE A,#3,SAVE_NOW_FLOAT_Z1
JMP ERR_26
SAVE_NOW_FLOAT_Z1:CJNE A,#6,SAVE_NOW_FLOAT_Z2
SAVE_NOW_FLOAT_Z3:
MOV B,#04H
MUL AB
ADD A,#PFL2_FLOAT_24
MOV ADDR_24,A
MOV WR_ID,#WR_2410
MOV WR_N,#2
MOV A,#2
ADD A,#'X'
MOV WR_N_X,A
CALL WR_PARA_TO_24
RET
SAVE_NOW_FLOAT_Z2: JC SAVE_NOW_FLOAT_Z3
JMP ERR_26
;读24中的小数
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************************************************************
;保存当前各种需要保存的脉冲,24XX,BIN读(B)字节 掉电检测,费率转换
;IN:,WR_BUF0,1 FL_NUM=2、3、4,6、7、8
;OUT:
;**************************************************************
SAVE_NOW_ALL_PLS:
MOV R0,#NOW_PLS_RAM
MOV A,@R0
ADD A,#'X'
INC R0
XRL A,@R0
JNZ NO_SAVE
MOV R0,#NOW_PLS_RAM ;保存实际脉冲和小数12.3LI
MOV WR_BUF0,@R0
MOV @R0,#0 ;转存到WR寄存器后清零当前
INC R0
MOV WR_BUF1,@R0
MOV @R0,#0
MOV WP_CTR,#'W'
SAVE_PLS_24: MOV ADDR_24,#PFL_PLS_24
MOV WR_ID,#WR_2410
MOV WR_N,#2
MOV A,#2
ADD A,#'X'
MOV WR_N_X,A
CLR WP
CALL WR_PARA_TO_24
NO_SAVE: RET
;*****************************************
;校验无功脉冲并保存到24
;*****************************************
;SAVE_W_PLS_RAM_24:
; MOV R0,#NOW_W_PLS_RAM
; MOV A,@R0
; ADD A,#'X'
; INC R0
; XRL A,@R0
; JNZ OK_W_RET
; MOV R0,#NOW_W_PLS_RAM ;保存实际脉冲和小数12.7LI
; MOV WR_BUF0,@R0
; MOV @R0,#0 ;转存到WR寄存器后清零当前
; INC R0
; MOV WR_BUF1,@R0
; MOV @R0,#0
; MOV WP_CTR,#'W'
; MOV ADDR_24,#QFL_PLS_24
; MOV WR_ID,#WR_2410
; MOV WR_N,#2
; MOV A,#2
; ADD A,#'X'
; MOV WR_N_X,A
; CLR WP
; CALL WR_PARA_TO_24
;OK_W_RET: RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;无功小数保存
;SAVE_W_FLOAT: NOP
; MOV R0,#NOW_FLOAT_WG
; MOV A,@R0
; ADD A,#'X'
; INC R0
; XRL A,@R0
; JNZ NO_SAVE_W
; MOV R0,#NOW_FLOAT_WG
; MOV WR_BUF0,@R0
; INC R0
; MOV WR_BUF1,@R0
; MOV WP_CTR,#'W'
; MOV ADDR_24,#QFL_FLOAT_24
; MOV WR_ID,#WR_2410
; MOV WR_N,#2
; MOV A,#2
; ADD A,#'X'
; MOV WR_N_X,A
; CLR WP
; CALL WR_PARA_TO_24
;NO_SAVE_W: NOP
; RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;反相无功小数保存
;SAVE_FX_W_FLOAT:NOP
; MOV R0,#NOW_FLOAT_FWG
; MOV A,@R0
; ADD A,#'X'
; INC R0
; XRL A,@R0
; JNZ NO_SAVE_F_W
; MOV R0,#NOW_FLOAT_FWG
; MOV WR_BUF0,@R0
; INC R0
; MOV WR_BUF1,@R0
; MOV WP_CTR,#'W'
; MOV ADDR_24,#QFL_FLOAT_FX_24
; MOV WR_ID,#WR_2410
; MOV WR_N,#2
; MOV A,#2
; ADD A,#'X'
; MOV WR_N_X,A
; CLR WP
; CALL WR_PARA_TO_24
;NO_SAVE_F_W: NOP
; RET
;**************************************************************
;写继电器,进行校验 24C01 BIN 读(B)字节,
;RAM 地址R0,24C01地址R2, R4=Device ID/W WR_2402
;OPEN==5FH;CLOSE==50H ;IF ERR RELY==ON MTR_RLY
;**************************************************************
ERR_344: JMP RESET_SYS
WR_MTR_RELY: NOP
NOP
JB WP,ERR_344
MOV ADDR_24,#RLY_24
MOV WR_ID,#WR_2414
MOV WP_CTR,#'W'
MOV WR_N,#3
MOV A,#3
ADD A,#'X'
MOV WR_N_X,A
CALL WR_PARA_TO_24
SETB DO_RELY
MOV A,WR_BUF0
SETB RLY_BIT
CJNE A,#50H,RELY_ON
CLR RLY_BIT
RELY_ON: RET
;*********************************
;保存无功整数电量
;*********************************
;SAVE_NOW_W_INT:
; MOV A,FL_NUM_BAK ;FL_NUM_BAK 1=(总)正,0为反
; JZ SAVE_NOW_FX_W_INT
; MOV ADDR_24,#QFL_INT_24
; MOV WR_ID,#WR_2410
; MOV WR_N,#5
; MOV A,#5
; ADD A,#'X'
; MOV WR_N_X,A
; CALL WR_PARA_TO_24
; RET
;*********************************
;保存反相无功整数电量
;*********************************
;SAVE_NOW_FX_W_INT:
; MOV ADDR_24,#QFL_FX_INT_24
; MOV WR_ID,#WR_2410
; MOV WR_N,#5
; MOV A,#5
; ADD A,#'X'
; MOV WR_N_X,A
; CALL WR_PARA_TO_24
; RET
;******************************************************
;保存时钟系数
;******************************************************
SAVE_SZ:
CLR WP
MOV DPL,#HW_BUF6
MOVX A,@DPTR
MOV WR_BUF0,A
MOV WR_N,#2
MOV A,#2
ADD A,#'X'
MOV WR_N_X,A
MOV ADDR_24,#SZ_24
MOV WR_ID,#WR_2414
CALL WR_PARA_TO_24
RET
;**************************************************************
;红外设置循显数据项
;**************************************************************
ERR_512: JMP RESET_SYS
SAVE_DIS_CRLB: MOV A,HW_RS
CJNE A,#'h',ERR_512
CLR WP
MOV DPL,#HW_BUF6
MOVX A,@DPTR
MOV WR_BUF0,A
INC DPTR
MOVX A,@DPTR
MOV WR_BUF1,A
INC DPTR
MOVX A,@DPTR
MOV WR_BUF2,A
INC DPTR
MOVX A,@DPTR
MOV WR_BUF3,A
MOV WR_N,#5
MOV A,#5
ADD A,#'X'
MOV WR_N_X,A
MOV ADDR_24,#DIS_CRLB_24
MOV WR_ID,#WR_2414
CALL WR_PARA_TO_24
MOV R0,#LCD_CTRL_BX
MOV A,@R0
CPL A
MOV @R0,A
RET
;*********************************
;保存来电时刻
;*********************************
;SAVE_OPEN_TIME:
; MOV ADDR_24,A
; MOV WR_ID,#WR_2416
; MOV WR_N,#6
; MOV A,#6
; ADD A,#'X'
; MOV WR_N_X,A
; CALL WR_PARA_TO_24
; RET
;*********************************
;保存停电时刻
;*********************************
;SAVE_STOP_TIME:
; MOV ADDR_24,A
; MOV WR_ID,#WR_2416
; MOV WR_N,#6
; MOV A,#6
; ADD A,#'X'
; MOV WR_N_X,A
; CALL WR_PARA_TO_24
; RET
;******************************************************
;保存来电时刻记录
;******************************************************
;SAVE_OPEN_JL: MOV WR_N,#2
; MOV A,#2
; ADD A,#'X'
; MOV WR_N_X,A
; MOV ADDR_24,#OPEN_JL_24
; MOV WR_ID,#WR_2416
; CALL WR_PARA_TO_24
; RET
;******************************************************
;保存停电时刻记录
;******************************************************
;SAVE_STOP_JL: MOV WR_N,#2
; MOV A,#2
; ADD A,#'X'
; MOV WR_N_X,A
; MOV ADDR_24,#STOP_JL_24
; MOV WR_ID,#WR_2416
; CALL WR_PARA_TO_24
; RET
;*********************************
;保存停电时刻快速保存
;*********************************
;SAVE_STOP_ONE: MOV EXT_ADR,#82H ;读分,时钟
; MOV WR_BUF0,EXT_DAT
; MOV EXT_ADR,#83H ;读时,时钟
; MOV WR_BUF1,EXT_DAT
; MOV EXT_ADR,#85H ;读日,时钟
; MOV WR_BUF2,EXT_DAT
; MOV EXT_ADR,#86H ;读月,时钟
; MOV WR_BUF3,EXT_DAT
; MOV EXT_ADR,#87H ;读年,时钟
; MOV WR_BUF4,EXT_DAT
; MOV ADDR_24,#STOP_ONE_24
; MOV WR_ID,#WR_2410
; MOV WR_N,#6
; MOV A,#6
; ADD A,#'X'
; MOV WR_N_X,A
; CALL WR_PARA_TO_24
; RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -