一款液晶显示的超声波测距板
Sum=(nCount>
void DisplayResult()
{
float temp=0;
char String[10];
//算出当前温度
temp=TempInt+TempDot/10000.0;
//显示当前温度
sprintf(String,"%0.2f",temp);
DisplayEnglish(33,0,String);
//算出当前声速
temp=332+0.607*temp;
//显示当前声速
sprintf(String,"%0.1fm",temp);
DisplayEnglish(33,2,String);
if(Success==1) //测距成功,显示“成功”,并显示距离
{
temp=nCount*temp/2000+0.5; // 算出距离
//显示远、近距离测量的结果
if(Mode==0)
{
nResult=(0.9723*temp-14.803)+0.5; //此式由拟合得到
DisplayEnglish(0,4,"N");
}
else
{
nResult=0.9648*temp-5.7716+0.5; //此式由拟合得到
DisplayEnglish(0,4,"F");
}
sprintf(String,"%5u cm",nResult); //将整数转换为字符串
//拼凑显示最终结果“xxx.xcm”
DisplayEnglish(8,4,String);
DisplayEnglish(40,4,".");
String[5]=;
DisplayEnglish(48,4,&String[4]);
Delay_ms(50);
}
else //测距失败,显示“失败”提示
{
DisplayEnglish(0,4," --Fail-- ");
}
if(nResult>500)
{
Mode=1;
}
else
{
Mode=0;
}
}
void Delay_ms(uint x) //12M环境下延时1ms
{
uchar j;
while(x--)
{
for(j=0;j<125;j++);
}
}
void Delay_us(uint i) //微秒级延时:T=7+2*(X-1) us
{
while(--i);
}
液晶显示超声波测距51系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)