基于DS18B20数字式温度计课程设计.docx

上传人:b****0 文档编号:9856042 上传时间:2023-05-21 格式:DOCX 页数:21 大小:95.86KB
下载 相关 举报
基于DS18B20数字式温度计课程设计.docx_第1页
第1页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第2页
第2页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第3页
第3页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第4页
第4页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第5页
第5页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第6页
第6页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第7页
第7页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第8页
第8页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第9页
第9页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第10页
第10页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第11页
第11页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第12页
第12页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第13页
第13页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第14页
第14页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第15页
第15页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第16页
第16页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第17页
第17页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第18页
第18页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第19页
第19页 / 共21页
基于DS18B20数字式温度计课程设计.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于DS18B20数字式温度计课程设计.docx

《基于DS18B20数字式温度计课程设计.docx》由会员分享,可在线阅读,更多相关《基于DS18B20数字式温度计课程设计.docx(21页珍藏版)》请在冰点文库上搜索。

基于DS18B20数字式温度计课程设计.docx

基于DS18B20数字式温度计课程设计

 

专业课程设计报告

 

课程电子技术课程设计

题目基于DS18B20数字式温度计设计

西安文理学院物理与机械电子工程学院

课程设计任务书

学生姓名专业班级学号

指导教师职称教研室

课程电子技术课程设计

题目

基于DS18B20数字式温度计设计

任务与要求

利用DS18B20温度模块,设计一个数字式温度计,并显示数码管温度值。

设计要求:

(1)采用单片机完成,要求结构简单、成本低;

(2)采用DS18B20温度模块实现温度信号采集与数字转换;

(3)完成系统的硬件电路设计与软件设计;

(4)采用数码管显示,显示效果稳定;

(5)完成原理图和PCB布板;

(6)采用Proteus、KeilC等软件实现系统的仿真调试;

(7)完成课程设计报告。

 

摘要

本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89S52,,四位共阳极数码管一个,电容电阻若干。

DS18B20支持“一线总线”接口,测量温度范围-55°C~+128°C。

在-10~+85°C范围内,精度为±0.5°C。

DS18B20的精度较差为±2°C。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:

环境控制、设备或过程控制、测温类消费电子产品等。

本次数字温度计的设计共分为三部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。

主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换,复位部分,即复位电路。

测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。

本设计能完成的温度测量范围是-55°C~+128°C,由于能力有限,不能实现报警功能。

关键词:

单片机,DS18B20,AD转换,LED显示

 

目录

第1章基于DS18B20数字式温度计的设计课题介绍2

第2章总体方案设计3

2.1DS18B20内部结构及功能3

2.2方案选择讨论4

第3章硬件部分设计5

3.1硬件设计5

3.1.1主控制器5

3.1.2显示电路6

3.1.3温度传感器工作原理6

第4章软件电路设计7

4.1软件设计思路9

4.2流程图9

4.2.19

4.2.210

4.3程序10

第5章测试与性能分析13

6.1测试结果13

6.2优点13

6.3不足及改良13

6.4结论13

心得体会14

致谢15

参考文献16

第1章基于DS18B20数字温度计的设计课题介绍

本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C51,,四位共阳极数码管一个,电容电阻若干。

DS18B20支持“一线总线”接口,测量温度范围-55°C~+128°C。

在-10~+85°C范围内,精度为±0.5°C。

DS18B20的精度较差为±2°C。

现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适合于恶劣环境的现场温度测量,如:

环境控制、设备或过程控制、测温类消费电子产品等。

本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,时钟电路。

主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阳极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换,复位部分,即复位电路。

测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。

本设计能完成的温度测量范围是-55°C~+128°C,由于能力有限,不能实现报警功能。

 

第2章总体方案

2.1DS18B20内部结构及功能

DS18B20的内部结构如下图所示,主要包括:

寄生电源,温度传感器,64位ROM和单总线接口,存放中间数据的高速暂存器RAM,用于存储用户设定温度上下限值的TH和TL触发器,存储与控制逻辑,8位循环冗余校验码(CRC)发生器等7部分。

 

温度和数字量的关系:

2.2方案选择讨论

根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择单片机AT89C51为测控系统的核心来完成数据采集、处理、显示等功能。

选用数字温度传感器DS18B20,省却了采样/保持电路、运放、数/模转换电路以及进行长距离传输时的串/并转换电路,简化了电路,缩短了系统的工作时间,降低了系统的硬件成本。

该系统的总体设计思路如下:

温度传感器DS18B20把所测得的温度发送到AT89C51单片机上,经过51单片机处理,将把温度在显示电路上显示,本系统显示器用4位共阳LED数码管以动态扫描法实现。

检测范围-55摄氏度到128摄氏度。

按照系统设计功能的要求,确定系统由3个模块组成:

主控制器、测温电路和显示电路。

数字温度计总体电路结构框图如图1所示。

图1数字温度计总体电路结构框图

第3章硬件部分设计

3.1硬件设计

温度计电路设计原理图如图2所示,控制器使用单片机AT89C51,温度传感器使用DS18B20,用4位共阳LED数码管实现温度显示。

图2温度计电路设计原理图

3.1.1主控制器

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

3.1.2显示电路

显示电路采用4位共阳LED数码管。

3.1.3温度传感器工作原理

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20的性能特点如下:

●独特的单线接口方式仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在唯一的三线上,实现多点组网功能;

●无需外部器件;

●可通过数据线供电,电压范围:

3.0~5.5V;

●测温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃

●零待机功耗

●温度以9或12位数字量读出;

●用户可定义的非易失性温度报警设置

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作

第4章软件电路设计

4.1软件设计思路

单片机应用系统的程序设计,可以采用汇编语言完成,也可以采用C语言实现。

汇编语言对单片机内部资源的操作直接,简洁,代码紧凑。

但是当系统规模较大时,设计人员更趋于采用C语言进行程序设计。

这是由于C语言具有良好的可读性,可移植性和基本的硬件操作能力。

采用C51进行单片机应用程序设计,编译器能自动完成变量的存储单元的分配,编程者可以专注于应用程序的逻辑思想;对常用功能模块和算法编制相应的函数,可以方便地进行算法和应用程序的移植。

因此,用C51进行程序设计可以大大提高实际工程的开发效率。

目前,C51的代码长度已经做到了汇编水平的1.2~1.5倍。

当代码长度超过4KB以上时,C51比汇编语言更具有明显优势。

我们还可以借助仿真器,对应用程序的关键代码进行优化,以减少代码长度,提高运行速度。

由于单片机生产工艺的改善,单片机的运行速度和内部存储器容量都有了较大的提高,这些都为C51语言的使用创造了有利的条件。

综上所述,故软件语言使用C51语言。

4.2流程图

主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序和现实数据刷新子程序等。

 

主程序主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值。

温度测量每1S进行一次。

主流程图如下

4.3程序:

//使用AT89C2051单片机,12MHZ晶振,用共阳LED数码管

//P1口输出段码,P3口扫描

//#pragmasrc(d:

\aa.asm)

#include"reg51.h"

#include"intrins.h"//_nop_();延时函数用

#defineDisdataP1//段码输出口

#definediscanP3//扫描口

#defineucharunsignedchar

#defineuintunsignedint

sbitDQ=P3^7;//温度输入口

sbitDIN=P1^7;//LED小数点控制

uinth;

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

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

ucharcodedis_7[12]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40};

/*共阳LED段码表"0""1""2""3""4""5""6""7""8""9""不亮""-"*/

ucharcodescan_con[4]={0xfe,0xfd,0xfb,0xf7};//列扫描控制字

uchardatatemp_data[2]={0x00,0x00};//读出温度暂放

uchardatadisplay[5]={0x00,0x00,0x00,0x00,0x00};//显示单元数据,共4个数据,一个运算暂存用

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

voiddelay(uintt)

{

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

}

/***********显示扫描函数**********/

scan()

{

chark;

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;

}

}

/***********18B20复位函数**********/

ow_reset(void)

