📄 fire_ctr.asm
字号:
MOV SEND_BYTE0, #0AAH
MOV SEND_BYTE1, #0AAH
MOV SEND_BYTE2, ADD0
MOV SEND_BYTE3, SELF_ADDRESS
MOV SEND_BYTE4, #32H
;计算警情种类
MOV A, RECEIVE_BYTE4
CJNE A, #01H, RSLINK_FB_PRO_SELF18_LP1
MOV SEND_BYTE5, #01H
JMP RSLINK_FB_PRO_SELF18_LP2
RSLINK_FB_PRO_SELF18_LP1:
CJNE A, #03H, RSLINK_FB_PRO_RET1
MOV SEND_BYTE5, #02H
RSLINK_FB_PRO_SELF18_LP2:
MOV SEND_BYTE6, RECEIVE_BYTE6 ;计算路数
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_FB_PRO_RET1:
CPL WATCH_DOG
RET
;*********************************
; AA指令处理自程序
;*********************************
RSLINK_AA_PRO_RET2:
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO:
CPL WATCH_DOG
RSLINK_AA_PRO_SELF1:
JNB RI, RSLINK_AA_PRO_SELF1
CLR RI
MOV A, SBUF
CJNE A, #0AAH, RSLINK_AA_PRO_RET2
RSLINK_AA_PRO_SELF2:
JNB RI, RSLINK_AA_PRO_SELF2
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE2, A
CJNE A, #00H, RSLINK_AA_PRO_SELF2_LP1
JMP RSLINK_AA_PRO_SELF3
RSLINK_AA_PRO_SELF2_LP1:
CJNE A, ADD0, RSLINK_AA_PRO_RET2
RSLINK_AA_PRO_SELF3:
JNB RI, RSLINK_AA_PRO_SELF3
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE3, A
CJNE A, #00H, RSLINK_AA_PRO_SELF3_LP1
JMP RSLINK_AA_PRO_SELF4
RSLINK_AA_PRO_SELF3_LP1:
CJNE A, SELF_ADDRESS, RSLINK_AA_PRO_RET2
RSLINK_AA_PRO_SELF4:
JNB RI, RSLINK_AA_PRO_SELF4
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE4, A
RSLINK_AA_PRO_SELF5:
JNB RI, RSLINK_AA_PRO_SELF5
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE5, A
RSLINK_AA_PRO_SELF6:
JNB RI, RSLINK_AA_PRO_SELF6
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE6, A
RSLINK_AA_PRO_SELF7:
JNB RI, RSLINK_AA_PRO_SELF7
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE7, A
RSLINK_AA_PRO_SELF8:
JNB RI, RSLINK_AA_PRO_SELF8
CLR RI
MOV A, SBUF
MOV RECEIVE_BYTE8, A
RSLINK_AA_PRO_SELF9:
JNB RI, RSLINK_AA_PRO_SELF9
CLR RI
CPL WATCH_DOG
MOV A, SBUF
MOV RECEIVE_BYTE9, A
MOV A, RECEIVE_BYTE2
ADD A, RECEIVE_BYTE3
ADD A, RECEIVE_BYTE4
ADD A, RECEIVE_BYTE5
ADD A, RECEIVE_BYTE6
ADD A, RECEIVE_BYTE7
ADD A, RECEIVE_BYTE8
CLR C
CJNE A, RECEIVE_BYTE9, RSLINK_AA_PRO_RET4
CPL WATCH_DOG
MOV A, RECEIVE_BYTE4
CJNE A, #50H, RSLINK_AA_PRO_LP4 ;MODEM测试?
SETB MODEM_TEST_FLG
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP4:
CJNE A, #51H, RSLINK_AA_PRO_LP1 ;MODEM测试?
MOV MODEM_SEND_END_DELAY, #10H
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP2_CON:
JMP RSLINK_AA_PRO_LP2
RSLINK_AA_PRO_LP1:
CPL WATCH_DOG
CJNE A, #41H, RSLINK_AA_PRO_LP2_CON ;电话号码设置?
/*
MOV TEL_H1, RECEIVE_BYTE5
MOV TEL_H2, RECEIVE_BYTE6
MOV TEL_L1, RECEIVE_BYTE7
MOV TEL_L2, RECEIVE_BYTE8
MOV EE_WRITE_ADD, #10H
MOV EE_WRITE_DATA, TEL_H1
CALL WRITE_BYTE
CPL WATCH_DOG
MOV EE_WRITE_ADD, #11H
MOV EE_WRITE_DATA, TEL_H2
CALL WRITE_BYTE
CPL WATCH_DOG
MOV EE_WRITE_ADD, #12H
MOV EE_WRITE_DATA, TEL_L1
CALL WRITE_BYTE
CPL WATCH_DOG
MOV EE_WRITE_ADD, #13H
MOV EE_WRITE_DATA, TEL_L2
CALL WRITE_BYTE
CPL WATCH_DOG
MOV MODEM_TEL_Z, #00H
CALL MODEM_TEL_ORDER ;MODEM 存号码指令调用"AT&Z0="
MOV MODEM_TEL_BUF, TEL_H1
CALL MODEM_TEL_SET
MOV MODEM_TEL_BUF, TEL_H2
CALL MODEM_TEL_SET
MOV MODEM_TEL_BUF, TEL_L1
CALL MODEM_TEL_SET
MOV MODEM_TEL_BUF, TEL_L2
CALL MODEM_TEL_SET
CALL MODEM_RETURN ;"RETURN"
*/
RSLINK_AA_PRO_RET4:
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP2:
CPL WATCH_DOG
CJNE A, #42H, RSLINK_AA_PRO_LP3 ;电话号码查询?
MOV SEND_BYTE0, #0AAH
MOV SEND_BYTE1, #0AAH
MOV SEND_BYTE2, ADD0
MOV SEND_BYTE3, SELF_ADDRESS
MOV SEND_BYTE4, #4AH
MOV SEND_BYTE5, TEL_H1
MOV SEND_BYTE6, TEL_H2
MOV SEND_BYTE7, TEL_L1
MOV SEND_BYTE8, TEL_L2
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
CPL WATCH_DOG
MOV R0, #2FH
MOV R2, #0AH
SETB RS485_CTR
CALL SEND_PRG
CLR RS485_CTR
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP5_CON:
JMP RSLINK_AA_PRO_LP5
RSLINK_AA_PRO_LP3:
CPL WATCH_DOG
CJNE A, #40H, RSLINK_AA_PRO_LP5_CON ;输出口控制
MOV A, RECEIVE_BYTE5
CJNE A, #00H, RSLINK_AA_PRO_LP3_CON
MOV A, RECEIVE_BYTE6
CJNE A, #01H, RSLINK_AA_PRO_LP3_1
CLR OUT1
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_1:
CJNE A, #02H, RSLINK_AA_PRO_LP3_2
CLR OUT2
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_2:
CJNE A, #03H, RSLINK_AA_PRO_LP3_3
CLR OUT3
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_3:
CJNE A, #04H, RSLINK_AA_PRO_RET3
CLR OUT4
RSLINK_AA_PRO_RET3:
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_CON:
CJNE A, #01H, RSLINK_AA_PRO_RET3
MOV A, RECEIVE_BYTE6
CJNE A, #01H, RSLINK_AA_PRO_LP3_CON_1
SETB OUT1
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_CON_1:
CJNE A, #02H, RSLINK_AA_PRO_LP3_CON_2
SETB OUT2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT2
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_CON_2:
CJNE A, #03H, RSLINK_AA_PRO_LP3_CON_3
SETB OUT3
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT3
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP3_CON_3:
CJNE A, #04H, RSLINK_AA_PRO_RET3
SETB OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
SETB OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
SETB OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
SETB OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
SETB OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
SETB OUT4
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CPL WATCH_DOG
CALL TIMER2
CLR OUT4
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP5:
CPL WATCH_DOG
CJNE A, #43H, RSLINK_AA_PRO_LP6;RSLINK_AA_PRO_RET1 ;电话号码查询?
MOV A, P0
ANL A, #0F0H
SWAP A
MOV SEND_BYTE5, A
MOV SEND_BYTE0, #0AAH
MOV SEND_BYTE1, #0AAH
MOV SEND_BYTE2, ADD0
MOV SEND_BYTE3, SELF_ADDRESS
MOV SEND_BYTE4, #4BH
MOV SEND_BYTE6, #00H
MOV SEND_BYTE7, #00H
MOV SEND_BYTE8, #00H
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
CPL WATCH_DOG
MOV R0, #2FH
MOV R2, #0AH
SETB RS485_CTR
CALL SEND_PRG
CLR RS485_CTR
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP6:
CPL WATCH_DOG
CJNE A, #38H, RSLINK_AA_PRO_RET1 ;是否ADSL故障
MOV A, RECEIVE_BYTE5
CJNE A, #01H, RSLINK_AA_PRO_LP6_CN1
SETB TEL_STATE ;ADSL故障标志
JMP RSLINK_AA_PRO_RET1
RSLINK_AA_PRO_LP6_CN1:
CJNE A, #02H, RSLINK_AA_PRO_RET1
CLR TEL_STATE ;ADSL故障解除
RSLINK_AA_PRO_RET1:
CPL WATCH_DOG
RET
;*******************************
; MODEM应答处理子程序
;*******************************
RSLINK_MODEM_ANSWER_RET2:
JMP RSLINK_MODEM_ANSWER_RET1
RSLINK_MODEM_ANSWER:
CPL WATCH_DOG
MOV R0, #31H
MOV R3, #00H
RSLINK_MODEM_ANSWER_SELF2:
JNB RI, RSLINK_MODEM_ANSWER_SELF2
CLR RI
INC R0
INC R3
CPL WATCH_DOG
MOV A, SBUF
MOV @R0, A
CJNE A, #0DH, RSLINK_MODEM_ANSWER_SELF2 ;"0D"?
RSLINK_MODEM_ANSWER_SELF3:
JNB RI, RSLINK_MODEM_ANSWER_SELF3
CLR RI
MOV A, SBUF
CJNE A, #0AH, RSLINK_MODEM_ANSWER_RET2 ;"0A"?
CPL WATCH_DOG
DEC R3
CJNE R3, #02H, RSLINK_MODEM_ANSWER_LP1 ;"OK"?
NOP
NOP
JMP RSLINK_MODEM_ANSWER_RET1
RSLINK_MODEM_ANSWER_LP1:
CJNE R3, #04H, RSLINK_MODEM_ANSWER_LP2 ;"BUSY"?
NOP
NOP
SETB MODEM_TEL_BUSY_FLG
INC MODEM_TEL_BUSY_NUM
MOV A, MODEM_TEL_BUSY_WAIT
CJNE A, #00H, RSLINK_MODEM_ANSWER_LP1_1
MOV MODEM_TEL_BUSY_WAIT, #0DFH
SETB FIRE_ALARM_FLG
RSLINK_MODEM_ANSWER_LP1_1:
JMP RSLINK_MODEM_ANSWER_RET1
RSLINK_MODEM_ANSWER_LP2:
CPL WATCH_DOG
CJNE R3, #05H, RSLINK_MODEM_ANSWER_LP3 ;"ERROR"?
NOP
NOP
JMP RSLINK_MODEM_ANSWER_RET1
RSLINK_MODEM_ANSWER_LP3:
CPL WATCH_DOG
CJNE R3, #0AH, RSLINK_MODEM_ANSWER_LP4 ;"NO CARRIER"?
NOP
NOP
JMP RSLINK_MODEM_ANSWER_RET1
RSLINK_MODEM_ANSWER_LP4:
CPL WATCH_DOG
CJNE R3, #0CH, RSLINK_MODEM_ANSWER_LP5 ;"CONNECT 9600"?
SETB MODEM_CONNECT_FLG
;CLR FIRE_ALARM_FLG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -