第一范文网 - 专业文章范例文档资料分享平台

(完整版)基于单片机控制超声波测距仪毕业设计论文

来源:用户分享 时间:2025/8/15 18:07:12 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

{ unsigned int i; tem_in=0; i=103; while(i>0)i--; tem_in=1; i=4; while(i>0)i--;

}

uchar readbyte(void) { uchar i,k; i=8; k=0; while(i--) {

tem_in=1; delay_us(1); tem_in=0; k=k>>1; tem_in=1; NOP;

if(tem_in)k |= 0x80; delay_us(4);

}

直接读一字节程序 tem_in为1时,则该位也为1

}

return(k);

void tmpwrite(unsigned char dat) 函数功能:向B20写一字节 { unsigned int i; unsigned char j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) { tem_in=0;i++;i++; tem_in=1; i=8;while(i>0)i--;

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

}

}

void tmpchange(void)

{

dsreset();

复位

}

delay(1); tmpwrite(0xcc); tmpwrite(0x44);

跳过序列号命令 转换命令

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

int m,n=0;

float temnum1=0;

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;

(完整版)基于单片机控制超声波测距仪毕业设计论文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9q2ge20uks8iiwn479cv9uewu2s0h401e0p_13.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top