📄 16_3_3.asm
字号:
;电子栏杆接收部分程序汇编语言程序
ORG 0000H
U0: CLR P3.0 ;开灯,继电器吸合
SETB P3.1 ;应答信号停止,暂停发射
MOV DPH,#80H ;延时
U1: MOV DPL,#0FFH
U2: DJNZ DPL,U2
DJNZ DPH,U1
U3: CLR A ;清寄存器
MOV R0,A
MOV R1,A
MOV R2,A
MOV R6,#02H
AA: CLR P3.1 ;发低电平应答信号
A0: MOV R7,#020H
A1: JNB P1.1,A2 ;H4低电平,接收到信号,转
JNB P3.5,A3 ;H3低电平,接收到信号,转
AJMP A4 ;H4、H3都高电平,没接收到信号,转
A2: NOP
NOP
A3: MOV R0,#01H ;设立有信号标记
NOP
A4: NOP
NOP
NOP
NOP
NOP ;26us
DJNZ R7,A1 ;反复检测H3、H4
B0: MOV R7,#020H
B1: JNB P1.7,B2 ;H2低电平,接收到信号,转
JNB P3.5,B3 ;H3低电平,接收到信号,转
AJMP B4 ;H2、H3都高电平,没接收到信号,转
B2: NOP
NOP
B3: MOV R1,#01H ;设立有信号标记
NOP
B4: NOP
NOP
NOP
NOP
NOP ;26us
DJNZ R7,B1 ;反复检测H3、H2
C0: MOV R7,#020H
C1: JNB P1.7,C2 ;H2低电平,接收到信号,转
JNB P1.6,C3 ;H1低电平,接收到信号,转
AJMP C4 ;H2、H1都高电平,没接收到信号,转
C2: NOP
NOP
C3: MOV R2,#01H ;设立有信号标记
NOP
C4: NOP
NOP
NOP
NOP
NOP ;26us
DJNZ R7,C1 ;反复检测H1、H2
ACALL H1
DJNZ R6,AA
MOV A,R0
JZ EE ;报警
MOV A,R1
JZ EE ;报警
MOV A,R2
JZ EE;
ACALL H1
ACALL H1
ACALL H1
AJMP U3
EE: SETB P3.0 ;关灯,继电器放开,报警
L1: MOV DPH,#07FH
L3: MOV DPL,#0FFH
L4: MOV R7,#10H
L5: DJNZ R7,L5
DJNZ DPL,L4
DJNZ DPH,L3
AJMP U0
H1: SETB P3.1 ;应答信号停止,暂停发射
MOV DPH,#20H
H2: MOV DPL,#0FFH
H3: DJNZ DPL,H3
DJNZ DPH,H2
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -