ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:407.89KB ,
资源ID:26917627      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26917627.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于DS18B20的数字温度计课程设计.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于DS18B20的数字温度计课程设计毕 业 设 计(论文)题 目 毕业设计(论文)英文题目 摘 要在日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一。在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。温度控制在生产过程中占有相当大的比例。温度测量是温度控制的基础,技术已经比较成熟。传统的测温元件有热电偶和二电阻。而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。我们用一种相对比较简单的方式来测量。本文将介绍一种基于单片机控制的数字温度计,就是

2、用单片机实现温度测量,进而达到数控制的目的。传统的温度检测大多以热敏电阻为温度传感器,但热敏电阻的可靠性差,测量温度准确率低,而且必须经过专门的接口电路转换成数字信号才能由单片机进行处理。本次采用DS18B20数字温度传感器来实现基于AT89C51单片机的数字温度计的设计用LED数码管以串口传送数据,实现温度显示,能准确达到以上要求,可以用于温度等非电信号的测量,主要用于对测温比较准确的场所,或科研实验室使用,能独立工作的单片机温度检测、温度控制系统已经广泛应用很多领域。关键词 温度计;单片机;数字控制;DS18B20ABSTRACT In daily life and industrial

3、production process, often used in the detection and control of temperature, temperature is the production process and scientific experiments in general and one of the important physical parameter. In the production process, in order to efficiently carry out the production, to be its main parameters,

4、 such as temperature, pressure, flow control, etc. Temperature control in the production process of a large proportion. Temperature measurement is the basis of temperature-controlled, more mature technology.Traditional thermocouple and temperature components are the second resistor.The thermocouple

5、and thermal resistance are generally measured voltage, and then replaced by the corresponding temperature, these methods are relatively complex, requiring a relatively large number of external hardware support. We use a relatively simple way to measure.This article will introduce the single-chip mic

6、rocomputer-based control of a digital thermometer is used to achieve single-chip temperature measurement, the traditional detection of most of the temperature thermistor for temperature sensor, but the poor reliability of thermistors, temperature measurement accuracy of low - , and must go through a

7、 special interface circuit to convert the digital signal processed by the single chip. The use of digital temperature sensor DS18B20 to AT89C51 microcontroller-based design of digital thermometer with LED digital control to the serial transmission of data, temperature display, accurate to achieve th

8、e above requirements, can be used for temperature measurement and other non-electrical signal, mainly used for more accurate temperature measurement sites, or research laboratory use, can work independently of the single-chip temperature detection, temperature control system has been widely used in

9、many areasKey words Thermometer;Single-chip;Digital Control; DS18B200 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,单片机已经在测控领域中获得了广泛的应用本设计所介绍的数字温度计与传统的温度计相比

10、,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。1 绪论检测是人类认识客观世界的最基本的方法,是指生产、试验现场利用某种合适的检测仪器或系统对被检测对象进行在线实时的测量。检测技术从广义上说是指寻找与自然信息独具有对应关系的种种表现形式的信号,确定被测量与显示量两者之间的定性、定量关系,并为进一步提高测量精度、改进试验方法及测量装置性能提供可行依据的整个过程。检测设备的性能指标主要有精确度、稳定性、输入输出特性这3个方面。温度是表征物体冷热程度的物理

11、量,是工业生产和自动控制中最常见的工艺参数之一,生产过程中常常需要对温度进行检测和监控。在传统的温度测控系统设计中,往往采用模拟技术进行设计,这样就不可避免地遇到诸如传感器外围电路复杂及抗干扰能力差等问题;而其中任何一环节处理不当,就会造成整个系统性能的下降。采用数字温度传感器与单片机组成的温度检测系统进行温度检测、数值显示和数据存储,体积减小,精度提高,抗干扰能力强,并可组网进行多点协测,还可以实现实时控制等技术,在现代工业生产中应用越来越广泛。由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处

12、理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。2 硬件介绍2.1 AT89C51单片机2.1.1 概述AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS8 位单片机,片内含 4k bytes 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 公司的高密度、非易失

13、性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大 AT89C51 单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。AT89C51单片机管脚图如图2-1所示。2.1.2 基本参数MCS-51 产品指令系统完全兼容4k 字节可重擦写 Flash 闪速存储器1000 次擦写周期全静态操作:0Hz24MHz三级加密程序存储器1288 字节内部 RAM32 个可编程 IO 口线2 个 16 位定时计数器6 个中断源图2-1 AT89C51单片机管脚图可编程串行 UART 通道低功耗空闲和掉电模式2.1.3 功能特

14、性AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 IO 口线,两个 16 位定时计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2.1.4 引脚说明Vcc:电源电压GND:地P0 口:P0 口是一组 8 位漏极开路型双向 IO 口,也即地址数据

15、总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。P1 口:P1 是一个带内部上拉电阻的 8 位双向 IO 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。P2 口:P2 是一个带有内部上拉电阻的 8 位双向 IO 口,P2 的输出缓冲

16、级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVXDPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行 MOVXRI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中 R2 寄存器的内容),在整个访问期间不改变。P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 IO 口。P3 口输出缓冲级可驱动(吸收或输

17、出电流)4 个 TTL逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。2.2 DS18B20 单线数字温度传感器2.2.1 概述新的“一线器件”DS18B20 体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的

18、特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的“DS18B20”体积更小、更经济、更灵活。使您可以充分发挥“一线总线”的长处。2.2.2 DS1820的应用DS1820 数字温度计以 9 位数字量的形式反映器件的温度值。DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和 DS1820 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。因为每个 DS1820 都有一个独特的片序列号,所以多只 DS1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在 HVAC 环境控制

19、、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。2.2.3 DS18B20的结构介绍图2-2的方框图示出了 DS1820 的主要部件。DS1820 有三个主要数字部件:1)64 位激光 ROM,2)温度传感器,3)非易失性温度报警触发器 TH 和 TL。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。DS1820 也可用外部 5V 电源供电。图2-2 DS18B20的结构方框图2.3 数码管数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七

20、段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当

21、某一字段的阳极为低电平时,相应字段就不亮。数码管外形如图2-3,数码管电路结构如图2-4。3 硬件设计3.1 整体设计系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等组成。系统框图主要由主控制器、单片机复位、报警按键设置、时钟振荡、LED数码管显示、温度传感器组成。系统框图如图3-1所示。图3-1 系统基本方框图1) 主控制器单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。2) 显示电路显示电路采用LED 三位8段显示数码管,从P2口输出段码。显示电

22、路是使用的串口显示,这种显示最大的优点就是使用口资源比较少,只用p2口的p2.0-p2.7进行串口的发送和接收。3) 温度传感器温度传感器采用美国DALLAS半导体公司生产的DS18B20温度传感器。DS18B20输出信号全数字化。便于单片机处理及控制,在0100 摄氏度时,最大线形偏差小于1 摄氏度,采用单总线的数据传输,可直接与计算机连接。用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度。3.2 时钟振荡器AT89C5l 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该

23、放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路参见图3-2。外接石英晶体(或陶瓷谐振器)及电容 C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用 30pF10pF,而如使用陶瓷谐振器建议选择 40pF10F。 图3-2内部振荡电路由于外部时钟信号是通过一个 2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平

24、持续时间应符合产品技术条件的要求。3.3 DS18B20 的供电方式DS1820 供电的方法是从 VDD 引脚接入一个外部电源,见图 3-3。这样做的好处是 I/O 线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。这样在转换期间可以允许在单线总线上进行其他数据往来。另外,在单线总线上可以挂任意多片 DS1820,而且如果它们都使用外部电源的话,就可以先发一个 Skip ROM 命令,再接一个 Convert T 命令,让它们同时进行温度转换。注意当加上外部电源时,GND 引脚不能悬空。图3-3 DS18B20用VDD供电电路图3.4 数码管的驱动方式数码管要正常显示,就要用驱

25、动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5840根I/O端口来驱动(要知道一个89C51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动

26、是将所有数码管的8个显示笔划a,b,c,d,e,f,g,dp的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。本设计中数码管采用的是动态驱动方式。4 软件调试4.1 整体设计软件部分的设计主要包括DS18B20的测温操作,报警操作以及为温度显示三部分

27、内容。整体设计框图如下图4-1所示图4-1 测温操作设计示意图4.2 测温操作DS18B20 通过一种片上温度测量技术来测量温度。图4-2表示出了温度测量电路的方框图。图4-2 DS18B20测温电路结构图DS1820 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达 0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计

28、数器又开始计数直到 0,如果门周期仍未结束,将重复这一过程。斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。最高有效(符号)位被复制充满存储器中两字节温度寄存器的高 MSB 位,由这种“符号位扩展”产生出了示于表 1 的 16bit 温度读数。可用下述方法获得更高的分辨力。首先,读取温度值,将 0.5位(LSB)从读取的值中截去,这个值叫做 TEMP_READ。然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_R

29、EMAIN)。最后,我们用到在这个温度下每度的计数值(COUNT_PER_C)。用户可以用下面的公式计算实际温度值:(公式4-1)DS1820的测温操作程序代码如下:/ds1820开始转换void tmstart (void) dmsec(1); tmreset (); tmpre (); dmsec (1); tmwbyte (0xcc); / skip rom tmwbyte (0x44); / 转换/读取温度unsigned char tmrtemp (void) unsigned char a,b,y1,y2,y3; tmreset (); tmpre (); dmsec (1); t

30、mwbyte (0xcc); / skip rom tmwbyte (0xbe); / 转换 a = tmrbyte (); / LSB低8位 b = tmrbyte (); / MSB高8位 if(b & 0x80)=0x80) /判断温度正负 b=b;a=a+1; /负温度处理(DS18B20的负温度是正的反码,即将它取反+1,就得到正的温度) y1=a4; /降低精度(去掉小数点) y2=b4; y2=b4; y3=y1 | y2; Tflag=1; return(y3);4.3 报警操作DS1820 完成一次温度转换后,就拿温度值和存储在 TH 和 TL 中的值进行比较。因为DS18B

31、20的寄存器是8位的,所以 0.5位被忽略不计。TH 或 TL 的最高有效位直接对应 16 位温度寄存器的符号位。如果测得的温度高于 TH 或低于 TL,器件内部就会置位一个报警标识。每进行一次测温就对这个标识进行一次更新。当报警标识置位时,DS18B20 会对报警搜索命令有反应。这样就允许许多 DS18B20 并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。报警操作程序代码如下:/温度报警值设置函数void remp() ge=wendu%10; shi=wendu/10; if(kflag=1) digitalshow(0,shi,ge); if(up=0) dmsec(50); if(up=0) while(up=0); wendu+; if(wendu=99) wendu=0; if(down=0) dmsec(50); if(down=0)

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

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