当前位置:文档之家› 基于AT89S51单片机的DS18B20数字温度传感器的毕业论文

基于AT89S51单片机的DS18B20数字温度传感器的毕业论文

目录

摘要 (2)

第一章绪论 (4)

1.1传感器发展的三个阶段 (4)

1.2传感器发展趋势 (4)

1.3传感器在在系统中的应用 (4)

1.4设计研究意义 (5)

1.5设计的目标任务 (5)

第二章方案选择 (6)

2.1引言 (6)

2.2方案设计 (6)

2.2.1控制模块 (6)

2.2.2温度采集模块 (6)

2.2.3显示模块 (7)

2.3系统框图 (7)

第三章硬件设计 (7)

3.1温度传感器 (7)

3.1.1温度传感器选用细则 (7)

3.1.2DS18B20传感器简介 (9)

3.2DS18B20的测温原理 (11)

3.3DS18B20与微处理器的接口技术 (13)

3.4DS18B20的测温流程 (16)

3.5系统硬件电路设计 (16)

3.5.1设计原则 (16)

3.5.2设计中的各种电路 (17)

第四章系统软件设计 (21)

4.1 系统软件设计整体思路 (21)

4.2 系统软件设计的一般原则 (21)

4. 3系统软件设计的一般步骤 (22)

4.4系统程序流程图 (22)

第五章小结 (27)

结束语 (28)

参考文献 (28)

致谢 (28)

摘要

随着社会的进步和工业技术的发展,人们越来越重视温度因素,许多产品对温度范围要求严格,而目前市场上普遍存在的温度检测仪器大都是单点测量,同时有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种能够同时测量多点,并且实时性高、精度高,能够综合处理多点温度信息的测量系统就很有必要。

本课题以AT89C51单片机系统为核心,能对多点的温度进行实时巡检。DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本文结合实际使用经验,介绍了DS18B20数字温度传感器在单片机下的硬件连接及软件编程,并给出了软件流程图。

关键词:温度测量;单总线;数字温度传感器;单片机

第一章绪论

课题的背景

在人类的生活环境中,温度扮演着极其重要的角色,都无时无刻不在与温度打交道。自18世纪工业革命以来,工业发展与是否掌握温度有着紧密的联系。在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎%80的工业部门都不得不考虑着温度的因素。温度对于工业如此重要,由此推进了温度传感器的发展。

1.1传感器三个发展阶段:

一是模拟集成温度传感器。该传感器是采用硅半导体集成工艺制成,因此亦称硅传感器或单片集成温度传感器。此种传感器具有功能单一(仅测量温度)、测温误差小、价格低、响应速度快、传输距离远、体积小、微功耗等特点,适合远距离测温、控温,不需要进行非线性校准,且外围电路简单。它是目前在国内外应用最为普遍的一种集成传感器,典型产品有AD590、AD592、TMP17、LM135等。

二是模拟集成温度控制器。模拟集成温度控制器主要包括温控开关、可编程温度控制器,典型产品有LM56、AD22105和MAX6509。某些增强型集成温度控制器(例如TC652/653)中还包含了A/D转换器以及固化好的程序,这与智能温度传感器有某些相似之处。但它自成系统,工作时并不受微处理器的控制,这是二者的主要区别。

三是智能温度传感器。智能温度传感器内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,当然,其智能化程度也取决于软件的开发水平。

1.2温度传感器的发展趋势

进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。

1.3传感器在温控系统中的应用

目前市场主要存在单点和多点两种温度测量仪表。对于单点温测仪表,主要采用传统的模拟集成温度传感器,其中又以热电阻、热电偶等传感器的测量精度高,测量范围大,而得到了普遍的应用。此种产品测温范围大都在-200℃~800℃之间,分辨率12位,最小分辨温度在0.001~0.01之间。自带LED显示模块,显示4位到16位不等。有的仪表还具有存储功能,可存储几百到几千组数据。该类仪表可很好的满足单个用户单点测量的需要。多点温度测量仪表,相对与单点的测量精度有一定的差距,虽然实现了多路温度的测控,但价格昂贵。

针对目前市场的现状,本设计提出了一种可满足要求、可扩展的并且性价比高的单片

机多路测温系统。

1.4设计研究意义

