📄 aa1.asm
字号:
rr0 equ 10h ;4月8日改,把拨号后的等待时间改为用复位时间等待
rr1 equ 11h ;4月19日改,改中断及r6,用r6代替fuwei1,fuwei1 equ 1eh
rr2 equ 12h ;4月19日改?改为振铃两次摘机,摘机后改用等待程序。
rr3 equ 13h
del equ 14h
del1 equ 15h
rr6 equ 16h
rr7 equ 17h
org 00h
ajmp start ; IE EA ET2 ES ET1 EX1 ET0 EX0
Org 0bh
ljmp brt0
org 30h ; 全 t2 串 t1 int1 t0 int0
Start:nop
nop
Mov sp,#40h ; r0用做循环计数?; r1用做循环计数妻?
Mov ie ,#82h
mov tmod,#01h ; r2用来暂存a中的数
setb tr0
mov dptr,#dat
mov rr2,#00h
mov r4,#00h
mov r5,#00h
mov r6,#00h
mov r7,#00h
mov p2,#00h
mov p3,#00h
mov r0,#14h
NOP
NOP
lcall delay
NOP
NOP
lcall fuwei
start1:mov p0,#0f0h
mov a,rr7
NOP
NOP
cjne a,#01h, abc
lcall fuwei
abc:mov rr7,#00h
mov r6,#00h
clr p3.5
clr p2.0
mov p1,#0ffh
Mov a,p1
NOP
NOP
jz cc
mov r0,#4h
NOP
NOP
lcall delay
mov p1,#0ffh
Mov a,p1
NOP
NOP
jz cc
mov r0,#4h
lcall delay
lcall fuwei
mov p1,#0ffh
Mov a,p1
mov rr3,a
mov a,rr2
jnz mm
mov rr2,#1fh
mov a,rr3
mov rr1,a
mm:mov a,rr3
jz cc
xrl a,rr1
jnz cc
clr p2.0 ;控制报警信号
mov a,rr3
mov r2,a
lcall panduan
ajmp bb
cc:mov rr2,#00h
clr p2.0
mov r5,#00h
mov r4,#00h
mov r5,#00h
bb:orl p3,#10h ; 检测是否有人打来电话
mov c,p3.4
Jc start1
Mov r0,#2h
Lcall delay
lcall fuwei
orl p3,#10h
mov c,p3.4
Jc start1
dt:mov c,p3.4
jnc dt
dt1:mov r0,#02h
lcall delay
lcall fuwei
mov c,p3.4
jc dt1
dt2:mov r0,#02h
lcall delay
lcall fuwei
mov c,p3.4
jnc dt2
mov r0,#14h
lcall delay
lcall fuwei
mov r0,#14h
lcall delay
lcall fuwei
setb p3.1 ;开应答指示灯
setb p3.5 ;有测摘机
mov r0,#14h
lcall delay
lcall fuwei
mov r0,#14h
lcall delay
lcall fuwei
mov r0,#14h
lcall delay
lcall fuwei
mov r0,#14h
lcall delay
lcall fuwei
Mov p1,#0ffh
Mov a,p1
mov r2,a
jnz rel1
lcall hao0
lcall hao0
lcall hao9
lcall hao9
jmp rel2
rel1:lcall huihao
lcall hao9
lcall hao9
rel2:mov r0,#0ah
lcall delay
lcall fuwei
clr p3.1 ;应答指示灯,发红光
clr p3.5
mov r0,#14h
lcall delay
lcall fuwei
setb p3.5
mov r0,#14h
lcall delay
lcall fuwei
clr p3.5
mov r0,#14h
lcall delay
lcall fuwei
ljmp start1
brt0:mov th0,#00h
mov tl0,#00h
mov rr7,#01h
push acc ;暂存a中的数
mov a,r6
jz ff
cjne a,#0ffh,ff
inc rr6
mov a,rr6
cjne a,#3,ff
clr p2.7
mov r0,#64h
lcall delay
ff:pop acc
cjne r5,#01,brt1a
inc r7
cjne r7,#0ffh,brt1a
mov r7,#00h
inc r4
cjne r4,#90h,brt1a
mov r5,#00h
mov r4,#00h
brt1a:cpl p3.7
inc r6
reti
panduan1:mov rr0,#02h
cjne a,#00h,xiayibu ; 判断是否有故障
jmp xiabu2 ;开始拨号
xiayibu:mov a,r3
movc a,@a+dptr
rel:mov p0,a
mov r0,#05h
lcall delay
lcall fuwei
mov p0,#0f0h
mov r0,#6h ;开始拨号
lcall delay
djnz rr0,rel
xiabu1:mov r0,#1h
lcall delay
xiabu2:ret
panduan:cjne r5,#01h,rell
ljmp aa5
rell:setb p3.0 ;开报警的指示灯,发绿?
setb p3.5 ;摘机
setb p2.0
orl p3,#10h
mov c,p3.4
Jnc aa1
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
nop
nop
lcall delay
nop
nop
lcall fuwei
nop
nop
lcall hao8
nop
nop
lcall hao2
nop
nop
lcall hao1
nop
nop
lcall hao7
nop
nop
lcall hao7
nop
nop
lcall hao4
nop
nop
lcall hao3
aa1:mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei ;拨号完毕
mov r5,#01h
aa:lcall huihao
lcall hao9
lcall hao9
aa4:clr p3.0
clr p3.5
clr p2.0
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
setb p3.5
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
clr p3.5
mov r0,#14h ; 延时1秒
lcall delay
lcall fuwei
aa5:ret
hao0:mov p0,#72h ;开始拨号0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -