📄 minute_chk.asm
字号:
;************************************************************
;文档类型: 原代码
;项目编号:
;文档编号:
;修订版本:
;生成日期:
;文档作者:
;审 核:
;************************************************************
;相关文档: 主程序,规约
;文档编号 说明
;************************************************************
;修订说明:载波
;修订版本
;修订说明:
;修订版本:
;************************************************************
$INCLUDE (PL3105.INC)
$INCLUDE (RAML128.INC)
$INCLUDE (RAMH128.INC)
CODE_REG SEGMENT CODE
RSEG CODE_REG
PUBLIC MINUTE_CHK
EXTRN CODE (HW_DO_WITH)
;--------------------------------------------------------------
;每3分钟读取一次表号及继电器状态
MINUTE_CHK:
NOP
NOP
NOP
MOV R0,#MINUTE
CJNE @R0,#55H,MINUTE_CHK_RET
CLR EREN
CLR ES
MOV R0,#HW_681
MOV @R0,#68H
MOV R0,#HW_682
MOV @R0,#68H
MOV R0,#HW_CTR
MOV @R0,#01H
MOV R0,#HW_L
MOV @R0,#02H
MOV FS_L_HW,#14
MOV FS_JYL_HW,#12
MOV R0,#RD_JS
MOV A,@R0
CJNE A,#3,JS_PD1 ;一种表号累计读取失败三次以上?
JS_PD0:
MOV A,AA_99_FLAG
CJNE A,#55H,JS_PD01
MOV R0,#RD_JS
MOV @R0,#0 ;读取失败次数清零
MOV R0,#RD_BH_TIME
MOV @R0,#180
MOV TMR_M1,#180
MOV AA_99_FLAG,#0AAH
JMP MINUTE_CHK_RET
JS_PD01: MOV A,AA_99_FLAG ;一种表号累计三次以上不成功,换表号读取
CPL A
MOV AA_99_FLAG,A
MOV R0,#RD_JS
MOV @R0,#0 ;读取失败次数清零
JMP SNO_PD
MINUTE_CHK_RET:
NOP
NOP
RET
JS_PD1:
JNC JS_PD0 ;累计失败次数大于三次?
SNO_PD:
MOV A,AA_99_FLAG
CJNE A,#0AAH,GB_ADDR ;发送缩位表号还是广播表号?
AA_RD_SNO: MOV R0,#RD_JS
INC @R0 ;RD_JS
MOV AA_99_FLAG,#0AAH
MOV R7,#6
MOV R0,#MTR_ADDR0
AA_ADDR:
MOV @R0,#0AAH ;缩位地址读表号
INC R0
DJNZ R7,AA_ADDR
JMP RD_BH_JDQ
GB_ADDR:
MOV AA_99_FLAG,#055H
MOV R0,#RD_JS
INC @R0 ; RD_JS
MOV R7,#6
MOV R0,#MTR_ADDR0
GB_ADDR0:
MOV @R0,#099H ;广播地址读表号
INC R0
DJNZ R7,GB_ADDR0
RD_BH_JDQ:
MOV R0,#BH_JDQ ;BH_JDQ=55h发送读取表号命令,否则发送读取继电器状态命令
MOV A,@R0 ;ZHZ 07.7.4
CJNE A,#55H,RD_JDQ
MOV R0,#HW_DI0
MOV @R0,#65H
INC R0
MOV @R0,#0F3H
JMP JY
RD_JDQ:
MOV R0,#HW_DI0
MOV @R0,#68H
INC R0
MOV @R0,#0F3H
JY:
MOV R0,#HW_681 ;计算校验
MOV R7,#0
JY_LOOP:
MOV A,@R0
ADD A,R7
MOV R7,A
INC R0
DJNZ FS_JYL_HW,JY_LOOP
MOV A,R7
MOV @R0,A
INC R0
MOV @R0,#16H
CALL HW_DO_WITH ;发送命令
MOV ZB_HW,#0 ;清载波直抄表命令标志
MOV HW_OK,#0
SETB EREN
SETB ES
NOP
NOP
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -