📄 pci_av2.asm
字号:
MOV 36H, #00H
MOV 37H, #00H
LJMP RSLINK_RET1
RSLINK_ASK: MOV A, 51H
CJNE A, 17H, RSLINK_RET1
LCALL SEND_ASK_STATE
RSLINK_RET1: MOV TH0, #00H ;T0清零
MOV TL0, #00H
POP PSW
POP DPL
POP DPH
CLR RI
SETB ES
CPL P2.6
MOV TH0, #00H
MOV TL0, #00H
RETI
;********************************************
; 报警发送子程序
;********************************************
ORG 0620H
SEND: MOV TH0, #00H ;T0清零
MOV TL0, #00H
MOV A, #040H
MOV SBUF, A ;发送@码
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_selfe1: JNB TI, SEND_SELFE1
CLR TI
MOV A, #0EFH
MOV SBUF , A ;发送本机地址
MOV TH0, #00H
MOV TL0, #00H
SEND_selfe2: JNB TI, SEND_SELFE2
CLR TI
MOV A, #1AH
MOV SBUF, A ;发送指令1AH
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_selfe3: JNB TI, SEND_SELFE3
CLR TI
MOV A, R2
MOV SBUF, A ;发送防区数据
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_selfe4: JNB TI, SEND_SELFE4
CLR TI
MOV A, #00H
MOV SBUF, A ;发送00H
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_selfe5: JNB TI, SEND_SELFE5
MOV A, #40H
ADD A, #0EFH
ADD A, #1AH
ADD A, R2
ADD A, #00H
CLR TI
MOV SBUF, A ;发送校验和
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_selfe6: JNB TI, SEND_SELFE6
CLR TI
CLR RI
RET
;***************************************
; 回传布防状态信息
;**************************************
SEND_ASK_STATE:
MOV TH0, #00H ;T0清零
MOV TL0, #00H
MOV A, #040H
MOV SBUF, A ;发送@码
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_ASK1: JNB TI, SEND_ASK1
CLR TI
MOV A, #0EFH
MOV SBUF , A ;发送本机地址
MOV TH0, #00H
MOV TL0, #00H
SEND_ASK2: JNB TI, SEND_ASK2
CLR TI
MOV A, #1BH
MOV SBUF, A ;发送指令1BH
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_ASK3: JNB TI, SEND_ASK3
MOV A, 30H
CJNE A, #00H, SEND_ASK3_B
MOV A, #00H
MOV R2, A
LJMP SEND_ASK3_SEND
SEND_ASK3_B: MOV A, #0FFH
MOV R2, A
SEND_ASK3_SEND: CLR TI
MOV SBUF, A ;发送状态数据
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_ASK4: JNB TI, SEND_ASK4
CLR TI
MOV A, #00H
MOV SBUF, A ;发送00H
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_ASK5: JNB TI, SEND_ASK5
MOV A, #40H
ADD A, #0EFH
ADD A, #1BH
ADD A, R2
ADD A, #00H
CLR TI
MOV SBUF, A ;发送校验和
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND_ASK6: JNB TI, SEND_ASK6
CLR TI
CLR RI
RET
;***************************************
; 开机复位回传' ' '
;***************************************
SEND_ASK:
MOV TH0, #00H ;T0清零
MOV TL0, #00H
LCALL TIMER1
MOV A, #40H
MOV SBUF, A
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND1_selfe1: JNB TI, SEND1_SELFE1
CLR TI
MOV A, #0EFH
MOV SBUF, A
MOV TH0, #00H ;T0清零
MOV TL0, #00H
SEND1_selfe2: JNB TI, SEND1_SELFE2
CLR TI
MOV A, #027H
MOV SBUF, A
MOV TH0, #00H
MOV TL0, #00H
SEND1_selfe3: JNB TI, SEND1_SELFE3
CLR TI
MOV A, #027H
MOV SBUF, A
MOV TH0, #00H
MOV TL0, #00H
SEND1_selfe4: JNB TI, SEND1_SELFE4
CLR TI
MOV A, #027H
MOV SBUF, A
MOV TH0, #00H
MOV TL0, #00H
SEND1_selfe5: JNB TI, SEND1_SELFE5
MOV A, #40H
ADD A, #0EFH
ADD A, #27H
ADD A, #27H
ADD A, #27H
CLR TI
MOV SBUF, A
MOV TH0, #00H
MOV TL0, #00H
SEND1_SELFE6: JNB TI, SEND1_SELFE6
CLR TI
CLR RI
RET
;***************************************
; 发送查询
;***************************************
SEND_CX_LP3: LJMP MAIN
SEND_CX: CLR ES
MOV 23H, 22H ;为23H赋值
MOV A, 20H
CJNE A, #01H, SEND_CX_LP3
MOV TH0, #00H ;T0清零
MOV TL0, #00H
LCALL TIMER1
LCALL TIMER1
MOV A, #40H
MOV SBUF, A
selfeA_CX: MOV TH0, #00H ;T0清零
MOV TL0, #00H
JNB TI, SELFEA_CX
CLR TI
MOV A, #0EEH
MOV SBUF, A
selfeB_CX: MOV TH0, #00H ;T0清零
MOV TL0, #00H
JNB TI, SELFEB_CX
CLR TI
MOV A, #45H
MOV SBUF, A
CPL P2.6
SELFEC_CX: MOV TH0, #00H ;T0清零
MOV TL0, #00H
JNB TI, SELFEC_CX
CLR TI
MOV A, #00H
MOV SBUF, A
selfeD_CX: MOV TH0, #00H ;T0清零
MOV TL0, #00H
JNB TI, SELFED_CX
CLR TI
MOV A, #00H
MOV SBUF, A
selfeE_CX: MOV TH0, #00H ;T0清零
MOV TL0, #00H
JNB TI, SELFEE_CX
CLR TI
MOV A, #00H
MOV SBUF, A
CPL P2.6
selfeF_CX: MOV TH0, #00H ;T0清零
MOV TL0, #00H
JNB TI, SELFEF_CX
CLR TI
MOV A, #33H
MOV SBUF, A
SELFEG_CX: JNB TI, SELFEG_CX
CLR TI
CLR RI
CPL P2.6
SETB ES
MOV TH0, #00H
MOV TL0, #00H
LCALL TIMER2
MOV A, 21H
CJNE A, #01H, RESTART ;转重启动
MOV 21H, #00H
LJMP SEND_CX_LP3
RESTART: MOV 20H, #00H
MOV 21H, #00H
MOV 22H, #0EFH
SETB P2.3
MOV TH0, #00H
MOV TL0, #00H
LCALL TIMER2
MOV TH0, #00H
MOV TL0, #00H
LCALL TIMER2
MOV TH0, #00H
MOV TL0, #00H
LCALL TIMER2
CLR P2.3
LOOP2: LJMP SEND_CX_LP3
;************************************
; 延时子程序
;************************************
TIMER1: MOV R6, #040H
MOV R5, #0A0H
WAIT0: NOP
NOP
MOV TH0, #00H
MOV TL0, #00H
DJNZ R5 , WAIT0
WAIT: NOP
NOP
CLR RI
SETB ES
DJNZ R6, WAIT
MOV TH0, #00H
MOV TL0, #00H
RET
TIMER2: MOV R4, #01aH
WAIT2: LCALL TIMER1
CLR RI
SETB ES
MOV TH0, #00H
MOV TL0, #00H
DJNZ R4, WAIT2
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -