数字温度计毕业设计论文文档格式.docx
- 文档编号:17330643
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:29
- 大小:2.22MB
数字温度计毕业设计论文文档格式.docx
《数字温度计毕业设计论文文档格式.docx》由会员分享,可在线阅读,更多相关《数字温度计毕业设计论文文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
AT89C51
DesignandImplementationofDigitalThermometer
StudentmajoringinElectronicInformationScienceandTechnologyCuiXinjian
InstructorDaiAini
Abstract:
Temperaturemeasurementisthekeytomodernindustrialmeasurementtechnology,widelyused.Inordertorealizetheprecisemeasurementoftemperature,akindofdigitalthermometercontrolledbyAT89C51isdeveloped.asingle-linedigitaltemperaturesensor-DS18B20,producedbyU.S.DALLASisadoptedinthissystem,Comparedtootheranalogsensors,DS18B20candirectlyoutputdigitalsignal,andonlyrequiresasingleportlinetosinglechip,externalcircuitissimplerwithoutamplifiersandA/Dconversioncircuits,savingcostandhavinghighaccuracy.Furthermore,usingthecontroller’spowerfuldataprocessingfunction,thesampledtemperaturedataaredisplayedbyleddigitaltubes,achievingareal-timeacquisitionanddisplayoftemperature.Inthispaper,thehardwarecircuitsdesignandthecorrespondingsoftwaredesignaremainlyintroduced,notonlyPROTEUSsimulationismadeinthisdesign,butalsopracticalproductionisaccomplished.Aftertested,thissystemrunssteadilyandisextensibility.
Keywords:
Intelligenttemperaturesensor;
Temperaturesurvey;
DS18B20;
AT89C51
前言
时代总是在发展的,我们不可能超越时代,只能跟着时代走,在信息产业迅速发展的今天,很多智能化的设备都已经投入到使用。
自动化,智能化,科学化已经不在是另人们棘手的问题。
本论文就是应用智能温度传感器DS18B20,使用单片机控制的温度监测电路设计。
利用DS18B20能方便的读出所在环境的温度,直接就能再数码管上显示出来,不用象以前一样进行A/D转换。
文章主要从硬件和软件两方面介绍了设计温度监测电路的整个过程。
再制作过程中用到了电路仿真软件PROTEUS,及AT89C51单片机。
本论文共分为五章:
第一章为选题背景与设计方案。
简要介绍了课题背景,课题研究的目的与意义以及完成设计的任务。
第二章充分介绍了DS18B20的应用,内部结构,控制方法,测温原理,以及应用DS18B20时的注意事项。
第三章详细介绍系统电路设计,其中包含控制用的AT89C51单片机,对它做了详细的介绍,包括硬件结构图,封装引脚图,以及所用的各引脚的功能。
还介绍了LED数码显示管的结构,显示原理,及控制等。
第四章为电路设计所有的程序流程图。
对主程序和各个子程序的流程作了简单的介绍。
第五章PROTEUS仿真与实现。
对PROTEUS做简单介绍,介绍仿真与结果。
第六章设计总结。
1绪论
1.1课题背景
温度是工业生产中最常见和最基本的工业参数之一,是与人类的生活、工作关系最密切的物理量,也是各学科与工程研究设计中经常遇到和必须精确测量的物理量。
从工业炉温、环境气温到人体温度;
从空间、海洋到家用电器,各个技术领域都离不开测温,测温技术也是发展最快、范围最广的技术之一,对温度的进行准确的测量和控制也成为工业生产和科学研究中的重要任务之一。
而随着电子技术和计算机技术的迅速发展,特别是单片微机的发展,使传统的测量仪器在原理,功能,精度及自动化水平等方面发生了巨大的变化,使很多的传统电子仪器被相应的全新的仪器类型和测试系统体系所代替。
在科学技术高速发展的今天,如何用简单便宜,性能良好的元器件制造出对人类生活有用的产品,已经成为人们研究的主要趋势。
因此,温度测试仪作为测量仪器中不能缺少的一种仪器,如何用简单便宜,性能良好,外围电路简单的元器件制造出性能良好的温度测试仪便成为了温度测试仪的发展方向。
1.2课题研究的目的和意义
在众多应用于温度环境监测的温敏元件中,温敏电阻虽然成本低,但后续电路复杂,且需要进行温度标定;
电流型集成温度传感器AD590也因其输出为模拟信号,且模拟信号较弱故需后续放大电路及A/D转换电路,若采用普通运放则精度难以保证,而测量放大器价格偏高,这就使系统的成本升高。
本次设计采用的是美国DALLAS公司的产品可编程单总线数字式温度传感器DS18B20实现对所在环境的温度信号的采集,进而实现对温度监测及对其他传感器进行温度补偿。
1.3设计的主要任务
1.利用智能温度传感器DS18B20以及51系列单片机实现对环境温度的监测。
2.熟悉51单片机的引脚,熟悉DS18B20的工作原理,结构,清楚的了解LED数码管的内部电路和引脚,正确的接线,熟练掌握汇编语言程序的编写。
3.全局的设计系统电路,使电路的结构合理,简单明了。
2DS18B20的应用
2.1温度传感器的发展趋势
温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。
测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:
传统的分立式温度传感器
②模拟集成温度传感器
③智能集成温度传感器
目前,国际上新型温度传感器正从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。
新型数字温度传感器DS18B20便是其中的代表作。
2.2DS18B20数字温度传感器
2.2.1DS18B20简介
DS18B20是美国DALLAS半导体公司生产的可组网数字式温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。
全部传感元件及转换电路集成在形如一只三极管的集成电路内。
与其它温度传感器相比,DS18B20具有以下特性[1]:
(1)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温。
(3)DS18B20在使用中不需要任何外围元件
(4)适应电压范围更宽,电压范围:
3.0~5.5V,在寄生电源方式下可由数据线供电
(5)零待机功耗。
(6)测温范围-55℃~+125℃,固有测温分辨率0.5℃。
(7)测量结果以9位数字量方式串行传送。
(8)用户可定义报警设置
(9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作
2.2.2DS18B20内外部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器[2]。
64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号,不同的器件地址序列号不同。
DS18B20的管脚排列如图1所示,
GND:
接地;
I/O:
数据输入/输出脚。
对于单线操作漏极可开路;
VDD:
可选的VDD引脚。
如图2-1:
表示两种不同的封装方式,再本设计中用到的是PR-35封装。
图2-1DS18B20封装方式
DS18B20内部结构图2-2
图2-2DS18B20内部结构
DS18B20高速暂存器共9个存储单元[3],如表2-1所示:
表2-1DS18B20高速暂存器存储单元
序号
寄存器名称
作
用
0
温度低字节
以16位补码形式存放
4、5
保留字节1、2
1
温度高字节
6
计数器余值
2
TH/用户字节1
存放温度上限
7
计数器/℃
3
HL/用户字节2
存放温度下限
8
CRC
以12位转化为例说明温度高低字节存放形式及计算:
12位转化后得到的12位数据,存储在18B20的两个高低8位的RAM中,如表2-2。
二进制中的前面5位是符号位。
如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;
如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625才能得到实际温度。
表2-218B20高低RAM
高8位
S
26
25
24
低8位
23
22
21
20
2-1
2-2
2-3
2-4
2.2.3DS18B20控制方法
在硬件上,DS18B20与单片机的连接有两种方法,一种是UDD接外部电源,GND接地,I/O与单片机的I/O线相连;
另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O。
DS18B20有六条控制命令,如表2-3所示:
表2-3DS18B20控制命令
指
令
约定代码
操
作
说
明
温度转换
44H
启动DS18B20进行温度转换
读暂存器
BEH
读暂存器9个字节内容
写暂存器
4EH
将数据写入暂存器的TH、TL字节
复制暂存器
48H
把暂存器的TH、TL字节写到E2RAM中
重新调E2RAM
B8H
把E2RAM中的TH、TL字节写到暂存器TH、TL字节
读电源供电方式
B4H
启动DS18B20发送电源供电方式的信号给主CPU
CPU对DS18B20的访问流程是:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。
DS18B20每一步操作都要遵循严格的工作时序和通信协议。
如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:
每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
2.3DS18B20的测温原理
DS18B20测温原理为:
低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
在正常测温情况下,DS18B20的测温分辩率为0.5℃以9位数据格式表示,其中最低有效位(LSB)由比较器进行0.25℃比较,当计数器1中的余值转化成温度后低于0.25℃时,清除温度寄存器的最低位(LSB),当计数器1中的余值转化成温度后高于0.25℃,置位温度寄存器的最低位(LSB)
2.4提高DS18B20测温精度的途径
DS18B20高精度测温的理论依据:
DS18B20正常使用时的测温分辨率为0.5℃,这对于水轮发电机组轴瓦温度监测来讲略显不足,在对DS18B20测温原理详细分析的基础上,我们采取直接读取DS18B20内部暂存寄存器的方法,将DS18B20的测温分辨率提高到0.1℃~0.01℃.
DS18B20内部暂存寄存器的分布中第7字节存放的是当温度寄存器停止增值时计数器1的计数剩余值,第8字节存放的是每度所对应的计数值,这样,我们就可以通过下面的方法获得高分辨率的温度测量结果。
首先用DS18B20提供的读暂存寄存器指令(BEH)读出以0.5℃为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度整数部分T整数,然后再用BEH指令读取计数器1的计数剩余值M剩余和每度计数值M每度,考虑到DS18B20测量温度的整数部分以0.25℃、0.75℃为进位界限的关系,实际温度T实际可用下式计算得到:
T实际=(T整数-0.25℃)+(M每度-M剩余)/M每度
2.5注意事项
DS18B20虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题[4]:
(1)DS18B20从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85
(2)在实际使用中发现,应使电源电压保持在5V左右,若电源电压过低,会使所测得的温度精度降低。
(3)较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M、C等高级语言进行系统程序设计时,对DS18B20操作部分最好采用汇编语言实现。
(4)在DS18B20的有关资料中均未提及单总线上所挂DS18B20数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此。
当单总线上所挂DS18B20超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(5)在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该DS18B20时,将没有返回信号,程序进入死循环。
这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
3系统电路设计与分析
这一章主要包含四小节,第一小节是系统实现方案论证,第二小节是单片机部分,第三小节是DS18B20部分,第四小节介绍LED数码管
3.1系统方案实现论证
采用数字温度芯片DS18B20测量温度,输出信号全数字化。
采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,它直接输出温度的数字信号,也可直接与计算机连接。
采用AT89C51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便[5]。
该系统利用AT89S51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限温度。
该系统扩展性非常强。
该测温系统电路简单、精确度较高、实现方便、软件设计也比较简单。
系统框图如图3-1所示:
图3-1DS18B20温度测温系统框图
总体设计原理图如3-2所示:
图3-2总体设计原理图
3.2单片机控制部分
本设计应用的是AT89C51单片机[5],其引脚图如下所示:
图3-3AT89C51引脚图
AT89C51有40个引脚,我们所用到的是P0口,P2口和P3口。
其中P0口的8个引脚分别接LED数码管的a,b,c,d,e,f,g,dp8个脚。
P0口作为I/O口使用时场效应管VTI是截止的,当从P0口输出时,必须外接上拉电阻才能有高电平输出。
P2.0、P2.1、P2.2分别接数码管的DIG2、DIG3、DIG4。
P3.3接温度传感器DS18B20的DQ引脚。
片子上的RST/VPD这个引脚,RST是复位信号输入端。
当此输入端保持两个机器周期(24个振荡周期)的高电平时,就可以完成复位操作。
第二功能是VPD,即备用电源输入端。
本设计中没有设计到复位键,原因是在Vcc和RST引脚之间加一个10uF的电容,RST和Vss引脚(即地)之间加一个10K欧的电阻,这样可是实现自动上电复位,即打开电源就可以复位。
12M晶振两端分别接在单片机XTAL1和XTAL2两个引脚上,再使用单片机内部振荡电路时,这两个端子用来外接石英晶体和微调电容。
单片机Vss表示接地,Vcc引脚(即接电源)[6]。
3.3DS18B20部分
前边介绍了,DS18B20是一种智能温度传感器,操作DS18B20应遵循以下顺序:
初始化(复位),ROM操作指令,暂存器操作指令。
通过单总线的所有操作都从一个初始化序列开始。
此初始化序列包括一个由总线控制器发出的复位脉冲和紧随其后由从机发出的存在脉冲。
存在脉冲使总线控制器知道DS18B20在总线上并等待接收命令。
一旦总线控制器探测到一个存在脉冲,它就会发出5个ROM命令之一。
操作指令:
33H(读ROM命令),55H(匹配ROM序列号命令,用于多个DS18B20),CCH(跳过ROM操作命令),F0H(搜索ROM序列号命令),ECH(报警查询命令)
DS18B20的单总线读/写时序。
本设计中协议包括几种单线信号类型:
复位脉冲,存在脉冲,写0,写1,读0,读1。
所有这些信号,除存在脉冲外,均由总线控制器发出,也就是本设计中的AT89C51发出。
与DS18B20之间的任何通信都需要以初始化序列开始。
一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。
由于没有其他信号线可以同步串行数据流,因此DS18B20规定了严格的读/写时序,只有在规定的时序内写入或者读出数据才能被确认。
协议由单总线上的几种时序组成:
初始化脉冲时序,写操作时序和读操作时序。
单总线上的所有操作都从初始化开始,然后主机再相应的时序内读出数据或者写入命令。
初始化要求总线主机发送复位脉冲(60-20us的低电平信号,再将其置为高电平)。
在监测到I/O脚上升沿后,DS18B20等待15-60us,然后在发送存在脉冲(60-240us的低电平信号后在置高),表示复位成功。
这时,单总线为高电平状态[7]。
如图3-4所示
图3-4初始化脉冲时序
向DS18B20写数据时,I/O线置高电平,延时1-15us后变低;
接着发1位数据,延时15-60us;
DS18B20在一个15-60us的窗口内完成对I/O线采样。
如果线上是高电平,则写1;
如果线上是底电平,写入0。
如此循环8次,即可完成一个字节的写入。
时序如图3-5
图3-5写DS18B20时序
从DS18B20读取数据时,主机生成读时序。
当主机把数据线从高电平拉到低电平时,读时序开始;
保持1-15us后置高,再保持1-15us后采样;
读1位数据后延时45us。
重复8次即可完成一个字节的读入。
时序如图3-6所示
图3-6读温度时序
3.4LED数码管显示部分
数码管,也就是经常所说的发光二极管。
本设计中的用到的数码管是四位共阴类型的数码管,结构图如图3-7所示:
图3-7四位共阴LED数码管结构
数码管实际上有八个发光二极管:
除显示数码的七段之外还有一个小数点(DP),连接方式有共阳极和共阴极两种。
其中共阳极的有效输入应为高电平,共阴极的有效输入电平应为低电平。
本设计中用到1个四位共阴极数码管,LED显示器需要两组信号:
一组用来选择第几位数码管工作,简称为位码,对于共阳极结构应为高电平有效,共阴极结构是低电平有效。
另一组信号用来控制显示的字形,称为段码[8]。
为防止数码管所接的电压过大,在电源与数码管之间还要加上电阻或者排阻,目的就是保护数码管不被烧坏。
四位共阴数码管的a、b、c、d、e、f、g、dp分别接单片机的p0.0—p0.7接口,十位数码管的段码控制位外接P2.0,个位数码管的段码控制位外接P2.1,十分位接P2.3,其接线图如图3-8所示。
控制字形的原理就是,当单片机与各个数码管相接的这一位输出为高电平时,共阴极数码管不显示,只有当这一位输出为低电平时,数码管才能显示数码。
图3-8LED与单片机的接口电路
4系统实现程序分析
系统程序主要包括主程序、读取温度子程序、数据转换子程序、显示数据子程序等。
4.1主程序流程图
主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。
这样可以在一秒之内测量一次被测温度[9],其程序流程见图7所示。
图4-1主程序流程图
4.2各子程序流程图
4.2.1初始化程序
所有操作都必须由初始化脉冲开始,波形如图,单片机先输出一个480~960us低电平到DQ引脚,再将DQ引脚置高电平,过15~60us后检测DQ引脚状态,若为低电平则DS18B20工作正常,否则初始化失败,不能正常测量温度
图4-2初始化程序流程图
4.2.2读取温度子程序
读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。
主要包括以下三个命令[10]:
(1)写暂存器命令【4EH】
这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。
所有数据必须在复位脉冲前写完。
即如果只想写一个字节的数据到地址2,可按如下流程:
1、初始化;
2、写0CCH,跳过ROM检测;
3、写4EH;
4、写1字节数据;
5、复位,即向DQ输出480~960us低电平
(2)读暂存命
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 温度计 毕业设计 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)