前辈们,帮忙看下51单片机通过RS584通信的汇编程序。 请指错,纠错
发送程序org0000hljmpstartorg1000hstart:mova,#0ffh;初始化I/0,全部置一movp0,amovp1,amovp3,amovscon...
发送程序
org 0000h
ljmp start
org 1000h
start:
mov a,#0ffh ;初始化I/0, 全部置一
mov p0,a
mov p1,a
mov p3,a
mov scon,#40h
mov pcon,#80h
mov tmod,#20h
mov th1,#0fah
mov tl1,#0fah
l4:
jnb p1.0,alarm ;检测是否有人经过,也是就是否有信号产生
ljmp l4 ; 继续循环检测
alarm:acall delay ;延时消抖
setb tr1 ;定时器1开始运行
setb p1.0 ; 485为接收状态
MOV a,#01h
mov sbuf,a ;发送数据
ACALL DELAY
l2: jbc ti,l5 ;数是否发送完毕,1完毕,跳转
sjmp l2
l5: clr ti
ljmp l4
delay: ;延时250ms
mov r2,#250
loop2:mov r3,#250
loop3:nop
nop
djnz r3,loop3
djnz r2,loop2
ret
end
是做报警系统的。 两个51单片机通过两个MAX485进行通信。
麻烦各位了。 展开
org 0000h
ljmp start
org 1000h
start:
mov a,#0ffh ;初始化I/0, 全部置一
mov p0,a
mov p1,a
mov p3,a
mov scon,#40h
mov pcon,#80h
mov tmod,#20h
mov th1,#0fah
mov tl1,#0fah
l4:
jnb p1.0,alarm ;检测是否有人经过,也是就是否有信号产生
ljmp l4 ; 继续循环检测
alarm:acall delay ;延时消抖
setb tr1 ;定时器1开始运行
setb p1.0 ; 485为接收状态
MOV a,#01h
mov sbuf,a ;发送数据
ACALL DELAY
l2: jbc ti,l5 ;数是否发送完毕,1完毕,跳转
sjmp l2
l5: clr ti
ljmp l4
delay: ;延时250ms
mov r2,#250
loop2:mov r3,#250
loop3:nop
nop
djnz r3,loop3
djnz r2,loop2
ret
end
是做报警系统的。 两个51单片机通过两个MAX485进行通信。
麻烦各位了。 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询