数字温度计论文.docx

上传人:b****4 文档编号:4464114 上传时间:2022-12-01 格式:DOCX 页数:21 大小:307.05KB
下载 相关 举报
数字温度计论文.docx_第1页
第1页 / 共21页
数字温度计论文.docx_第2页
第2页 / 共21页
数字温度计论文.docx_第3页
第3页 / 共21页
数字温度计论文.docx_第4页
第4页 / 共21页
数字温度计论文.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数字温度计论文.docx

《数字温度计论文.docx》由会员分享,可在线阅读,更多相关《数字温度计论文.docx(21页珍藏版)》请在冰豆网上搜索。

数字温度计论文.docx

数字温度计论文

编号:

数字温度计

电子技能实训(论文)说明书

题目:

数字温度计

院(系):

机电工程学院

专业:

机械设计制造及其自动化

**************************

学号:

**********

**************************

2016年01月19日

基于52单片机的数字温度计的设计

摘要

本设计主要介绍了一个基于STC89C52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。

DS18B20与STC89C52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。

关键词:

单片机;数字温度传感器;最简温度检测系统;

1绪论

1.1选题的目的和意义

1.1.1选题的目的

利用单片机STC89C52、温度传感器DS18B20、八位四段共阳极数码管、LED灯、蜂鸣器设计一个设计温度计。

能够测量-10~50℃之间的温度值,用八位四段共阳极数码管直接显示,测量精度为0.1℃。

通过这次设计能够更加了解数字温度计的工作原理和熟悉单片机的发展和应用,巩固所学的知识。

1.1.2选题的意义

随着单片机技术的不断发展,单片机在日用电子产品中的应用越来越广泛,温度传感器DS18B20具有性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。

又随着电子技术的发展,人们的生活日趋数字化,多功能的数字温度计可以给我们的生活带来很大的方便;支持“一线总线”接口的温度传感器简化了数字温度计的设计,降低了成本;以美国MAXIM/DALLAS半导体公司的单总线温度传感器DS18B20为核心,以STC公司的STC89C52为控制器设计的DS18B20温度控制器结构简单、测温准确、具有一定控制功能的智能温度控制器。

本课题研究的重要意义在于生产过程中随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数,就需要受制于现代信息基础的发展水平。

在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是数字温度传感器技术,在我国各领域已经应用的非常广泛可以说是渗透到社会的每一个领域,与人民的生活和环境的温度息息相关。

2数字温度计的设计方案

2.1设计方案的确立及论证

基本功能要求:

(1)温度测量范围:

-10~50度

(2)测量精度:

0.1度

(3)显示方式:

四位显示

(4)能够运用Protues仿真

2.2系统器件选择

2.2.1单片机的选择

对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。

STC89C52是美国STC公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程,所以低价位AT89C51单片机可为提供许多高性价比的应用场合,可灵活应用于各种控制领域,对于简单的测温系统已经足够。

单片机STC89C52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。

2.2.2温度传感器的选择

DS18B20简单介绍:

DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。

DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。

温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

DS18B20的性能特点如下:

1.独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯

2.DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温

3.DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内

4.适应电压范围更宽,电压范围:

3.0~5.5V,在寄生电源方式下可由数据线供电

5.测温范围-55℃~+125℃,精度为±0.5℃

6.零待机功耗

7.测量结果直接输出数字信号,以“一线总线”穿行传送给CPU,同时可传送CRC校验位,具有极强的抗干扰纠错能力

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

以上特点使DS18B20非常适用与多点、远距离温度检测系统。

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

DS18B20的管脚排列、各种封装形式如图4.2所示,DQ为数据输入/输出引脚。

开漏单总线接口引脚。

当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。

当工作于寄生电源时,此引脚必须接地。

外部封装形式传感器电路图

2.2.3数码管选择

1、2、3、4为控制极,A、B、C、D、E、F、G、dp对应数码管显示段位。

2.2.4蜂鸣器选择

蜂鸣器的结构原理

1.压电式蜂鸣器压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。

有的压电式蜂鸣器外壳上还装有发光二极管。

多谐振荡器由晶体管或集成电路构成。

当接通电源后(1.5~15V直流工作电压),多谐振荡器起振,输出1.5~2.5kHZ的音频信号,阻抗匹配器推动压电蜂鸣片发声。

压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。

在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。

2.电磁式蜂鸣器电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。

接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。

振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。

3系统硬件电路的设计

本设计由DS18B20温度传感器芯片测量当前的温度并将转换后的结果送入单片机。

然后通过STC89C52单片机驱动八位共阳极4段数码管显示测量温度值,控制蜂鸣器和LED灯。

如本设计硬件电路图所示,本电路主要有DS18B20温度传感器芯片,两位共阳极数码管,STC89C52单片机及相应外围电路组成。

其中DS18B20采用“一线制”与单片机相连。

仿真图

 

3.1温度检测电路

DS18B20最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。

DS18B20的电源供电方式有2种:

外部供电方式和寄生电源方式。

工作于寄生电源方式时,VDD和GND均接地,他在需要远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。

但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。

外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。

因此本设计采用外部供电方式。

如下图所示:

温度传感器DS18B20的测量范围为-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。

因为本设计只用于测量环境温度,所以只显示0℃~+85℃。

3.2显示电路

本设计显示电路采用四位共阴极LED数码管来显示测量得到的温度值。

LED数码管能在低电压下工作,而且体积小、重量轻、使用寿命长,因次本设计选用此数码管作为显示器件。

一个LED数码管只能显示一位的字符,如果字符位数不止一位,可以用几个数码管组成,但要控制多位的显示电路需要有字段控制和字位控制,字段控制是指控制所要显示的字符是什么,控制电路应将字符的七段码通过输出口连接到LED的a~g引脚,是某些段点亮,某些段处于熄灭状态。

字位控制是指控制在多位显示器中,哪几位发光或那几位不发光,字位控制则需要通过字位码作用于LED数码管的公共引脚,是某一位或某几位的数码管可以发光。

数码管显示电路分为动态显示和静态显示。

静态显示方式是指每一个数码管的字段控制是独立的,每一个数码管都需要配置一个8位输出口来输出该字位的七段码。

因此需要显示多位时需要多个输出口,通常片内并口不够用,需要在片外扩展。

动态显示又称为扫描显示方式,也就是在某一时刻只能让一个字位处于选通状态,其他字位一律断开,同时在字段线上发出该位要显示的字段码,这样在某一时刻某一位数码管就会被点亮,并显示出相应的字符。

下一时刻改变所显示的字位和字段码,点亮另一个数码管,显示另一个字符。

绕后一次扫描轮流点亮其他数码管,只要扫描速度快,利用人眼的视觉残留效应,会使人感觉到几位数码管都在稳定的显示。

本设计采用数码管动态显示,电路如下图所示:

显示部分电路

图中由单片机P0口串接74HC245驱动四位共阴极数码管,上拉电阻排为10K。

3.3蜂鸣器、LED灯控制电路

本设计有蜂鸣器报警和LED灯显示。

当温度超过三十度时蜂鸣器开始警报,温度低于三十度时警报消除。

本设计有LED灯显示,当温度为0-10度时一盏LED灯开始亮;当温度为10-20度时,两盏LED灯开始亮;当温度问20-30度时,三盏LED灯开始亮;当温度超过30度时,四盏LED灯全部亮;当温度为0度以下,则LED灯都不亮。

 

4系统软件的设计

4.1概述

整个系统的功能是由硬件电路配合软件来实现的,当硬件基本定型后,软件的功能也就基本定下来了。

从软件的功能不同可分为两大类:

一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。

二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等。

每一个执行软件也就是一个小的功能执行模块。

这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义。

各执行模块规划好后,就可以规划监控程序了。

首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系。

4.1.1温度数据的计算处理方法

从DS18B20读取出的二进制值必须转换成十进制值,才能用于字符的显示。

DS18B20的转换精度为9~12位,为了提高精度采用12位。

在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。

通过观察表4-1可以发现,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0~F,转换成十进制小数就是0.0625的倍数(0~15倍)。

这样需要4位的数码管来表示小数部分。

实际应用不必这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃。

表4.1二进制与十进制的近似对应关系表

4.2主程序模块

主程序需要调用2个子程序,分别为:

温度设定、驱动数码管把实时温度值送出在八位四段数码管显示

主程序流程图:

图主程序流程图

4.3读温度值模块

读温度值模块需要调用4个子程序,分别为:

DS18B20初始化子程序:

让单片机知道DS18B20在总线上且已准备好操

DS18B20写字节子程序:

对DS18B20发出命令

DS18B20读字节子程序:

读取DS18B20存储器的数据

延时子程序:

对DS18B20操作时的时序控制

4.4中断模块

中断采用T0方式1,初始值定时为50ms。

中断模块需调用两个子程序:

读温度值子程序:

定时读取温度值,实时更新温度值

记录温度值子程序:

定时记录温度值,供查询使用

把这两个子程序放在中断的原因是,不会因为调整报警温度或查询历史温度值而停止更新温度值和记录温度值。

中断模块流程图:

图中断模块流程图

4.5数码管驱动模块

本设计数码管通过锁存器接单片机P0口,采用动态扫描驱动7段LED数码管进行显示,需调用延时子程序以稳定显示。

模块流程图如下:

图数码管驱动模块流程图

5心得体会

该基于DS18B20的多点温度测量系统具有硬件结构简单、易于制作、价格低廉、测量值精确和易于操作等许多优点。

实际应用中可根据具体情况进行更多点的扩展和对多点进行控制。

随着现代信息技术的飞速发展和传统工业改造的逐步实现,基于DS18B20的多点温度测量系统已经广泛应用于控制、化工等诸多领域。

总之,本次课程设计顺利完成,基本达到了课程设计的要求。

本文在深入分析多点智能测温系统的工作原理基础上,完成了该系统设计和调试任务,并且系统的性能误差达到了任务书的要求,使之能达到现场运行水平。

总结这一星期以来的工作,得到以下结论:

1.针对现有测温系统的特点,提出了一套应用数字式温度传感器DS81B20组建温度测控网络新型方案,该方案的突出特点是系统的数字化、快速化及其经济实用性。

2.以单总线为基本结构,采用STC公司的STC89C52单片机为总线命令,实现与DSl8B20的总线接口,并提供具体电路设计。

3.软件编程采用模块化、结构化设计,易于修改和维护。

由于时间和精力的限制,对后续的研究还应在以下方面逐步完善:

1.应用软件的完善。

温度采集方面,一次命令全部单总线上的DS18B20进行温度转换,减少系统所需时间。

2.进一步完善系统的可靠性。

由于实际经验的欠缺,设计上难免有考虑不周之处。

当某一个传感器出现故障时,虽然系统能发现该测温点故障,但是更换传感器时涉及到其序列号的修改和应用程序的修改,这些还需要在今后应用时加以完善。

3.可以增加控制部分,以后在该部分进行PID算法控制,以提高控制精度。

总之,本论文在新型数字温度测控系统方面做了一定的研究工作。

该系统初步完成了温度测控方案的预定目标,为今后实现数字化与网络化的温度测控系统工程提供了一种参考。

社会经济效益分析

本温度测控系统可以产生的社会经济效益是显而易见的。

在工农业许多场合,温度测量和控制对生产起着非常重要的作用,通过温度测控,可以更好的提高工农业生产的产量和效率。

本设计利用数字化的温度传感器作为载体,以STC89S52单片机为控制核心,通过对所测量的温度值进行控制和数据上传,将数字信息上传给上位机进行进一步的处理,从而可以实现这套系统的商品化和技术服务的稳定性。

这套系统可以产生的功能强大,扩展温度传感器端口后,可以同时对多个传感器进行测量和控制,并且只需添加DS18B20的初始化程序和与本设计两点测控类似的程序即可以实现,所以程序修改上也比较方便。

本系统可以实现产品的专业化和工厂化大生产,应用领域广泛,例如,可以对小区内的供暖系统进行多点温度监控,实时处理DS18B20温度传感器上传的数据;可以在对温度要求比较严格的车间内进行多点温度测控,以保持室内的精准温度;可以在化学反应炉内安装本系统,使化学反应可以在精确的温度条件下进行等等。

在课程设计的整个过程中,我遇到了许多意想不到的困难,如自己设计电路,进行软件编译等等。

不仅如此,很多从未遇见过的问题和现象困扰着我,比如在调试的过程中,时常出现问题,但每次经过仔细反复查找,终于可以将这些问题针对性的找到并进行合理的改正,确保其正常实现对应的功能,在自己处理难题的过程中,真正学到了很多新的知识。

 

致谢

在本次课程设计即将完成之际,我要感谢同班同学,没有他们的帮助和提供资料,没有他们的鼓励和加油,这次毕业设计就不会如此的顺利进行。

当然,不积跬步何以至千里,这一切也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。

诚挚的感谢我的指导老师。

她在忙碌的教学工作中挤出时间来审查、修改我的论文,告诉我应该注意的细节问题,细心的给我指出错误并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励,她严谨细致、一丝不苟的作风一直是我生活、学习中的榜样。

在接下来的一年里,我会加倍努力,不辜负老师们的悉心教导,弥补自己在学习生活中的不足,完善知识体系,争取能够更加熟练地运用在课堂上学到的知识,提高自己的成绩,给自己一份满意的答卷。

最后,向所有关心我的亲人、师长和朋友们表示深深的谢意。

 

程序源文件

#include"reg52.h"

#defineucharunsignedchar

#defineuintunsignedint

#defineDisdataP0//段码入口

#definediscanP2//位扫描口

uinttemp;//variableoftemperature定义一个变量

ucharflag1;//定义一个标志,标志温度是负还是正,1为负,0为正

ucharh;//定义变量

uintwendu=20;//温度值

sbitD1=P2^4;//温度指示灯

sbitD2=P2^5;

sbitD3=P2^6;

sbitD4=P2^7;

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

sbitBeep=P2^4;//蜂鸣器

unsignedcharcodetable[]={0x3f,0x05,0x3b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

//共阳数码管段码表"0""1""2""3""4""5""6""7""8""9""灭""-"

unsignedcharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0x00};//带小数点的编码

//共阳数码管带小数点段码表"0""1""2""3""4""5""6""7""8""9""灭"

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

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

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

//小数部分对应十进制"0""1""2""3""4""5""6""7""8""9""A""B""C""D""E""F"

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

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

/*延时子程序*/

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

voiddelay(uinti)//delay

{

while(i--);

}

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

/*初始化ds18b2子函数**/

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

voidInit_DS18B20(void)

{

ucharx=0;

DQ=1;//DQ复位

delay(8);//稍做延时

DQ=0;//单片机将DQ拉低

delay(80);//精确延时大于480us

DQ=1;//拉高总线

delay(14);

x=DQ;//稍做延时后如果x=0则初始化成功x=1则初始化失败

delay(20);

}

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

/*读字节子函数*/

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

ReadOneChar(void)

{

uchari=0;

uchardat=0;

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

{

DQ=0;//给脉冲信号

dat>>=1;//数据右移一位

DQ=1;//给脉冲信号

if(DQ)//DQ为1

dat|=0x80;//读出数据

delay(4);//延时

}

return(dat);

}

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

/*写字节子函数*/

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

voidWriteOneChar(unsignedchardat)

{

uchari=0;

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

{

DQ=0;

DQ=dat&0x01;//写入一位数据

delay(5);

DQ=1;

dat>>=1;//右移一位数据

}

}

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

/*DS18B20写命令函数*/

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

/*voidtmpwritebyte(uchardat)//writeabytetods18b20

{//给温度传感器写一个字节

uinti;

ucharj;

bittestb;

for(j=1;j<=8;j++)

{

testb=dat&0x01;

dat=dat>>1;

if(testb

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

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1