随着科学技术的不断进步与发展,温度控制在工业控制、电子测温计、家用电器等各种温度控制系统中被广泛应用,且由过去的单点测量向多点测量发展。目前温度传感器有模拟和数字两类传感器两种,为克服模拟传感器与微处理器接口时所需的信号调理电路或A/D转换器的缺点,多点检测温度控制系统多采用智能数字温度传感器,是系统的设计更加方便。常用的智能数字温度传感器有DS18B20、MAX6575、DS1722、MAX6635 等等。

在传统的温度测量系统设计中,往往采用模拟技术,这样就不可避免地遇到引线误差补偿、多点测量中的切换误差和信号调整电路的误差等问题;而其中某一环节处理不当,就会导致系统性能的降低。随着现代科学技术的飞速发展,特别是大规模集成电路设计技术的发展,微型化、集成化、数字化正成为传感器发展的一个重要方向。美国Dallas半导体公司推出的数字温度传感器DS18B20,具有独特的单总线接口,仅需占用一个通用I/0端口即可完成与微处理器间的通信;在-10~+85℃温度范围内具有0.5℃精度;用户可编程设定9~12位的分辨率。这些特性使得DS18B20非常适用于高精度、多点温度测量系统的设计。

1.5设计的任务目标

本设计主要是实现对温度进行多点同时测量并准确显示。整个系统由MCU(单片机)控制,用于接收传感器采集的温度数据并加以显示出来,还可以从键盘设定温度报警值,系统根据命令,选择对应的传感器采集温度数据,并由驱动电路驱动温度显示。

利用一个单片机设计一个能够对多点温度同时进行测量的温度检测系统。该系统能够同时对多个点的温度进行测量和进行显示,并且能够对异常情况进行声光报警。

第二章方案选择

2.1 引言

温度测量的方案有很多种,可以采用传统的分立式传感器、模拟集成传感器以及新兴的智能型传感器。对于控制系统可以采用计算机、单片机等。

2.2方案设计

本系统主要由三个模块组成:控制模块、温度采集模块、显示模块。

2.2.1控制模块

本设计采用单片机基于数字温度传感器DS18B20的系统。单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用,系统应用三节电池供电。温度传感器DS18B20利用单总线的特点可以方便的实现多点温度的测量,组建传感器网络,且系统的抗干扰性好、设计灵活、方便,而且能在恶劣的环境下进行现场温度检测。本系统可以应用在大型工业及民用常温多点监测场合。如粮食仓储系统、楼宇自动化系统、温控制程生产线之温度影像检测、医疗与健诊的温度测试、空调系统的温度检测、石化、机械…等。

2.2.2温度采集模块

这一部分主要完成对温度信号的采集和转换工作,由DS18B20数字温度传感器及其与单片机的接口部分组成。DS18B20智能温度温度传感器进行温度采集和转换输出数字型的温度值,然后通过数据引脚传到单片机的P1.1口,单片机接受温度并存储。DS18B20是美国DALLAS半导体公司最新推出的一种单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,它可将温度信号直接转换为数字信号,实现了与单片机的直接接口,从而省去了信号调理和A/D转换等复杂模/数转换电路。DS18B20构成的温度采集模块电路简单、功能可靠、测量效率高,很好地弥补了传统温度测量方法的不足可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有集成度高、模拟输入数字输出、抗干扰能力强、体积小、接口方便、传输距离远测温误差小等特点。DS18B20有PR-35和SOSI两种封装方式,本次设计采有PR-35式封装, 如图1.2所示。

图(a )PR-35封装 图 (b ) SOSI 封装

图2-1 DS18B20 的两种封装

2.2.3温度显示模块

本课程设计的显示模块采用3位共阴极LED 数码管显示温度数据,两位整数,一位小数进行显示,从P0口送数,P2口扫描。

2.3系统框图

系统的系统设计方框图如图1.1所示,它主要由三部分组成:①控制部分主芯片采用单片机AT89S51;②显示部分采用3位共阴极LED 数码管以动态扫描方式实现温度显示;③温度采集部分的温度传感器采用DS18B20智能温度温度传感器。还有按键设置报警温度值和加热降温电路。 图2-2多路温度检测与控制总体设计框图

单 片

机 多路

DS18B20

传感器

LED 显示

声光报警器

加热继电器和风扇继电器

按键设置温度

第三章硬件设计

