?? 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 + -