📄 fire_ctr.asm
字号:
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CALL MODEM_ATH0
CALL TIMER1
RET
;***********************************
; MODEM 初始化 AT&FE0V1&D0&S0&Y0Q0S7=15&W0
;***********************************
MODEM_INT:
CPL WATCH_DOG
CLR ES
CALL MODEM_AT ;"AT"
CALL MODEM_LINK ;"&"
MOV A, #46H ;"F"
MOV SBUF, A
MODEM_INT_SELF1:
JNB TI, MODEM_INT_SELF1
CLR TI
MOV A, #45H ;"E"
MOV SBUF, A
MODEM_INT_SELF2:
JNB TI, MODEM_INT_SELF2
CLR TI
MOV A, #30H ;"0"
MOV SBUF, A
MODEM_INT_SELF3:
JNB TI, MODEM_INT_SELF3
CLR TI
CPL WATCH_DOG
MOV A, #56H ;"V"
MOV SBUF, A
MODEM_INT_SELF4:
JNB TI, MODEM_INT_SELF4
CLR TI
CPL WATCH_DOG
MOV A, #31H ;"1"
MOV SBUF, A
MODEM_INT_SELF5:
JNB TI, MODEM_INT_SELF5
CLR TI
CPL WATCH_DOG
CALL MODEM_LINK ;"&"
MOV A, #44H ;"D"
MOV SBUF, A
MODEM_INT_SELF6:
JNB TI, MODEM_INT_SELF6
CLR TI
MOV A, #30H ;"0"
MOV SBUF, A
MODEM_INT_SELF7:
JNB TI, MODEM_INT_SELF7
CLR TI
CPL WATCH_DOG
CALL MODEM_LINK ;"&"
MOV A, #53H ;"S"
MOV SBUF, A
MODEM_INT_SELF8:
JNB TI, MODEM_INT_SELF8
CLR TI
MOV A, #30H ;"0"
MOV SBUF, A
MODEM_INT_SELF9:
JNB TI, MODEM_INT_SELF9
CLR TI
CPL WATCH_DOG
CALL MODEM_LINK ;"&"
MOV A, #59H ;"Y"
MOV SBUF, A
MODEM_INT_SELF10:
JNB TI, MODEM_INT_SELF10
CLR TI
MOV A, #30H ;"0"
MOV SBUF, A
MODEM_INT_SELF11:
JNB TI, MODEM_INT_SELF11
CLR TI
CPL WATCH_DOG
MOV A, #51H ;"Q"
MOV SBUF, A
MODEM_INT_SELF12:
JNB TI, MODEM_INT_SELF12
CLR TI
MOV A, #30H ;"0"
MOV SBUF, A
MODEM_INT_SELF13:
JNB TI, MODEM_INT_SELF13
CLR TI
CPL WATCH_DOG
MOV A, #53H ;"S"
MOV SBUF, A
MODEM_INT_SELF14:
JNB TI, MODEM_INT_SELF14
CLR TI
MOV A, #37H ;"7"
MOV SBUF, A
MODEM_INT_SELF15:
JNB TI, MODEM_INT_SELF15
CLR TI
CPL WATCH_DOG
MOV A, #3DH ;"="
MOV SBUF, A
MODEM_INT_SELF16:
JNB TI, MODEM_INT_SELF16
CLR TI
MOV A, #31H ;"1"
MOV SBUF, A
MODEM_INT_SELF17:
JNB TI, MODEM_INT_SELF17
CLR TI
CPL WATCH_DOG
MOV A, #35H ;"5"
MOV SBUF, A
MODEM_INT_SELF18:
JNB TI, MODEM_INT_SELF18
CLR TI
CALL MODEM_LINK ;"&"
MOV A, #57H ;"W"
MOV SBUF, A
MODEM_INT_SELF19:
JNB TI, MODEM_INT_SELF19
CLR TI
CPL WATCH_DOG
MOV A, #30H ;"0"
MOV SBUF, A
MODEM_INT_SELF20:
JNB TI, MODEM_INT_SELF20
CLR TI
CALL MODEM_RETURN ;"RETURN"
SETB ES
CPL WATCH_DOG
RET
;ORG 0400H
;***********************************
; 串行中断服务程序
;***********************************
RSLINK:
PUSH ACC
PUSH DPH
PUSH DPL
PUSH PSW
JNB RI, RSLINK_RET2
CLR EA
CLR ES
CLR EX1
CLR EX0
CPL WATCH_DOG
CLR RI
MOV A, SBUF
CJNE A, #0DDH, RSLINK_AA_YON ;消防报警信息处理
MOV RECEIVE_BYTE0, A
CALL RSLINK_FIRE_ALM_PRO
JMP RSLINK_RET1
RSLINK_RET2:
JMP RSLINK_RET1
RSLINK_AA_YON: ;AA指令处理子程序
CPL WATCH_DOG
CJNE A, #0AAH, RSLINK_MODEM_ANSWER_YON ;AA AA ADD0 ADD1 50H 00 DATA1 CHK
CALL RSLINK_AA_PRO
JMP RSLINK_RET1
RSLINK_MODEM_ANSWER_YON: ;MODEM应答信息处理
CPL WATCH_DOG
CJNE A, #0DH, RSLINK_FB_YON ;RSLINK_RET2 ;"0D"?
RSLINK_MODEM_ANSWER_YON_SELF1:
JNB RI, RSLINK_MODEM_ANSWER_YON_SELF1
CLR RI
MOV A, SBUF
CJNE A, #0AH, RSLINK_RET1 ;"0A"?
CALL RSLINK_MODEM_ANSWER ;MODEM应答信息处理子程序
JMP RSLINK_RET1
RSLINK_FB_YON: ;FB 2B E1 0E 01 00 02 00 00 00 00 00 00 00 00 00 03 5F F9
CPL WATCH_DOG
CJNE A, #0FBH, RSLINK_RET1
CALL RSLINK_FB_PRO
JMP RSLINK_RET1
RSLINK_RET1:
POP PSW
POP DPL
POP DPH
POP ACC
SETB ES
SETB EA
CLR EX0
CLR EX1
CPL WATCH_DOG
RETI
;**********************************
; 消防报警信息处理子程序 128K
;**********************************
RSLINK_FIRE_ALM_PRO_RET2:
JMP RSLINK_FIRE_ALM_PRO_RET1
RSLINK_FIRE_ALM_PRO: ;DD DD DD DD 20 AA 02 EF 18 EF 53 FF FF 63 63
CPL WATCH_DOG
RSLINK_FIRE_ALM_PRO_SELF1:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF1
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE1, A
CJNE A, #0DDH, RSLINK_FIRE_ALM_PRO_RET2
RSLINK_FIRE_ALM_PRO_SELF2:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF2
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE2, A
CPL WATCH_DOG
CJNE A, #0DDH, RSLINK_FIRE_ALM_PRO_RET2
RSLINK_FIRE_ALM_PRO_SELF3:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF3
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE3, A
CJNE A, #0DDH, RSLINK_FIRE_ALM_PRO_RET2
RSLINK_FIRE_ALM_PRO_SELF4:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF4
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE4, A
CPL WATCH_DOG
CJNE A, #20H, RSLINK_FIRE_ALM_PRO_RET2
RSLINK_FIRE_ALM_PRO_SELF5:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF5
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE5, A
CJNE A, #0AAH, RSLINK_FIRE_ALM_PRO_RET2
RSLINK_FIRE_ALM_PRO_SELF6:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF6
CLR RI
MOV A, SBUF
CPL WATCH_DOG
MOV RECEIVE_BYTE6, A ;02
RSLINK_FIRE_ALM_PRO_SELF7:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF7
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE7, A ;EF
RSLINK_FIRE_ALM_PRO_SELF8:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF8
CLR RI
CPL WATCH_DOG ;18
MOV A, SBUF
MOV RECEIVE_BYTE8, A
RSLINK_FIRE_ALM_PRO_SELF9:
JNB RI, RSLINK_FIRE_ALM_PRO_SELF9
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE9, A
RSLINK_FIRE_ALM_PRO_SELFA:
JNB RI, RSLINK_FIRE_ALM_PRO_SELFA
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEA, A
RSLINK_FIRE_ALM_PRO_SELFB:
JNB RI, RSLINK_FIRE_ALM_PRO_SELFB
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTEB, A
CJNE A, #0FFH, RSLINK_FIRE_ALM_PRO_RET1
RSLINK_FIRE_ALM_PRO_SELFC:
JNB RI, RSLINK_FIRE_ALM_PRO_SELFC
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEC, A
CJNE A, #0FFH, RSLINK_FIRE_ALM_PRO_RET1
RSLINK_FIRE_ALM_PRO_SELFD:
JNB RI, RSLINK_FIRE_ALM_PRO_SELFD
MOV A, SBUF
MOV RECEIVE_BYTED, A
CLR RI
CPL WATCH_DOG
CJNE A, #63H, RSLINK_FIRE_ALM_PRO_RET1
RSLINK_FIRE_ALM_PRO_SELFE:
JNB RI, RSLINK_FIRE_ALM_PRO_SELFE
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEE, A
CJNE A, #63H, RSLINK_FIRE_ALM_PRO_RET1
JNB TEL_STATE, RSLINK_FIRE_ALM_PRO_RET1 ;TEL ERROR? ADSL无故障退出
;协议转换 ;AA AA ADD0 ADD1 32H DATA0 DATA1 00 00 CHK
MOV SEND_BYTE0, #0AAH
MOV SEND_BYTE1, #0AAH
MOV SEND_BYTE2, ADD0
MOV SEND_BYTE3, SELF_ADDRESS
MOV SEND_BYTE4, #32H
DEC RECEIVE_BYTE6 ;计算警情种类
MOV SEND_BYTE5, RECEIVE_BYTE6
MOV A, RECEIVE_BYTE9 ;计算路数
SUBB A, #0EFH
MOV SEND_BYTE6, A
MOV SEND_BYTE7, #00H
MOV SEND_BYTE8, #00H
CLR C
MOV A, SEND_BYTE2
ADD A, SEND_BYTE3
ADD A, SEND_BYTE4
ADD A, SEND_BYTE5
ADD A, SEND_BYTE6
ADD A, SEND_BYTE7
ADD A, SEND_BYTE8
MOV SEND_BYTE9, A
MOV R2, #0AH ;发送字节数
SETB FIRE_ALARM_FLG ;置FIRE报警标志
RSLINK_FIRE_ALM_PRO_RET1:
CPL WATCH_DOG
RET
;**********************************
; 消防报警信息处理子程序 128K(L)
;**********************************
RSLINK_FB_PRO_RET2:
JMP RSLINK_FB_PRO_RET1
RSLINK_FB_PRO: ;FB 2B E1 0E 01 00 02 00 00 00 00 00 00 00 00 00 03 5F F9
CPL WATCH_DOG
RSLINK_FB_PRO_SELF1:
JNB RI, RSLINK_FB_PRO_SELF1
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE1, A
CJNE A, #2BH, RSLINK_FB_PRO_RET2
RSLINK_FB_PRO_SELF2:
JNB RI, RSLINK_FB_PRO_SELF2
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE2, A
CPL WATCH_DOG
CJNE A, #0E1H, RSLINK_FB_PRO_RET2
RSLINK_FB_PRO_SELF3:
JNB RI, RSLINK_FB_PRO_SELF3
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE3, A
CJNE A, #0EH, RSLINK_FB_PRO_RET2
RSLINK_FB_PRO_SELF4:
JNB RI, RSLINK_FB_PRO_SELF4
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE4, A
CPL WATCH_DOG
RSLINK_FB_PRO_SELF5:
JNB RI, RSLINK_FB_PRO_SELF5
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE5, A
RSLINK_FB_PRO_SELF6:
JNB RI, RSLINK_FB_PRO_SELF6
CLR RI
MOV A, SBUF
CPL WATCH_DOG
MOV RECEIVE_BYTE6, A
RSLINK_FB_PRO_SELF7:
JNB RI, RSLINK_FB_PRO_SELF7
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE7, A ;00
RSLINK_FB_PRO_SELF8:
JNB RI, RSLINK_FB_PRO_SELF8
CLR RI
CPL WATCH_DOG ;00
MOV A, SBUF
MOV RECEIVE_BYTE8, A
RSLINK_FB_PRO_SELF9:
JNB RI, RSLINK_FB_PRO_SELF9
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE9, A
RSLINK_FB_PRO_SELFA:
JNB RI, RSLINK_FB_PRO_SELFA
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEA, A
RSLINK_FB_PRO_SELFB:
JNB RI, RSLINK_FB_PRO_SELFB
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTEB, A
RSLINK_FB_PRO_SELFC:
JNB RI, RSLINK_FB_PRO_SELFC
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEC, A
RSLINK_FB_PRO_SELFD:
JNB RI, RSLINK_FB_PRO_SELFD
MOV A, SBUF
MOV RECEIVE_BYTED, A
CLR RI
CPL WATCH_DOG
RSLINK_FB_PRO_SELFE:
JNB RI, RSLINK_FB_PRO_SELFE
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEE, A
RSLINK_FB_PRO_SELFF:
JNB RI, RSLINK_FB_PRO_SELFF
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTEF, A
RSLINK_FB_PRO_SELF16:
JNB RI, RSLINK_FB_PRO_SELF16
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE16, A
RSLINK_FB_PRO_SELF17:
JNB RI, RSLINK_FB_PRO_SELF17
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE17, A
CJNE A, #5FH, RSLINK_FB_PRO_RET1
RSLINK_FB_PRO_SELF18:
JNB RI, RSLINK_FB_PRO_SELF18
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE18, A
CJNE A, #0F9H, RSLINK_FB_PRO_RET1
JNB TEL_STATE, RSLINK_FB_PRO_RET1 ;TEL ERROR?
;协议转换 ;AA AA ADD0 ADD1 32H DATA0 DATA1 00 00 CHK
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -