51单片机实现双机通讯互相控制

目前可以实现两个单片机互相控制对方灯的亮灭。还想实现一个功能,按下p3.2,给左边的p1口赋值,让右边对应的灯亮起来(左右的p1口已经连接),功能代码写入了,但是写入仿真以后,按下p3.2按键,灯没有反应,求指导

这是发送端代码
ORG 0000H

JMP START

ORG 0023H

JB TI, S_END

CLR RI

MOV P0, SBUF ;读串口, 送P0显示

S_END: RETI

;

START:

MOV SCON, #50H ;方式1,8-n-1

MOV TMOD, #20H

MOV TH1, #0FDH ;波特率设置

MOV TL1, #0FDH ;9600@11.0592MHz

SETB TR1

MOV IE, #90H ;开放中断

LOOP:

MOV A, P2 ;读拨码开关

DJNZ R7, $ ;延时

DJNZ R6, $ - 2

MOV B, P2 ;再读

CJNE A, B, LOOP ;消抖

MOV SBUF, A ;向串口发送

MOV P1, A ;在本机显示

JNB TI, $

CLR TI

SJMP LOOP

;

JNB P3.2,TEXT

TEXT:

MOV P1,#2DH

END

接收端代码

ORG 0000H

JMP START

ORG 0023H

JB TI, S_END

CLR RI

MOV P0, SBUF ;读串口, 送P0显示

S_END: RETI

;

START:

MOV SCON, #50H ;方式1,8-n-1

MOV TMOD, #20H

MOV TH1, #0FDH ;波特率设置

MOV TL1, #0FDH ;9600@11.0592MHz

SETB TR1

MOV IE, #90H ;开放中断

LOOP:

MOV A, P2 ;读拨码开关

DJNZ R7, $ ;延时

DJNZ R6, $ - 2

MOV B, P2 ;再读

CJNE A, B, LOOP ;消抖

MOV SBUF, A ;向串口发送

MOV P1, A ;在本机显示

JNB TI, $

CLR TI

SJMP LOOP

;

MOV A,P1
CLR C
SUBB A,#2DH
JZ L1
L1:SETB P0.0
SETB P0.1
SETB P0.3
SETB P0.6

RET

END

仿真图

img