📄 485 programme.txt
字号:
void dsend()//数据发送子程序
{
uchar i;
uchar sum;
do
{
dere487=1;
_nop_();
SBUF=0xaa;
while(TI==0);
TI=0;
dere487=0;
_nop_();
while(RI==0);
RI=0;
dogds1232();
}while(SBUF!=0xbb);
do
{
sum=0;
dere487=1;
_nop_();
for(i=0;i<4;i++)
{
SBUF=bcdtab[i];
sum+=bcdtab[i];
//求发送校验和
while(TI==0);
TI=0;
}
SBUF=sum; //send the sum
while(TI==0);
TI=0;
dere487=0;
_nop_();
while(RI==0);
//wait the master answer
RI=0;
dogds1232();
}while(SBUF!=0); //回答出错,则重发
}
*************************************************************
void drec() //串口接收子程序
{
uchar i;
uchar rsum;
do
{
dere487=0;
_nop_();
while(RI==0);
RI=0;
dogx5045();
}while(SBUF!=0xaa); //判断slave请求
否
dere487=1;
_nop_();
SBUF=0xbb; //发应答信号
while(TI==0);
TI=0;
while(1)
{
rsum=0; //清接收校验和
dere487=0;
_nop_();
for(i=0;i<4;i++)
{
while(RI==0);
RI=0;
retab[i]=SBUF;
rsum+=retab[i];
//求接收校验和
}
while(RI==0);
//receive the sum
RI=0;
_nop_();
_nop_();
_nop_();
if(SBUF==rsum)
{
dere487=1;
_nop_();
SBUF=0x00;
//校验和相同发00
while(TI==0);
TI=0;
break;
}
else
{
dere487=1;
_nop_();
SBUF=0xff;
//出错发ff,重新接收
while(TI==0);
TI=0;
dogx5045();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -