六.DS18B20 测量温度系统.doc

六.DS18B20 测量温度系统.doc

ID:25788988

大小:72.00 KB

页数:5页

时间:2018-11-22

六.DS18B20 测量温度系统.doc_第1页
六.DS18B20 测量温度系统.doc_第2页
六.DS18B20 测量温度系统.doc_第3页
六.DS18B20 测量温度系统.doc_第4页
六.DS18B20 测量温度系统.doc_第5页
资源描述:

《六.DS18B20 测量温度系统.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、十三.DS18B20测量温度系统[实验任务]用一片DS18B20构成测温系统,测量的温度精度达到0.1度,测量的温度的范围在-20度到+50度之间,用4位数码管显示出来。[硬件电路图][实验原理]DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。DS18B20产品的特点(1)、只要求一个I/O口即可实现通信。(2)、在DS18B20中的每个器件上都有独一无二的序列号。(3)、实际应用中不需

2、要外部任何元器件即可实现测温。(4)、测量温度范围在-55。C到+125。C之间。(5)、数字温度计的分辨率用户可以从9位到12位选择。(6)、内部有温度上、下限告警设置。DS18B20详细引脚功能描述1GND地信号;2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。DS18B20的使用方法。由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,我们必须采用软件

3、的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。[C语言源程序]#include

4、codeunsignedcharseg7code[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//显示段码voidDelay(unsignedinttc)//显示延时程序{while(tc!=0){unsignedinti;for(i=0;i<100;i++);tc--;}}sbitTMDAT=P3^1;//DS18B20的数据输入/输出脚DQ,根据情况设定unsignedintsdata;//测量到的温度的整数部分unsignedcharxiao

5、shu1;//小数第一位unsignedcharxiaoshu2;//小数第二位unsignedcharxiaoshu;//两位小数bitfg=1;//温度正负标志voiddmsec(unsignedintcount)//延时部分{unsignedchari;while(count--){for(i=0;i<115;i++);}}voidtmreset(void)//发送复位{unsignedchari;TMDAT=0;for(i=0;i<103;i++);TMDAT=1;for(i=0;i<4;i++);}bittmrbi

6、t(void)//读一位//{unsignedinti;bitdat;TMDAT=0;i++;TMDAT=1;i++;i++;//微量延时//dat=TMDAT;for(i=0;i<8;i++);return(dat);}unsignedchartmrbyte(void)//读一个字节{unsignedchari,j,dat;dat=0;for(i=1;i<=8;i++){j=tmrbit();dat=(j<<7)

7、(dat>>1);}return(dat);}voidtmwbyte(unsignedchardat)//写一

8、个字节{unsignedcharj,i;bittestb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){TMDAT=0;//写0i++;i++;TMDAT=1;for(i=0;i<8;i++);}else{TMDAT=0;//写0for(i=0;i<8;i++);TMDAT=1;i++;i++;}}}voidtmstart(void)//发送ds1820开始转换{tmreset();//复位dmsec(1);//延时tmwbyte(0xcc);//跳过序列号命令t

9、mwbyte(0x44);//发转换命令44H,}voidtmrtemp(void)//读取温度{unsignedchara,b;tmreset();//复位dmsec(1);//延时tmwbyte(0xcc);//跳过序列号命令tmwbyte(0xbe);//发送读取命令a=tmrbyt

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。