DSB数字温度计设计实验报告_第1页
DSB数字温度计设计实验报告_第2页
DSB数字温度计设计实验报告_第3页
DSB数字温度计设计实验报告_第4页
DSB数字温度计设计实验报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、姓名学号:赵晓磊段石磊付成指导老师:万青设计时间:2015年12月电子与信息工程学院目录DS18B20数字温度计设计1 .引言1.1. 设计意义在日常生活及工农业生产中,经常要用到温度的检测及控制,传统的测温元件有热电偶和热电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,需要比较多的外部硬件支持。具缺点如下: 硬件电路复杂; 软件调试复杂; 制作成本高。本数字温度计设计采用美国DALLAS导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20乍为检测元件,测温范围为-55125C,最高分辨率可达C。DS18B2M以直接读出被测温度值,而且采用三线制与单片机相连,减

2、少了外部的硬件电路,具有低成本和易使用的热点。1.2. 系统功能要求设计出的DS18B20R字温度计测温范围在-55125C,误差在±C以内,采用LED数码管直接读显示。2 .方案设计按照系统设计功能的要求,确定系统由3个模块组成:主控制器、测温电路和显示电路。数字温度计总体电路结构框图如图所示:PDIP/SOICRST/VPP E (RXD)尔 C (TXDJP31 CXFAL5CJCTAL1 匚 (iNT0)P32C (j»7Ti)P3,3C TOJF3* 匚 (T1JP3SCGN 口匚JVCC Pi G3 PI 5"才口 Pl 3 Fl 2J PI 1 IA

3、JM)3P3 7AT69C2 附两节电示:I/O求外部 比较器 P1 口P1 口5、RST复位输入。RST一旦变成高电 的I/O引脚就复位到“1”。当振荡器正在运 续给出RSHI脚两个机器周期的高电平便可 位。每一个机器周期需12个振荡器或时钟6、XTAL1作为振荡器反相器的输入和rr7一1A1 -2Y4 一219318一X-1YI1A2 -417”42Y3 一5161Y2H叫S2A32Y2 一714IY31M -8132A22YI 一9121Y4CND 10112A1平所有 行时,持 完成复 周期。内部时3 .硬件设计温度计电路设计原理图如下图所示,控制器使用单片机AT89C2051温度传感

4、器使用DS18B20使用四位共阳LED数码管以动态扫描法实现温度显示。主控制器单片机AT89C2051具有低电压供电和小体积等特点,两个端口刚好满足电路系统的设计需要,很适合便携手持式产品的设计使用。系统可用池供电。AT89C2051的引脚图如右图所1、VCC电源电压。2、GND地。3、P1口:P1口是一个8位双向口。口引脚提供内部上拉电阻,和要上拉电阻。和还分别作为片内精密模拟的同相输入(ANI0)和反相输入(AIN1)c输出缓冲器可吸收20mA电流并能直接驱动LED显示。当引脚写入“1”时,其可用作输入端,当引脚用作输入并被外部拉低时,它们将因内部的写入“1”时,其可用作输入端。当引脚用作

5、输入并被外部拉低时,它们将因内部的上拉电阻而流出电流。4、P3口:P3口的、是带有内部上拉电阻的七个双向I/O口引脚。用于固定输入片内比较器的输出信号并且它作为一通用I/O引脚而不可访问。P3口缓冲器可吸收20mA电流。当P3口写入“1”时,它们被内部上拉电阻拉高并可用作输入端。用作输入时,被外部拉低的P3口脚将用上拉电阻而流出电流钟发生器的输入7、XTAL2作为振荡器反相放大器的输出。总线驱动器74LS24474LS244为3态8位缓冲器,一般用作总线驱动器。引脚图见上图显示电路显示电路采用4位共阳极LED数码管,从P1口输出段码,列扫描用口来实现,歹I驱动用8055三极管。温度传感器DS1

6、8B20DS18B20I勺性能特点:1、适应电压范围更宽,电压范围:,在寄生电源方式下可由数据线供电。2、独特的单线接口方式,DS18B2皿与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20勺双向通讯。3、DS18B20支持多点组网功能,多个DS18B2M以并联在唯一的三线上,实现组网多点测温。4、DS18B20E使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。5、温范围55C+125C,在-10+85C时精度为土C。6、可编程的分辨率为912位,对应的可分辨温度分别为C、C、C和C,可实现高精度测温。封装12位 更快。线”用干扰纠而烧 (引脚的第

7、17、在9位分辨率时最多在内把温度转换为数字,分辨率时最多在750ms内把温度值转换为数字,速度8、测量结果直接输出数字温度信号,以"一线总行传送给CPU同时可传送CR饭验码,具有极强的抗错能力。9、负压特性:电源极性接反时,芯片不会因发热毁,但不能正常工作。DS18B20t单片机的接口电路图见右图)DS18B20可以采用电源供电方式,止匕时DS18B20脚接地,第2脚作为信号线,第3脚接电源4 .软件设计系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和显示数据刷新子程序等。主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。

8、温度测量每1s进行一次。主程序流程图如图所示读出温度子程序读出温度子程序的主要功能是读出RAMfr的9字节。在读出时必须进行CR饭验,校验有错时不能进行温度数据的改写。读出温度子程序流程图如下图所示:读出温度子程序RAMfr的9字节。在读出时须CR或验正确移入温度暂存发DS18B20复位指令发跳过ROM旨令发读取温度指令读取操作,,CR或验温度转换,结束命令子程序主要是发温度转换开始命令。当采用12显示数据刷新进彳TCRCK验,校验有错时才讲行温里数福心改写1得出沛度子程序流程图如下图所示位分辨率时,转换时间约为750ms:生本程序设计中,采用1s显示程序延时法等待转换的完成。温度转换命令子程

9、序流程图如下图所示计算温度子程序发温度转换开始命令发DS18B20复位命令 发跳过祀脩令RAMfr读取值进行BC则的转换运算,并进行温度值正负的判定。计算温度子程序流程图如下左图所示现实数据刷新子程序现实数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。现实数据刷新子程序流程图如下右图所示温度数据移入显示寄存器系统的调试以程序调试为主。硬件调试比较简单,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据

10、刷新子程序等的编程及调试由于DS18B20f单片机采用串行数据传送,因此,对DS18B20!行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。本程序采用单片机汇编或C语言编写用或KeilC51编译器编程调试。软件调试到能显示温度值,并且在有温度变化时显示温度能改变,救基本完成。性能测试可用制作的温度机和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在C以内。另外,-55+125C的测温范围使得该温度计完全适合一般的应用场合,具低电压供电特性可做成用电池供电的手持温度计。DS18B2W度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发

11、,但在实际设计中应注意以下问题;1、DS18B20r作时电流高大,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET电。2、连接DS18B20勺总线电缆是有长度限制的,因此在用DS18B20S行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。3、在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20I勺返回信号。一旦某个DS18B2瞅触不好或断线,当程序读DS18B20寸,将没有返回信号,程序进入死循环。这一点在进行DS18B20®件连接和软件设计时要给予一定的重视。6.设计总结历时

12、2个星期的单片机课程设计已经结束了,在这两个星期的时间里,我们在老师的指导下完成了基于DS18B20的数字温度计的设计和制作。在进行实验的过程中,我们了解并熟悉DS18B20AT89C2051以及74LS244的工作原理和性能。并且通过温度计的制作,我们将电子技能实训课堂上学到的知识进行运用,并在实际操作中发现问题,解决问题,更加增加对知识的认识和理解。在课程设计的过程中,也遇到了一些问题。比如最开始根据课本上的电路图进行合理的设计布局和布线。有些同学的布局不合理,导致焊接的过程中任务相当繁重,并且不美观。在之后的烧程序调试的时候,出现问题之后,没有合理布线的同学在查找问题的过程中相当棘手。在

13、焊接过程中,出现最多的就是虚焊问题。对于这个问题,在焊接的过程中,我尽量依照书中的指导,尽量将焊点焊成水滴状,最后接电后再根据数码管的显示情况进行逐个排查。在将程序烧到单片机之后,接上电源,发现数码管没有出现正常的“”,而是出现了“”,在检查线路无误之后,和其他的同学讨论之后得出结论:书中程序是对于单片机、电阻及数码管是直接连接而设计的,而在加入了74LS244之后,要将8个输入输出端口进行掉序。于是,我便将8个端口进行调换,之后再次接通电源,数码管显示“”,调试成功。在自己的温度计制作完成之后,我还帮助其他没有完成的同学进行检修,并且成功帮助2位同学找到问题进行解决,最后都调试成功。总之,在

14、这2个星期中,通过自己在实验室动手制作数字温度计,不仅将课本的知识与实践相结合,而且在实践中更加深入了解书中原本抽象的知识。这也是整个课程设计中最有收获的地方。源程序代码7.附录/*/sbitsbituint/*Uchar/DS18B20温度计C程序/*/使用AT89C205惮片机,12MHZ1j振,用共阳LED数码管/P1口输出段码,P3口扫描/#pragmasrc(d:#include""#include""/_nop_();延时函数用# defineDisdataP1/段码输出口# definediscanP3/扫描口# defineucharun

15、signedchar# defineuintunsignedintDQ=P3A7;/温度输入口DIN=P1A0;/LED小数点控制h;温度小数部分用查表法*/codeditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09uchardis_712=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf;/*共阳LED®码表"0""1""2"&qu

16、ot;3""4""5""6""7""8""9"code"不亮""-"*/ucharcodescan_con4=0xfe,0xfd,0xfb,0xf7;/列扫描控制字读出温度暂放显示单元数据, 共 4 个数据 ,uchardatatemp_data2=0x00,0x00;/uchardatadisplay5=0x00,0x00,0x00,0x00,0x00;/一个运算暂存用/*11微秒延时函数*/voiddelay(uintt)

17、for(;t>0;t-);/*显示扫描函数*/scan()chark;for(k=0;k<4;k+)/四位LED扫描控制Disdata=dis_7displayk;if(k=1)DIN=0;discan=scan_conk;delay(90);discan=0xff;/*18B20复位函数*/ow_reset(void)charpresence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0;/delay(50);/550usDQ=1;/delay(6);/66uspresence=DQ;/presence=0继续

18、下一步delay(45);/延时500uspresence=DQ;DQ=1;/*18B20写命令函数*/向1-WIRE总线上写一个字节voidwrite_byte(ucharval)uchari;for(i=8;i>0;i-)/DQ=1;_nop_();_nop_();DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ=val&0x01;/最低位移出delay(6);/66usDQ=1;delay(1);/*18B20读1个字节函数*/从总线上读取一个字节ucharread_byte(void)uchari;ucharvalue

19、=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_();/4usif(DQ)value|=0x80;delay(6);/66usDQ=1;return(value);/*读出温度函数*/read_temp()write_byte(0xCC);发SkipROM命令write_byte(0xBE);/发读命令temp_data0=read_byte();/温度低8位temp_data1=read_byte();/温度高8位ow_reset();write_byte(0xCC);/SkipROMwrite_byte(0x44);/发转换命令/*温度数据处理函数*/work_temp()ucharn=0;/if(temp_data1>127)负温temp_data1=(256-temp_data1

温馨提示

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

评论

0/150

提交评论