云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > DS18B20数字温度计设计实验报告

DS18B20数字温度计设计实验报告

  • 62 次阅读
  • 3 次下载
  • 2025/5/1 9:38:44

百位数0? 置+温 度值取补码置 标志 十位数显示符百位数显示数‘一’标志 结束 号百位数不显据(不显示符 号) 结束

5. 系统调试

系统的调试以程序调试为主。

硬件调试比较简单,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。

软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试

由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。本程序采用单片机汇编或C语言编写用Wave3.2或Keil C51编译器编程调试。

软件调试到能显示温度值,并且在有温度变化时显示温度能改变,救基本完成。

性能测试可用制作的温度机和已有的成品温度计同时进行测量比较。由于DS18B20的精度很高,所以误差指标可以限制在0.5℃以内。

另外,-55~+125℃的测温范围使得该温度计完全适合一般的应用场合,其低电压供电特性可做成用电池供电的手持温度计。

DS18B20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意以下问题;

1、DS18B20工作时电流高大1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。

2、连接DS18B20的总线电缆是有长度限制的,因此在用DS18B20进行长距

离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。

3、在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号。一旦某个DS18B20接触不好或断线,当程序读DS18B20时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时要给予一定的重视。

6. 设计总结

历时2个星期的单片机课程设计已经结束了,在这两个星期的时间里,我们在老师的指导下完成了基于DS18B20的数字温度计的设计和制作。在进行实验的过程中,我们了解并熟悉DS18B20、AT89C2051以及74LS244的工作原理和性能。并且通过温度计的制作,我们将电子技能实训课堂上学到的知识进行运用,并在实际操作中发现问题,解决问题,更加增加对知识的认识和理解。

在课程设计的过程中,也遇到了一些问题。比如最开始根据课本上的电路图进行合理的设计布局和布线。有些同学的布局不合理,导致焊接的过程中任务相当繁重,并且不美观。在之后的烧程序调试的时候,出现问题之后,没有合理布线的同学在查找问题的过程中相当棘手。

在焊接过程中,出现最多的就是虚焊问题。对于这个问题,在焊接的过程中,我尽量依照书中的指导,尽量将焊点焊成水滴状,最后接电后再根据数码管的显示情况进行逐个排查。

在将程序烧到单片机之后,接上电源,发现数码管没有出现正常的“000.0”,而是出现了“666.6”,在检查线路无误之后,和其他的同学讨论之后得出结论:书中程序是对于单片机、电阻及数码管是直接连接而设计的,而在加入了74LS244之后,要将8个输入输出端口进行掉序。于是,我便将8个端口进行调换,之后再次接通电源,数码管显示“000.0”,调试成功。

在自己的温度计制作完成之后,我还帮助其他没有完成的同学进行检修,并且成功帮助2位同学找到问题进行解决,最后都调试成功。

总之,在这2个星期中,通过自己在实验室动手制作数字温度计,不仅将课本的知识与实践相结合,而且在实践中更加深入了解书中原本抽象的知识。这也

是整个课程设计中最有收获的地方。

7. 附 录

源程序代码

/*********************************************************************/

//

// DS18B20温度计C程序 // 2005.2.28通过调试

/*********************************************************************/

//使用AT89C2051单片机,12MHZ晶振,用共阳LED数码管 //P1口输出段码,P3口扫描 //#pragma src(d:\\aa.asm) #include \

#include \延时函数用 #define Disdata P1 //段码输出口 #define discan P3 //扫描口 #define uchar unsigned char #define uint unsigned int

sbit DQ=P3^7; //温度输入口 sbit DIN=P1^0; //LED小数点控制 uint h; // //

//*******温度小数部分用查表法**********// Uchar

code

ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} uchar

code

dis_7[12]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf};

/* 共阳LED段码表 \\不亮\

uchar code scan_con[4]={0xfe,0xfd,0xfb,0xf7}; // 列扫描控制字 uchar data temp_data[2]={0x00,0x00}; // 读出温度暂放 uchar data display[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用

// // //

/***********11微秒延时函数**********/ //

void delay(uint t) {

for(;t>0;t--); } //

/***********显示扫描函数**********/ scan() { char k;

for(k=0;k<4;k++) //四位LED扫描控制 {

Disdata=dis_7[display[k]]; if(k==1){DIN=0;}

discan=scan_con[k];delay(90);discan=0xff; } }

搜索更多关于: DS18B20数字温度计设计实验报告 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

百位数0? 置+温 度值取补码置 标志 十位数显示符百位数显示数‘一’标志 结束 号百位数不显据(不显示符 号) 结束 5. 系统调试 系统的调试以程序调试为主。 硬件调试比较简单,首先检查电感的焊接是否正确,然后可用万用表测试或通电检测。 软件调试可以先编写显示程序并进行硬件的正确性检验,然后分别进行主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等的编程及调试 由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com