温度显示系统的设计与实现.docx
《温度显示系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《温度显示系统的设计与实现.docx(55页珍藏版)》请在冰豆网上搜索。
温度显示系统的设计与实现
摘要
随着大众的生活水平不断的向上提升,以及现代科技的不断发展。
人们越来越关注和自己相关的物理环境因素。
其中,环境温度是一项和我们的生活密切相关的因素,例如我们在早上起床的时候都会看看天气预报来了解自己所处的地区的天气状况,以及实时的温度,从而来决定自己一天的穿着和出行计划。
同时,时刻了解我们的环境温度还在很多生产和农业领域有着巨大的作用。
比如农业中的温室大棚,我们就需要时刻了解大棚的温度。
工业生产也是一样,我们需要时刻监测工厂的生产温度。
正因为环境温度和我们息息相关,而且有着重要的作用。
所以本次设计就制作了一个温度显示系统。
经过前期的硬设计和软件设计。
以及后期的仿真调试。
本设计实现了:
利用STC89C51单片机对环境温度进行实时的采集,然后通过LCD1602液晶显示模块实时的显示温度,同时通过外置的独立按键进行温度上限和温度下限的实时设定,在采集了温度之后进行实时的比较,如果超过设定的温度上限值或者低于设定的温度下限值,就你用蜂鸣器和LED灯进行组合报警提示。
在本次设计中,主要用到了STC89C51单片机,DS18B20集成温度传感器,LCD1602液晶显示模块,独立按键调节,蜂蜜器和LED组合报警模块。
进过前期的大量设计和中期的软件仿真。
从整体的系统设计到分块的软件和硬件设计,采用分块独立设计,后期整合的方式进行。
保证了系统设计的高效和可靠性。
在大量的测试和实际的软件仿真测试之后得出结论。
本文所采用的硬件和软件设计方式是正确可靠的。
能够实现我们最初的目的,实时显示温度并在超过温度设定值的时候进行报警。
关键词:
单片机,DS18B20,温度采集,液晶显示
ABSTRACT
Asthepublic'slivingstandardscontinuetoupgrade,andthecontinuousdevelopmentofmodernscienceandtechnology.Peopleareincreasinglyconcernedwiththeirownphysicalenvironmentfactors.Theambienttemperatureisaandourlivesarecloselyrelatedtothefactors,forexample,weinthemorningwilllookattheweatherforecasttoknowtheweatherconditionsinthearea,andthereal-timetemperature,soastodecideadaydressandtravelplans.Atthesametime,timetounderstandourenvironmenttemperatureisstillalotofproductionandagriculturehasahugeroleinthefieldof.Forexample,theagricultureofthegreenhouse,weneedtoknowthetemperatureofthegreenhouse.Industrialproductionisthesame,weneedtimetomonitortheproductiontemperatureoftheplant.Becauseoftheenvironmentaltemperatureandwearecloselyrelated,butalsohasanimportantrole.Sothedesignoftheproductionofatemperaturedisplaysystem.
Afterthepreviousharddesignandsoftwaredesign.Simulationanddebugging.Thisdesignrealized:
real-timeacquisitionofambienttemperatureusingSTC89C51MCU,andthenthroughtheLCD1602liquidcrystaldisplaymoduletodisplayreal-timetemperature,atthesametimebyanexternal,independentofthekeyforthereal-timesetupperandlowertemperaturelimits,thecollectedtemperatureinreal-timecomparison,ifexceedsasettemperaturelimitvalueorlowerthanthesettemperaturelowerlimitvalue,youwiththebuzzerandLEDlampcombinationalarm.
Inthisdesign,mainlyusestheSTC89C51monolithicintegratedcircuit,theDS18B20integratedtemperaturesensor,theLCD1602liquidcrystaldisplaymodule,theindependentkeyregulation,honeyandLEDcombinationalarmmodule.Alargenumberofdesignandmedium-termsoftwaresimulation.Fromtheoverallsystemdesigntothesubblockofthesoftwareandhardwaredesign,theuseofblockindependentdesign,thewayoflateintegration.Ensurethedesignofthesystemisefficientandreliable.Afteralotoftestsandtheactualsoftwaresimulationtest,theconclusionisdrawn.Thedesignmethodofhardwareandsoftwareusedinthispaperiscorrectandreliable.Toachieveourinitialpurpose,real-timedisplayoftemperatureandinexcessofthetemperaturesetvaluealarm.
Keywords:
MCU,DS18B20,temperatureacquisition,liquidcrystaldisplay
第1章绪论
在人们的生活中,很多环境因素总是在实时的影响着大家。
例如实时的天气状况,实时的环境温度,空气质量等。
我们总是希望可以对我们所在的环境进行实时的了解,这来是因为人有着天生的求知欲。
同时,知道我们身边的环境因素对我们做出决定也有着重要的参考作用,例如今天的天气好,你可能会选择外出郊游,但是今天如果是下雨天,你可能就会选择在家中休息。
温度对我们的重要性是不言而喻的。
长期以来,人们对温度的感知都是来自于经验和自身的感觉。
而如今,利用新型的科学技术,我们可以确切的知道我们的环境温度。
本文就实现了一个环境温度采集显示系统,同时还加入了温度设定和报警功能。
本设计采用了STC89C51单片机作为系统的采集和控制中枢部分。
利用DS18B20作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数出实时的环境温度。
然后将数据发送给显示模块LCD1602进行温度的实时显示。
同时本次设计还在显示的基础上加入了温度报警功能。
通过外置的3个独立按键。
我们可以设定一个温度上限报警值和一个温度下限报警值。
只要我们的系统采集的数据不在我们设定的范围内。
单片机就会启动蜂鸣器和LED灯进行报警。
从而通知人们进行必要的操作,例如开电暖气进行加热或者开空调进行降温等操作。
这种方式可以避免人们以往的盲目或者靠感觉进行温度控制的方式。
1.1设计的目的
因为环境温度对我们有着十分重要的影响,所以我们需要清楚的知道问所处的环境的实时温度。
在我们需要进行温度的精确控制的时候,如果我们还是靠着以往的那种凭感觉,靠经验的方式进行。
在现代社会看来是一种十分落后的方式方法了。
所以本设计的目的就是开发出一套可以准确的显示我们的环境温度,并且可以进行温度的设定报警的系统。
比如我们家中有小孩子,在孩子很小的时候,不会表达自身的感受。
而大人对小孩子的加衣服或者吹风都靠经验的话,显然是不科学的一种方式。
本系统就将取代人们靠感觉,凭经验来判断环境温度这一种不科学的方式
1.2国内外研究现状
经过前期大量的资料查阅和文献阅读,以及使用互联网进行资料收集后得知,目前国内外的温度采集显示还处在一个刚刚出现的阶段。
大家都还是在探索的过程中。
所以出现的方案和使用领域也是五花八门。
随着智能手机的出现和大量使用,温度采集和显示这一个功能在很多智能手机上也开始出现了,借由第三方的APP和手机本身的传感器例如红外传感器,温度传感器等。
可以在手机上进行实时的温度采集和显示。
而使用的温度采集方式目前也有很多种,例如使用数字集成的稳定传奇,使用模拟的金属传感器,利用红外采集空气温度的方式。
在不同的领域也有着不同的方案选择,比如有的领域就需要非接触的测量方式,有的就可以采用接触的测量方式。
总的来看,很多温度采集显示系统还都是停留在温度的采集和简单的显示上,功能显得比较单一。
1.3本次设计的内容和任务
本次设计的主要内容:
总体方案的设计和确定,硬件部分的设计,软件部分的设计,仿真电路的设计。
通过几个方面来完成本次需要达到的设计目的:
完成一个基于51单片机的额温度显示和报警系统。
系统的设计任务框图如图1-1所示:
图1-1系统设计任务框图
本次设计的主要任务:
使用STC89C51单片机作为系统的采集和控制中枢部分。
利用DS18B20作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数出实时的环境温度。
然后将数据发送给显示模块LCD1602进行温度的实时显示。
通过外置的3个独立按键。
可以设定一个温度上限报警值和一个温度下限报警值。
只要我们的系统采集的数据不在我们设定的范围内。
单片机就会启动蜂鸣器和LED灯进行报警。
第2章系统总体设计方案
在我们进行功能设计之前,我们需要首先对我们的整个系统进行完整的方案设计,只有在总体的方案设计完成之后,我们才可以按照我们的总体方案进行具体的功能设计。
这样的方法是高效的也是科学的方法。
2.1系统理论分析
在我们进行系统的硬件,软件和仿真设计之前,我们需要首先进行整个系统的理论分析,只有在理论分析可行之后。
我们才可以开始具体的设计方案的执行过程。
首先我们需要明确我们设计需要达到的目的是:
使用STC89C51单片机作为系统的采集和控制中枢部分。
利用DS18B20作为环境温度传感器,将环境温度转换为数字信号,然后单片机对数据进行读取,计数出实时的环境温度。
然后将数据发送给显示模块LCD1602进行温度的实时显示。
通过外置的3个独立按键。
可以设定一个温度上限报警值和一个温度下限报警值。
只要我们的系统采集的数据不在我们设定的范围内。
单片机就会启动蜂鸣器和LED灯进行报警。
这其中。
DS18B20作为集成的温度传感器,在读取上采用的是总线操作模式。
而显示器件和蜂鸣器以及LED和独立按键都是简单的I/O操作就可以完成。
经过上面的理论分析,我将本次设计分为了以下几个方面来实现:
1、单片机系统的使用。
2、DS18B20的数据读取。
3、LCD1602液晶显示模块的操作。
4、普通I/O口的读取操作。
5、系统电源设计。
6、仿真系统设计。
在以上几个方面存在着先后的顺序,我们应该是先进行了仿真设计,然后进行各个模块的程序设计,在仿真中进行模块程序的仿真,在通过仿真之后。
我们再进行模块的硬件设计工作。
2.2设计的总体组成
在上面的分析中可以知道。
本次设计所采用的器件具体有哪些。
已经各个模块需要实现的具体功能是什么。
所以我们可以很轻松的得到本次设计的系统总体组成框图应该是如下图2-1所示:
图2-1系统的总体组成框图
在上面的系统总体组成框图中。
完整的系统作为核心任务存在,各个子系统或者说模块为核心任务而存在。
在服务整个系统功能的时候,各个子系统还需要相互的配合,完成各自任务的同时还需要照顾到整个系统的设计过程。
2.3系统的硬件模块
设计中使用了大量的电子器件,例如单片机,温度传感器,蜂鸣器,LED,独立按键和液晶显示器等等。
不同的元件在系统中都有着不同的作用,各个元件分担着自己所承担的独立模块任务,每个器件的选择和有机组合而形成本设计功能执行的物理元素,只有我们合理的安排和设计好每个元器件,我们才能获得系统有效和正确工作的前提。
硬件的正确工作才能保证我们后期的软件调试可以正常有序的进行。
进过大量的分析和设计,本次系统的硬件组成将如图2-2所示进行设计:
图2-2系统的硬件组成框图
在设计好每个模块之后,我们就可以得到需要的硬件系统了。
所以硬件的组成是本次设计中很看重的一个部分。
2.4系统的软件模块
通过和硬件相结合考虑,我们能知道本次设计中的软件应该有哪些部分:
获得温度传感器数据的采集函数,软件启动的初始化函数,按键清除函数,数据计算函数,定时中断函数,数据显示函数,报警函数。
很明显,本系统的软件组成框图应该如下所示:
图2-3系统的软件组成框图
每一个完整的电子设计,都是由多个方面所组成的,每个方面都是成功的关键,没有主次之分,只要有一个方面不正常,那整个系统的功能就不是正确的。
所以在设计的时候,要特别注意每个模块的正确性。
无论是开始的软件设计还是后面的硬件设计。
第3章控制器件选择
要完成本次设计的任务,我们有很多可以选择的器件。
例如单片机,DSP,FPGA,PLC等等。
但是我们在选择器件的时候要考虑到器件的成本,开发难度,可靠性,封装类型等等方面。
进过大量的资料查询和实际测试,本设计最后采用了单片机作为核心的控制器件。
单片机也可以称单片微控制器,它和片上系统不一样,单片机不但可以进行运算处理,还可以做逻辑控制,其包括了输入输出端,片上CPU有的还有专用的乘法器,独有的存储单元和DSP运算单元。
它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
目前单片机的发展已经十分成熟,单片的处理位数从4位到8位,16和32位都有。
单片的运行速度也冲以前的几M到现在的高端单片机可以运行到上百M。
3.1单片机的组成和特点
目前主流单片机主要由以下几个部分组成:
运算器
运算器由运算部件——算术逻辑单元(Arithmetic&LogicalUnit,简称ALU)、算术累加器和结果寄存器等组成。
算术逻辑单元ALU的作用是将传入算术逻辑单元的数据根据需求进行数据的运算,这个运算可以是常见的加减乘除算术操作,也可以是单片机里面所有的移位和循环操作,也可以是数据的比较例如大小比较。
相等比较等。
这个运算器和我们常规理解的运算器不是一个概念。
运算器有两个功能:
(1)执行各种算术运算。
(2)执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。
单片机当中运算器的全部操作都是由单片机的控制器CPU发出的控制信号来进行指挥的。
控制信号可以是运算控制,也可以是判决控制。
控制器
控制器包括了:
指令寄存器、程序计数器、指令译码器、操作控制器和时序发生器等部分,控制器是单片机当中发布命令的机构,负责整个单片机系统的所有操作控制,不管是运算还是决策,都是由控制进行的。
其主要功能有:
(1)从内存中取出一条指令,并指出下一条指令在内存中的位置。
(2)对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。
(3)指挥并控制CPU、内存和输入输出设备之间数据流动的方向。
单片机当中有三种总线:
控制总线,数据总线和地址总线。
这三个总线通过内部特有的线路和微处理器相互连接起来,其中,微处理器可以通过三个总线和外部接口相互连接起来,还可以实现微处理对各个算术器和存储器的信息交流。
主要寄存器
(1)累加器A
单片机当中的累加器是一个高频使用的寄存器,其主要是负责临时的数据存储,包括运算前的存储和运算完成之后的结果都可以保存在这个寄存器当中。
(2)数据寄存器DR
数据寄存器器,从名字上就可以知道,此寄存器主要是数据暂时存储的寄存器,但是数据寄存器不但有数据的缓存功能,还可以是指令的暂时存储,在翻译出来的指令在送往处理的时候,可以放在这个寄存器中进行暂时存储。
(3)指令寄存器IR和指令译码器ID
指令包括操作码和操作数。
单片机要执行程序给定的指令。
就必须要知道这条指令对应的操作码,所以单片机中有了指令译码器和指令操作寄存器。
其中指令翻译由指令译码器进行,在翻译完成之后就将数据交给指令寄存器进行存储,然后通过数据控制总线将操作指令送到相应的执行机构当中。
这个操作是一条一条进行的。
(4)程序计数器PC
单片机运行的程序需要使用一个单独的计数器进行存储,这样才可以保证单片机的运行有序的进行。
在单片机复位的时候就将这个存储器复位从0开始,逐步进行加一。
在每一个指令操作结束之后,这个计数器就自动加1,然后到指令存储器中去取对应的下一步操作就可以了,所以程序计数器保证了单片机的有序运行。
(5)地址寄存器AR
地址再单片机中是很重要的一个概念,不但是每个存储器有地址,每个数据有地址,甚至每个外部接口都是有对应的地址的,在我们使用汇编进行程序设计的时候,我们就需要查手册了解每个有效资源的地址,所以在我们进行操作的时候,地址寄存器是很有必要的。
通过这个寄存器就可以将需要的地址数据发送到对应的存储器中。
上面提到的数据储存和计数器还有地址寄存器都是为了给单片机当中很重要的一个器件CPU提供服务的,CPU作为中央控制器,需要各个外设对其进行服务,因为CPU是一个独立的运算器,本身是不具有和外部资源交互的能力的。
下图就是单片机的内部结构和单片机主要资源:
图3-1单片机的片上资源框图
3.2STC89C51单片机介绍
STC89C51是一种使用兼容8051核的ISP(InSystemProgramming)在系统可编程芯片,其可以工作的时钟频率在几MHz到几十MHz内,其内部的FLASH存储器是专用的程序存储器,大小根据不同的系列是有所不同的,器件完全兼容标准的MCS-51指令系统及C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,具有在系统可编程(ISP)特性,在使用专用的单片机程序下载程序通过TTL电平方式就可以将程序下载到单片机中,8051单片机的时钟周期有12T和6T现在新型的还有1T的。
但是时钟周期并不影响单片机的算术和逻辑兼容性。
只是处理器的单周期时间不一样而已。
STC89C51单片机的实物如下图所示:
图3-2STC89C51的DIP40封装实物图
3.2.1STC89C51单片机特点
(1)增强型1T流水线/精简指令集结构8051CPU
(2)(5V单片机)/2.0V-3.8V(3V单片机
(3),相当于普通8051的0~420MHz.实际工作频率可达48MHz.
(4)用户应用程序空间12K/10K/8K/6K/4K/2K字节
(5)片上集成512字节RAM
(6)通用I/O口(27/23个),复位后为:
准双向口/弱上拉(普通8051传统I/O口)
单片机的通用IO口有成四种模式可以选择分别为:
弱上拉,强上拉,高阻,开漏这些标准输入输出口状态。
每个通用I/O口驱动能力在单独使用的时候都可达到20mA,但是对于51系列单片机来说整个芯片的最大输入输出电流不应该超过55mA
(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器
可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片
(8)EEPROM 功能
(9)看门狗
(10)内部集成MAX810专用复位电路(外部晶体20M以下时,可省外部复位电路)
(11)时钟源:
普通的8051单片机的外部时钟源可以是使用外部晶振,也可以是外部的时钟芯片提供(也可以是信号发生器提供),在外部时钟信号通过单片的XTAL1引脚送入单片机之后,单片机内部的反向放大器可以对信号进行放大整定。
从而提供给单片的内部时钟需求使用。
(12)有2个16位定时器/计数器
(13)外部中断2路,下降沿中断或低电平触发中断,PowerDown模式可由外部中断低电平触发中断方式唤醒
(14)PWM(4路)/PCA(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断(上升沿中断/下降沿中断均可支持)
(15)STC89Cc516AD具有ADC功能。
10位精度ADC,共8路
(16)通用异步串行口(UART)
(17)SPI同步通信口,主模式/从模式
(18)工作温度范围:
0-75℃/-40-+85℃
(19)封装:
PDIP-28,SOP-28,PDIP-20,SOP-20,PLCC-32,TSSOP-20(超小封装,定货)
3.2.2STC89C51单片机资源介绍
本设计中使用的是STC89C51的DIP40封装,也就是常见的双列直插式封装,具体的引脚资源图如下图所示:
图3-3STC89C51单片机引脚资源图
在上图中各个引脚的功能如下:
VCC:
单片机的供电正电压接口。
GND:
单片机的供电地接口。
P0口:
P0口为双向漏级开路的8位双向I/O数据口,其中每个引脚可以承受8TTL的门电流。
在P0口引脚写1时,对应的引脚就被被定义为高阻输入。
在常规的使用过程中P0口应该配合外部的上拉或者下拉电阻进行使用,这样才能提供正确的TTL电平的逻辑电压。
P1口:
除了P0不提供内部的上拉电阻之外,51系列单片机的其余几个数据口都是提供了内部上拉电阻的。
在设计的时候,就可以省去外部的上拉或者下来电阻了。
同意,P1也是双向8位数据口。
P1口缓冲器能接收输出4TTL门电流。
P2口:
和P1口一样。
P2口也是内部提供上拉电阻的双向8位I/O口,P2口可以接收和输出4个TTL门电流,P2和P1一样,在程序写入1的时候,对应的引脚都是进入可检测状态,既可以作为输出电压,同时也可以被外部的电压拉低,例如我们常用的按键功能就是这一个功能的体现。
同时在作为FLASH检测的时候,P2和P1稍有不同,一个是作为控制线,一个数作为数据的检测线。
P3口:
P3同样是一组内部提供上拉电阻的,双向8位数据输入输出口。
其各个引脚同样可以承受输入和输出4个TTL门电流。
其普通功能和P2一样,在希尔高电平1之后都是可以作为输出和检测的。
在实际使用中,基础功能都是一样的,同时P3不作为FL