基于AT89S52单片机的温湿度测试仪.docx
- 文档编号:9569690
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:27
- 大小:686.84KB
基于AT89S52单片机的温湿度测试仪.docx
《基于AT89S52单片机的温湿度测试仪.docx》由会员分享,可在线阅读,更多相关《基于AT89S52单片机的温湿度测试仪.docx(27页珍藏版)》请在冰豆网上搜索。
基于AT89S52单片机的温湿度测试仪
题目基于单片机的温湿度测试仪硬件设计
内容提要
随着科学技术的日新月异,人类社会取得了长足的进步!
在居家生活、工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。
本设计设计了一个的温湿度测量系统。
本系统采用技术成熟的DHT11作为测量湿度和温度的传感器。
控制系统芯片采用技术成熟,功能强大、价位低廉大众化的AT89S52单片机。
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
LED显示电路由AT89S52单片机控制。
最后设计了系统各个功能部分的软件程序。
由本设计课题做成的温湿度检测系统结构简单、价格便宜、量程宽,具有较高的可靠性、安全性及实用性。
关键词
温湿度传感器;LED;AT89S52;DHT11
Abstract
Withtherapiddevelopmentofscienceandtechnology,humansocietyhasachievedgreatprogress!
Inthelifethatoccupythehome,industry,agriculture,nationaldefense,weather,environmentalprotectionandscientificresearchdepartments,suchasaerospace,oftenneedtotheenvironmenthumidityandtemperaturemeasurementandcontrol.Thedesignofanhumiditymeasuringtheapplicationsystems.ThesystemadoptsthetechnologyDHT11asmeasuringthehumidityandtemperaturesensor.Controlsystemchipadoptmaturetechnology,powerful,pricecheappopularAT89S52.EachDHT11sensorsareaccuratecalibrationofhumidityincalibration.LEDdisplaycircuitcontrolledbyAT89S52.Finallythedesignofthesystemsoftwareprogrameachfunction.
Bythisdesigntasktomakethetemperatureandhumidityofthedetectionsystemstructureissimple,cheapprice,widerange,highreliability,safetyandpracticality.
KeyWords
Temperatureandhumiditysensor;LED;AT89S52;DHT11
目录
1.绪论1
1.1设计的背景概述1
1.2设计的内容2
1.3设计的意义2
2.系统的硬件设计4
2.1系统设计方案4
2.2系统的硬件设计4
2.2.1AT89S52介绍4
2.2.2DHT11数字传感器介绍11
2.2.3LED显示器的介绍16
2.3系统部分硬件电路的设计18
2.3.1主控电路的设计18
2.3.2复位电路部分19
2.3.3AT89S52的系统时钟电路的设计19
3.系统的软件设计21
3.1系统软件主程序流程21
3.2DHT11数据采集流程22
结论24
致谢25
参考文献26
附录27
1.绪论
1.1设计的背景概述
进入21世纪后,各行各业特别是传统产业都急切需要应用电子技术、自动控制技术进行改造和提升很多企业对温湿度的测控手段很粗糙,十分落后,绝大多数仍在使用湿球湿度计,采用人工观测人工调节阀门、风机的方法,很少有人使用温湿度传感器。
随着科技的发展进步,工业及电器行业对温湿度的要求的提高,温湿度传感器的应用范围也越来越加广泛。
农业的发展必须走现代化农业这条道路,随着国民经济的迅速增长,农业的研究和应用技术越来越受到重视,特别是温室大棚已经成为高效农业的一个重要组成部分。
大棚内的温度、湿度与二氧化碳含量等参数,直接关系到蔬菜和水果的生长。
国外的温室设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件。
而当今大多数对大棚温度、湿度、二氧化碳含量的检测与控制都采用人工管理,这样不可避免的有测控精度低、劳动强度大及由于测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力资源,而且很难达到预期的效果。
因此,为了实现高效农业生产的科学化并提高农业研究的准确性,推动我国农业的发展,必须大力发展农业设施与相应的农业工程,科学合理地调节大棚内温度、湿度以及二氧化碳的含量,使大棚内形成有利于蔬菜、水果生长的环境,是大棚蔬菜和水果早熟、优质高效益的重要环节。
目前,随着蔬菜大棚的迅速增多,人们对其性能要求也越来越高,特别是为了提高生产效率,对大棚的自动化程度要求也越来越高。
由于单片机及各种电子器件性价比的迅速提高,使得这种要求变为可能。
1.2设计的内容
在本次课程设计中,为实现对温湿度的检测与显示,主要利用以AT89S52为核心构架硬件电路,DHT11温湿度传感器采集环境温度及湿度信息(温度检测范围:
0℃至55℃。
测量精度:
2℃;湿度检测范围:
20%-90%RH。
检测精度5%RH)。
LED直接显示温度和湿度;同时利用C语言编程实现温湿度信息的显示功能。
1.3设计的意义
湿度为40%至50%时,人会感到最舒适。
如果考虑到温、湿度对人思维活动的影响,最适宜的温湿度度工作效率高。
温度18℃,湿度40%至60%,此时,人的精神状态好,最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。
在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
现代社会越来越多的场所会涉及到温度与湿度并将其显示。
由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:
冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。
在此范围内感到舒适的人占95%以上。
在装有空调的室内,室温为19至24℃,思维最敏捷。
所以,本设计就是通过单片机驱动LED显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。
在重要的设备房间中,设备对温、湿度等运行环境的要求非常严格。
对于面积较大的房间,由于气流及设备分布的影响,温湿度值可能会有较大的区别。
所以应根据主房间实际面积在房间加装温湿度传感器,以实时客观检测房间内的温、湿度。
在监控本系统,温湿度一体化传感器将把检测到的温湿度值实时传送到监控主机中,并在监控界面上以图形形式直观地表现出来。
管理员可实时了解房间各点的实际温湿度值,一旦房间内实际温、湿度值越限,系统将自动弹出报警框并触发报警,提示管理员通过调节送风口的位置、数量,设定空调的运行温湿度值,尽可能让房间各点的温湿度趋向合理,确保房间设备的安全正常运行。
2.系统的硬件设计
2.1系统设计方案
本方案使用AT89S52作为控制核心,用温湿度传感器DHT11作为温湿度测量元件,显示电路采用LED显示,采用单片机最小系统。
系统硬件电路设计框图如下图2.1。
图2.1系统结构图
2.2系统的硬件设计
2.2.1AT89S52介绍
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
表2.1AT89S52P1口第二功能表
脚号
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
表2.2AT89S52P3口第二功能表
脚号
第二功能
P3.0
RXD(串行输入)
P3.1
TXD(串行输出)
P3.2
INT0(外部中断0)
P3.3
INT0(外部中断0)
P3.4
T0(定时器0外部输入)
P3.5
T1(定时器1外部输入)
P3.6
WR(外部数据存储器写选通)
P3.7
RD(外部数据存储器写选通)
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
特殊功能寄存器
表2.3AT89S52特殊寄存器映象及复位值
特殊功能寄存器(SFR)的地址空间映象如表2.3所示。
并不是所有的地址都被定义了。
片上没有定义的地址是不能用的。
读这些地址,一般将得到一个随机数据;写入的数据将会无效。
用户不应该给这些未定义的地址写入数据“1”。
由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。
定时器2寄存器:
寄存器T2CON和T2MOD包含定时器2的控制位和状态位,寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重载寄存器。
中断寄存器:
各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。
存储器结构
MCS-51器件有单独的程序存储器和数据存储器。
外部程序存储器和数据存储器都可以64K寻址。
程序存储器:
如果EA引脚接地,程序读取只从外部存储器开始。
对于AT89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:
2000H~FFFFH。
数据存储器:
AT89S52有256字节片内数据存储器。
高128字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。
当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。
直接寻址方式访问特殊功能寄存器(SFR)。
例如,下面的直接寻址指令访问0A0H(P2口)存储单元
MOV0A0H,#data
使用间接寻址方式访问高128字节RAM。
例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。
MOV@R0,#data
堆栈操作也是间接寻址方式。
因此,高128字节数据RAM也可用于堆栈空间。
双数据指针寄存器:
为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:
位于SFR中82H~83H的DP0和位于84H~85。
特殊寄存器AUXR1中DPS=0选择DP0;DPS=1选择DP1。
用户应该在访问数据指针寄存器前先初始化DPS至合理的值。
看门狗定时器
WDT是一种需要软件控制的复位方式。
WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。
WDT在默认情况下无法工作;为了激活WDT,用户必须往WDTRST寄存器(地址:
0A6H)中依次写入01EH和0E1H。
当WDT激活后,晶振工作,WDT在每个机器周期都会增加。
WDT计时周期依赖于外部时钟频率。
除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。
当WDT溢出,它将驱动RSR引脚一个高个电平输出。
WDT的使用
当计数达到8191(1FFFH)时,13位计数器将会溢出,这将会复位器件。
晶振正常工作、WDT激活后,每一个机器周期WDT都会增加。
为了复位WDT,用户必须向WDTRST写入01EH和0E1H(WDTRST是只读寄存器)。
WDT计数器不能读或写。
当WDT计数器溢出时,将给RST引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。
为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。
掉电和空闲方式下的WDT
在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。
在这种方式下,用户不必喂狗。
有两种方式可以离开掉电模式:
硬件复位或通过一个激活的外部中断。
通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常AT89S52复位一样。
通过中断退出掉电模式的情形有很大的不同。
中断应持续拉低很长一段时间,使得晶振稳定。
当中断拉高后,执行中断服务程序。
为了防止WDT在中断保持低电平的时候复位器件,WDT直到中断拉低后才开始工作。
这就意味着WDT应该在中断服务程序中复位。
为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。
在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。
默认状态下,在待机模式下,WDIDLE=0,WDT继续计数。
为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。
2.2.2DHT11数字传感器介绍
DHT11是一款温湿度一体化的数字传感器。
该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。
DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。
传感器内部湿度和温度数据40Bit的数据一次性传给单片机,数据采用校验和方式进行校验,有效的保证数据传输的准确性。
DHT11功耗很低,5V电源电压下,工作平均最大电流0.5mA。
性能指标和特性如下:
工作电压范围:
3.5V-5.5V
工作电流:
平均0.5mA
湿度测量范围:
20-90%RH
温度测量范围:
0-50℃
湿度分辨率:
1%RH8位
温度分辨率:
1℃8位
采样周期:
1S
单总线结构
与TTL兼容(5V)
管脚排列如下:
1、引脚说明:
Vcc正电源
Dout输出
NC空脚
GND地
图2.2DHT11引脚图
2、管脚排列如下
a、应用电路连接说明
DHT11数字温湿度传感器连接方法极为简单。
第一引脚接电源正,第四引脚接电源地端。
数据端为第二引脚。
可直接接主机(单片机)的I/O口。
为提高稳定性,建议在数据端和电源正之间接一只4.7K的上拉电阻。
第三引脚为空脚,此管脚悬空不用。
b、DHT11数据结构
DHT11数字温湿度传感器采用单总线数据格式。
即,单个数据引脚端口完成输入输出双向传输。
其数据包由5Byte(40Bit)组成。
数据分小数部分和整数部分,具体格式在下面说明。
一次完整的数据传输为40bit,高位先出。
数据格式:
8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和
校验和数据为前四个字节相加。
传感器数据输出的是未编码的二进制数据。
数据(湿度、温度、整数、小数)之间应该分开处理。
如果,某次从传感器中读取如下5Byte数据:
byte4byte3byte2byte1byte0
0010110100000000000111000000000001001001
整数小数整数小数校验和
湿度温度校验和
由以上数据就可得到湿度和温度的值,计算方法:
humi(湿度)=byte4.byte3=45.0(%RH)
temp(温度)=byte2.byte1=28.0(℃)
jiaoyan(校验)=byte4+byte3+byte2+byte1=73(=humi+temp)(校验正确)
注意:
DHT11一次通讯时间最大3ms,主机连续采样间隔建议不小于100ms。
c、DHT11的传输时序
d、DHT11开始发送数据流程
图2.3DHT11开始发送数据流程
主机发送开始信号后,延时等待20us-40us后读取DH11T的回应信号,读取总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高,准备发送数据,每一bit数据都以低电平开始,格式见上面图示。
如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常。
e、主机复位信号和DHT11响应信号
图2.4主机复位信号和DHT11响应信号
f、数字‘0’信号表示方法
图2.5数字‘0’信号表示方法
g、数字‘1’信号表示方法
图2.6数字‘1’信号表示方法
DHT11有四个引脚,3号引脚一般悬空,如图2-2所示。
DHT11的供电电压为3—5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。
2.2.3LED显示器的介绍
1、LED显示器的结构与原理
管脚排列
共阴极数码管
共阳极数码管
图2.7LED显示器结构
2、数码管显示原理
LED数码管由a~g七个发光二极管组成。
加正电压时发光,加零电压时不能发光,不同亮暗的组合就能形成不同的字型,这种组合称为字型码。
共阳极和共阴极的字型码是不同的。
表2.4LED字型显示代码表
显示
段符号
十六进制代码
dp
g
f
e
d
c
b
a
共阴极
共阳极
0
1
2
3
4
5
6
7
8
9
A
b
C
d
E
F
H
P
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
77H
7CH
39H
5EH
79H
71H
76H
F3H
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
88H
83H
C6H
A1H
86H
8EH
89H
8CH
2.2.4八同相三态缓冲器74HC244的介绍
74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1G和2G作为它们的选通工作信号。
当1G和2G都为低电平时,输出端Y和输入端A状态相同;当1G和2G都为高电平时,输出呈高阻态。
74HC244芯片的引脚排列如图2.8所示。
图2.874HC244芯片的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S52 单片机 温湿度 测试仪