大神帮忙看看程序,两个51通信
发送
*****************************************************
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(void) //误差 0us
{
unsigned char a,b,c;
for(c=191;c>0;c--)
for(b=189;b>0;b--)
for(a=137;a>0;a--);
// _nop_; //if Keil,require use intrins.h
}
void send ()
{
SBUF=0x00;
while(TI==0);
TI=0;
}
void send1 ()
{
SBUF=0xff;
while(!TI);
TI=0;
}
void main()
{
SCON=0x40;
TMOD=0x20;//设置定时器1为工作方式2
PCON = 0x00;
TH1=0xfd;
TL1=0xfd;
TR1=1;
// REN=1;
// SM0=0;
// SM1=1;
// EA=1;
// ES=1;
TI=0;
while(1)
{
// delay();
delay();
send();
// delay();
delay();
// send1();
}
}
**************************************************************
接收
********************************************************************
#include<reg51.h>
//#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar a,flag;
void delay(void) //误差 0us
{
unsigned char a,b,c;
for(c=191;c>0;c--)
for(b=189;b>0;b--)
for(a=137;a>0;a--);
// _nop_; //if Keil,require use intrins.h
}
void main()
{
SCON=0x50;
TMOD=0x20;//设置定时器1为工作方式2
PCON = 0x00;
TH1=0xfd;
TL1=0xfd;
RI = 0;
TR1 = 1;
// REN=1;
// SM0=0;
// SM1=1;
// EA=1;
// ES=1;
P2=0xff;
while(1)
{
if(flag==1)
{
flag=0;
P2=a;
delay();
}
}
}
void ser() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}
|