基于单片机AT89C51数字温度计的设计.docx
- 文档编号:11620066
- 上传时间:2023-03-28
- 格式:DOCX
- 页数:28
- 大小:434.22KB
基于单片机AT89C51数字温度计的设计.docx
《基于单片机AT89C51数字温度计的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机AT89C51数字温度计的设计.docx(28页珍藏版)》请在冰豆网上搜索。
基于单片机AT89C51数字温度计的设计
摘要
随着科技的不断发展,现代社会对各种信息参数的精确度和准确度的要求都有了很大的增长,而如何准确和迅速的获得这些参数就需要受制于现代信息技术的发展水平。
目前的智能温度传感器(亦称为数字温度传感器)是在20世纪90年代问世的,是微电子技术、计算机技术和自动测试技术(ATE)的结合。
它的特点是能输出温度数据和相关的温度控制量,适合各种微控制器(MCU)。
社会的发展使得人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础之上从模拟到数字式,从集成化到智能化、网络化的发展,并且朝着多功能。
高精度、总线标准化、高安全性和可靠性、开发网络传感器和虚拟传感器、研制单片测温系统等高科技的方向迅速发展。
本文将介绍智能集成温度传感器DS18B20的结构特征和控制方法,并对以此传感器,89C51单片机为控制器构成的数字温度计测量装置的工作原理和程序设计做了详细的介绍。
和传统的温度计相比它具有测量广泛,读数方便,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或者是科研实验室使用。
该设计控制器使用ATMEL公司的AT89S51单片机,测温传感器使用DALLAS公司的DS18B20,用液晶显示器来实现温度显示。
关键词:
18B20单片机LED
ABSTRACT
Withthedevelopmentofscienceandtechnology,precisionandaccuracyofmodernsocietyonvariousparametersofinformationrequirements,therehasbeenalotofgrowth,andhowaccurateandfastaccesstotheseparameterswillneedtobesubjecttothelevelofdevelopmentofmoderninformationtechnology.
Currentsmarttemperaturesensor(alsoreferredtoasdigitaltemperaturesensor)islaunchedininthe1990ofthe20thcentury,ismicro-electronicstechnology,computertechnologyandautomatedtestingtechnologies(ATE)combination.Itfeaturestheoutputtemperaturedataandrelatedtemperaturecontrol,suitableforvariousmicrocontroller(MCU).Societytendstomakepeople'srequirementshavebecomemoresophisticatedaboutsensors,temperaturesensorsarenowbasedonsingle-chipindustryfromanalogtodigital,fromintegrationtothedevelopmentofintelligent,networked,andversatile.Highaccuracy,standardization,highsecurityandreliability,todevelopbusnetworkssensorsandvirtualsensors,developmentofsingle-chipmicrocomputertemperaturemeasuringsystemandtherapiddevelopmentofhightechnology.ThisarticledescribesthearchitectureofintelligentintegratedtemperaturesensorDS18B20featureandcontrolmethod,andwiththissensor,89S51single-chipcontrollerworkingprincipleanddesignofadigitalthermometermeasurementunitisintroducedindetail.Andithasmeasuredawiderangethantraditionalthermometers,reading,accuracyoftemperaturemeasurement,theoutputtemperaturewithdigitaldisplay,placeusedprimarilyforaccuratetemperaturemeasurementrequirements,oraresearchlaboratory.ThedesignofcontrollerusingATMEL'sAT89S51single-chip,DS18B20temperaturesensorusingtheDALLAScompany,realizeswiththeLCDtemperaturedisplay.
Keywords:
18B20Single-chipmicrocomputerLED
第1章前言
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。
现代信息技术的飞速发展和传统工业改造的逐步实现。
能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,所以传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点。
本设计是测温电路,首先要选用高性能的AT89C51单片机,保证在恶劣的工业环境下能正常运行。
单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计要求,很适合便携手持式产品的设计使用系统可用二节电池供电。
测温传感器使用二极管结电压变化的数值进而转化成温度的变化,将被测量温度变化的电压或电流采集过来,进行A/D转换后,就可用单片机进行数据的处理,在显示电路上就可将被测温度显示出来。
这种设计电路简单,软件设计业比较简单。
在单片机设计电路中大多都是使用传感器,这很容易做到,所以用一只温度传感器DS18B20,它可以很容易直接读取被测温度值,进行转换,这样可以满足设计条件【1】。
数字式温度计的设计将给人们的生活带来很大的方便,为人们生活水平的提高做出了贡献。
数字温度计在以后将应用于我们生产和生活的各个方面,数字式温度计的众多优点告诉我们:
数字温度计将在我们的未来生活中应用于各个领域,它将会是传统温度计的理想的替代产品。
第2章数字温度计总体设计方案
2.1数字温度计设计方案
方案一:
采用热敏电阻器件,利用其感温效应,再将随被测温度变化的电压或电流采集过来,进行A/D转换后,利用单片机进行数据的处理,然后在显示电路上,将被测温度显示出来。
方案二:
利用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换就可以满足设计要求。
分析上述两种方案可以看出方案一是使用热敏电阻之类的器件利用其感温效应,进行A/D转换后,利用单片机进行数据的处理,在显示电路上被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
方案二是利用温度传感器直接读取被测温度,读数方便,测温范围广,测温精确,适用范围宽而且电路简单易于实现【2】。
综合方案一和方案二的优缺点,我们选择方案二。
2.2总体设计框图
温度计电路设计总体设计方框图如图2-1所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。
图2-1 总体设计方框图
第3章数字温度计硬件设计
3.1主控制器AT89C51
3.1.1AT89C51的特点及特性:
40个引脚,4KBytesFLASH片内程序存储器,128Bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89C51在空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求【3】。
主要功能特性:
兼容MCS-51指令系统
4k可反复擦写(>1000次)ISPFLASHROM
32个双向I/O口
4.5-5.5V工作电压
2个16位可编程定时/计数器
时钟频率0-33MHZ
全双工UART串行中断口线
128X8BIT内部RAM
2个外部中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
3.1.2管脚功能说明:
AT89C51管脚如图3-1所示:
图3-1AT89C51管脚图
(1)VCC:
供电电压。
(2)GND:
接地。
(3)P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
(4)P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
(5)P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号【4】。
(6)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口同时为闪烁编程和编程校验接收一些控制信号。
(7)RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
(8)ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效【5】。
(9)/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
(10)/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(11)XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
(12)XTAL2:
来自反向振荡器的输出【6】。
3.1.3片内振荡器:
该反向放大器可以配置为片内振荡器,如图3-2所示。
图3-2片内振荡器
3.1.4芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM、定时器、计数器、串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
AT89C2051构成的温度计主要有三部分组成:
DS18B20温度传感器、单片机AT89C2051、由LED数码管构成的显示模块。
其系统原理框图如图。
DS18B20作为单片机AT89C2051的外部信号源,把所采集到的温度转换为数字信号,通过I/O接口传给51单片机,51单片机启动ROM内的控制程序驱动LED数码管,通过I/O接口的数据线(单片机和数码管的接口)把数据线传送给数码管,将采集到的温度显示出来。
DS18B20的特点:
它是采用单总线专用技术,既可以通过串行口西岸,又可以通过其他I/O口线和微机接口,不需要经过其他的转换电路,直接就可以输出被测温度值。
测量温度范围是:
-55~+125,分辨率为0.0625,它内含64位经过激光修正的只读存储器ROM,适合各种单片机和系统机,用户可以分别设定温度的上.下限,它内含寄生电源。
它的内部结构重要由4部分组成:
64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。
在硬件上,它和单片机的链接有两种方式。
一种是VCC接外部电源,GND接地,I/O和单片机的I/O线相连;第二种是用寄生电源供电,此时UDD.GND接地,I/O接地,I/O接单片机的I/O。
不论是内部寄生电源还是外部寄生电源供电,I/O口线都要接5K欧左右的上拉电阻。
把它的数据线与单片机的13管脚链接。
CPU对它的访问流程:
先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作和数据操作。
它的每一步操作都要遵循严格的工作时序和通信协议。
3.2单片机主板电路
单片机AT89C51是数字温度计的核心元件,单片机的主板电路如图3-3所示,包括单片机芯片、报警系统电路、晶振电路、上拉电阻以及与单片机相连的其他电路。
图3-3单片机的主板电路
3.3温度采集部分的设计
3.3.1温度传感器DS18B20
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式【7】。
TO-92封装的DS18B20的引脚排列见图3-4,其引脚功能描述见表3-1。
表3-1 DS18B20详细引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
图3-4DS18B20引脚排列
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装【8】,其内部结构框图如图3-5所示。
图
图3-5DS18B20内部结构
64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。
温度报警触发器TH和TL,可通过软件写入户报警上下限【9】。
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图3-6所示。
头8个字节包含测得的温度信息,第8和第8字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第8个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图3-6所示。
低8位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为8,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率【10】。
DS18B20最大的特点是单总线数据传送方式,DS18B20的数据I/O均由同一条线来完成。
DS18B20的电源供电方式有两种:
外部供电方式和寄生电源方式。
工作于寄生电源方式时,VDD和GND均接地,它在需要远程温度探测和空间受限的场合特别有用处。
原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。
但是寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。
因此,在条件允许的场合,尽量采用外供电方式。
无论是内部寄生电源还是外部供电,I/O口线要接5K欧左右的上拉电阻,在这采用前者方式供电。
采集的温度经过处理后,超过规定温度上限的时候,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发送警报声;当采集到的温度经过处理后,低于设定温度下线时,单片机将通过P1.5口向蜂鸣器发送高电平信号使其发送警报声。
要是由于环境温度变化太剧烈或加热,或温度传感头出现故障,而在一定时间内,不能将温度控制到规定的温度限内,单片机也将会通过P1.5口向蜂鸣器发送高电平信号使其发送警报声。
在实验中设置的下限温度是20摄氏度,当温度达到20摄氏度时,蜂鸣器就将发出警报声,实验中设置的上限温度为40摄氏度,当温度达到所显示的40摄氏度时,蜂鸣器就会开始警报。
报警模块的器件选择:
在本设计中温度测量范围是0摄氏度到+125摄氏度之间,因此只需要液晶就可以完成相关的显示功能,报警器可以用有源蜂鸣器配合三极管来代替。
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRC
图3-6 DS18B20字节定义
由表3-2可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
表3-2DS18B20温度转换时间表
R1
R0
分辨率(位)
温度最大转向时间(ms)
0
0
9
93.75
0
1
10
187.5
1
0
11
375
1
1
12
750
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示【11】。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表3-3是一部分温度值对应的二进制温度数据。
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T 因此,可用多只DS18B20同时测量温度并进行报警搜索。 在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。 主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。 DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。 器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。 计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值【12】。 减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。 其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 AT89C51 数字 温度计 设计