ppcomun.c

来自「<单片机程序设计基础>一书的配套光盘中的程序---北航---周航慈-」· C语言 代码 · 共 71 行

C
71
字号
#include <reg51.h>
#define  uchar unsigned char
#define  TR 1
uchar idata buf[10];
uchar pf;

void init(void)
{ TMOD=0x20;
  TH1=0xe8;
  TL1=0xe8;
  PCON=0x00;
  TR1=1;
  SCON=0x50;
}

void send(uchar idata *d)
{ uchar i;
  do{ 
    SBUF=0xaa;
    while(TI==0); /* wait to  send */
    TI=0;
    while(RI==0); /* wait for answer */
    RI=0;
  }while((SBUF^0xbb)!=0);
  do{
    pf=0; 
    for(i=0;i<16;i++) { 
      SBUF=d[i];
      pf+=d[i];
      while(TI==0);TI=0;
    }
      SBUF=pf;
      while(TI==0);TI=0;
      while(RI==0);RI=0;
  } while(SBUF!=0);
}

void  receive(uchar idata *d)
{ uchar i;
  do{ 
    while(RI==0);RI=0;
  } while((SBUF^0xaa)!=0);
  SBUF=0xbb;
  while(TI==0);TI=0;
  while(1){
    pf=0;
    for(i=0;i<16;i++){
      while(RI==0);RI=0;
      d[i]=SBUF;
      pf+=d[i];
    }
    while(RI==0);RI=0;
    if((SBUF^pf)==0) {
      SBUF=0x00; break;}
    else { 
      SBUF=0xff;
      while(TI==0);TI=0;
    }
  }
}

void main (void) {
  init();
  if(TR==0){
    send(buf);
  }
  else {
    receive(buf);
  }
} 

⌨️ 快捷键说明

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