📄 ppcomun.c
字号:
#include<reg52.h>
#define uchar unsigned char
#define TR 1 //发送接收差别值
uchar idata buf[10];
uchar pf;
void init(void) //串口初始化
{
TMOD=0X20; //T/C1定时器1,定时方式2
TH1=0xe8; //设定波特率1200
TL1=0xe8;
PCON=0x00;
TR1=1; //启动T/C1
SCON=0x50; //串行口工作于方式1
}
void send(uchar idata*d)
{
uchar i;
do{
SBUF=0xaa; //A机发送联络信号aa
while(TI==0); //TI为0说明不发送,在这里等待发送
TI=0; //发送完毕则清发送标准
while(RI==0); //等待B机回答
RI=0; //回答完毕则清回答标准
}while((SBUF^0xbb)!=0); //B机没准备好。
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(TI==0)
{
send(buf);
}
else
{
receive(buf);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -