大学毕业设计-基于DS18B20的温度测块量模块设计.docVIP

大学毕业设计-基于DS18B20的温度测块量模块设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
大学毕业设计-基于DS18B20的温度测块量模块设计

基于DS18B20的温度测量模块设计 DS18B20是现代最常见的温度传感器,基于DS18B20的温度测量模块是很实用的数字温度显示模块,在生活中使用广泛,此温度传感器的设计有重要的意义。本系统在现实生活中实用,并且造价低廉。 设计任务 用STC89S52控制DS18B20,读取数据,并对DS18B20转换后的数据进行处理,最后在数码管上显示DS18B20测出的温度。使用6位数码管显示,最高位为符号位,如果温度值为正,不显示,如果温度为负,则显示负号;第2—4位显示温度值的整数部分,并在第4位数据上显示小数点;第5位显示一位小数,最低位显示摄氏度符号“C”。 设计原理 DS18B20数字温度传感器概述 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 DS18B20产品的特点: 只要求一个端口即可实现通信。 在DS18B20中的每个器件上都有独一无二的序列号。 实际应用中不需要外部任何元器件即可实现测温。 测量温度范围在-55。C到+125。C之间。 数字温度计的分辨率用户可以从9位到12位选择。 内部有温度上、下限告警设置。 TO-92封装的DS18B20的引脚排列见图4-2,其引脚功能描述见表4-1。 图4-2 DS18B20引脚结构图(底视图) 表4-1 DS18B20详细引脚功能描述 序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 小数的显示方法 DS18B20转换后的数据有四位二进制小数,精度为0.0625,可连续表示一位十进制小数,因此在数码显示时,只显示1位小数。在对四位二进制小数进行处理时,可先计算出这四位二进制小数对应的四位十进制小数,然后对这四位十进制小数舍弃后三位,只保留一位。在编写程序时,可编制一个反映二进制小数与显示码对应关系的表格,根据四位二进制小数的十六种不同情况查找对应的一位十进制小数的段码,具体映射关系如表4-5所示: 表4-5 二进制小数与显示码的对应关系 二进制小数位 四位十进制小数 保留一位 对应显示码(共阴) 0000 0.0000 0 3FH 0001 0.0625 1 06H 0010 0.1250 1 06H 0011 0.1875 2 5BH 0100 0.2500 3 4FH 0101 0.3125 3 4FH 0110 0.3750 4 66H 0111 0.4375 4 66H 1000 0.5000 5 6DH 1001 0.5625 6 7DH 1010 0.6250 6 7DH 1011 0.6875 7 07H 1100 0.7500 8 7FH 1101 0.8125 8 7FH 1110 0.8750 9 6FH 1111 0.9375 9 6FH 程序设计流程 C语言程序主要代码 //*************************************** //延时函数 //*************************************** void delay(unsigned int us) { while(us--); } //*************************************** //DS18 B20 复位函数 //*************************************** void reset(void) { uchar x=0; DQ=1; delay(8); DQ=0; delay(80); DQ=1 delay(14); x=DQ; delay(20); } //************************************** //从DS18 B20中读一个字节 //************************************* uchar readbyte(void) { uchar i=0; uchar dat=0; for (i=8;i0;i--) { DQ=0; dat=1; DQ=1; if(DQ) dat|=0x80; delay(4); } return(dat); } //************************* //向DS18B20中写一个字节 //**************************** void writebyte (unsigned ch

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档