⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 点对点通信 (从单片机).c

📁 在keilc和proteus下进行点对点通信的开发模拟
💻 C
字号:
#include<reg51.h>
unsigned char data Rdata[10];
unsigned char data cnt=0,sum=0,CM;
unsigned char data linksignal,resendsignal;

void delay1s(void)
{
  unsigned char i,j,k;
  for(k=100;k>0;k--)
  for(i=20;i>0;i--)
  for(j=248;j>0;j--);
}

void main(void)
{
TH1=0xf4;
TL1=0xf4;
EA=0;
TR1=1;
TMOD=0x20;
PCON=0x00;
SCON=0x50;
//等待从单片机联系信号0xE0,并返回应答信号0xE1
  do
  {
  while(RI==0);
  RI=0;
  linksignal=SBUF;
  }
  while(linksignal!=0xE0);
  SBUF=0xE1;
  while(TI==0);
  TI=0;
//从单片机接收数据,并验证校验和
  do
  {
    do
    {
     while(RI==0);
     RI=0;
     Rdata[cnt]=SBUF;
     sum=sum+Rdata[cnt];
     cnt++;
    }
    while(cnt<10);
  
  while(RI==0);
  RI=0;
  CM=SBUF;
  
  if(sum!=CM)
    {
    resendsignal=1;
    }
  else
    {
    resendsignal=0;
    }
  
  SBUF=resendsignal;
  while(TI==0);
  TI=0;
  
  if(resendsignal==1)
    {
    sum=0;
    cnt=0;
    }
  }
  while(resendsignal==1);
  while(1)
  {
    for(cnt=0;cnt<10;cnt++)
    {
    P2=Rdata[cnt];
    delay1s();
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -