(完整版)基于单片机的超声波测距仪的设计参考毕业论文 联系客服

发布时间 : 星期一 文章(完整版)基于单片机的超声波测距仪的设计参考毕业论文更新完毕开始阅读022782613868011ca300a6c30c2259010202f33b

}

}

delay_us(4);

return(k);

void tmpwrite(unsigned char dat) 函数功能:向B20写一字节 { unsigned int i; }

void tmpchange(void)

unsigned char j; bit testb; for(j=1;j<=8;j++) { }

testb=dat&0x01; dat=dat>>1; if(testb) { } else { }

tem_in=0; i=8;while(i>0)i--; tem_in=1;i++;i++; tem_in=0;i++;i++; tem_in=1; i=8;while(i>0)i--;

{ }

void tmp(void) 温度采集及转换 {

int m,n=0;

float temnum1=0; dsreset(); delay(1); tmpwrite(0xcc); tmpwrite(0x44);

跳过序列号命令 转换命令

复位

dsreset();

delay(1); tmpwrite(0xcc); tmpwrite(0xbe); temp_l=readbyte(); temp_=flag1;

temp_==0xf8)tembuf[3]=10;

低位在前

temnum=temnum1; }

void dis(void) 温度显示 {

uchar i;

uchar j=0xfe;

for(i=0;i<4;i++) {

输送显示数据

}

P0=0xff; }

P0=ledcode[tembuf[i]];

if(i==1)P0=ledcode[tembuf[i]]+0x80; 小数点显示 P2=j; delay(15); j=(j<<1)+0x01;

void distance(void) 计算测量得到的距离 {

double radical,dist; if(b!=0) {

radical=sqrt(1+(temnum+273)273); dist=165.7*t*radical;

dist=dist+0.005; 四舍五入并留两位小数

if(dist>0&&dist<10) { }

dispbuf[3]=11; dispbuf[2]=(uchar)dist;

dispbuf[1]=(uchar)(dist*10); dispbuf[0]=(uchar)(dist*100);

if(dist>=10&&dist<=0) 测量距离大于10米或小于0显示\

也有出错的意思

{

dispbuf[3]=10;

dispbuf[2]=10; dispbuf[1]=10; dispbuf[0]=10; }

if(dist<100&&dist>=10)

{ dispbuf[3]=(uchar)dist10; }

dispbuf[2]=(uchar)dist; dispbuf[1]=(uchar)(dist*10); dispbuf[0]=(uchar)(dist*100);

}

else

{ 当T1溢出时,则测量时间无效

dispbuf[3]=10;

dispbuf[2]=10; dispbuf[1]=10; dispbuf[0]=10; }

}

void dis1(void) 距离显示 {

uchar i;

uchar j=0xfe;

for(i=0;i<0;i++) *输送显示数据*