基于51单片机的温度测量系统.docx
《基于51单片机的温度测量系统.docx》由会员分享,可在线阅读,更多相关《基于51单片机的温度测量系统.docx(65页珍藏版)》请在冰豆网上搜索。
![基于51单片机的温度测量系统.docx](https://file1.bdocx.com/fileroot1/2023-2/2/26c3042d-a7b3-4c5b-947b-e04406048df6/26c3042d-a7b3-4c5b-947b-e04406048df61.gif)
基于51单片机的温度测量系统
基于单片机的温度测量系统
摘要
随着测温系统的极速的发展,国外的测量系统已经很成熟,产品也比较多。
近几年来,国内也有许多高精度温度测量系统的产品,但是对于用户来说价格较高。
随着市场的竞争越来越激烈,现在企业发展的趋势是如何在降低成本的前提下,有效的提高生产能力。
追求价格便宜、性能高效,且应用广泛的器件是企业优先考虑的问题,因此设计出以一种操作简单、性能优越、价格便宜的测温系统将会有很好的发展潜力。
本文选用单片机STC89C52为核心制作了温度实时监测系统。
单片机STC89C52可以依据温度传感器Ds18b20所收集的温度在液晶屏上实时显示,通过按键来设置上下限温度。
所有温度数据均通过液晶显示器LCD显示出来。
经过反复调试,系统可以运行,上电后LCD1602显示当前温度,并能进行报警预警。
关键字单片机温度传感器液晶显示器
Temperaturemeasurementsystembasedonsinglechipmicrocomputer
ABSTRACT
Withthedevelopmentofthetemperaturemeasuringsystemofhighspeed,measurementsystemhasbeenverymatureabroad,productsisalsomore.Inrecentyears,therearealsomanydomestichighprecisiontemperaturemeasurementsystemofproducts,butthepriceishigherfortheuser.Asthemarketcompetitionismoreandmorefierce,andnowthetrendofthedevelopmentoftheenterpriseishowtoreducecostunderthepremiseofeffectivelyimproveproductioncapacity.Pursuecheap,efficientperformance,andwidelyuseddeviceisapriorityforenterprises,thusdesignedinasimpleoperation,superiorperformance,pricecheaptemperaturemeasurementsystemwillhaveverygooddevelopmentpotential.
ThisarticlechoosesmicrocontrollerSTC89C52madetemperaturereal-timemonitoringsystemforthecore.MicrocontrollerSTC89C52canbecollectedaccordingtothetemperaturesensorDS18B20temperatureinreal-timedisplayontheLCDpanel,temperaturethroughthebuttonstosettheupperandlowerlimits.AllthetemperaturedatathroughaliquidcrystaldisplayLCDdisplay.
Afterrepeateddebugging,thesystemcanrun,afterpowerontheLCD1602displaythecurrenttemperature,andcanalarmwarning.
KEYWORDSMicrocontrollerThetemperaturesensorLiquidcrystaldisplay
1绪论
1.1选题的背景
随着社会的进步和发展,人们物质生活的提高,单片机技术已经深入我们的生活,工作,和其他领域的研究,已成为一种成熟的技术,单片机系统成为人们追求的目标之一,它所给人带来的便利是无与伦比的,其中数字温度计就是一个很典型的例子,由于人们对于它的要求越来越高,想要为人们提供更便捷的设备就需要从单片机技术入手,使设备向着数字化,智能化的方向发展。
目前,测温系统得到极速的发展,国外的测量系统已经很成熟,产品也比较多。
近几年来,国内也有许多高精度温度系统的产品,但是对于用户来说价格高。
。
随着市场的竞争越来越激烈,现在企业发展的趋势是如何在降低成本的前提下,有效的提高生产能力。
追求价格便宜、性能高效,且应用广泛的器件是企业优先考虑的问题,因此设计出以一种操作简单、性能优越、价格便宜的测温系统将会有很好的发展潜力。
1.2课题研究的目的和意义
随着近几年的持续高温天气,使得温度测量变得越来越被人重视。
本文运用单片机STC89C52制作了温度实时测量系统。
温度传感器DS18B20所收集的温度通过单片机在液晶屏上实时显示,通过按键控制改变温度的上下限温度。
所有测到的数据通过LCD1602显示出来。
设计的温度测量系统能实现以下功能:
(1)测温范围:
-55℃~+125℃;
(2)温度显示:
lcd1602液晶显示器;
(3)超过设置温度范围会发生报警且对应指示灯亮。
(4)测温分辨力:
0.5℃;
(5)测温准确度:
1℃左右;
(6)独立按键与无线遥控二者并行控制温度的上下限设置。
经过此次毕业设计使我懂得了单片机控制系统的综合知识,掌握了简单的软、硬件设计方法,并进一步锻炼我在单片机利用方面的能力。
1.3本文的结构
全文共分为六章,各章主要内容如下:
第一章是绪言部分,主要介绍了选题的背景、研究的目的意义以及本文的主要内容和结构;
第二章为系统方案设计部分,主要说了整个体系的工作原理和硬件结构,判断系统的总体方案的优劣,并对各类方案做出比较并选取;
第三章为各模块硬件设计部分,详细介绍各模块的原理,并对电路功能进行分析,对硬件线路进行设计并得出对应的硬件原理图;
第四章为系统软件设计及仿真部分,主要介绍系统各部分模块的设计流程和简单程序;以及系统软件仿真。
第五章为实物制作,贴出具体的实物图片,以及在调试过程中所遇到的问题和解决方案。
第六章是总结和展望,主要是对本设计的总结归纳,并对存在的问题提出解决方案,以及功能扩展和进一步研究的方向。
2系统总体方案设计
2.1总体方案设计
温度
图2-1系统总体方案流程图
系统总体以stc89c52单片机为核心,通过温度测量模块、lcd显示模块和按键模块来组成。
可以通过按键设定温度报警的上下限。
当测量的温度超出设定范围时,单片机能够驱动报警电路。
显示模块可以显示当前的温度值、温度上下限等信息,按键模块采用普通按键和无线遥控两种并行使用方式。
2.2部分模块方案选择
2.2.1单片机的选择
方案一:
采用AT89C51芯片为核心,硬件使用闪速存储器,4KB内部程序存储空间,与51系列单片机是完全兼容的。
但这个电路设计因为没有在线编程技术,因此在电路调试、修改或由于程序错误需要下载时,需反复拔插芯片,会造成芯片一定的损伤,不利于测试使用。
此外,内部没有集成A/D转换模块。
方案二:
选用STC89C52单片机为核心,该单片机是51系列增强型的8位单片机,它具有32个I/O口,且片内含8KFLASH程序存储器,并且具有AT89C51的所有功能,能够实现在线编程功能,在对电路进行调试时,由于程序的错误修改需要烧入程序时,可以直接在线进行,避免了多次插拔芯片从而造成单片机的损坏[1]。
由上可得出,本设计选取STC89C52作为本系统的核心。
2.2.2温度检测方式的选择
方案一、使用热偶电阻之类的器件,将随被测温度转变的电压或电流收集过来通过A/D转换后,能够用单片机进行数据的处理,并把数据显示出来,但是这种设计需要用到A/D转换电路,其中还涉及到热偶电阻与温度的对应关系。
而且在采样信号的放大过程中由于受温度的影响将是一个大的偏差,精度不高,不推荐采用。
方案二、现在在单片机测温电路设计中,大部分都是利用温度传感器的,本系统可以选用温度传感器DS18B20,此传感器是单总线数字传感器,可以进行温度读取,转换,且给单片机的是二进制补码形式的数据。
具有高精度,抗干扰能力强,便于计算的特点,而且便于系统的再扩展,满足设计要求。
从以上两种方案来看很容易得出,方案二电路比较简便,费用不高,性价比高,且程序设计也比较简便,故选用了第二种方案。
2.2.3显示部分的选择
方案一:
采用8位共阴极段数码管,数码管可以将单片机得到的温度数据显示出来。
该方案简单易懂,成本较低,但是所需的元件较多,线路复杂,程序设计复杂,但是可读性差,不容易操作,一经设定,无法再添加其他的功能,显示格式受严重限制。
方案二:
采用LCD1602显示。
LCD1602是一个低电压,低功耗,只要2到3伏特工作,低工作电流,能显示大量的信息,除了数字,还可以显示文本的液晶显示器,与传统的数码管的比较,lcd显示器的显示界面有了质的飞跃。
虽然液晶显示器的价格是更昂贵,但它效果良好。
使用液晶显示装置,更容易实现的需求,背面的扩展功能兼容性很高,只需要修改软件程序就可扩展,可操作性强,易阅读,还可以显示更多内容。
综上分析,采用第二个方案。
2.2.4电源模块的选择
方案一:
使用干电池的三、四节电池箱提供电源。
该方案的优点是操作简单,容易实现,成本低,缺点是三个输出电压为4.5V(太小),单片机几乎不工作,只适用于小电流负荷时。
且在整个系统工作过程中,电压会降低,不宜使用很长一段时间。
用四节电池时高于单片机的工作电压,虽然可以用稳压管稳压,但是却不能长时间使用。
方案二:
采用220V转9V电源线和LM7805设计的稳压电源。
从而可以使系统在稳定电压下工作,为了演示方便可用9V干电池临时代替。
综上分析,选择第二种方案。
3硬件电路的设计
3.1硬件电路设计软件
本次设计采用了AltiumDesignerSummer09软件进行了原理图的绘制和PCB图的生成。
Altium是由NickMartin在1985年成立,该公司总部在澳大利亚,这是专门为于基于PC机的软件开发,绘制原理图和印制电路板,提供辅助的设计。
后来Altium公司通过公开募股在澳大利亚股票市场成功上市。
所筹集的资金用于在收购适当的公司和技术,其中包括收购ACCELTechnologies公司、Metamor公司等【3】。
Altium宣称在中国有70%多的工程师和大多数与电子工程相关专业在校学生正在使用它的软件,但是当前所用的正版率仅有3%左右。
主要功能
(1)电路原理图设计
(2)印刷电路板设计
(3)电路模拟仿真
(4)FPGA及逻辑器件设计
(5)高级信号完整性分析
3.2系统整体原理图
本课题设计的是以STC89C52单片机为核心,以DS18B20温度传感器作为采集模块的温度测量系统。
该测温系统能够实时存储相关的温度数据并在LCD上进行显示。
其系统主要包括:
电源模块、温度采集模块、按键控制模块、LCD1602显示模块、无线遥控模块以及单片机最小系统。
系统整体原理图和PCB图如下:
图3-1系统整体原理图
图3-2系统整体PCB图
3.3单片机最小系统电路
在本次的温度测量系统中,控制核心是STC89C52单片机,该单片机是51系列增强型的8位单片机,它具有32个I/O口,内部有8K的程序存储器,512字节数据存储空间,能方便的在线进行程序的读写。
使用这个单片机可以完成本系统的设计要求,其它的最小系统主要包括:
复位电路、外部震荡电路和存储器选择模式(EA脚的高低电平选择)【15】,电路如下图3-3所示:
图3-3单片机最小系统
3.4单片机的选型
这次设计的温度测量系统主要控制芯片选择为STC89C52单片机,其主要特点如下:
STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统8051单片机。
主要特性如下:
1 增强型8051单片机,12时钟/机器周期可以随意选择,指令代码与传统8051完全兼容.
2 工作电压:
5.5V~3.3V(5V单片机)
3 工作频率范围:
0~40MHz,只相当于普通8051的0~80MHz,而实际工作频率可达48MHz
4 用户应用程序空间为8K字节
5 片上集成512字节RAM
6 通用I/O口(32个),复位后为:
P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,当作为总线扩展用时,不用加上拉电阻,但是作为I/O口用时,需加上拉电阻。
7 ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,具有简单快捷方便的优势
8 具有EEPROM功能
9 具有看门狗功能
10 有3个16位定时器/计数器。
11 外部中断4路,可选择下降沿或低电平来触发电路
12 工作温度范围:
-40~+85℃(工业级)/0~75℃(商业级)
13 PDIP封装
STC89C52RC单片机的工作模式
1.掉电模式:
典型功耗小于0.1μA,可由外部中断唤醒,中断返回后,继续执行原程序,适合用于电池供电系统及便捷设备
2.空闲模式:
典型功耗2mA
3.正常工作模式:
典型功耗4mA~7mA
图3-4STC89C52RC引脚图
STC单片机的引脚与51系列的单片机引脚几乎相同。
另外STC89c52有两种时钟模式,一种是12时钟模式,在该模式下,STC单片机与51系列单片机具有相同的机器周期,即12个振荡周期为一个机器周期;另一种是6时钟模式,在此模式下,STC单片机比其他51单片机运行速度快一倍【15】。
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
3.5温度测量模块
3.5.1DS18B20概述
DSl8B20温度传感器是美国DALLAS半导体公司最新推出智能温度传感器。
与传统的热敏电阻相比,它能够根据要求通过简单的编程来实现9~l2位的数字直接读取出被测温度。
并且DSl8B20仅需要一根总线来实现与单片机的信息传输,而温度变换所功率全部来源于数据总线,无需额外电源。
因而使用DSl8B20可使系统结构更趋简便、操纵简单、可靠性强[1]。
DSl8B20其内部结构框图如下图所示:
图3-5DSl8B20的内部结构图
Ds18b20的内部构造主要有四部分组成:
64位光刻ROM、非挥发的温度报警触发器TH和TL、温度传感器、配置寄存器。
Dsl8b20有2种封装形式:
3脚PR-35直插式和8脚SOIC贴片式。
封装图如图3-5所示
图3-6DS18B20封装
64位激光ROM开始8位是产品类型的编号,接着是每个器件的惟一的序号共有48位,最8位是前56位的CRC校验码,这也是多个DSl8B20能够采用一线进行通信的原因。
DSl8B20温度传感器包括一个高速暂存RAM和一个非易失性的可电擦除EEPRAM。
后者用于存储TH、TL值。
而配置寄存器是高速暂存器中的第5个字节,它的内容与温度值的数字转换分辨率有关,DSl8B20工作时按照这个寄存器中的分辨率将温度转换成对应精度的二进制数值。
又因为低5位一直都是1,TM是测试模式位,主要是用于设置DSl8B20在工作模式还是在测试模式。
在DSl8B20出厂时该位会默认设置成0用户不需要去进行改动,Rl和R0却是决定温度转换精度位数。
如表3-1所示。
表3-1内部存储器
TM
R1
R0
1
1
1
1
1
由表3-2可见,分辨率越高,温度转换时间所需的时间越长。
因此,在实际应用需要在分辨率和转换时间中找到平衡,根据实际需要选择最佳的。
表3-2温度数据转换与时间
R1
R0
分辨率
温度最大转换时间/ms
0
0
9
93.75
0
1
10
187.5
1
0
11
275.00
1
1
12
750.00
DSl8B20接收到温度转换命令后,就进行转换,如表3-3所示。
转换完成后的温度值就以16位带符号的二进制补码形式储存在高速暂存存储器的第l,2字节。
单片机通过单线接口得到该数据,读取时低位在前面,高位在后,数据格式以0.0625℃/LSB形式表示。
温度计算要求:
当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码,再计算十进制值。
表3-3高速暂存存储器
温度低位
温度高位
H
L
配置
保留
保留
保留
8位CRC
在DSl8B20完成温度变换之后,温度值与贮存TH和TL内的触发值会发生相比较,如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。
每次温度测量更新此标志。
只要告警标志置位,DSl8B20将对告警搜索命令做出响应。
这就是允许并联连接许多DSl8B20的原因,同时进行温度测量。
如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。
部分温度转换如表3-4所示:
表3-4部分温度转换
温度
输入(2进制)
输出(16进制)
+125℃
0000011111010000
07D0H
+85℃
0000010101010000
0550H
+25.0625℃
0000000110010001
0191H
+10.125℃
0000000010100010
00A2H
+0.5℃
0000000000001000
0008H
0℃
0000000000000000
0000H
-0.5℃
1111111111111000
FFF8H
-10.125℃
1111111101011110
FF5EH
-25.0625℃
1111111101011110
EE6FH
-55℃
1110111001101111
FE90H
DS18B20的参数特性:
(1)独特的单线接口需1个接口即可通信
(2)多点综合测温能力使分布式温度检测应用得以简化
(3)不需要外部元件
(4)可用数据线供电
(5)需备份电源
(6)测量范围从-55℃至+125℃
(7)以9位数字值方式把温度值传给单片机
(8)在1秒时间内把温度变换为二进制的数字
3.5.2DS18B20测温工作原理
Ds18b20测温原理如图3-7所示。
图中由于低温度系数晶振的振荡频率受温度影响很小,多用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为减法计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
图3中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正计数器1的预置值[1]。
图3-7DS18B20测温原理图
3.5.3DS18B20温度传感器与单片机的接口电路
DS18B20能够选用两种方式供电,一种是寄生电源供电方式。
另一种是选用独立电源供电方式,用于多个传感器同时使用时,单片机不能有效驱动各个传感器,接线方式为:
Ds18b20的1脚接地,2脚作为信号线,3脚接电源。
本系统采用第一种方式供电,如图3-8所示单片机端口接单线总线。
当Ds18b20处于写存储器操作和温度转换操作时,总线上需要有强的上拉,上拉开启时间最大为10us。
图3-8Ds18b20温度传感器的接口电路
3.6显示模块
本文采用LCD1602来进行显示,显示系统原理图:
图3-9显示系统原理图
3.6.1LCD1602简介
1602液晶也被称为1602字符液晶显示,这是一个特殊的用于显示字母,数字,符号的液晶显示模块。
它是由若干个5x7或5x11的点阵字符位组成,每一个点阵字符位都可以用显示一个字符,每位之间有一个点距的间距,每行之间也有间隔[13]。
由于字符间距和行间距的影响,使它不能很好的显示图片
1602LCD可以显示两行,每行有16个字符液晶模块(显示字符和数字)。
当前市场上的字符液晶大多数是基于HD44780液晶芯片的,它们控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。
液晶显示原理
液晶显示的原理是利用液晶的物理特性,通过电压来控制显示区域,有电就有显示。
液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点。
从而被广泛运用。
LCD1602的基本参数及引脚功能
LCD1602分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图3.6所示:
图3-10LCD1602尺寸图
LCD1602主要技术参数:
显示容量:
16×2个字符
芯片工作电压:
4.5~5.5V
工作电流:
2.0mA(5.0V)
模块最佳工作电压:
5.0V
字符尺寸:
2.95×4.35(W×H)mm
LCD1602采用标准的16脚(带背光)接口,各引脚接口简要说明如表3-7所示:
表3-7引脚接口说明表
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
数据
3
VL
液晶显示偏压
11
D4
数据
4
RS
数据/命令选择
12
D5
数据
5
R/W
读/写选择
13
D6
数据
6
E
使能信号
14
D7
数据
7
D0
数据
15
BLA
背光源正极
8
D1
数据
16
BLK
背光源负极
其具体功能及注意事项介绍如下:
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,当对比度过高时会产生“鬼影”,我们使用时通常通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择位,高电平时为数据寄存器,低电平时为指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端低电平