{

charpresence=1;

while(presence)

{

while(presence)

{

DQ=1;_nop_();_nop_();

DQ=0;//

delay(50);//550us

DQ=1;//

delay(6);//66us

presence=DQ;//presence=0继续下一步

}

delay(45);//延时500us

presence=~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_();//5us

DQ=val&0x01;//最低位移出

delay(6);//66us

val=val/2;//右移一位

}

DQ=1;

delay

(1);

}

/*********18B20读1个字节函数********/

//从总线上读取一个字节

ucharread_byte(void)

{

uchari;

ucharvalue=0;

for(i=8;i>0;i--)

{

DQ=1;_nop_();_nop_();

value>>=1;

DQ=0;//

_nop_();_nop_();_nop_();_nop_();//4us

DQ=1;_nop_();_nop_();_nop_();_nop_();//4us

if(DQ)value|=0x80;

delay(6);//66us

}

DQ=1;

return(value);

}

/***********读出温度函数**********/

read_temp()

{

ow_reset();//总线复位

write_byte(0xCC);//发SkipROM命令

write_byte(0xBE);//发读命令

temp_data[0]=read_byte();//温度低8位

temp_data[1]=read_byte();//温度高8位

ow_reset();

write_byte(0xCC);//SkipROM

write_byte(0x44);//发转换命令

}

/***********温度数据处理函数**********/

work_temp()

{

ucharn=0;//

if(temp_data[1]>127)

{

if(temp_data[0]!

=0x00)

{temp_data[1]=(255-temp_data[1]);temp_data[0]=(256-temp_data[0]);n=1;}//负温度求补码

else

{temp_data[1]=(256-temp_data[1]);n=1;}//负温度求补码

}

display[4]=temp_data[0]&0x0f;display[0]=ditab[display[4]];

display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);//

display[3]=display[4]/100;

display[1]=display[4]%100;

display[2]=display[1]/10;

display[1]=display[1]%10;

if(!

display[3]){display[3]=0x0A;if(!

display[2]){display[2]=0x0A;}}//最高位为0时都不显示

if(n){display[3]=0x0B;}//负温度时最高位显示"-"

}

/**************主函数****************/

main()

{

Disdata=0xff;//初始化端口

discan=0xff;

for(h=0;h<4;h++){display[h]=8;}//开机显示8888

ow_reset();//开机先转换一次

write_byte(0xCC);//SkipROM

write_byte(0x44);//发转换命令

for(h=0;h<500;h++)

{scan();}//开机显示"8888"2秒

while

(1)

{

read_temp();//读出18B20温度数据

work_temp();//处理温度数据

for(h=0;h<500;h++)

{scan();}//显示温度值2秒

}

}

 

第6章测试与性能分析

6.1测试结果

系统的调试及性能分析:

硬件调试比较简单,首先检查电路的连接是否正确,所选用原件是否合适,然后可仿真运行看各部分是否导通。

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

由于DS18B20与单片机采用串行数据传送,因此,对DS18B20进行读/写编程时必须严格地保证读/写时序;否则将无法读取测量结果。

本程序采用单片机汇编或C语言编写用KeilC51编译器编程调试。

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

性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。

由于DS18B20的精度很高,所以误差指标可以限制在0.5℃以内。

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

6.2优点

元器件较少,芯片管脚少,连线方便,容易纠错,成本低。

 

心得体会

通过本次数字电子的课程设计加强了我们动手,思考,解决问题的能力。

此外培养了我们当代大学生所缺失的一种认真细致,思维严谨的科学精神。

耐心,沉稳,细致,可谓是实验者必备的一种素质,缺一不可。

在连接线路的过程中只要一不留神就会接错管脚,导致整个实验的失败,花费过多的时间来寻找错误不如当初就多细心找一个比较完美的方案。

这是所谓的欲速则不达,事半功倍。

以往所学完全通过本次实验有了很好的融会贯通,取长补短,实用性的结合。

使我们加强了记忆,深刻了体会,使真正的理论转换为实践,这使得在以后的各种实际操作中都不会畏惧。

凡事都怕认真二字,这是我的观念。

