基于单片机多点温度采集系统的设计.docx

上传人:b****9 文档编号:23318590 上传时间:2023-05-16 格式:DOCX 页数:37 大小:722.56KB
下载 相关 举报
基于单片机多点温度采集系统的设计.docx_第1页
第1页 / 共37页
基于单片机多点温度采集系统的设计.docx_第2页
第2页 / 共37页
基于单片机多点温度采集系统的设计.docx_第3页
第3页 / 共37页
基于单片机多点温度采集系统的设计.docx_第4页
第4页 / 共37页
基于单片机多点温度采集系统的设计.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

基于单片机多点温度采集系统的设计.docx

《基于单片机多点温度采集系统的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机多点温度采集系统的设计.docx(37页珍藏版)》请在冰豆网上搜索。

基于单片机多点温度采集系统的设计.docx

基于单片机多点温度采集系统的设计

XXX学院

单片机技术课程设计说明书

课题名称基于单片机的多点温度采集设计

 

系别

专业

班级

学号

姓名XXX

指导教师

2011年6月30日

 

摘要

本论文介绍的是基于AT89C51单片机数字温度计设计,体现模块化设计思想。

论文重点阐述了硬件模块——MCU模块、温度的感应模块、控制模块、显示模块的设计。

软件同样采用模块化设计,软件模块——中断模块、温度转化模块。

温度是生产过程和科学实验中普遍而且重要的物理参数之一。

在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。

温度控制在生产过程中占有相当大的比例。

温度测量是温度控制的基础,技术已经比较成熟。

传统的测温元件有热电偶和二电阻。

而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。

我们用一种相对比较简单的方式来测量。

我们采用美国DALLAS半导体公司继DS1820之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55~125ºC,最高分辨率可达0.0625ºC。

DS18B20可以直接读出北侧温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。

关键字:

微控制器;数字控制;温度计;AT89C51;DS18B20。

 

Abstract

ThispaperintroducesthedesignbasedonAT89C51digitalthermometer,reflectthemodulardesignthought.Paperexpoundsthehardwaremodule-module,temperaturesensingMCUmodule,controlmodule,displaymoduledesign.Thesoftwarealsomodulardesign,softwaremodule-module,fresh-interrupttemperatureconversionmodule.Thetemperatureistheproductionprocessandscientificexperimentscommonandimportantphysicalparameterof.Intheprocessofproduction,tohighlyefficientproduction,itneedstomainparameters,suchastemperature,pressure,andflowrateofeffectivecontrol.Temperaturecontrolinproductionprocessoccupiesalargeproportion.Temperaturemeasurementisthefoundationoftemperaturecontrol,technologyhasmoremature.Thetraditionalmeasuringtemperatureelementshavethermocoupleandtworesistance.Andthermocoupleandheatresistanceofthemeasureiscommonlyvoltage,againconvertedintothecorrespondingtemperature,thesemethodsrelativelycomplex,needmoreoftheexternalhardwaresupport.Weusearelativelysimplewaytomeasure.WeadopttheDALLASsemiconductorcompanyfollowingtheDS1820rollsoutafteranimprovedversionoftheintelligenttemperaturesensorDS18B20asthetestcomponents,temperaturerangefor-55to125C,thehighestresolutiontimeintegrationcanbeupto0.0625DHSC.DS18B20canreadoutdirectly,andthetemperatureinnorthofthethreewireandsingle-chipmicrocomputerislinkedtogether,reducetheexternalhardwarecircuit,withlowcostandeasytousefeatures.

Keyword:

microcontroller,digitalcontrol,Thethermometer,AT89C51,DS18B20.

绪论

随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。

传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。

因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。

由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制,但是它们都不同程度地存在温漂和非线性等影响因素。

传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。

因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制、开发和应用。

另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。

温度传感器是其中重要的一类传感器。

其发展速度之快,以及其应用之广,并且还有很大潜力。

为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。

本文利用单片机结合传感器技术而开发设计了这一温度监控系统。

设计任务与要求

设计任务

设计基于单片机控制的多点温度采集数字温度计,该多点温度采集设计属于单线挂接2个DS18B20的两路温度数据采集,并且通过两个4位1体的数码管进行温度显示,同时要显示当前通道号。

设计要求

1、控制器使用MCS-51系列单片机。

2、DS18B20集成温度传感器的工作原理及其单片机的连接电路识别、程序控制。

3、实现DS18B20的温度转换数字采集。

4、实现4位1体的数码管进行温度显示,同时要显示当前通道号。

5、单线挂接2个DS18B20的两路温度采集。

6、软件仿真设计+硬件设计。

总体设计方案

总体设计方案

方案一

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路感温电路比较麻烦。

该方案一的设计流程如图3.1所示:

图3.1流程图

在设计时钟电路时,可以用时钟芯片,DS1302是DALLAS公司推出的涓流充电时钟芯片,内部包含实时时钟/日历和31字节的静态RAM。

它可以与微处理器通过简单的串行接口。

实时时钟/日历提供秒,分钟,小时,日期,月份,和一年的信息。

本月底日期会自动调整几个月少于31天,包括更正为闰年。

时钟运行或者在24小时或12小时格式的上午/下午指标。

接口的DS1302与微处理器简化使用同步串行通信。

只有三个电线需要沟通的时钟/内存:

I/O(数据线),以及时钟(串行时钟)。

数据还可以转到和时钟/RAM的1字节的时间或在突发的多达31个字节。

在DS1302的设计操作非常低的功耗和保存数据和时钟信息不到1μW。

在DS1302的前身是在DS1202。

除了基本的报时功能,DS1202,DS1302具有的附加功能的双电源引脚的主要和备用电源,可编程的涓流充电器VCC1,并增设7个字节的暂存记忆。

方案二

由于用A/D转换比较麻烦,进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易直接读取温度值,进行转换,就可以满足设计要求。

在设计时钟电路时,由于实现的功能比较少,利用单片机内部资源,定时/计数器,中断系统就可以完成,需要在用时钟芯片,而且会增加外围电路。

方案二的总体设计图

主控电路设计

温度计、时钟电路设计总体设计框图如图3.2.1所示,控制器采用单片机AT89S51,温度传感器采用DS18B20,用4位LED数码管以并行传送数据实现温度、时钟的显示。

图3.2.1总体设计

主控制器AT89C51的介绍

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

单片机AT89C51的封装图为图3.2.2,本设计的单片机原理图为图3.2.3。

图3.2.2单片机AT89C51的封装图

图3.2.3单片机原理图

1.单片机AT89C51主要特性有以下几点

1.MCS-51兼容4K字节可编程闪烁存储器。

2.寿命是1000写/擦循环。

3.数据保留时间为10年。

4.全静态工作在0Hz-24Hz。

5.三级程序存储器锁定。

6.128*8位内部RAM。

7.32可编程I/O线。

8.两个16位定时器/计数器。

9.5个中断源。

10.可编程串行通道。

10.低功耗的闲置和掉电模式。

11.片内振荡器和时钟电路。

2.单片机AT89C51的管脚如下说明

VCC:

供电电压。

GND:

接地。

P0口:

P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:

P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:

P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。

这是由于内部上拉的缘故。

P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。

在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。

P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:

P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。

作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下说明:

P3.0RXD(串行输入口)。

P3.1TXD(串行输出口)。

P3.2/INT0(外部中断0)。

P3.3/INT1(外部中断1)。

P3.4T0(记时器0外部输入)。

P3.5T1(记时器1外部输入)。

P3.6/WR(外部数据存储器写选通)。

P3.7/RD(外部数据存储器读选通)。

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:

当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。

在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。

因此它可用作对外部输出的脉冲或用于定时目的。

然而要注意的是:

每当用作外部数据存储器时,将跳过一个ALE脉冲。

如想禁止ALE的输出可在SFR的8EH地址上置0。

此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。

如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:

外部程序存储器的选通信号。

在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。

但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。

在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:

来自反向振荡器的输出。

3.振荡器特性

XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

4.芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

温度传感器DS18B20的介绍

这里我们用到温度芯片DS18B20。

使用集成芯片,能够有效的减小外界的干扰,提高测量的精度,简化电路的结构。

使用集成芯片,已经慢慢的成为设计电路的一种趋势。

本系统使用温度芯片也正是顺应了这一趋势。

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。

DS18B20的性能特点如下:

1.独特的单线接口仅需要一个端口引脚进行通信;

2.多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

3.无须外部器件;

4.可通过数据线供电,电压范围为3.0~5.5V;

5.零待机功耗;

6.温度以9或12位数字;

7.用户可定义报警设置;

8.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

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

DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图3.2.4所示:

图3.2.4DS18B20内部结构

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。

温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图3.2.5所示。

头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。

该字节各位的定义如图3.2.5所示。

低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

温度LSB

温度MSB

TH用户字节1

TL用户字节2

配置寄存器

保留

保留

保留

CRC

图3.2.5DS18B20字节定义

由表3.2.6可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。

因此,在实际应用中要将分辨率和转换时间权衡考虑。

高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。

第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。

当DS18B20接收到温度转换命令后,开始启动转换。

转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。

单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。

当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。

表3.2.7是一部分温度值对应的二进制温度数据。

R1

R0

分辨率/位

温度最大转向时间/ms

0

0

9

93.75

0

1

10

187.5

1

0

11

375

1

1

12

750

表3.2.6DS18B20温度转换时间表

DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。

若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。

因此,可用多只DS18B20同时测量温度并进行报警搜索。

在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。

主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。

计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。

其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

温度/℃

二进制表示

十六进制表示

+125

0000011111010000

07D0H

+85

0000010101010000

0550H

+25.0625

0000000110010000

0191H

+10.125

0000000010100001

00A2H

+0.5

0000000000000010

0008H

0

0000000000001000

0000H

-0.5

1111111111110000

FFF8H

-10.125

1111111101011110

FF5EH

-25.0625

1111111001101111

FE6FH

-55

1111110010010000

FC90H

表3.2.7 一部分温度对应值表

DS18B20的工作协议

由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。

系统对DS18B20的各种操作按协议进行。

操作协议为:

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

1、初始化

单总线上的所有处理均从初始化序列开始。

初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。

存在脉冲让总线控制器知道DS1820在总线上且已准备好操作。

初始化过程复位和存在的脉冲如图3.2.8所示:

图3.2.8复位脉冲

2、ROM操作命令

一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。

所有ROM操作命令均为8位长。

这些命令列表如下:

ReadROM(读ROM)[33h]此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。

此命令只能在总线上仅有一个DS18B20的情况下可以使用。

如果总线上存在多于一个的从属器件,那么当所有从企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。

MatchROM(符合ROM)[55h]此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。

只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。

所有与64位ROM序列不符的从片将等待复位脉冲。

此命令在总线上有单个或多个器件的情况下均可使用。

SkipROM(跳过ROM)[CCh]在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。

如果在总线上存在多于一个的从属器件而且在SkipROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。

SearchROM(搜索ROM)[F0h]当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。

搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。

AlarmSearch(告警搜索)[ECh]此命令的流程与搜索ROM命令相同。

但是,仅在最近一次温度测量出现告警

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

当前位置:首页 > 人文社科 > 法律资料

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

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