单片机双机通信以及单片机与pc机的通信

如何用c语言写程序实现单片机双机通信以及单片机与pc机的通信,最好能有各一个例(能运行的,多点注释,便于分析)谢啦!!!
麻烦大家多写点注释啊 初学者 有点迷糊对这一块

  /*
  说明:
  1. U1为发信机,U2位收信机;
  2. U1收到数据后会打印出AT89C51 U1-->..., 并循环点亮8个LED;
  3. U2接收输入数据后保存最新的30个字符,按‘\’后输出AT89C51 U2-->...
  */
  #include <reg51.h> /* define 8051 registers */
  #include <stdio.h> /* define I/O functions */

  void delays(unsigned int ms)
  {
  unsigned int ii,jj;
  for(ii=0;ii<ms;ii++)
  for(jj=0;jj<5000;jj++);
  }
  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<<ii);
  delays(ss);
  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);
  }
  }
  }
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-08-07
单片机双机通信也就是用串口通信,232或者485,两者本质上是没区别的,程序都是一样的,写好串口通信程序就行了。我有个只是发送的程序调试过的你想要留个邮箱给你点资料看看
第2个回答  2010-08-08
#include<reg52.h>
#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;

}
}
相似回答