基于单片机的环境实时测控系统设计.docx
- 文档编号:26425189
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:46
- 大小:1.29MB
基于单片机的环境实时测控系统设计.docx
《基于单片机的环境实时测控系统设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的环境实时测控系统设计.docx(46页珍藏版)》请在冰豆网上搜索。
基于单片机的环境实时测控系统设计
基于单片机的环境实时测控系统
xx学院测控技术与仪器系xxx
学号xxx
【摘要】本文介绍了以单片机AT89C52为核心的环境实时测控系统,本系统主要由单片机控制电路,温湿度传感器SHT11,压力传感器MPX4115AP,ADC0832,LCD1602,按键、蜂鸣器和发光二极管组成。
可以实现温度、湿度和气压的实时测量和设置各参数的警报值,当测量值超出设定的警报值范围时系统会发出警报,并利用LED提示是何测量参数触发警报。
此系统可用于实验室、仓库等场所的环境监控。
设计首先利用软件Proteus7.10和Keiluvision4进行联合仿真。
成功仿真后在万能板上搭建电路进行调试,实现系统功能。
【关键词】环境实时测控;单片机;SHT11;MPX4115AP
1.引言
1.1课题背景
随着科学技术的发展,环境监测对于我们来说已经不再陌生。
无论是日常生活还是学习工作都离不开环境监测。
环境参数是人们工作、生活计划的重要考虑因素。
比如在日常生活中我们常常会把天气状况考虑到我们的计划中,这就是对环境参数的利用。
一些特殊的仓库中对于环境有较高的要求,这时就需要进行环境的实时监控,保证仓库的环境符合要求。
对于科学研究环境测量则更是不可缺少,环境参数的误差往往会严重地干扰实验,给实验带来很大的误差,从而阻碍了研究的进程。
51单片机是常用于控制的芯片,在智能仪器仪表、工业检测控制、机电一体化等方面取得了令人瞩目的成果,用其作为检测控制系统的实例也很多。
使用51单片机能够实现温湿度和气压全程的自动检测与控制,而且51单片机易于学习、掌握,性价比高。
使用51型单片机设计环境检测控制系统,可以及时、精确的反映环境参数的变化。
1.2国内外发展状况
随着技术的发展和经济实力的提升,我国的环境监测水平也得到了一定的提高。
硬件设备已经得到很大的改善。
但是由于我国幅员辽阔,监测终端的需求量很大,并且环境监测系统的软硬件开发功能还不是很完善,数据的综合分析能力也有待提高。
国内产品较之国外技术还显得比较薄弱。
目前国外的环境监测系统已经广泛应用在各个领域,并发展的比较完善。
许多国家的环境参数监控点已经分布在各个地区,技术上也很先进,能够监测温度、湿度、光线和水位等多个环境参数。
部分产片还使用了卫星等技术进行环境监测。
令人可喜的是我国的环境监测技术正朝着现代化和高技术含量方向发展。
目前在某些领域也把卫星技术、遥感技术和GPS等技术广泛应用于环境的监测。
在网络方面利用无线传输、P宽带网络和GPRS、INTERNET等多种传输方式进行数据的传输与处理。
可以在对环境指数的采集、分析、整理的基础上实现环境发展的预测[1]。
1.3本设计主要任务及内容
本设计以单片机AT89C52为核心,利用数字温湿度传感器STH11和模拟压力传感器MPX4115AP分别进行温湿度和气压的测量,把温湿度信号和经过AD转换的气压信号送入单片机,通过LCD1602显示当前温湿度和气压值,并与设定的警报值比较。
如超出警报值范围,则发出警报。
本次设计的主要内容:
(1)温湿度、气压检测传感器的选择;
(2)A/D转换器与传感器及单片机的接口设计;
(3)警报提示、显示部分、按键的设计;
(4)仿真软件设计;
(5)硬件设计;
1.4系统的主要功能
环境实时测控系统具有以下功能:
(1)实时测量环境温度(测量范围:
-10°C~80°C,显示精度:
0.1°C,误差:
±2°C)、湿度(测量范围:
0%~100%,显示精度:
0.1%,误差:
±4.5%)、气压(测量范围:
15Kpa~115Kpa,显示精度:
0.1Kpa,误差:
±0.5Kpa),并通过LCD1602显示。
(2)可设置温度(-10°C~80°C)、湿度(0%~100%)、气压(15Kpa~115Kpa)警报范围,并通过LCD1602显示。
(3)当测量值超过警报范围时,蜂鸣器发出警报,利用LED提示是何测量值触发警报。
(4)按键K4,依次显示当前温湿度,气压,温度警报范围,湿度警报范围,气压警报范围。
按键3,依次选定设置最高和最低警报值。
按键1和2,可实现警报值的增减功能,长按可以连续增减。
2.系统硬件设计
2.1系统结构框图设计
系统主要由单片机控制系统、温湿度测量电路、气压数据采集模块、按键电路、警报电路和显示电路等组成。
本次设计选用AT89C52单片机作为核心控制器,组成环境实时测控系统。
温湿度数据的采集测量采用数字传感器SHT11。
气压数据的采集使用模拟传感器MPX4115AP,将检测的气压转换为0~5V的模拟电压信号,通过ADC0832转换器把电压信号转换为数字信号。
再把数据送由单片机运算处理和比较,控制警报系统并通过LCD1602进行显示。
系统框图如图1:
AT89C52
P0
显示电路
P2
气压测量
ADC0832
P3
P1
按键
警报电路
温湿度测量
图1环境实时测控系统框图
2.1温湿度测量模块设计
对于温湿度的测量,选择合适的传感器及信号调理电路是保证采集结果可靠性的重要环节。
此处,采用宽范围、高精度的数字式温湿度传感器SHT11设计了一种温湿度监控系统,实现了对现场环境温湿度进行实时的检测与控制。
2.1.1SHT11结构原理[2]
图2SHT11内部结构
SHT11是瑞士Sensirion公司生产的一款含有已校准数字信号输出的高度集成数字式温湿度传感器,体积微小、功耗极低,由于采用了CMOSensR技术,从而可确保器件具有极高的可靠性与卓越的长期稳定性,其结构原理框图如图2所示。
传感器包括一个电容性聚合体测湿敏感元件和一个用能隙材料制成的测温元件,并在同一芯片上,与14位的A/D转换器以及串行接口电路实现无缝连接。
生产过程中,每个传感器芯片都在极为精确的湿度腔室中进行标定,以镜面冷凝式湿度计为参照,校准系数以程序形式储存在OTP内存中,在标定的过程中使用。
SHT11传感器的湿度测量范围为0~100%,湿度测量精度为±4.5%,湿度测量分辨率为0.03%;温度测量范围为-40~+123.8℃,温度测量精度为±0.5℃(25℃时),温度测量分辨率为0.01℃。
可实现宽范围的温湿度测量。
SHT11默认的测量分辨率分别是温度14位、湿度12位,也可以通过修改传感器的8位状态寄存器的最低位为“1”将分辨率分别降至12位和8位,通常在高速或超低功耗的应用中采用低分辨率。
单片机对SHT11存储的温湿度数据的读取有其严格的时序,与传统的I2C总线通信方式不同,下面以湿度测量数据的读取时序来进行分析,时序图如图3所示。
图中的粗实线表示SHT11控制的数据信号线的电平变化,细实线表示单片机控制数据信号线电平。
图3湿度测量时序图
采集数据时,单片机先发出“启动命令”,然后发出地址“000”和“湿度测量命令”,在等待传感器收到命令及拉低数据线电平后即开始进行两个字节的测量结果和一个字节的CRC-8校验码的读取操作。
每个字节传送结束的确认是通过单片机拉低数据线电平来实现,一次数据采集结束后传感器自动转入睡眠状态,等待下次的数据采集。
CRC-8校验可根据实际情况进行选择,如果通信中采用CRC校验,则任何错误数据将被检测到并清除,且用CRC数据的确认位表明通讯结束。
如果不使用CRC校验,则控制器可以在测量数据的最低位后,通过保持确认位ack数据线为高电平来中止通信。
采集到的湿度信号可用以下公式进行转换,公式中参数如表1:
表1湿度转换参数
由于实际温度与测试参考温度25℃(~77℉)的显著不同,湿度信号需要温度补偿,补偿公式如下,温度补偿系数如表2:
表2温度补偿参数
采集的温度信号则由下式进行转换,参数如表3:
表3温度转换参数
2.1.2温湿度信号采集电路
温湿度传感器SHT11与单片机AT89C52的接口电路如图4所示:
AT89C52
P1.1
P1.0
SHT11
图4温湿度采集电路
SCK用于单片机与SHT11之间的通讯同步,DATA三态门用于数据的读取。
DATA在SCK时钟下降沿之后改变状态,并仅在SCK时钟上升沿有效。
数据传输期间,在SCK时钟信号高电平时,要求DATA必须保持稳定。
为避免信号冲突,单片机应驱动DATA在低电平,且需要一个外部上拉电阻将信号上拉至高电平[3]。
2.2气压测量模块设计
气压传感器对于系统至关重要,需要综合实际的需求和各类气压传感器的性能参数加以选择。
一般要选用有温度补偿作用的气压传感器,因为温度补偿特性可以克服半导体压力传感器件存在的温度漂移问题。
本设计要利用的气压参数是绝对气压值,同时为了简化电路,提高稳定性和抗干扰能力,要求使用具有温度补偿能力的气压传感器。
经过综合考虑,本设计选用美国摩托罗拉公司的集成压力传感器。
MPX4115AP可以产生与所加气压呈线性关系的高精度模拟输出电压。
再把些模拟输出经过ADC0832处理,转换为数字信号后送入单片机,经单片机处理运算,通过LCD显示出当前气压值。
2.2.1MPX4115AP简介[4]
MPX4115系列压电电阻传感器是一个硅压力传感器。
这个传感器结合了高级的微电机技术,薄膜镀金属。
还能为高水准模拟输出信号提供一个均衡压力。
在0℃-85℃的温度下误差不超过1.5%,温度补偿是-40℃-125℃。
其实物图如图5,原理图如图6:
图5MPX4115AP实物图图6MPX4115AP原理图
气压传感器MPX4115AP引脚说明如表4,其中4,5和6引脚为内部装置连接,无需连接外部电路和接地。
引脚1在管脚处有凹槽。
表4MPX4115AP引脚说明
MPX4115AP的特性参数如表5,
表5MPX4115特性参数
MPX4115AP电路设计如图7所示:
图7MPX4115AP电路设计
2.2.2ADC0832简介[5]
ADC0832是美国国家半导体公司生产的一种8位分辨率双通道A/D转换芯片,具有体积小、兼容性强、性价比高等优点。
其外观及引脚定义如图8
图8ADC0832的外观及引脚定义
ADC0832的性能特点:
8位分辨率,串行输出。
双通道A/D转换。
电源和参考电压复用。
5V电源供电时输入电压在0~5V之间。
具有单独的片选引脚。
外部提供时钟源,工作频率为10~400kHz.
转换时间约32цs。
低功耗,约15mW。
商用级芯片温宽为0~+70°C,工业级芯片温宽为-40~+85°C。
ADC0832引脚定义:
CS(ChipSelect):
片选使能引脚,低电平有有效。
CH0(Channel0):
模拟输入通道0,或作为IN+/-使用。
CH1(Channel1):
模拟输入通道1,或作为IN+/-使用。
DI(DataIn):
数据信号输入,用来选择模拟输入通道。
DO(DataIn):
数据信号输出,用于转换数据的输出。
CLK(Clock):
芯片时钟输入。
GND:
接地引脚,也是芯片的参考零电位。
VCC(VREF):
电源输入引脚,也是芯片的参考电压输入引脚。
CS引脚是ADC0832的片选使能引脚,该引脚低电平有效。
CS为高电平时芯片禁用,如果要进行A/D转换,必须先将CS引脚拉低,并且在整个转换过程中一直保持低电平,直到转换完成,将转换数据输出。
CLK,DO,DI是ADC0832与单片机串行通信的数据口,其中由CLK提供时钟信号,DI用做数据输入选择通道,DO用做转换数据的输出。
这种串行通信模式有些类似于我们前面介绍的SPI总线的通信方式。
ADC0832的具体工作时序如图9所示:
图9ADC0832工作时序图[6]
在第1个时钟脉冲下沉之前DI引脚必须是高电平,表示起始信号。
在第2个脉冲下降沿之前应对DI引脚输入数据位SGL/DIF,在第3个脉冲下降沿之前DI引脚输入数据位ODD/SIGN,这两个数据位用于选择通道CH0、CH1的功能,其功能项见表6。
SGL/DIF
ODD/SIGN
CH0
CH1
说明
0
0
+
-
CH0作为IN+,CH1作为IN-
0
1
-
+
CH0作为IN-,CH1作为IN+
1
0
+
-
只对CH0进行单通道转换
1
1
+
只对CH1进行单通道转换
IN+表示参考电压正输入端;IN-表示参考电压负输入端
表6选择通道拉功能表
到第3个脉冲下降沿之后DI引脚就失去了输入功能,也就是说第3个脉冲下降沿之后DI引脚上的电平将不影响ADC0832。
此后DO引脚开始输出转换数据。
从第4个脉冲下降沿开始由DO引脚输出转换数据的最高位D7,随后每一个脉冲的下降没DO引脚就输出下一位数据。
直到第11个脉冲时输出的数据的最低位D0,1字节的数据输出完成。
也正是从这个脉冲开始输出下一个相反字节的数据。
从第11个脉冲的下降沿输出D0,到第19个脉冲输出数据的最高位D7,这时数据输出完成,也标志着一次A/D转换的结束。
这种将转换结果通过正反两种方式输出也是为了保证串行通信的稳定。
最后将CS置高电平禁用芯片,然后就可以处理转换后的数据了。
从上面的分析可以发现,DI引脚与DO引脚在通信时并没有同时工作,而且它们与单片机的接口是双向的,所以在设计电路时可以将DO和DI并联在一根数据线上使用。
另外,作为单通道模拟信号输入、输入电压是0~+5V且为8位分辨率时,ADC0832的电压精度为19.53mV。
如果CH0、CH1作为IN+、IN-输入,可将电压值设定在某一个较大范围之内,从而提高转换的宽度。
要注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压,则转换后的数据结果始终都是00H。
ADC0832与单片机接口电路设计如图10:
图10ADC0832与单片机接口电路
2.2.3气压测量模块电路设计
气压测量模块由气压传感器MPX4115AP测量,输出模拟电压信号,由ADC0832进行模数转换后把数字信号送入单片机。
其电路设计如图11所示[7]:
图11气压测量模块电路
2.3显示模块设计
本系统显示模块采用的是液晶显示器LCD1602。
显示是内容有当前温湿度,当前气压,警报温度范围,警报湿度范围,警报气压范围,分五页显示。
2.3.1LCD1602简介[5]
1602字符型LCD,是一种专门用于显示字母、数字、符号等点阵式LCD。
1602LCD主要技术参数:
显示容量:
16×2个字符;芯片工作电压:
4.5~5.5V;工作电流:
2.0mA(5.0V);模块最佳工作电压:
5.0V;字符尺寸:
2.95×4.35(W×H)mm。
其实物图如图12:
图12LCD1602实物图
各引脚功能如表7所示:
表7LCD1602引脚功能
VSS为地电源。
VDD接5V正电源。
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
D0~D7为8位双向数据线。
BLA为背光源正极。
BLK为背光源负极。
LCD1602读写时序图如图13、14[8]:
图13读操作时序
图14写操作时序
读操作时序图中要注意的是,读操作时R/W引脚是高电平,数据在E引脚为高电平时输出,其中PWEN的最小值是230ns,tcycE的最小值是500ns。
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图15是1602的内部显示地址。
图15LCD1602内部显示地址
例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?
这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。
每次输入指令前都要判断液晶模块是否处于忙的状态。
2.3.2显示模块电路设计
LCD1602与单片机接口电路设计如图16:
图16显示模块电路
2.4按键模块设计
本系统的按键模块由四个轻触开关组成,分别为K1,K2,K3,K4。
其功能如下:
K1:
设定警报值范围时,实现“+”的功能,每短按一下值“+1”,长按可实现连加。
K2:
设定警报值范围时,实现“-”的功能,每短按一下值“-1”,长按可实现连减。
K3:
在警报值范围显示界面,选择设定最大值或最小值。
K4:
切换显示器的显示界面,以显示不同的内容。
按键电路设计如图17:
图17按键电路
2.5警报模块设计
警报模块的功能:
当测量参数超过预设的警报范围时,发出报警和指示是何参数超出警报范围。
此模块由1个蜂鸣器和6个LED组成。
6个LED分别表示:
温度过高,温度过低,湿度过高,湿度过低,气压过高和气压过低。
其电路设计如图18:
图18警报模块电路
2.6单片机控制系统
单片机诞生于20世纪70年代末,经历了SCM、MCU、SOC三大阶段。
第一阶段:
SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
第二阶段:
MCU即微型控制器(Micro Controller Unit)阶段,不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
Intel逐渐变弱,Philips公司以其在嵌入式应用方面的巨大优势成为最著名的厂家。
将MCS-51从单片微型计算机迅速发展到微控制器。
第三阶段:
单片机是嵌入式系统的独立发展之路,寻求应用系统在芯片上的最大化是MCU阶段发展的重要因素。
因此,专用单片机的发展自然形成了SOC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SOC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
单片机的发展 单片机作为微型计算机的一个重要分支,应用面很广,发展很快。
自单片机诞生至今,已发展为上百种系列的近千个机种。
我们将8位单片机的推出作为起点,那单片机的发展历史大致可分为以下几个阶段:
第一阶段(1976-1978):
单片机的探索阶段。
以Intel公司的MCS-48为代表。
开始探索工控领域,Motorola 、Zilog等公司也参与了探索,都取得了满意的效果。
第二阶段(1978-1982)单片机的完善阶段。
Intel公司在MCS-48 基础上推出了完善的、典型的单片机系列MCS-51。
它有完善的外部总线、CPU外围功能单元集中的管理模式、具有工控特性的位地址空间及位操作方式、指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令,这些都奠定了典型的通用总线型单片机体系结构。
第三阶段(1982-1990):
8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。
Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。
随着MCS-51系列的广泛应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路功能,强化了智能控制的特征。
第四阶段(1990-至今):
微控制器的全面发展阶段。
随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。
在选择单片机时也应充分考虑其便利和实用,8031单片机最大缺点是需要外接EPROM,电路复杂,而且EPROM还是用紫外线进行擦除的,使用起来很不方便。
在经过广泛的比较之后,确定采用ATMEL 公司的AT89C52 FLASH单片机。
它不仅具有8031单片机的一切功能,还有许多功能是8031所没有的。
其内部带有8KB可多次擦写的FLASH内部程序存储器,可用电擦除,十分方便。
2.6.1AT89C52的主要特性
AT89C52单片机主要有以下一些特点:
与MCS-51产品兼容;
具有8KB可改写的FLASH内部程序存储器,可进行1000次擦/写操作;
全静态操作:
0Hz到24MHz;
三级程序存储器加密;
256字节内部RAM;
32条可编程I/O线;
3个16位定时/计数器;
8个中断源;
可编程串行口;
低功耗空闲和掉电方式。
2.6.2AT89C52的引脚说明
AT89C52包括40个引脚,其引脚结构如图19所示:
图19AT89C52外部管脚排列图
VCC:
电源。
GND:
接地。
P0 口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1 口:
P1 口是一个具有内部上拉电阻的8 位双向I/O 口,P1 输出缓冲器能驱动4 个TTL 逻辑电平。
对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2 EX),具体如表2-3所示。
在flash编程和校验时,P1口接收低8位地址字节。
表7P1口部分引脚的第二功能表
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O 口,P2输出缓冲器能驱动4 个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用,如表8所示。
在flash编程和校
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 环境 实时 测控 系统 设计