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

ds18b20程序 lm386 超声波测距

来源:网络收集 时间:2021-02-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

ds18b20程序 lm386 超声波测距

// ds18b20程序 #include <reg52.h> #include <stdio.h> #include <display.h> sbit ds=P1^4; sbit beep=P0^6; uint temp; float f_temp; void dsreset() //ds18b20 初始化 { uint i; ds=0; i=103; while(i>0)i--; ds=1; i=4; while(i>0)i--; }

bit readbit() //读取一位数据 (返回一位数据用bit) { uint i; bit dat; ds=0; i++; //拉低后 延时最少1微妙 拉高数据线 ds=1; i++; // 拉高后 十五微妙之间有效 i++; dat=ds; i=8; while(i>0)i--; // 读时间间隙最少六十微妙 return (dat); }

uchar readbyte() // 读取一个字节 { uchar i,j,dat; dat=0; for(i=0;i<8;i++) { j=readbit(); dat=(j<<7)|(dat>>1); } return dat;

}

void writebyte(uchar dat) //写一个字节 { uint i; uchar j; bit test; for(j=0;j<8;j++) { test=dat&0x01; dat=dat>>1; if(test) //写1 { ds=0; i++; //拉低数据线后 15微妙内允许拉高数据线 i++; ds=1; i=8; //写间隙最少60微妙 while(i>0)i--; } else { ds=0; //写0 i=8; while(i>0)i--; // 写0时 延时60微妙 ds=1; i++; i++; } } }

void change() // 开始温度转换 { dsreset(); delay1(1); writebyte(0xcc); writebyte(0x44); }

uint get_temp() //读取温度数据 { uchar a,b; dsreset();

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库ds18b20程序 lm386 超声波测距在线全文阅读。

ds18b20程序 lm386 超声波测距.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/1186760.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: