#include<reg51.h> #include<string.h> #define addr 0x02//從機2的地址 #define _SUCC_ 0x0f//數(shù)據(jù)傳送成功 #define _ERR_ 0xf0//數(shù)據(jù)傳送失敗 unsigned char aa=0xff;//主機與從機之間通信標志 unsigned char Buff[20];//數(shù)據(jù)緩沖區(qū) //串口初始化函數(shù) void serial_init() { TMOD=0x20; //定時器1工作于方式2 TH1=0xfd; TL1=0xfd; //波特率為9600 PCON=0; SCON=0xd0; //串口工作于方式3 TR1=1; //開啟定時器 TI=0; RI=0; } //接收數(shù)據(jù)函數(shù) unsigned char RECE_data(unsigned char *Buff) { unsigned char i,temp; unsigned char lenth; unsigned char check; RI=0; //接收數(shù)據(jù)長度 while(!RI); if(RB8==1) //若接收到地址幀,則返回0xfe return 0xfe; lenth=SBUF; RI=0; check=lenth; for(i=0;i<lenth;i++) //接收數(shù)據(jù) |