求大佬解答:我想要向两个从机发送信号,让他们接收到信号之后给我反馈数据,反馈的数据在LCD1602上面不同位置显示出来。结果同样的代码,从机1能接收到主机发出信号,并反馈数据;从机2不能接收到主机信号也不能反馈数据,LCD上面在不同位置显示了从机1的反馈数据。(用的keil和proteus)
主机:
void master(void)
{
uint8 temp,temp1,temp2,temp3,temp4;
int i=1;
while(i<3)
{
if(i==1)
{
en=1;
SBUF = 0x01;
while(TI!=1);TI=0;
en=0;
delay1ms();
c = SBUF;while(RI!=1);RI=0;
temp=c;
temp1 = temp/10;
temp2 = temp%10;
Write_cmd(0x80);
Write_dat(temp1+0x30);
Write_dat(temp2+0x30);
Write_dat(0xdf);
Write_dat(0x43);
i=i+1;
delay1ms();
delay1ms();
}
else if(i==2)
{
en=1;
SBUF = 0x02;
while(TI!=1);TI=0;
en=0;
delay1ms();
d = SBUF;while(RI!=1);RI=0;
temp=d;
temp3 = temp/10;
temp4 = temp%10;
Write_cmd(0xc0);
Write_dat(temp3+0x30);
Write_dat(temp4+0x30);
Write_dat(0xdf);
Write_dat(0x43);
i=1;
delay1ms();
delay1ms();
}
}
}
从机1:
void master(void)
{
en=0;
ES=0;
m=SBUF;
while(RI!=0);RI=0;
if(m==0x01)
{
en=1;
LED=0;
c=ReadTemperature();
SBUF= c;
while(TI!=1);
TI=0;
ES=1;
}
else
{
ES=1;
en=0;
}
}
从机2:
void master(void)
{
en=0;
ES=0;
n=SBUF;
while(RI!=0);RI=0;
if(n==0x02)
{
en=1;
LED=0;
c=ReadTemperature();
SBUF= c;
while(TI!=1);
TI=0;
ES=1;
}
else
{
ES=1;
en=0;
}
}
不知道你这个问题是否已经解决, 如果还没有解决的话: