基于单片机多点温度检测系统设计.docx
- 文档编号:10889956
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:66
- 大小:444.07KB
基于单片机多点温度检测系统设计.docx
《基于单片机多点温度检测系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机多点温度检测系统设计.docx(66页珍藏版)》请在冰豆网上搜索。
基于单片机多点温度检测系统设计
毕业论文(设计)
基于单片机多点温度检测系统设计
********
指导教师:
张妍(讲师)
专业名称:
通信工程
所在学院:
信息工程学院
2013年6月
摘要
本文设计一个基于单片机AT89C52的多点温度检测系统,具有对温度初始值的设定、实时检测、显示和控制等功能。
分别从硬件和软件两个方面介绍以单片机AT89C52为核心的温度检测系统,温度检测系统的具体组成和设计原理一步一步地展开来阐述。
硬件方面,温度的显示和设置分别通过对显示和键盘电路的操作完成,集成温度传感器完成温度检测的重要任务,蜂鸣器等器件实现温度报警的功能,通过升温和降温使得温度保持有效地温度值范围内。
温度传感器DS18B20采集到环境的温度信号,输出的数字信号送向主控模块进行处理,并同时在数码管上显示温度信号。
如果温度超出安全设置值,单片机会发出报警信号,调动报警电路和温度控制电路。
报警电路会在采集温度值超出安全值时作出报警,发出报警鸣叫声。
温度控制电路会根据实际温度,作出升温或降温的处理。
软件方面,主程序起着重要的作用,能够调动模块程序,主程序和模块程序结合在一起,使得系统得以正常运转。
关键词:
传感器,单片机,温度检测
Abstract
AmultipointtemperaturedetectionsystembasedonsinglechipmicrocomputerAT89C52isstudiedinthepaper,whichhavethefunctionsoftheinitialvalueoftemperaturesetting,real-timedetection,displayandcontrol.ThistemperaturedetectionsystembasedonmicrocontrollerAT89C52isintroducedfromtwoaspectsofhardwareandsoftware,andAT89C52singlechipmicrocomputerarethecore.whatismore,itdescribesthespecificcompositionanddesignprincipleoftemperaturedetectionsystemstepbystep.Intermsofhardware,displayingandsettingtemperaturearerespectivelyachievedbythedisplaycircuitandcompletedthroughoperationofkeyboardcircuit,theintegratedtemperaturesensordotheimportanttaskofdetectingthetemperatureofenvironment,buzzerandotherdevicesrealizetemperaturealarmfunction,temperaturearekeptineffectivetemperaturerangesbyheatingandcooling.TemperatureofenvironmentarecollectedbysensorDS18B20,thendigitalsignaloutputaresenttothemaincontrolmoduleforprocessing,processedbysinglechipmicrocomputer,lastlytemperaturesignaldisplaybydigitaltube.Ifthetemperatureexceedsthesafetysettings,microcomputersendsanalarmsignal,mobilizethealarmcircuitandtemperaturecontrolcircuit.whenbeyondthethesafetyvalue,thealarmcircuitwillsendoutalarmcalls.Accordingtothecollectingtemperature,thesystemwilldotheworkofcoolingandheating.Intermsofsoftware,themainprogramplaysanimportantrole,canarousethemoduleprogram,themainprogramandthemodulestogether,whichmakesthesysteminthestateofnormaloperation.
Keywords:
sensor,single-chipcomputer,temperaturedetect
第一章前言
1.1研究目的和意义
1.1.1研究目的
温度是一个最基本的因素。
在自然界以及人类社会中,几乎一切过程都与温度存在着息息相关的联系。
同时温度是工业控制中一个及其重要的参数,往往影响工业生产的进程,通常是在工业生产过程中不断被检测,控制和维持。
多点温度检测系统应用于工业生产、家居环境等领域,不仅带来便捷;更重要的是,由于具有处理、报警功能,本系统具有较高的安全系数,可以保证生产安全,生产高效节能。
1.1.2研究意义
温度的测量和控制不仅一直广泛的应用于工业领域中而且渐渐进入日常生活中。
随着人们生活水平的不断提高和科学技术的迅猛发展,温度测量和控制的要求也日益变高,日趋精细。
往大了谈到工业生产,往小了谈到家用电器、汽车,温度检测都具有不可或缺的重要性,其发展深刻地影响着人类生活水平的提高。
在生产领域,提高温度检测和控制对象的性能是现场技术人员实现技术发展的重要一步。
但由于性能不佳,检测不力,对生产产生影响,故对温度检测的精度和范围提出了更高的要求。
[1]
1.2国内外研究现状
1.2.1国外的研究现状
最早在20世纪70年代,国外对温度检测技术研究就已经开始了,相对来说比较早。
开始是采用模拟式的组合仪表,工作人员起着重要作用,工作人员必须在现场,负责收集现场信息的工作,且对收集的信息进行综合分析,依据结论进行指示、记录和控制。
到20世纪80年代后期,出现的分布式控制系统。
目前正朝着多因子计算机数据采集控制系统研究和开发的方向前进。
现在世界上的温度检测技术的发展速度越来越快,在自动化的基础上,一些国家正向着智能化程度高,无人化方向发展。
1.2.2国内的研究现状
恰恰相反,我国比较晚开始对温度检测技术的进行研究,直到20世纪80年代温度检测技术才开始真正意义上进入我国,经过十几年才发展起来,特别是随着我国工业发展水平的不断提高而迅速发展。
近年来,我国引进了多达16个国家和地区的环境温度检测控制系统,总体情况下,它的作用是非常大的。
从消化吸收到简单的应用阶段,再一步一步走向实用化和全面应用的发展阶段,温控技术的发展给予我们的都是积极的作用。
尽管我们的发展有诸多不足之处,我国的温度测控设施以单片机控制的单参数单回路系统居多,还没开始有事实上的多参数、能够综合控制的系统,且在生产实际中不可避免地有许多问题困扰着我们,比如控制水平落后,软件和硬件资源存在不能共享以及可靠性差等缺点。
与发达国家之间的差距也确确实实存在着,但可喜的是这种差距在逐步地缩小,让我们看到了希望的曙光。
从发展蓝图上看来,中国具有良好的发展前景,其日益在日常生活中获得广泛的发展,便是最好的印证。
1.3研究方法及内容
本文介绍了基于单片机控制的多点温度检测系统,具有检测多个不同地点温度的功能。
检测点采集到的温度信号送由单片机处理,当温度超过安全值的范围时由控制模块和报警模块进行相应的处理。
系统硬件设计的思想是按模块划分,尽可能的简化电路,降低成本。
本系统采用MCS﹣51汇编语言编程对系统软件的进行设计,系统采用人机交互界面,操作简单方便,比较人性化。
本系统以单片机AT89C52为核心,作为一种低功耗、高性能的CMOS工艺的8位单片机,自带8KB闪存,具有产品性价比高、使用方便灵活且易于进行功能扩展等优点,可以满足测温以及显示控制、报警等功能的设计要求。
整个系统从硬件和软件两个方向铺展开来。
系统按模块划分,大概有六个模块,分别是主控模块、显示模块、温度信号采集模块、报警模块、温度控制模块、复位模块。
其中主控模块主要是以单片机AT89C52为中心,负责整个系统的控制实现工作;键盘模块由键盘接口电路构成;显示电路主要依靠数码管显示器来实现;温度信号采集模块以集成温度传感器为主体,复位模块则有三种方法实现具体是单片机的上电复位,手动复位电路和电源去耦电路。
第二章系统的方案设计
2.1系统的设计思想
传统意义上,多点温度检测系统大多数是远距离铺线采集温度信号,进而将采集到的模拟电信号进行模数转换,输出数字信号,单片机再处理接收到的信号。
远距传输,线路的远近影响精度,且电路相对复杂,传统意义上的温度检测系统结构框图如图1。
而现代意义上,则采用集成温度传感器解决传统意义上温度信号采集方面的布线缺陷,一定程度上简化电路,具有检测、保持、控制和报警等多种功能,现代温度检测系统结构框图如图2。
图1传统温度检测系统
图2现代温度检测系统
2.2系统的设计要求及基本功能
2.2.1系统的设计要求
一、由于不同地点温度有所差异,要求对多个地点同步进行温度测量
二、测量温度范围可以设定,精度为0.5℃
三、预置时显示设定的温度
四、具有掉电保护
2.2.2系统的基本功能
一、能对温度值进行检测、保持和控制,超出安全温度值时进行报警。
二、能根据实际需要对8个不同地点的安全温度值进行设置。
三、能对8个不同地点的温度(室温)进行检测,温度检测精度为0.5℃,通过键盘选定某个地点进行温度查看和设定。
四、具备掉电保护功能,即掉电后能保护已设定好的信息,并且能继续工作。
2.3方案设计及论证
根据设计要求,基于单片机的多点温度检测系统主要有六部分组成,主控电路、温度采集电路、显示电路、报警电路、复位电路、控制电路,系统结构框图如图3。
图3系统结构框图
1.键盘模块设计方案的论证与比较
键盘是由一组按钮或开关组合而成,通过键盘接口向计算机提供可以被识别的已按下去键的代码。
常用的键盘有两种:
一种是编码键盘,自动提供的是按键的编码;另一种是非编码键盘,仅仅提供键盘的通断状态,而用户的键盘程序实现按键的扫描和识别。
方案一:
独立式连接式键盘
这是最简单的一种键盘,每个键位之间是独立的,但有一条数据线接通,也即是每个按键都作为一个独立的数字量输入存在。
当有人按下一个按键的时候,与之相连的输入数据线即被置为逻辑低电平,平时其保持为逻辑高电平,单片机程序中需要查询与键盘相连的I/O接口线的状态才可以识别将要实现的功能,才方便于实现按键处理。
电路简单,按键数较少的情况下采用独立连接式键盘。
当按键数较多时,需要占用单片机较多的I/O接口线资源,用独立式连接键盘不现实,造成电路资源浪费。
方案二:
矩阵连接式键盘
矩阵式键盘也称为行列式键盘,按键的输入线有所减少和电路相对简化,按键矩阵式排列。
在每条行线和列线的交叉处,并不是直接相连的,而是通过一个按键来接通,即按键按下时接通,采用这种矩阵结构有X条行输出线和Y条列输入线,就可以连接X×Y个按键。
本设计中采用4×4构成16个按键的矩阵式连接键盘。
与单片机接口时,不需要占用过多的I/O接口线资源,仅需8根I/O接口线就可以形成16只按键。
键盘扫描程序扫描行输出和列输入的状态来识别按键的状态。
把4×4键盘作为一个例子来分析,矩阵连接式键盘的工作过程非常简单,具体工作过程如下:
1 键扫描:
输出0000到4根行线,再输入4根列线的状态。
2 键识别:
在确定了有按键按下之后,接下来要确定的是具体哪个按键按下了。
3 键处理:
确定了具体的按键后,根据事先设置的功能作出相应的处理。
尽管键盘的具体工作过程相比较而言,稍微复杂了一点,但由于这种矩阵连接式键盘的具体程序已有人开发出来,有实际的程序可以参考借鉴,故采用矩阵连接式键盘。
[2]
2.主控模块设计方案的论证与比较
方案一:
采用单片机AT89C51芯片
以单片机AT89C51芯片作为系统的控制核心,具有4KB的Flash闪速存储器,128B内部RAM,两个16位定时/计数器,32个I/O接口线,一个5向量的两级终端结构,一个全双工串行通信口,片内振荡器及时钟电路。
功能强大的单片机AT89C51,是众多设计师们所青睐的,其常被灵活应用于很多控制领域。
尽管单片机AT89C51在一定程度上符合设计的要求,但由于本次设计要实现的功能比较多,需要较大的程序存储空间,其最大的问题是可能会出现内存不足的现象。
为了避免出现内存不足,要外接程序存储器,使电路复杂化的现象,建议使用内存比单片机AT89C52芯片大的芯片。
方案二:
采用单片机AT89C52芯片
与采用单片机AT89C51芯片相比,采用单片机AT89C52芯片作为系统的控制中心,具有片内8KB的可反复擦写的只读程序存储器和256B的RAM,按常规方法编程和在线编程均可以用在单片机AT89C52上,比较方便。
利用其可将通用的微处理器结合Flash存储器在一起,特别是可反复擦写的Flash存储器,可以避免外扩内存的复杂化,很大程度上解决了内存不足的问题。
综合考虑设计成本以及实现的功能后,决定采用单片机AT89C52芯片。
3.显示模块的设计方案的论证与比较
常用的显示设备主要有LED显示器和LCD显示器,由于本系统的主控芯片可以直接驱动LED显示器和仅需要显示数字,故选择LED显示器。
从节省单片机内部资源的角度来考虑的话,串行输出优于并行输出,故仅考虑串行输出。
方案一:
多位LED数码管动态显示方式
当显示的位数比较多时,采用动态显示比较合理。
在动态显示下,单片机的一个I/O接口接上并联在一起的数码管的8个引脚(a-h),单片机的另一I/O接口接上每个数码管的共阴或共阳端(位选信号端),控制数码管轮流被选中,驱动其轮流显示。
动态显示即依次轮流点亮各位显示器,故同一瞬间只能显示一种字符。
位选口控制具体的显示内容,借助人的视觉暂留效果以达到显示不同字符的效果。
为了显示效果稳定,可以使每个数码管显示的数字不断重复,因而要求不断刷新。
如果要达到人类视觉的良好效果,刷新的频率则必须达到一定的程度。
高频率重复刷新,必定占用了单片机的运行时间。
相反,如果单片机无法提供足够的刷新频率,则显示效果不稳定,出现闪烁现象。
另外,由于动态显示不具有直接驱动的功能,动态显示要考虑LED驱动问题。
动态显示是由段和位选信号共同配合而完成的,因而必须同时考虑段和位的驱动能力,需要注意的是段的驱动能力决定位的驱动能力。
总体而言,动态显示相对来说,要综合考虑多方面因素,相对复杂。
方案二:
多位LED数码管静态态显示方式
当显示的位数不多时,择优考虑静态显示。
采用静态显示的方式时,最大的优点是LED显示器由接口芯片直接驱动,很小的驱动电流便可换取较高的显示亮度。
串行输出大大节约了单片机的内部资源,减少不必要的浪费。
采用74LS164实现串并转换,无需添加其他驱动电路。
LED亮度高,控制容易,电路简单,占用CPU很少的运行时间,不占用太多的接口资源,基本能够满足设计的最佳要求。
由于本设计需要五位显示器,综合以上分析,故选择多位LED数码管静态显示方式。
4.温度信号采集模块设计方案的论证与比较
方案一:
采取热敏电阻
采取热敏电阻测量温度信号,属于传统意义上的测量方法,有可靠性差、测量温度准确率低等缺点,特别是需通过专门的模数转换电路才能将其测量的模拟量转换成我们所要的数字信号,继而由单片机负责再处理并控制显示。
完成8点温度信号的采集、保持和控制是一个庞大的工程,硬件电路的设计远远的复杂了,系统的设计条件也相当难以满足。
方案二:
采取集成温度传感器DS18B20
单总线接口的温度传感器DS18B20,仅采用一根线便实现微处理器与其之间的双向通信关系,方便简单;同时一条总线上可以接上多个DS18B20,依据序号区分不同的DS18B20,实现对多个地点的温度采集而不混乱。
温度传感器DS18B20的优点是能够在采集温度信号后将其转换为数字信号,一步便可以实现同样的功能。
加之测量温度可以在芯片允许范围内进行设置,测量精度按9位和12位来说的话都比较高,故选择集成温度传感器DS18B20。
5.报警模块的设计与论证
报警模块要实现的是在环境温度超出初始设置的范围时,可以及时作出报警,设计要求不会给整体设计带来太多的负担,又鉴于单片机可直接驱动扬声器,故直接用单片机外接报警信号放大器来放大报警信号,驱动扬声器作出清晰的报警信号。
2.4理论计算
本系统的理论计算主要体现在对DS18B20分辨率和转换时间的综合考虑以及对所测得的二进制温度值转换。
2.4.1转换时间计算
转换精度及转换时间具体关系如表1。
表1DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转向时间/ms
0
0
1
1
0
1
0
1
9
10
11
12
93.75
187.5
375
750
由表知,越高的设定分辨率,需要越长温度数据转换时间,因此在实际应用中要权衡考虑分辨率和转换时间,在二者之间找到平衡点。
为了保证DS18B20严格的工作时序,在编写温度测量程序时需要做较精确的延时。
在DS18B20的操作中,有不同程度的延时,15μs、90μs、150μs、300μs、540μs等,因为这些延时均为15μs的整数倍,所以调整n便可以编写一个DELAY15(n)函数可方便地获得不同程度的延时,程序如下。
DELAY:
;12MHz的晶振
LOOP:
MOVR1,#nH
MOVR0,#12H
DJNZR1,$
DJNZR0,LOOP
RET
2.4.2温度值计算
由DS18B20器件的特性可以知道,DS18B20所测得的二进制温度值以两个字节的形式进行存储,单片机可以通过单线接口读到该数据,读取时低位在前,高位在后,0.0625℃/LSB是其表示的数据格式,温度值格式如表2。
表2DS18B20温度值格式表
LSBYTE
Bit7
23
Bit6
22
Bit5
21
Bit4
20
Bit3
2-1
Bit2
2-2
Bit1
2-3
Bit0
2-4
MSBYTE
Bit15
S
Bit14
S
Bit13
S
Bit12
S
Bit11
S
Bit10
26
Bit9
25
Bit8
24
对应的温度计算方法:
在符号位为S=0的情况下,后面的十一位二进制不需要转换成原码,而是直接转换成十进制;在符号位S=1的情况下,则增加了一步转换,需要把补码变转换成原码,接下来再转换成十进制值,例如,85℃的数字输出为0550H。
表3所示是对应的部分温度值。
表3部分温度值
温度
数字输出(二进制)
数字输出(十六进制)
+125℃
0000011111010000
07D0H
+85℃
0000010101010000
0550H
+25.06℃
0000000110010001
0191H
+10.125℃
0000000010100010
00A2H
+0.5℃
0000000000001000
0008H
0℃
0000000000000000
0000H
﹣0.5℃
1111111111111000
FFF8H
﹣10.12℃
1111111101011110
FF5EH
﹣25.0625℃
1111111001101111
FF6FH
﹣55℃
1111110010010000
FC90H
由表可以看出,数值为十进制和数值为二进制相比较而言有着很大的联系。
我们需要把低半字节和高半字节组合起来,形成一个字节。
而这字节分别来自二进制的高字节和低字节,转变成十进制后,等于相对应的百、十、个位,然后最后温度值的小数部分就是由低字节的低半字节变成十进制而组成的。
由于小数部分由半字节组成,因而二进制的范围值为0-F。
转换成的小数值是0.0625的倍数(0-15倍),而实际上不需要这么高的精度。
为了显示小数可以使用一位数码管,精确到0.1℃。
例如,当DS18B20采集到+125℃的实际温度后,输出为07D0H,则实际温度=07D0H×0.0625=125(℃),再例如,当DS18B20采集到-55℃的实际温度之后,输出为0FC90H,则先将12位数据位取反,加1得370H(符号位不变且不作为计算),则实际温度=370H×0.0625=880×0.0625=55(℃)。
[3]
第三章系统硬件的设计
3.1硬件电路的原理
系统硬件电路主要以单片机AT89C52作为微处理器,系统电路大概分为六大模块,主控电路、温度信号采集电路、键盘电路、显示电路、报警电路、温度控制电路等模块之间相互协调合作,实现检测、保持、控制、报警等功能。
3.2主控电路的设计
单片机是一种集成的电路芯片,采用超大规模集成电路技术集成,把具有数据处理能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(CPU)、随机数据存储器(RAM)、只读程序存储器(ROM)、输入/输出电路(I/O)、还可能包括定时/计数器、串行通信口(SCI)、显示驱动(LCD或LED)电路等电路集合到一起,在一片芯片上完成一件在电子技术界具有影响力的事情,构成一个最小又完善的计算机系统。
按照预先设定的软件程序,这些电路可以是很好的任务执行者,准确、迅速、高效地完成程序设计者的设计成果。
随着发展,单片机不断改进,作为主控系统的核心力量,能够独当一面,实现更高程度的智能化控制功能。
不同的单片机有着不同的硬件特征和软件特征。
AT89C52也具有C51系列单片机的特性,准确地说其功能比C51系列更强大,是由ATMEL公司的荣誉出品。
AT89C52是一个低电压、高性能CMOS8位单片机,片内除了含8KB的反复可擦写的只读程序存储器还有256B的随机存储数据存储器,器件中凝结了ATMEL公司的高密度、非易失性的存储技术,兼容性强,标准MCS-51指令系统和51产品引脚也对它适用,片内配置通用8位中央处理器,特别是FLASH存储单元,使其内存锦上添花。
40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线是AT89C52的最基本的组成部分。
AT89C52引脚图如图4所示。
主要功能特性:
1)兼容MCS-51指令系统
2)2个串行中断
3)32个双向I/O口
4)3个16位定时/计数器中断
5)2个读写中断口线
6)2个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 多点 温度 检测 系统 设计