📄 minute_chk.asm
字号:
;************************************************************
;文档类型: 原代码
;项目编号:
;文档编号:
;修订版本: v1.0
;生成日期: 2004.12.3
;作 者: LI
;审 核:
;************************************************************
;相关文档: 上月冻结,费率时段判别
;文档编号 说明
;************************************************************
;修订版本:
;修订版本:
;************************************************************
$INCLUDE (RAML128.INC)
$INCLUDE (RAMH128.INC)
$INCLUDE (PL3200.INC)
$INCLUDE (24ADDR.INC)
$INCLUDE (IO.INC)
$INCLUDE (CONST.INC)
CODE_REG SEGMENT CODE
RSEG CODE_REG
PUBLIC MINUTE_CHK
PUBLIC SAVE_FLOAT_PRO
PUBLIC RD_UP_DATA
;*******************************;调用子程序情况:
;EXTRN CODE(RD_AUTO_DATE)
EXTRN CODE(FL_DATE_CHK)
;EXTRN CODE(FRZ_LAST_MON_DATA)
;EXTRN CODE(RD_LAST_MON)
EXTRN CODE(RD_SZ)
;EXTRN CODE(RD_ZR_DAY)
;EXTRN CODE(RD_AUTO_DAY)
EXTRN CODE(RD_JLMX)
EXTRN CODE(SAVE_FL_FLOAT)
EXTRN CODE(RD24_DO_CHK)
EXTRN CODE(RD_MTR_RELY)
;******************************************************
;判定1分钟时间到,为上月冻结,费率时段判别提供时间
;判定时间(分)变化后,再读日,时,分
;******************************************************
MINUTE_CHK: MOV EXT_ADR,#82H ;读分,时钟
MOV A,EXT_DAT
MOV R0,#MINUTE
MOV B,@R0
CJNE A,B,MINUTE_CHANG
RET
RD_MIN_XS:
MOV EXT_ADR,#0FFH
MOV EXT_DAT,#0FFH
MOV EXT_ADR,#80H
MOV EXT_DAT,RD_BUF0
MOV EXT_ADR,#0FFH
MOV EXT_DAT,#0AAH
JMP MINUTE_JDQ
RD_MIN_JLMX:
MOV PMU_ADR,#0FFH
MOV PMU_DAT,#0FFH
MOV PMU_ADR,#0FCH;电能计量控制
CLR PMU_DAT.7 ;关闭电能计量
NOP
SETB PMU_DAT.7 ;打开电能计量
CLR PMU_DAT.0
MOV PMU_ADR,#0FDH;电能计量增益
MOV PMU_DAT,#IAGC_CFG
MOV PMU_ADR,#13H;有功门限H
MOV PMU_DAT,RD_BUF1
MOV PMU_ADR,#12H;有功门限L
MOV PMU_DAT,RD_BUF0
MOV PMU_ADR,#0FFH
MOV PMU_DAT,#0AAH
JMP MINUTE_JDQ1
MINUTE_CHANG:
MOV @R0,A ;更新分
CALL RD_SZ
MOV EXT_ADR,#80H;一分钟比较时钟系数
MOV A,EXT_DAT
CJNE A,RD_BUF0,RD_MIN_XS
NOP
MINUTE_JDQ:
CALL RD_JLMX
MOV PMU_ADR,#13H;有功门限H
MOV A,PMU_DAT
CJNE A,RD_BUF1,RD_MIN_JLMX
MOV PMU_ADR,#12H;有功门限L
MOV A,PMU_DAT
CJNE A,RD_BUF0,RD_MIN_JLMX
; MOV R0,#MINUTE; 一小时继电器冗余处理 05-12-07 LIHENG
; MOV A,@R0
; JNZ PD_ZR_DAY
; CALL RD_MTR_RELY
; MOV A,RD_BUF0
; CJNE A,#5FH,MINUTE_JDQ1 ;增加继电器遥信信号
; JB JDQ_JS,MINUTE_JDQ2
; JMP PD_ZR_DAY
MINUTE_JDQ1: ; JB JDQ_JS,PD_ZR_DAY
MINUTE_JDQ2:; SETB DO_RELY
; MOV R0,#TMR_RLY ;2004.6.16 100ms后操作继电器
; MOV @R0,#20
; MOV SSC_ADR,#00H
; JB R_T,PD_ZR_DAY
PD_ZR_DAY: ; call RD_ZR_DAY ;昨日冻结处理
; MOV EXT_ADR,#85H
; mov a,ext_dat
; cjne a,rd_buf0,DJ_ZR_DAY
; jmp PD_LAST_MON
DJ_ZR_DAY:
; CALL RD_AUTO_DAY
; MOV EXT_ADR,#83H
; MOV A,EXT_DAT ;HOUR
; CJNE A,RD_BUF0,DAY_hour_comp;DAY 不等不判冻结条件
; JMP DAY_HOUR_HIGH
DAY_HOUR_COMP:; NOP ;时不等,时大,启动昨日冻结检测
; NOP
; JC PD_LAST_MON
DAY_HOUR_HIGH: ; MOV DJ_ZR,#'R'
; CALL ZR_DATA;昨日冻结处理程序
; MOV DJ_LAST,#0
PD_LAST_MON:
; call rd_last_mon
; MOV EXT_ADR,#86H
; mov a,ext_dat
; cjne a,rd_buf0,dj_last_mon
; jmp chang_ret
dj_last_mon:
; CALL RD_AUTO_DATE
; MOV EXT_ADR,#85H
; MOV A,EXT_DAT ;DAY
; CJNE A,RD_BUF1,hour_comp;CHANG_RET ;DAY 不等不判冻结条件
; MOV EXT_ADR,#83H
; MOV A,EXT_DAT ;HOUR
; CJNE A,RD_BUF0,HOUR_COMP
; JMP HOUR_HIGH ;时相等,启动冻结
HOUR_COMP:; NOP ;时不等,时大,启动上月冻结检测
; NOP
; JNC HOUR_HIGH
; JMP CHANG_RET
HOUR_HIGH:
FRZ_START: ; NOP
; NOP
; MOV DJ_LAST,#'L'
; CALL FRZ_LAST_MON_DATA;上月冻结处理程序
; MOV DJ_LAST,#0
CHANG_RET: NOP
NOP
MOV A,FL_NUM_JS
MOV FL_F_BAK,A
CPL A
MOV FL_F_BAK1,A
CALL FL_DATE_CHK ;费率时段检测
MOV A,FL_F_BAK
CJNE A,FL_NUM_JS,SAVE_FLOAT_P1
NOP
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAVE_FLOAT_P1: NOP
CALL SAVE_FLOAT_PRO
RD_UP_DATA: NOP
MOV FL_NUM,FL_NUM_JS
CALL RD_NEW_24
MOV R0,#NOW_FLOAT_ZYG
MOV A,RD_BUF0
MOV @R0,A
ADD A,#'X'
INC R0
MOV @R0,A
; MOV A,FL_NUM_JS
; ADD A,#4
; MOV FL_NUM,A
; CALL RD_NEW_24
; MOV R0,#NOW_FLOAT_FYG
; MOV A,RD_BUF0
; MOV @R0,A
; ADD A,#'X'
; INC R0
; MOV @R0,A
RET
RD_NEW_24: 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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;保存有功小数正向和反向
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAVE_FLOAT_PRO: NOP
MOV R0,#NOW_FLOAT_ZYG
MOV A,@R0
MOV WR_BUF0,A
ADD A,#'X'
MOV B,A
INC R0
MOV A,@R0
CJNE A,B,ZYG_FLOAT_ER
MOV A,FL_F_BAK
XRL A,FL_F_BAK1
CJNE A,#0FFH,FYG_FLOAT_ER
MOV FL_NUM,FL_F_BAK
CLR WP
MOV WP_CTR,#'W'
CALL SAVE_FL_FLOAT
ZYG_FLOAT_ER: NOP
; MOV R0,#NOW_FLOAT_FYG
; MOV A,@R0
; MOV WR_BUF0,A
; ADD A,#'X'
; MOV B,A
; INC R0
; MOV A,@R0
; CJNE A,B,FYG_FLOAT_ER
; MOV A,FL_F_BAK
; XRL A,FL_F_BAK1
; CJNE A,#0FFH,FYG_FLOAT_ER
; MOV A,FL_F_BAK
; ADD A,#4
; MOV FL_NUM,A
; CLR WP
; MOV WP_CTR,#'W'
; CALL SAVE_FL_FLOAT
FYG_FLOAT_ER: NOP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -