📄 gb_bh.asm
字号:
;************************************************************
;文档类型: 原代码
;项目编号:
;文档编号:
;修订版本:
;生成日期:
;文档作者:
;审 核:
;************************************************************
;相关文档:
;文档编号
;************************************************************
;修订说明
;修订版本
;************************************************************
$INCLUDE (RAML128.INC)
$INCLUDE (PL3105.INC)
$INCLUDE (IO.INC)
CODE_REG SEGMENT CODE
RSEG CODE_REG
PUBLIC GB_BH
EXTRN CODE (CLR_ZB)
;--------------------------------------------------------------
;强制键按下时通过载波发送本表表号
GB_BH:
NOP
NOP
NOP
MOV R0,#ZB_OK
MOV A,@R0
CJNE A,#'O',GB_BH_RET ; 07-3-23 LIHENG 必须有载波命令才可载波响应
JB READ_BH,GB_BH_RET ; 07-3-23 LIHENG 必须短接才可载波响应
CALL CLR_ZB ;清载波缓存
MOV ZB_09H,#09H
MOV ZB_AFH,#0AFH
MOV R0,#TAR_ADDR0 ;集中器地址
MOV R5,#3
GB_BH_ADDR:
MOV A,#0BBH
MOV @R0,A
INC R0
DJNZ R5,GB_BH_ADDR
MOV ZB_CTR,#81H ;控制码
MOV ZB_L,#12 ;数据域长度
MOV FS_L,#21 ;发送数据长度
MOV FS_JYL,#17 ;校验数据长度
MOV ZB_DI0,#32H
MOV ZB_DI1,#0C0H ;标识码
MOV R0,#ZB_BUF2 ;主叫表号
MOV R1,#BH_0
MOV R5,#3
GB_BH_ADDR0:
MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R5,GB_BH_ADDR0
MOV ZB_BUF5,B_STATE ;继电器状态
MOV R0,#ZB_BUF6 ;表号
MOV R1,#BH_0
MOV R5,#6
GB_BH_ADDR1:
MOV A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R5,GB_BH_ADDR1
MOV R0,#TAR_ADDR0 ;数据校验
MOV R6,#0
MOV R7,#0
GB_ZB_JY0:
MOV A,@R0
INC R0
ADD A,R6
MOV R6,A
MOV A,R7
ADDC A,#0
MOV R7,A
DJNZ FS_JYL,GB_ZB_JY0
MOV A,R6
MOV @R0,A ;存低字节数据校验
INC R0
MOV A,R7 ;存高字节数据校验
MOV @R0,A
MOV A,FS_L
ADD A,#2 ;多发送2字节
MOV FS_L,A
JB READ_BH,GB_BH_RET ; 07-3-23 LIHENG 必须短接才可载波响应
MOV EIE,#1
MOV EXT_CFG,#01H ;//070131, 置位 PLM_SSC ,同时使其他位为0
; SETB PLM_SSC ;//防止误出现红外使能,是串口0无法工作
SETB PLM_RS
MOV PLM_RS0,#'F'
GB_BH_RET:
MOV HW_OK,#0
MOV ZB_HW,#0
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -