2011毕业设计实例(论文正文)

更新时间:2023-05-18 05:29:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 绪论

1.1课题背景与意义

二十一世纪是科技高速发展的信息时代,电子技术、微型单片机技术的应用更是空前广泛,是随着超大规模集成电路技术的发展而诞生的。单片机,属于第四代电子计算机。它是把中央处理单元CPU、随机存取存储器RAM、只读存储器ROM、定时/计数器以及I/O输入输出接口电路等主要计算机部件都集成在一块集成电路芯片上的微型计算机。由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化,智能化,集体高了产品的功能和质量,又降低了成本,简化了设计。它迅猛的发展到了各个领域,人们也越来越感到应用单片机局势的优越性,因而单片机也得到了广泛的应用。同时,它也不断地完善和发展。而智能恒温箱随着电子技术的飞速发展,自动控制、智能仪器、智能家电的广泛应用,给社会带来了巨大改变。其中的C51系列的单片机的出现,具有更好的稳定性,更快和更准确的运算精度,推动了工业生产,影响着人们的工作和学习。

在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。又由于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。

此次课题要研究的鹿茸烘干箱就是基于单片机来实现的温度控制系统来实现的。此部分主要研究如何用AT89C52单片机来测量和显示。利用DS18B20单总线的温度测量传感器来对温度进行测量,利用单片机对温度进行读取和控制显示。

- 1 -

1.2课题应用与展望

电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了很大变化,如果说计算机的出现使现代科学研究得到了质的飞跃,那么单片机技术的出现则是给现代化工业控制测控带来了一次新的革命。单片机属于第四代电子计算机,它是把中央处理单元CPU、随机存取存储器RAM、只读存储器ROM、定时/计数器以及I/O输入输出接口电路等主要计算机部件都集成在一块集成电路芯片上的微型计算机,它的特点是:功能强大、运算速度快、体积小巧、价格低廉、稳定可靠、应用广泛。采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。

温度是表征物体的冷热程度最基本的物理量。在很多生产过程中,特别是在冶金、化工、建材、食品、机械、石油等工业中,温度的测量和控制都直接和安全生产、提高生产效率、保证产品质量、节约能源等重大技术经济指标相联系。因此,温度的测量与控制在国民经济各个领域中均受到了相当程度的重视。又由于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测温方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。

近年来,温度的检测在理论上发展比较成熟,但在实际测量和控制中,如何保证快速实时地对温度进行采样,确保数据的正确传输,并能对所测温度场进行较精确的控制,仍然是目前需要解决的问题。

另外在烘干机的设计中模糊控制是一个很重要的概念。随着计算机技术的发展,现代控制理论在大规模线性多变量系统中得到广泛应用,但是,对于非线性、复杂系统, 这些控制策略却难以适用.而模糊控制不仅使用于小规模线性单变量系统,逐渐向大规模、非线性复杂系统扩展。从已经实现的控制系统来看,它具有易于分析、输出量连续、可靠性高、能发挥熟练专家操作的良好自动化效果等优点.

1.3 课题研究的内容

鹿茸加工是养鹿生产的重要环节之一,刚采摘的新鲜鹿茸含水量较高,又富含蛋

- 2 -

白质,如不及时加工,就会腐烂变质而失去医疗保健作用。加工的技术水平直接关系到鹿茸的质量及经济效益。因新鲜鹿茸含水量较多,又富含蛋白质,如不及时加工就会很快腐败变性。因此这也就体现出了鹿茸加工的重要性。鹿茸加工是以保持鹿茸的固有形态、不破不臭为前提,使其干燥,便于长期贮存、运输和利用。目前,我国的鹿茸加工绝大多数仍是采用水煮、烘烤和风干相结合的方法,其原理是利用热胀冷缩、蛋白质结构变化等理化作用,排除茸内的血液和水分(或只是排除水分),使鹿茸干燥,防止腐败变性。专门的鹿茸加工室分炸茸室和风干室两部分。烘干箱是烘烤鹿茸的主要设备,有土烤箱、电烤箱和远红外线烘干箱3 种。

本次课题采用模块化设计智能恒温箱,系统上电后默认设定的温度范围为68到73℃,使用时可以自行调节烘干温度范围。调节好后系统会将采集的实时温度与设定的温度范围进行比较,如果实时温度比设定温度上限高就会停止加热,若超温一分钟后温度仍未降到设定温度范围内则自动报警;若实时温度比设定温度下限低,则系统就会自动开启加热功能。若温度一样,则系统保持当前状态。在显示电路上则显示当前时间与实时温度。若想要显示设定的预期温度则可以按切换键,这时就会显示预期温度。为了区分显示的是时间还是温度,在数码管的最后一位做了标志:最后一位显示为F时则表示当前显示的是时间;最后一位显示为C时表示当前显示的是温度。

本论文章节的结构和内容如下:

第一章:绪论。简单介绍了智能烘干箱的背景与意义,应用与发展,说明了课题研究的内容。

第二章:整体方案设计与论证。说明了不同方案的优缺点,最后比较决定所要选用的方案。

第三章:系统的电路设计。介绍了设计中需要用的单片机的基础知识,确定了要达到的设计目标,详细描述了硬件各个组成电路单元。

第四章:软件设计。说明了C语言的编写特点,并对设计的软件做了介绍。 第五章:调试过程与分析。对设计的软硬件分别作了调试,并做了综合调试。 第六章:经济及社会效益分析。论述了烘干箱的作用及当前的效益问题。

- 3 -

- 4 -

第2章 整体方案设计与论证

2.1 课题分析

刚采摘的新鲜鹿茸含水量较高,又富含蛋白质,如不及时加工,就会腐烂变质而失去医疗保健作用。加工的技术水平将直接关系到鹿茸的质量和养鹿业的经济效益。加工方法中重要的一个环节就是对鹿茸进行烘干处理,传统的烘干方法是靠人工控制温度,不便于调节,本系统采用单片机对烘干机控制,操作方便,效率高。 该设计要求烘干箱有烘干定时系统,能够设定烘干时间。烘干温度范围设定在68~73℃,并且有加热报警功能。即当温度低于68℃时系统自动加热,高于73℃时系统自动停止加热且超过一分钟后系统自动发出报警。另外要求设计键盘输入,可以通过键盘输入设定烘干时间,也可以通过键盘输入更改重新设定温度的范围。最后还要有一个显示模块,显示设定的时间与当前温度。采集温度非常重要,只有准确的采集实时温度,才能有后面的准确操作。

2.2方案论证

方案一:热电偶温度自动控制系统

该方案温度检测部分采用热电偶,它需要冷端补偿电路与其配套,并且热电偶输出电压只有几毫伏,必须经过放大处理才能A/D转换和D/A转换器接口,若采用8位A/D转换器,CADC0809则输入端需采用仪用放大器,把几毫伏的电压信号放大到5伏左右。由于热电偶属于非线性器件,因此每个温度值都必须通过分度表,查表才能获得,这给软件编程和数据处理增加了难度。

这种系统具有测量温度范围可以从零下一百度到零上千摄氏度,而且有很多热电偶精度非常高这是这种测量系统的优点。但构成系统复杂,抗干扰能力不强。方案一的系统框图如图2.1所示。

- 5 -

图2.1 热电偶温度自动控制系统方框图

方案二:数字温度传感器温度控制系统

该方案采用数字温度传感器DS18B20,它的最高分辨率为12位,可识别0.0625摄氏度的温度,测量范围-55~125℃。它具有直接输出数字信号和数据处理功能,并且他和单片机接口只需要一位I/O口,即实现与MCU的双向通讯,具有连接简单,高精度,抗干扰性强等特点。并且DS18B20支持一主多从,若想实现多点测温,可方便扩展。方案二的框图如图2.2所示。

图2.2 数字温度传感器温度控制系统方框图

按照设计要求温度测量范围从15℃~105℃,比较有限位综合方案一和方案二,在常温下实用,并且经济合理,因此选用方案二。

- 6 -

第3章 系统的电路设计

3.1 系统电路的整体设计

本课题主要是设计一个由单片机自动控制的系统。用AT89C52单片机为主要硬件,设计了包括温度的设定、采集、显示,时间的设定、显示,系统自动加热与报警等电路。其原理是通过按键设定好时间与温度范围后,所要测量的温度信号直接通过数字温度传感器检测到温度后,送到单片机中进行数据处理,然后由单片机来决定是否加热,当温度低于下限温度则自动加热,当温度超过或达到设定的温度上限时则停止工作,若一分钟内温度还没降到所设定的温度范围内,则系统自动发出报警。电路还安装有LED实时显示被控制温度及显示温度和时间,使系统应用更加方便、直观。通过按键可以设定烘干时间,温度范围。

本设计的主要内容分为两部分:硬件部分和软件部分。

软件部分分为:基于keil编译环境的单片机应用软件的编写、调试。

硬件部分内容分为:电源电路的选择,单片机的选择用AT89S52单片机、数字温度传感器DS18B20,4位数码管显示,报警电路,加热电路,键盘输入等的设计。

系统原理图如图3.1所示。

图3.1 系统原理图

其设计要求应达到:

- 7 -

1、设计键盘能够对系统输入数据。

2、设计显示电路,显示输入温度、设定的时间等数据。

3、当烘干机的温度超出68~73℃范围时发出声、光报警,并且当温度低于68℃加热,高于73℃时停止加热。

4、烘干机有定时系统,能够设定烘干时间。

本系统是采用模块化设计的智能烘干箱,在生活中有广泛的应用,单片机是整个电路的核心,内部电路设计用C语言编写。它完成了温度与时间参数设定,温度采集,温度与时间显示,温度比较,温度调节,报警等功能。

工作流程:

1.设定烘干时间:系统上电后按切换键即可进入时间设定界面,此时LED1亮,表示正处于设定时间状态。然后通过按加减键来设定时间,且可通过LED数码管显示出所设定的烘干时间。

2.设定烘干温度:设定完烘干时间后即可设定温度,当前默认烘干温度范围为68~73℃,若想改变烘干温度,则可按切换键进入温度下限设定界面,此时LED2点亮表示正处于温度下限的设定状态。数码管会显示出当前默认的温度下限,这时则可通过加减键来重新设定温度下限;然后再按切换键进入温度上限设定界面,相应的LED3点亮,表示正处于温度上限设定,此时数码管会显示出当前默认的温度上限,同理通过按加减键即可改变上限温度的设定值。若只想改变一个设定值,那么不想改变的设定界面,直接按切换键跳过就可。

3.温度采集和计算:单片机通过与温度传感器进行通信,获取实时温度信息,并将获取的温度信息数据转化为摄氏温度的形式存储起来。

4.温度比较和调节:将存储的实时摄氏温度与设定的预期温度进行比较,如果实时温度高于设定温度,则停止加热;如果实时温度低于设定温度,则开启加热。在设定的时间内,系统会一直循环此功能,来达到烘干目的,当达到设定的时间后则系统自动停止全部功能。

5.显示:即将时间与存储的实时温度2秒循环一次显示在LED数码管上。若想查看预期设定的温度上下限,则需按下切换键,然后LED显示器就会显示预期温度

- 8 -

值。

6.报警:即利用蜂鸣器来实现,当实时温度超过设定的温度上限时,系统会自动停止加热且内部会计时,若一分钟后实时温度仍没有降到设定的温度范围内,则会自动报警。当经过一段时间后,温度降到设定的范围内,则单片机就会发出停止报警的命令。

7.加热:即当实时温度低于设定的温度下限时,系统会自动加热,此时单片机会发出命令来让继电器闭合,此时LED4点亮,表示系统处于加热状态。

3.2系统的单元电路设计

3.2.1单片机部分

在众多的单片机系列中,AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系列可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,也适用于常规编程。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超高效的解决方案。

AT89C52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,3个16位定时器/计数器,一个响亮2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。故此选用AT89C52单片机。

AT89C52单片机的内部结构与MCS-51系列单片机的构成基本相同。CPU是由运算器和控制器所构成的。运算器主要用来对操作数进行算术、逻辑运算和位操作的。控制器是单片机的指挥控制部件,主要任务的识别指令,并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动而协调地工作。它的程序存储器为8K字节可重擦写Flash闪速存储器,闪烁存储器允许在线+5V电擦除、电写入或使用编

- 9 -

程器对其重复编程。数据存储器比51系列的单片机相比大了许多为256字节RAM。AT89C52单片机的指令系统和引脚功能与MCS-51的完全兼容。其元件图如图3.2所示。

图 3.2 AT89C52外部引脚图

P0口:P0口是一个8位漏级开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0口端口写“1”时,引脚作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在程序效验时,输出指令字节。程序效验时,需要外部上拉电阻。

P1口:P1口是一个具有内部上拉电阻的8位是双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P1口写“1”时,内部上拉电阻的原因,将输出电流ILL。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输出(P1.1/T2EX),具体如表3.1所示。

表 3.1 P1.0和P1.1的第二功能

P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲级可驱动

- 10 -

(吸收或输出电流)4个TTL逻辑电平。对P2口写“1”时,通过内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。在Flash编程和校验时,P2口接收低8位地址字节和一些控制信号。

P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P3输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑电平。对P3口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入端口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流ILL。P3口除了作为一般、的I/O口线外,更重要的是它的第二功能。P3口第二功能,如3.2表所示。

表 3.2 P3口引脚第二功能

1.存储器结构

MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。

程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89C52,如果EA接VCC,程序先从内部存储器(地址为0000H~1FFFFH)开始,接着从外

- 11 -

部寻址,寻址范围为:2000H~FFFFH。

数据存储器:AT89C52有256字节RAM。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。

2. 定时器

1. 定时器0和定时器1

在AT89C52中,定时器0和定时器1都是16位加法计数结构,分别由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)两个8位计数器组成。这4个计数器均属于专用寄存器之列。每个定时器/计数器都有定时和计数两种功能。

2. 计数功能

所谓的计数功能是指对外部事件进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外脉冲进行计数。MCS-51系列的芯片有T0(P3.4)和T1(P3.5)两个信号引脚,分别就是这两个计数器的计数输入端。外部输入的脉冲在负跳变时有效,进行计数器加1。

计数方式下,单片机在每个机器周期的S5P2拍节对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效计数脉冲。在下一个机器周期的S3P1进行计数。可见采样计数脉冲是在2个机器周期进行的。鉴于此,计数脉冲的频率不能高于振荡脉冲的频率不能高于振荡脉冲频率的1/24。

3. 定时功能

定时器也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数加1。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。如果单片机采用12MHz晶体,则计数频率为1MHz。即每微秒计数器加1。这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。

- 12 -

4. 定时器2

定时器2是一个16位定时器/计数器,它既可以作定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择。定时器2有三种工作模式:捕捉方式、自动重载(向上或向下计数)和波特率发生器。工作模式由T2CON中的相关为选择。定时器2有2个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2寄存器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。

在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个周期采样到高电平,而下一个周期采样到低电平,计数器加1。在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。因为识别1—0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在采样前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

3. 中断

AT89C52有6个中断源:两个外部中断(INT0和INT1),三个定时中断定时器0、1、2和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断总控制位EA,它能禁止所有中断。

3.2.2时钟电路与复位电路

单片机最小系统包括时钟电路和复位电路两部分,只有配置这两部分电路单片机才能真正实现控制核心的作用。时钟电路用于产生单片机工作时所需要的时钟信号。单片机各功能部件的操作都是以时钟频率为基准,有条不紊地周期性地工作。因此,时钟频率直接影响单片机的运行速度,时钟电路的质量也直接影响单片机系统的稳定性。

1.时钟电路:

单片机必须在时钟的驱动下才能工作,单片机片内有一个高增益的反相放大器,

- 13 -

反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。只需要在外片通过XTAL1、XTAL2引脚接入定时控制单元(晶体振荡和电容),即可构成一个稳定的自激振荡器。

单片机的时钟在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,电容的大小会影响振荡器的稳定性和起振性的快速性。因此,通常选择在10~30pF左右。电容的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。晶振的频率取值在1.2MHz~12MHz之间。当然在一般情况下频率越快越好,可以保证程序运行速度既保证了控制的实时性。一般采用石英晶振作定时控制元件,在不需要高精度参考时钟时,也可以用电感代替晶振,有时也可以引入外部时钟脉冲信号。接在晶振上的电容虽然没有严格要求,但在此次设计时钟电路时,晶振频率选用12MHz,电容选用30pF,并且它们尽可能靠近芯片,以减小分布电容,保证振荡器的稳定性。晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两时钟P1和P2为基本节拍协调单片机各部分有效工作的。其电路如图3.3所示。

图3.3 时钟电路

复位电路一般可以分为上电自动复位和按键复位两种。上电自动复位是通过外部复位电路的电容充放电来实现的;按键手动复位是电平复位方式,通过RESET端经电阻与电源VCC接通实现的。复位的主要功能是把PC机初始化为0000H,使单片机从0000H单元开始执行程序。AT89C52的复位引脚(Reset)为第9脚,当此引脚连接高电平超过2个机器周期(一个机器周期为6个时钟脉冲),即可产生复位的动

- 14 -

作。以12MHz的时钟脉冲为例,每个时钟脉冲1us,两个机器周期为12us,因此,在第9脚上连接一个12us以上的高电平脉冲,即可产生复位的动作。对于上电复位,复位引脚上串接了一个电容,当复位引脚接 +5伏电压时,电容相当于短路,经过一段时间(在这段时间内完成复位)后,电容处于充电状态,相当于断开。本电路采用上电复位,电路图如图3.4所示。

图3.4 复位电路

3.2.3 温度采集部分

DS18B20是DLLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号给单片机处理,且在同一总线上可以挂接多个传感器芯片。本设计就采用该传感器。下面详细介绍温度采集电路的部件及整体设计。 1.DS18B20引脚名称与功能如下 GND:地信号

DQ:数据输入输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。

VDD:外接供电电源输入端。当工作于寄生电源时,此引脚必须接地。 2.DS18B20的主要特性

(1) 独特的单总线接口方式:与微处理器连接时仅需要一条口线即可实现双通讯。 (2) 在使用中不需要任何外围元件。

(3) 可用数据线供电,电压范围:+3.0到+5.5V。

- 15 -

(4) 测量范围:-55~+125摄氏度,固有测温分辨率为0.5摄氏度。 (5) 通过编程课实现9~12位的数字读数方式。 (6) 用户可自设定非易失性的报警上下限值。

(7) 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现多点测温。 (8) 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 3.DS18B20的内部结构

主要由4部分组成:64位光刻ROM、温度传感器,非易失性的温度报警触发器TH和TL、配置寄存器。 4.DS18B20的内存结构

DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPROM,后者存放高温和低温触发器TJ,TL和结构寄存器。高速暂存RAM包含了9个连续字节(0~8),前两个字节是测得的温度信息,字节0的内容是温度的低8位,字节1是温度的高8位,字节2是TH(温度上限报警),字节3是TL(温度下限报警),字节4是配置寄存器,用于确定输出分辨率9到12位。第5、6、7个字节是预留寄存器,用于内部计算。字节8是冗余检验字节,校验前面所有8个字节的CRC码,可用来保证通信正确。DS18B20中的温度传感器对温度的测量结果用16位符号扩展的二进制补码读数形式提供。DS18B20中的温度传感器可完成对温度的测量。

5.DS18B20的测温原理

DS18B20的测温原理用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,当计数器打开时,DS18B20就对低温度系数震荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1和预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的

- 16 -

脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度,由于它内部的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。

对于此电路设计温度采集电路的核心部件,该电路的DQ直接与单片机的P1.0相连,VCC接5V电源,GND接地。通过传感器可以将实时温度传给单片机,首先将DS18B20初始化,设置好要求的初始值,再调用温度读取子程序读取温度测量值,当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0个和第一个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。第九个字节是冗余检验字节。由于DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微妙,然后释放,DS18B20收到信号后等待16~60微妙左右,后发出60~240微妙的存在低脉冲,主CPU收到此信号表示复位成功。根据ROM指令表指令约定代码功能读ROM33H读DS18B20ROM中的编码(即64位地址)符合ROM55H发出此命令之后,接着发出64位ROM编码,访问单总线上与该编程相对应的DS18B20使之作出响应,为下一步对该DS18B20的读写作准备。搜索ROMOFOH用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址。为操作各器件作好准备。跳过ROMOCCH忽略64位ROM地址,直接向DS18B20发温度变换命令。适用于单片工作。告警搜索命令OECH执行后只有温度超过设定值上限或下限的片子才做出响应。根据RAM指令表指令约定代码功能温度变换44H启动DS18B20进行温度转换,转换时最长为500ms(典型为200ms)。结果存入内部9字节RAM中。读暂存器OBEH内部RAM中9字节的内容写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器48H将RAM中第3、4字节的内容复制到EEPROM中,重调EEPROMOB8H将EEPROM中内容恢复到RAM中的第3、4字节。读供电方式OB4H读DS18B20的供电模式。寄生供电时DS18B20

- 17 -

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

DS18B20的读写时序和测温原理与DS18B20相同,只是得到的温度值的位数因分辨率不同而不同,且温度转换时的延时时间由2s减为750ms。该部分的电路图如3.5所示。

图3.5 温度采集电路图

3.2.4 显示部分

1.数码管显示部分

显示功能与硬件关系极大,在这里我们使用的是七段数码显示,下面对显示电路的各个部件及整体设计做详细介绍。

7段LED数码管是利用7个LED组合而成的显示设备,可以显示0到9共10个数字。当要显示多个数码管,可分别驱动每个数码管;当要利用人类的视觉暂留现象,则可以采用快速扫描的方式,只要一组驱动电路即可达到显示多个数码管的目的。使用单片机系统串行输出,利用其串/并转换功能,送入数码管显示。基本的半导体数码管是有7个条状发光二级芯片排列而成的,从各发光点击连接方式分为共阳极和共阴极两种。共阳极是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。共阴极型是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的。共阴极LED数码管的a~g及小数点位dp八个发光二极管加阳极加高电平(“1”)发亮,加低电平(“0”)发暗,而共阳极的LED的数码管的a~g及小数点位dp八个发光二级管正好相反。表3.5为数码管的真值表及段码表。

- 18 -

表3.5 七段显示译码器的真值表及段码表

用单片机驱动LED数码管有很多方法,按译码方式可分为硬件译码和软件译码之分,按显示方式分,有静态显示和动态(扫描)显示。这两种显示方式各有利弊,静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,动态显示虽然有闪烁感,占用的CPU时间多,但用的硬件少,能节省线

- 19 -

路板空间。

本电路采用共阳极数码管5461BH进行动态显示,通过动态显示可轮流显示实时温度与设定时间,这有利于节省I/O口。用P2.0~P2.3口作为位选控制,P0.0~P0.7口传输要显示的数据,数据线和位选线直接AT89C52单片机的I/O口即可,因为I/O输出电流很小所以可以用9012(PNP)三极管对LED做一下驱动。

动态显示,通常是将所有位的段选线相应的并联在一起,由一个8位I/O口控制,形成段选线的多路复用,而各位的共阳极分别由相应的 I/O口控制,实现各位的分时复用。由于各位的段选线并联,段码的输出对各位来说都是相同的。因此,同一时刻,如果各位位选都处于选通状态的话,所有位LED将显示相同的字符。若要各位LED能够显示出与本位相应的数字,就必须采用扫描的方式,即在某一时刻只让某一位的位选线选通,而其他各位的位选线处于关闭状态,同时,段选位上输出相应位要显示字符的段码。这样在同一时刻只有一个数码管显示字符,而其它数码管则是熄灭的。同样,在下一时刻,只让下一位数码管显示,其它数码管熄灭。如此循环下去,就可以使各位数码管显示出将要显示的字符,虽然这些字符不是同时出现的,在同一时刻,只有一位数码管显示,其它各位熄灭,但由于LED数码管的余晖和人眼的视觉暂留作用,只要每位显示时间间隔足够短则可造成多位同时亮的假象。但每一位的显示时间不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用的CPU时间也多。

此电路就是当传感器检测到温度后传给单片机,单片机经过判断输出脉冲,然后调用数码管内的程序,最后显示当前温度及时间。为了区分数码管轮流显示的是时间还是实时温度在数码管的最后一位做了区分,当最后一位显示C时,则表示当前显示的是实时温度,当最后一位显示的是F时,则表示当前数码管显示的是时间。从DS18B20读取出的二进制值必须先转换成十进制值,才能用于字符的显示。DS18B20的转换精度为9~12位可选项的,为了提高精度采用12位,在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为温度寄存器里的二进制值乘以0.625,就是实际的二进制温度值。其电路图如3.6所示。

- 20 -

图3.6 数码管显示电路

2.二极管显示部分

为了设置时可以区分清楚系统处于什么界面,系统还设定了二极管显示部分,起标志界面作用。电路中用于标志界面的三极管共有3个,分与单片机的P1.1、P1.2、P1.3相连,每个二极管标志不同的界面。

LED1:表示系统正处于设定时间界面。 LED2:表示系统正处于下限温度界面。 LED3:表示系统正处于上限温度界面。 二极管显示部分电路图如3.7所示。

- 21 -

本文来源:https://www.bwwdw.com/article/6ws4.html

Top