/*
说明:
1. U1为发信机,U2位收信机;
2. U1收到数据后会打印出AT89C51 U1-->..., 并循环点亮8个LED;
3. U2接收输入数据后保存最新的30个字符,按‘\’后输出AT89C51 U2-->...
*/
#include
#include
void delays(unsigned int ms)
{
unsigned int ii,jj;
for(ii=0;ii
}
void delayms(void)
{
unsigned int ii;
for(ii=0;ii<100;ii++);
}
void ledloop(unsigned char ss)
{
unsigned int ii;
P1=0xFF;
for(ii=0;ii<8;ii++)
{
P1=~(0x01<
P1=0xff;
delays(ss);
}
P1=0xFF;
}
void initcom(void){
SCON = 0x52;
TMOD = 0x20;
TCON = 0x69;
TH1 = 0xf3;
}
void main (void){ /* main program */
unsigned char ch;
initcom();
//printf ("\n-----------------------");
//printf ("\n|Here is the receiver!|");
//printf ("\n-----------------------\n");
ledloop(10);
while (1){
P1=0;
delays(10);
P1=0xFF;
delays(10);
P1=0;
delays(10);
P1=0xFF;
delays(10);
ch = getchar();
if( (ch>30)&&(ch<123))
{
printf("\nAT89C51 U1-->%c\n", ch);
delayms();
ledloop(3);
}
}
}
单片机双机通信也就是用串口通信,232或者485,两者本质上是没区别的,程序都是一样的,写好串口通信程序就行了。我有个只是发送的程序调试过的你想要留个邮箱给你点资料看看
#include
#define uchar unsigned char
#define uint unsigned int
uchar a,
void main()
{
TMOD=0X20;
TR1=1;
SCON=0Xd8;
PCON=0X00;
TH1=0Xfd;//晶振11.0592mhz波特率9600
TL1=0Xfd;
while(1)
{
while(RI==0); //PC发送MCU接收
RI=0;
a=SBUF;
SBUF=a;
while(TI==0);//MCU发送PC接收
TI=0;
}
}