本课程设计的多点测温系统是以单片机和单总线数字温度传感器DS18B20为核心,充分利用单片机优越的内部和外部资源及智能温度传感器DS18B20的优越性能构成一个完备的测温系统,实现对温度的多点测量。整个系统由单片机控制,能够接收传感器的温度数据并显示出来,可以从键盘输入命令,系统根据命令,选择对应的温度传感器,并由驱动电路驱动温度显示。本课程设计了一种合理、可行的单片机监控软件,完成测量和显示的任务。由于单片机具有强大的运算和控制功能,使得整个系统具有模块化、硬件电路简单以及操作方便等优点。

本课题的整个系统是由单片机、显示电路、键盘电路、声光报警电路等构成。

3.1 温度传感器

3.1.1 温度传感器选用细则

现代传感器在原理与结构上千差万别,如何根据具体的测量目的、测量对象以及测量环境合理地选用传感器,是在进行某个量的测量时首先要解决的问题。当传感器确定之后,与之相配套的测量方法和测量设备也就可以确定了。测量结果的成败,在很大程度上取决于传感器的选用是否合理。

(1)根据测量对象与测量环境确定传感器的类型

要进行—个具体的测量工作,首先要考虑采用何种原理的传感器,这需要分析多方面的因素之后才能确定。因为,即使是测量同一物理量,也有多种原理的传感器可供选用,哪一种原理的传感器更为合适,则需要根据被测量的特点和传感器的使用条件考虑以下一些具体问题:量程的大小;被测位置对传感器体积的要求;测量方式为接触式还是非接触式;信号的引出方法,有线或是非接触测量;传感器的来源,国产还是进口,价格能否承受,还是自行研制。

(2)灵敏度的选择

通常,在传感器的线性范围内,希望传感器的灵敏度越高越好。因为只有灵敏度高时,与被测量变化对应的输出信号的值才比较大,有利于信号处理。但要注意的是,传感器的灵敏度高,与被测量无关的外界噪声也容易混入,也会被放大系统放大,影响测量精度。因此,要求传感器本身应具有较高的信噪比,尽员减少从外界引入的串扰信号

(3)频率响应特性

传感器的频率响应特性决定了被测量的频率范围,必须在允许频率范围内保持不失真的测量条件,实际上传感器的响应总有—定延迟,希望延迟时间越短越好。传感器的频率响应高,可测的信号频率范围就宽,而由于受到结构特性的影响,机械系统的惯性较大,因有频率低的传感器可测信号的频率较低。

(4)线性范围

传感器的线形范围是指输出与输入成正比的范围。以理论上讲,在此范围内,灵敏

度保持定值。传感器的线性范围越宽,则其量程越大,并且能保证一定的测量精度。在选择传感器时,当传感器的种类确定以后首先要看其量程是否满足要求。但实际上,任何传感器都不能保证绝对的线性,其线性度也是相对的。当所要求测量精度比较低时,在一定的范围内,可将非线性误差较小的传感器近似看作线性的,这会给测量带来极大的方便。

(5)稳定性

传感器使用一段时间后,其性能保持不变化的能力称为稳定性。影响传感器长期稳定性的因素除传感器本身结构外,主要是传感器的使用环境。因此,要使传感器具有良好的稳定性,传感器必须要有较强的环境适应能力。在选择传感器之前,应对其使用环境进行调查,并根据具体的使用环境选择合适的传感器,或采取适当的措施,减小环境的影响。

(6)精度

精度是传感器的一个重要的性能指标,它是关系到整个测量系统测量精度的一个重要环节。传感器的精度越高,其价格越昂贵,因此,传感器的精度只要满足整个测量系统的精度要求就可以,不必选得过高。这样就可以在满足同一测量目的的诸多传感器中选择比较便宜和简单的传感器。

如果测量目的是定性分析的,选用重复精度高的传感器即可,不宜选用绝对量值精度高的;如果是为了定量分析,必须获得精确的测量值,就需选用精度等级能满足要求的传感器。对某些特殊使用场合,无法选到合适的传感器,则需自行设计制造传感器。

自制传感器的性能应满足使用要求。

3.1.1 DS18B20性能特点

(1) 独特的单线接口方式,只需一个接口引脚即可通信;

(2) 每一个DS18B20都有一个唯一的64位ROM序列码;

(3) 在使用中不需要任何外围元件;

(4) 可用数据线供电,电压范围:+3.0V-+5.5 V;

(5) 测温范围:-55℃ -+125℃,在-10℃-+85℃范围内精度为+0.5℃,分辨率为0.0625℃;

(6) 通过编程可实现9-12位的数字读数方式。温度转换成12位数字信号所需时间最长为750ms,而在9位分辩模式工作时仅需93.75ms;

(7) 用户可自设定非易失性的报警上下限值;

(8) 告警搜索命令可识别和定位那些超过报警限值的DS18B20;

(9) 多个DS18B20可以并联在惟一的三线上,实现多点测温;

(10)电源极性接反时,DS18B20不会因发热而烧毁,但不能正常工作;

3.1.2 DS18B20内部存储器及温度数据格式

对于DS18B20内部存储器结构(如图3.1),它包括一个暂存RAM 和一个非易失性电可擦除EERAM,后者存放报警上下限TH 、TL 。当改变TH 、T L 中的值时,数据首先被写进暂存器的第二、三字节中,主机可再读出其中内容进行验证。如果正确,当主机发送复制暂存器命令,暂存器的第二、三字节将被复制到TH 、TL 中,这样处理有利于确保该数据在单总线上传输的完整性[7]。

暂存器结构 EERAM 结构

图3.1 DS18B20结构框图

暂存存储器作用是在单线通信时确保数据的完整性,它由8字节组成,头两个字节表示测得的温度读数。以12位转化为例说明温度高低字节存放形式(温度的存储形式如表3.1)及计算:12位转化后得到的12位数据,存储在18B20的两个高低8位的RAM 中,二进制中的前面5位是符号位。如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1,再乘于0.0625才能得到实际温度[8]。

表3.1 温度的存储形式

高8位

S S S S S 26 25 24

低8位 23 22 21 20 2-1 2-2 2-3 2-4 S=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1时表示0.0625℃ 。温度/数字对应关系如表3.2所示。

表3.2 DS18B20温度/数字对应关系表

温度(℃) 输出的二进制码 对应的十六进制码

温度低字节 (BYTE0)

温度高字节 (BYTE1)

上限报警温度TH (BYTE2) 下限报警温度TL (BYTE3)

结构寄存器 (BYTE4)

保留 (BYTE5)

保留 (BYTE6) 保留 (BYTE7)

CRC ( BYTE8)

TH

TL

结构寄存器

+125 0000 0111 1101 0000 07D0H

+85 0000 0101 0101 0000 0550H

+25.0625 0000 0001 1001 0001 0191H

+10.125 0000 0000 1010 0010 00A2H

+0.5 0000 0000 0000 1000 0008H

0 0000 0000 0000 0000 0000H

-0.5 1111 1111 1111 1000 FFF8H

-10.125 1111 1111 0110 1110 FF5EH

-25.0625 1111 1110 0110 1111 FF6FH

-55 1111 1100 1001 0000 FC90H

DS18B20有六条控制命令,如表3.3所示:

表3.3 控制命令

指令约定代码操作说明

温度转换44H 启动DS18B20进行温度转换

读暂存器BEH 读暂存器9个字节内容

写暂存器4EH 将数据写入暂存器的TH、TL字节

复制暂存器48H 把暂存器的TH、TL字节写到E2RAM中

重新调E2RAM B8H 把E2RAM中的TH、TL字节写到暂存器TH、TL字节

读电源供电方式B4H 启动DS18B20发送电源供电方式的信号给主CPU

3.1.3 DS18B20操作命令及时序特性

DS18B20对读写的数据位有着严格的时序要求,它是在一根I/O线上读写数据的。同时,DS18B20为了保证各位数据传输的正确性和完整性,它有着严格的通信协议。DS18B20每一步操作都要遵循严格的工作时序和通信协议,如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始的,如果要单总线器件送回数据,在进行写命令后,主机需启动读时序完成数据的接收。另外,数据和命令的传输都是低位在先[9]。

(1)DS18B20的复位时序

主机控制DS18B20完成任何操作之前必须先初始化,即主机发一复位脉冲(最短为480μs的低电平),接着主机释放总线进入接收状态,DS18B20在检测到I/0引脚上的上升沿之后,等待15~60μs,然后发出存在脉冲(60~240)μs的低电平。如图3.2所示。

(2)DS18B20的读时序

DS18B20的读时序分为读0时序和读1时序两个过程。DS18B20的读时序是从主机把单总线拉低后,在15秒之内就得释放单总线,从而让DS18B20把数据传输到单总线上。DS18B20完成一个读时序的过程,至少需要60μs。如图3.3所示。

图3.2 DS18B20的复位时序

图3.3 DS18B20的读时序

(3)DS18B20的写时序

DS18B20的写时序同读时序一样,仍然分为写0时序和写1时序两个过程。

DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60μs,保证DS18B20能够在15μs到45μs之间能正确地采样I/O总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15μs之内就得释放单总线。如图3.4所示。

图3.4 DS18B20的写时序

由DS18B20的通讯协议得知,主机控制DS18B20完成温度转换的过程必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,从而对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500μs,

然后释放,DS18B20收到信号后等待16~60μs左右,然后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。

3.3 DS18B20与微处理器的接口技术

1.DS18B20与单片机的链接有两种方法,如图3-2所示:一种是VDD接外部电源,GND

接地,I/O与单片机的任一条I/O线相连;另一种是用寄生电源供电,此时VDD、

GND并联接地,I/O接单片机的任一条I/O。无论是内部寄生电源供电还是外部供

电,I/O接口都要接漏极开路或三态输出以提高负载驱动能力。本设计采用寄生电

源供电模式,I/O口接5KΩ左右的上拉电阻。实际应用中,DS18B20可以距单片机

150m远,测量数据不会产生误差,在同一条数据总线上可以并接许多片DS18B20

实现多路温度采集。

2.DS18B20控制命令

(1)暂存器命令访问DS18B20的暂存器共有6条命令,如表3-5所示。

表3-5 DS18B20暂存器命令

指令约定代码操作说明

温度变换44H 启动DS18B20进行温度转换,转换时间最长为

500MS,结果存入内部9字节RAM中

读暂存器0BEH 读内部RAM中9字节的内容

写暂存器4EH 发出向内部RAM的第3,4字节写上、下限温度数

据命令,紧跟读命令之后,是传送两字节的数据复制暂存器48H 将E2PRAM中第3,4字节内容复制到E2PRAM中

重调E2PRAM 0BBH 将E2PRAM中内容恢复到RAM中的第3,4字节

读供电方式0B4H 读DS18B20的供电模式,寄生供电时DS18B20发送

“0”,外接电源供电DS18B20发送“1”

(2)对ROM的5种操作命令。如表3-6所示:

①读ROM命令(代码为33H):该命令允许主CPU读取DS18B20中的8位产品

序列编号、48位产品序列号及8位CRC值。该命令值适用于总线上只挂接

一片DS18B20,对总线上挂有多片DS18B20时不适用。

②符合ROM命令(代码为55H):该指令适合在一条总线上挂接多片DS18B20

的情况。具体应用是这样的,主CPU先向总线发这条命令,然后再发64

位的ROM数据。再总线上,只有符合所发的64位ROM的DS18B20才有操

作权。这样就实现了单总线上的寻址。

③寻找ROM命令(代码为F0H):这条命令用于对连在单总线上的多个DS18B20

进行初始化操作。

④跳过ROM命令(代码为CCH):该命令用于对总线上的报警器进行寻找,其

用法与寻找ROM一样。

⑤寻找报警命令(代码为ECH):该命令用于对总线上的报警器件进行寻找

ROM一样。

表3-6 ROM 操作命令

指令

约定代码 操作说明 读ROM

33H 读DS18B20 ROM 中的编码

符合ROM 55H 发出此命令之后,接着发出64位ROM 编码,访问单线总线上与该编码相对应的DS18B20 使之作出响

应,为下一步对该DS18B20的读写作准备

寻找ROM 0F0H 用于确定挂接在同一总线上DS18B20的个数和识别

64位ROM 地址,为操作各器件作好准备

跳过ROM 0CCH 忽略64位ROM 地址,直接向DS18B20发温度变换命

令,适用于单片工作。

寻找报警命

0ECH 执行后,只有温度超过设定值上限或者下限的片子才做出响应

3.DS18B20访问流程

CPU 对DS18B20访问的工作流程是:先对DS18B20进行初始化,再发ROM 操作命令,最后才能对存储器及数据进行操作。DS18B20每一步操作都在严格的工作时序和通信协议下进行的。例如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通信协议,须经过三个步骤:第一步是复位,第二步是发送ROM 命令,第三步是发送RAM 命令。值得注意的是,每一次读写之前都要对它进行复位。下面详细说明DS18B20的操作过程。

(1) DS18B20的初始化

DS18B20的所有操作均从初始化开始,初始化的过程是首先由CPU 发出一个复

位脉冲,复位脉冲的时间为480~960us ,然后由丛属器件发出应答脉冲。初

始化是主CPU 发出一个复位信号,将数据总线上的所有DS18B20复位,然后

释放总线,该总线位接收状态。由于接有上拉电阻,在释放总线是有15 ~60us

的时间间隙,在此之后的60~240us 时间内,如果CPU 检测到总线为低电平的

话,则说明DS18B20初始化完成。DS18B20初始化时序波形如图所示:

图3-4 DS18B20复位初始化时序图

(2)发送ROM命令

ROM的操作命令位8位二进制数,CPU对ROM的操作有读ROM命令、符合ROM命令、搜索ROM命令、跳过ROM命令、报警搜索命令共5种。其中符合ROM命令是用来识别连在总线是的DS18B20芯片,其过程是主CPU 发出符合ROM命令(代码位55H)后,接着送出64位的ROM数据序列,从而使主CPU实现对单总线上的特定DS18B20进行寻址,只有与64位序列严格相符的DS18B20才能对后续的操作发出响应,符合ROM命令只对同时挂在总线上的多片DS18B20适用。读写ROM的操作时序如图所示。

图(a)DS18B20写时序

图(b)DS18B20读时序

图3-5 DS18B20操作时序图

(3)发送RAM命令

RAM命令是暂存器操作命令,共有6条,在前面已经列出,其功能是实现温度的转换、读/写、复制暂存器的内容等功能。

在具体的设计过程中,访问DS18B20也是通过程序设计来实现的。具体程序可以按照上面的工作时序图和命令的相应格式进行程序设计。

另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初

始化DS18B20(发复位脉冲)→发ROM 功能命令→发存储器操作命令→处理数据。

3.4DS18B20的测温流程

图3-6 DS18B20测温流程

3.5系统硬件电路设计

3.5.1设计原则

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图3.1所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET 管来完成对总线的上拉。本设计采用电源供电方式, P1.1口接单线总线为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET 管和89S51的P1.0来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D 变换操作时,总线上必须有强的上拉,上拉开启时间最大为10 μs 。采用寄生电源供电方式是V DD 和GND 端均接地。由于单线制

只有一根线,因此发送接收口必须是三状态的。主机控制DS18B20完成温度转换必须经过3个步骤:

① 初始化;

② ROM 操作指令;

③ 存储器操作指令。

3.5.2设计中的各种电路

(1)单片机电路

初始化

DS18B20 跳过ROM 匹配 温度变换 延时1S

跳过ROM

匹配

读暂存器 转换成显示码 数码管显示

图3-7单片机电路

(2)晶振电路

单片机XIAL1和XIAL2分别接30PF的电容,中间再并个12MHZ的晶振,形成单片机的晶振电路如图3-8所示。

图3-8晶振电路

(3)数码管显示电路

用了7段共阴数码管扫描电路,节约了单片机的输出端口,便于程序的编写。

P0口接8个2.2K的排阻然后接到3个LED数码管显示电路上。P2.0~P2.2 三个I/O口分别接4.7KΩ的电阻作数码管的共阴极如图3-9所示。

图3-9 三位数码管显示电路

(4)多路温度采集电路

如图3-10所示。P1.0和一个MOSFET管连接来完成对温度传感器DS18B20总线的上拉,MOSFET一端接+5v电源,另一端接在传感器的总线上来对传感器提供电源。P1.2与P1.3口并联接在所有传感器并接后的单总线上,P1.3端口相当于TX,P1.4相当于RX。

图3-10 多路温度采集电路

(5)继电器电路

P1.1和P1.2引脚接继电器电路的4.7K电阻上,P1口其他引脚悬空,继电器电路如图

3-11所示。

图3-11 继电器电路(6)单片机复位电路

图3-12 单片机复位电路(7)蜂鸣器报警电路

P2.5接蜂鸣器电路如图3-13所示:

图3-13 蜂鸣器报警电路

(8)温度设置按键电路

P3口中P3.5、P3.6、P3.7接到按键电路如图3-14所示:

图3-14 按键电路

(9)其他引脚

ALE引脚悬空,复位引脚接到复位电路、VCC接电源、VSS接地、EA接电源。

相关主题
文本预览
相关文档 最新文档