;遥控信号采用数字判断,0100为撤防,0010为布防
;
;
;数据信号为:
;1 0011 ;
;2 1000 ;
;开 0010
;关 0100
;门铃 0000
IN EQU P1.3 ;
D0 EQU P1.4 ;
D1 EQU P1.5 ;
D2 EQU P1.6 ;
D3 EQU P1.7 ;
OUT EQU P3.5 ;
CAL EQU P1.1 ;
POL EQU P1.2 ;
LIN EQU P3.7 ;
ORG 0000H ;
START:
MOV P1, #0FFH ;
MOV P3, #0FFH ;
MOV 20H, #0 ;
AGARN:
JNB IN, $ ;
ACALL DEL5MS ;
JNB IN, AGARN ;
MOV A, P1 ;读入无线信号值
ANL A, #0F0H ;1111,0000
CJNE A, #0H, LOOP1 ;0000,0000 B
ACALL ML ;
AJMP AGARN ;
LOOP1:
CJNE A, #20H, LOOP2 ;0010,0000
ACALL BF ;
AJMP AGARN ;
LOOP2:
CJNE A, #40H, LOOP3 ;0100 B
ACALL CF ;
AJMP AGARN ;
LOOP3:
CJNE A, #30H, LOOP4 ;1 0011,0000
AJMP LOOP5
LOOP4:
CJNE A, #80H, LOOP6 ;2 1000
LOOP5:
JNB 20H.1, LOOP6 ;
ACALL BJ ;
LOOP6:
AJMP AGARN ;
;*************************************************************
BF:
CLR OUT ;启动功放电路
SETB 20H.1 ;打开布防标志
MOV R2, #2
BF0:
MOV R3, #10
CLR OUT ;
BF1:
MOV R4, #20
BF2:
ACALL DEL1MS ;
CPL LIN ;
DJNZ R4, BF2 ;
MOV R4, #80
BF3:
ACALL DEL200US ;
CPL LIN ;
DJNZ R4, BF3 ;
DJNZ R3, BF1 ;
SETB OUT ;
ACALL DEL500MS ;
DJNZ R2, BF0 ;
SETB OUT ;
SETB LIN ;
JB IN, $ ;
BFEND:
RET ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;撤防程序
CF:
CLR OUT ;
CLR 20H.1 ;
MOV R3, #15
CF1:
MOV R4, #20
CF2:
ACALL DEL1MS ;
CPL LIN ;
DJNZ R4, CF2 ;
MOV R4, #80 ;
CF3:
ACALL DEL200US ;
CPL LIN ;
DJNZ R4, CF3 ;
DJNZ R3, CF1 ;
SETB OUT ;
SETB LIN ;
JB IN, $ ;
RET ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
ML:
MOV R1, #40 ;
CLR OUT ;启动门铃信号
CLR CAL ;
JB IN, $ ;
ML1:
ACALL DEL250MS ;
DJNZ R1, ML1 ;
MLEND:
SETB OUT ;关闭报警信号
SETB CAL ;
RET ;
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
BJ:
MOV R1, #60 ;
CLR OUT ;启动报警信号
CLR POL ;
JB IN, $ ;
BJ0:
MOV R2, #100
BJ1:
ACALL DEL5MS ;延时30秒
JB IN, BJ2 ;
DJNZ R2, BJ1 ;
DJNZ R1, BJ0 ;
AJMP BJEND ;
BJ2:
MOV A, P1 ;
ANL A, #0F0H ;
CJNE A, #40H, BJ1 ;
BJEND:
SETB OUT ;关闭报警信号
SETB POL ;
JB IN, $ ;
RET ;
;*****************************
;延时子程序
;晶振6M
;*****************************
DEL200US:
MOV R7,#50
DJNZ R7,$ ;2
RET
NOP
NOP
NOP
AJMP START
DEL1MS:
MOV R7,#12
DEL1MS1: MOV R6,#19
DEL1MS2: DJNZ R6,DEL1MS2
DJNZ R7,DEL1MS1
RET
NOP
NOP
NOP
AJMP START
;*****************************
;延时子程序
;*****************************
DEL5MS:
MOV R7,#22
DEL5MS1: MOV R6,#54
DEL5MS2: DJNZ R6,DEL5MS2
DJNZ R7,DEL5MS1
RET
NOP
NOP
NOP
AJMP START
;*****************************
;延时子程序
;*****************************
DEL250MS:
MOV R5,#50
DEL250MS1: ACALL DEL5MS
DJNZ R5,DEL250MS1
RET
NOP
NOP
NOP
AJMP START
;*****************************
;延时子程序
;*****************************
DEL500MS:
MOV R4,#100
DEL500MS1: ACALL DEL5MS
DJNZ R4,DEL500MS1
RET ;
NOP
NOP
NOP
AJMP START
END
文章评论(0条评论)
登录后参与讨论