ds18b20程序 lm386 超声波测距

2021-02-21 08:42

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();


ds18b20程序 lm386 超声波测距.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:幼儿园教师如何讲故事

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: