最近小弟刚开始研究单片机,需要用到双机通讯的东西。可是遇到点问题,两个芯片分别和电脑通讯没问题,但是把他们连在一起却没有现象。目的是主机每隔500ms发送一个数过去,从机一直显示数在8个led上。 电路就是rxd txd交叉连接并且共地。 有没有大神给看看的,或者给小弟发一个能用的双机通讯的代码我回去好好研究一下,感激不尽啊。。。
主机::
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char num;
sbit key1=P2^0;
sbit d1=P1^0;
sbit d2=P1^1;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
SM0=0;
SM1=1;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
// EA=1;
// ES=1;
TR1=1;
while(1)
{
for(num=0;num<10;num++)
{
SBUF=num;
while(TI==0);
TI=0;
delay(500);
}
}
}
从机::
#include<reg52.h>
void main()
{
REN=1;
SM0=0;
SM1=1;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
while(1)
{
while(RI==0);
RI=0;
P1=SBUF;
}
}
|