这一课程设计使我们将课堂上的理论知识有了进一步的了解,并增强了对控制电机和单片机以及微机原理这三门专业课程的兴趣。

了解了更多电子元件的工作原理,如AT89C51单片机,ULN2003达林顿晶体管阵列,74LS164数码管驱动芯片,步进电机等;但同时更多地暴露出我在知识上掌握不足,实际操作过于生疏等缺点;其次在此次设计过程中由于我们频繁地使用星研软件操作环境和STARES598PCI实验箱,因此使我熟悉了软件的使用,也加强巩固了我的C语言编程知识;熟悉实验箱上每个区域的功能作用和连线方法,也懂得如何读取输出;同时在电脑的电子设计和绘图操作上有了进一步提高;加上在设计过程中遇到了一些问题,使得我不得不查找相关资料,增长知识的同时加强了解决问题和动手的能力,锻炼了我做事细心、用心、耐心的能力。

本次课程设计,使我向更高的精神和知识层次迈向一大步。

所以在以后的学习生活中,我会努力学习,培养自己独立思考的能力,积极参加各种设计活动,培养自己全方位能力,从而使得自己成为一个有综合能力的人才而更加适应社会。

同时让我了解了设计电路的方式,让我对各种芯片的使用及功能有了进一步的理解,加强和培养了我对电子电路的设计能力,要设计一个电路首先是根据实验题目要求整合实验器材构想结构框图,刚开始可以先尝试电脑仿真,仿真成功后再进行实际接线,但最后的成品与仿真常有些差别,仿真是一种比较理想化的状态,在实际接线中常会存在各种制约条件,需要寻找问题解决问题完善问题将误差率降到最低。

在仿真中可以正常工作的电路,在实际接线中不一定可以正常工作,往往要调整电路,通过多次调试方能成功,在实验的过程中我们组通过组长的带领和指导老师的耐心解答,组员们的团结和相互讨论,使得我们的实验得以顺利完成,体会到了合作的力量,众人拾柴火焰高在本次试验中得到了很充分的诠释。

致谢

经过两个多星期的努力,我们顺利把实验要求做出来了。

虽然整个过程很艰苦,从刚开始的半知不懂,一步不懂解决一步,总结不足得出改善;但最终我得到的是满满的收获。

有时候理论明明已经完全应用实际就是会出问题,但是我没有放弃。

因为老师说过理论与实践相差非常大,实际要考虑的问题远远比理论的多的多。

所以我不断地查资料、不断地调试;最后终于成功了。

这让我深刻体会到有付出才有回报过程是有些许曲折。

感谢这次电子课程设计,让我所学的理论知识不再只是纸上谈兵。

我相信只要不放弃,不抛弃,勇于思考,迎难而上,拥有发现问题独立解决问题的能力,在以后任何一件事上都能单挡独挑。

着重感谢老师的细心指导,耐心指教,及时排忧解难;也同样感谢本组其他每个成员的大力支持和帮助,团结的力量使得难题变得容易攻破,因为众多的智慧组成的合力是不可估量的超能量,每个组员都是解决问题的强者;让我深刻认识到团结合作的重要性,以后也会一直把它当做宝贵财富。

 

参考文献

[1]李全利.单片机原理及接口技术.第二版.北京:

高等教育出版社,2011.11

[2]王耕,王晓雷.控制电机及其应用.修订版.北京:

电子工业出版社,2012.8

[3]王晓明,胡晓柏.电动机的单片机控制.第一版.北京:

北京航天航空大学出版社,2002..5

[4]孙进平,张大鹏,丁金斌.51单片机系列单片机原理开发与应用实例.北京:

中国电力出版社.2009

[5]蔡志健,丁爱萍.小功率步进电机控制器的设计.2005,17:

235

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:

所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。

对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作者签名:

     日 期:

     

指导教师签名:

     日  期:

     

使用授权说明

本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:

按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名:

     日 期:

     

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权    大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名:

日期:

年月日

导师签名:

日期:

年月日

注意事项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:

引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:

理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:

任务书、开题报告

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2