单片机双机通信测试程序,发送与接受都能与PC连接,而双机互联就不行,怎么回事

#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint shake;
void uart_init()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
PCON=0x00;
TR1=1;
SCON=0x50;
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}

void main()
{
uart_init();

do
{
SBUF=0x01;
while(TI==0);
TI=0;

while(RI==0);
RI=0;
shake=SBUF;
}
while(shake!=0x02) ;

while(1)
{
SBUF=0x07;
while(TI==0);
TI=0;
delay(500) ;
SBUF=0x00;
while(TI==0);
TI=0;
delay(500) ;
}

}
/*#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint shake;
sbit led=P2^0;
void uart_init()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
PCON=0x00;
TR1=1;

SM0=0; //串口方式1
SM1=1;
REN=1;

}

void main()
{
uart_init();
do
{
SBUF=0x02;
while(TI==0);
TI=0;
while(RI==0);
RI=0;
shake=SBUF;
}
while(shake!=0x01);

while(1)
{

while(RI==0);
led=0;
RI=0;

}

} */

两个都要打开总中断,串口中断,特别注意波特率要一样的,对你的程序来说就是要晶振一样,而且一个单片机的TXD连到另一个单片机的RXD,特别注意要共地,你注意到了吗?有不懂的q我234109720
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-28
看看你的发送与接收端线路有没有连反。
相似回答