📄 单片机通信 程序 .txt
字号:
#include<reg51.h>
//====================================
//定义参数
//===================================
#define uchar unsigned char
#define uint unsigned int
#define TR 1 //TR=0时发送数据
uchar buf[6];
uchar sum;
//===================================
//初始化
//===================================
void Init(void) //串行口初始化
{
TMOD=0x20;
TR1=1;
TH0=0xfd; //设置波特率
TL0=0xfd;
SCON=0x50;//选择串口方式1
}
//===================================
//发送数据程序
//==================================
void send_data(void)
{
uchar i;
do
{
SBUF=0xAA;
while(!TI); //等待发送结束
TI=0;
while(!RI); //等待B机的回答
RI=0;
}while((SBUF^0xAA!=0));//一直等待B机发送数据如果B机没响应,则继续发送AA
do
{
sum=0;
for(i=0;i<6;i++)
{
SBUF=buf[i];
sum+=buf[i];
while(!TI);
TI=0;
}
SBUF=sum;
while(!TI);
TI=0;
while(!RI);
RI=0;
}while(SBUF!=0);
}
//==============================
//接收数据端
//==============================
void receive_data(void)
{
uchar i;
do{}while(RI==0);RI=0;
while(SBUF^0xAA!=0);
SBUF=0xBB;
while(!TI);
TI=0;
while(1)
{
sum=0;
for(i=0;i<6;i++)
{
while(!RI);
RI=0;
buf[i]=SBUF;
sum+=buf[i];
}
while(!RI);
RI=0;
if((SBUF^sum)==0)
{
SBUF=0x00;
break;
}
else
{
SBUF=0xff;
while(TI==0);
TI=0;
}
}
}
//====================
//主函数
//=====================
void main()
{
Init();
if(TR==0)
{
send_data();
}
else
{
receive_data();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -