DS18B20温度传感器设计共13页_第1页
DS18B20温度传感器设计共13页_第2页
DS18B20温度传感器设计共13页_第3页
DS18B20温度传感器设计共13页_第4页
DS18B20温度传感器设计共13页_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、智能化仪器及原理应用课程设计设计题目: ds18b20 数字温度计的设计专业班级: 10 自动化 1 班姓 名:组 员:指导老师:日 期: 2012-11-26目录一、摘要 ············· ·················· ····&

2、#183;········ ····· ·············· ········ ····· ····· ···&

3、#183;····················2二、方案论证 ······ ·················· ···

4、83;· ··· ····· ····· ·············· ····· ··· ····· ·······&

5、#183;··············· ······2三、电路设计 ······ ·················· ··&#

6、183;·· ··· ····· ····· ·············· ····· ··· ····· ······

7、················· ······21、 设备整机结构及硬件电路框图 · ····· ····· ············&#

8、183;· ····· ··· ····· ····· ·················· ······22、 单片机的选择 ···

9、83;······ ····· ····· ············· ·············· ·····

10、3;························· ····· ······33、 温度显示电路 ·········· ·&#

11、183;··· ····· ············· ·············· ·············

12、3;················· ····· ······34、 温度传感器 ············ ····· ··&#

13、183;·· ············· ·············· ····················

14、;··········· ····· ······45、 软件设计 ··· ··················· ···

15、3;· ········ ····· ·············· ············· ········

16、;·········· ····· ······66、 系统所运用的功能介绍: ············· ····· ·······

17、83;······ ········ ····· ····· ························8四、系统

18、的调试及性能分析: ················ ····· ············· ········· ····

19、3; ····· ············· ···········8附件 :ds18b20温度计 c程序 ··············· ·

20、3;··· ············· ········· ····· ····· ············· 

21、3;··········91一、摘要本设计的主要内容是应用单片机和温度传感器设计一个数字温度表,ds18b20 是一种可组网的高精度数字温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本设计基于数字温度传感器 ds18b20,以 at89c51 片机为核心设计此测试系统,具有结构简单、测温精度高、稳定可靠的优点。可实现温度的实时检测和显示,本文给出了系统的硬件电路详细设计和软件设计方法,经过调试和实验验证,实现了预期的全部功能。二、

22、方案论证方案一: 由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来, 进行 a/d 转换后, 就可以用单片机进行数据的处理, 在显示电路上, 就可以将被测温度显示出来, 这种设计需要用到 a/d 转换电路,感温电路比较麻烦。方案设计框图如下:热敏电 阻组成的感 温电路ad 转换数码管显示电路方案二:考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器 ds18b2,0 此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比

23、较简单,软件设计也比较简单,故采用了方案二。三、电路设计1、 设备整机结构及硬件电路框图根据设计要求与设计思路,设计硬件电路框图如下图所示, 4位数码管显示器系统中 at89c51成对ds18b20初始化、温度采集、温度转换、温度数码显示。本装置详细组成部分如下:a. 主控模块: at89c51 片机;b. 传感器电路: ds18b20温度传感器;c. 电路:四位数码管显示。2按照系统设计功能的要求, 确定系统由 3 个模块组成: 主控制器、 测温电路和显示电路。数字温度计总体电路结构框图所示:at89c51主显示电路 控ds18b20制器扫描驱动2、 单片机的选择单片机 at89c51有低电

24、压供电和体积小等特点, 四个端口只需要两个口就能满足电路系统的设计需要, 很适合便携手持式产品的设计使用系统可用二节电池供电。at89c51的管脚结构图:u419189xtal1xtal2rst393837p0.0/ad0p0.1/ad1p0.2/ad2p0.3/ad3 36p0.4/ad4 3534p0.5/ad5p0.6/ad6 33p0.7/ad7 32293031psenaleeap2.0/a8 21p2.1/a9 2223p2.2/a10p2.3/a11 2425p2.4/a12 26p2.5/a13 27p2.6/a14 28p2.7/a1512345678p1.0p1.1p1.2

25、p1.3p1.4p1.5p1.6p1.7p3.0/rxd 10p3.1/txd 1112p3.2/int0p3.3/int1 13p3.4/t0 1415p3.5/t1p3.6/wr 16 p3.7/rd 17at89c513、 温度显示电路四位共阳极数码管,能够显示小数和负温度。零下时,第一个数码管显示负号。当温度超过 99.9 时,四个数码管全部亮。列扫描用 p2.0p2.3 来实现,列驱用 not。电路仿真图如下:34、 温度传感器ds18b20温度传感器是美国 dallas 半导体公司最新推出的一种改进型智能温度传感器, 与传统的热敏电阻等测温元件相比, 它能直接读出被测温度, 并且可

26、根据实际要求通过简单的编程实现 912 位的数字值读数方式。电路图如下:4系统总电路图如下:55、 软件设计主要包括主程序、 读出温度子程序、 温度转换命令子程序、 计算温度子程序和现实数据刷新子程序等。主程序 主程序的主要功能是负责温度的实时显示、读出并处理 ds18b20的测量温度值。温度测量每 1s进行一次。主流程图如下:读出温度子程序 读出温度子程序的主要功能是读出 ram中的 9 字节。在读出时须进行 crc校验,校验有错时不进行温度数据的改写。流程图如下:6温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令。 当采用 12 位分辨率时,转换时间约为 750ms。在本程序

27、设计中,采用 1s 显示程序延时法等待转换的完成。流程图如下:发 ds18b20复位命令发跳过 rom命令发温度转换开始命令结束计算温度子程序 计算温度子程序将 ram中读取值进行 bcd码的转换运算,并进行温度值正负的判定。开始n温度零下?y置“+”标志温度值取补码置“ -”标志计算小数位温度 bcd值计算整数位温度 bcd值结束显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为 0 时,将符号显示位移入下一位。7温度数据移入显示寄存器十位数 0?百位数 0? 百位数显示数据十位数显示符号百位数不显示 (不显示符号)结束6、 系统所运用的功能

28、介绍:ds18b20与单片机之间采用串行通信的方式进行数据读写四、系统的调试及性能分析:硬件调试比较简单, 首先检查电感的焊接是否正确, 然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、 温度转换命令子程序、 计算温度子程序和现实数据刷新子程序等的编程及调试由于 ds18b20与单片机采用串行数据传送,因此,对 ds18b20进行读/ 写编程时必须严格地保证读 / 写时序;否则将无法读取测量结果。本程序采用单片机汇编或 c语言编写用 keil c51 编译器编程调试。软件调试到能显示温度值,并且在有温度变化时显示温度能改变,就

29、基本完成。性能测试可用制作的温度机和已有的成品温度计同时进行测量比较。由于ds18b20的精度很高,所以误差指标可以限制在 0.5 以内。另外, -55+125的测温范围使得该温度计完全适合一般的应用场合, 其低电压供电特性可做成用电池供电的手持温度计。8附件 :ds18b20温度计 c程序/ 使用 at89c2051单片机,用共阳四位数码管/p0 口输出段码, p2口扫描#include <reg51.h>#include <intrins.h> /_nop_(); 延时函数用#define disdata p0 / 段码输出口#define discan p2 /

30、扫描口#define uchar unsigned char#define uint unsigned intsbit dq=p14; / 温度输入口sbit din=p07; /led 小数点控制uint h;/* 温度小数部分用查表法 */uchar codeditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/ 共阳四位数码管uchar codedis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xf

31、f,0xbf;uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; / 列扫描控制字uchar data temp_data2=0x00,0x00; / 读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00;/ 显示单元数据 , 共 4个数据 , 一个运算暂存用/*11 微秒延时函数 */void delay(uint t)for(;t>0;t-);/* 显示扫描函数 */scan()char k;for(k=0;k<4;k+) / 四位数码管扫描控制disdata=dis_7displayk;if(k=

32、1)din=0;discan=scan_conk;delay(5);discan=0xff;/*18b20 复位函数 */ow_reset(void)char presence=1;9while(presence)while(presence)dq=1;_nop_();_nop_();dq=0; /delay(50); / 550usdq=1; /delay(6); / 66uspresence=dq; / presence=0 继续下一步delay(45); / 延时 500uspresence = dq;dq=1;/*18b20 写命令函数 */ 向 1-wire 总线上写一个字节void

33、 write_byte(uchar val)uchar i;for (i=8; i>0; i-) /dq=1;_nop_();_nop_();dq = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usdq = val&0x01; / 最低位移出delay(6); /66usval=val/2; / 右移一位dq = 1;delay(1);/*18b20 读 1 个字节函数 */ 从总线上读取一个字节uchar read_byte(void)uchar i;uchar value = 0;for (i=8;i>0;i-)dq=1;_nop_();_nop_();value>>=1;dq = 0; /_nop_();_nop_();_nop_();_nop_(); /4usdq = 1;_nop_();_nop_();_nop_();_nop_(); /4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论