a=(a/11059.2)+0.7; //以上为超声波测距,能明白
//获取的数值分解成整数和小数,再转换成十进制字符。
//把3位整数、小数点、3位小数、空格共9个字节分别保存在缓存数组
c1=modf(a,&b1);
b=(int)(b1);
c=(int)(1000*c1);
x[0]=0x30+b/100;
x[1]=0x30+b/10-10*(b/100);
x[2]=0x30+b-10*(b/10);
x[3]=0x2e;
x[4]=0x30+c/100;
x[6]=0x30+c/10-10*(c/100);
x[7]=0x30+c-10*(c/10);
x[8]='\0';
//缓存数组中9个字节合成一帧数据串发送到上位机
for(i=0;i<9;i++)
{
if((x[i]==0x30)&&(i<2))
{
if(!(x[0]==0x30))
{
SBUF=x[i];
while(!TI);
TI=0;
}
else
{
SBUF=0x20;
while(!TI);
TI=0;
}
}
else
{
SBUF=x[i];
while(!TI);
TI=0;
}
}
//延时
for(i=0;i<110;i++)
for(j=0;j<114;j++);
}
}
|