目前可以实现两个单片机互相控制对方灯的亮灭。还想实现一个功能,按下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
仿真图