⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fire_ctr.asm

📁 消防报警信号转换控制器
💻 ASM
📖 第 1 页 / 共 4 页
字号:
        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 + -