基于单片机的温湿度计的设计说明.docx
- 文档编号:25389336
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:30
- 大小:672.13KB
基于单片机的温湿度计的设计说明.docx
《基于单片机的温湿度计的设计说明.docx》由会员分享,可在线阅读,更多相关《基于单片机的温湿度计的设计说明.docx(30页珍藏版)》请在冰豆网上搜索。
基于单片机的温湿度计的设计说明
单片机课程设计
项目名称基于单片机的湿度显示器设计
专业班级通信092
学生
指导教师
2012年12月12日
摘要
温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。
在日常生活、工业、医学、环境保护、化工、石油等领域,经常需要对环境温度和湿度进行测量和控制。
准确测量温湿度在生物制药、食品加工、造纸等行业更是至关重要。
因此,研究温湿度的测量方法和装置具有重要的意义。
随着科技的不断发展,单片机技术已经普及到我们的工作、生活、科研等各个领域。
已经成为一种比较成熟的技术。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便等优点,目前已经渗透到我们工作和生活的方方面面。
本论文介绍了一种以AT89C51为主要控制器件,以DHT11为数字温度传感器的新型数字温湿度计。
本设计主要包括硬件电路的设计和系统软件的设计。
关键词:
温湿度传感器;LCD1602;AT89C51;DHT11;
Abstract
Temperatureandhumidityarethetwomostbasicenvironmentalparameters,people'slifeiscloselyrelatedwiththetemperatureandhumidity.Indailylife,industry,medicine,environmentalprotection,chemicalindustry,petroleumandotherfields,weoftenneedtoenvironmenttemperatureandhumiditymeasurementandcontrol.Accuratemeasuringtemperatureandhumidityinbiologicalpharmacy,foodprocessing,papermakingindustriesisveryimportant.Therefore,thestudyofthetemperatureandhumiditymeasurementmethodandequipmenthasimportantsignificance.
Withthecontinuousdevelopmentofscienceandtechnology,microcontrollertechnologyhasspreadtoourwork,life,scientificresearch,andotherfields.Hasbecomeamorematuretechnology.DuetothehighlevelofintegrationSCM,strongfunction,highreliability,smallvolume,lowpowerconsumption,easytouse,etc.,andhaspenetratedintoourworkandallaspectsoflife.
ThispaperintroducesakindofAT89C51asthemaincontroldevice,inordertoDHT11digitaltemperaturesensorfornewdigitaltemperatureandhumiditymeter.Thisdesignmainlyincludeshardwarecircuitdesignandsoftwaredesign.
Keywords:
Temperatureandhumiditysensor;LCD1602;AT89C51;DHT11;
第1章绪论
1.1课程设计背景概述
进入21世纪后,各行各业特别是传统产业都急切需要应用电子技术、自动控制技术进行改造和提升很多企业对温湿度的测控手段很粗糙,十分落后,绝大多数仍在使用湿球湿度计,采用人工观测人工调节阀门、风机的方法,很少有人使用温湿度传感器。
随着科技的发展进步,工业及电器行业对温湿度的要求的提高,温湿度传感器的应用围也越来越加广泛。
1.2本课程设计的容
在本次课程设计中,为实现对温湿度的检测与显示,主要利用以AT89C51为核心构架硬件电路,DHT11温湿度传感器采集环境温度及湿度信息,(温度检测围:
-30℃至+55℃。
测量精度:
2℃.;湿度检测围:
20%-90%RH。
检测精度:
5%RH)。
LCD1602显示器直接显示温度和湿度(显示方式:
温度:
四位显示;湿度:
四位显示);同时利用C语言编程实现温湿度信息的显示功能。
1.3本课程设计的意义
最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。
在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
“单片机原理及应用课程设计”是电子类专业的学科基础科,它是继“汇编语言程序设计”,“接口技术”等课程之后开出的实践环节课程。
现代社会越来越多的场所会涉及到温度与湿度并将其显示。
由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:
冬天温度为18至25℃,湿度为30%至80%;夏天温度为23至28℃,湿度为30%至60%。
在此围感到舒适的人占95%以上。
在装有空调的室,室温为19至24℃,湿度为40%至50%时,人会感到最舒适。
如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。
18℃,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。
所以,本课程设计就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。
第2章系统设计方案及硬件设计
2.1系统设计方案
本方案使用AT89C51作为控制核心,一直能温湿度传感器DHT11作为温湿度测量元件,显示电路采用LCD1602模块显示,采用单片机最小系统。
系统硬件电路设计框图如下图2-1。
图2-1系统硬件电路设计框图
2.2系统硬件介绍
2.2.1AT89C51介绍
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片含4kbytes的可反复擦写的只读程序存储器(EPROM)和128bytes的随机存取数据存储器(RAM),可灵活应用于各种控制领域。
由于器件采用了静态设计,可提供很宽的操作频率围,频率可降至0。
可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作,掉电模式保存RAM的容,但是冻结振荡器导致所有其它的片功能停止工作。
由于设计是静态的时钟可停止而不会丢失用户数据,运行可从时钟停止处恢复。
AT89C51的制作工艺为CMOS,采用40管脚双列直插DIP封装,引脚说明如下:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口);
P3.1TXD(串行输出口);
P3.2/INT0(外部中断0);
P3.3/INT1(外部中断1);
P3.4T0(记时器0外部输入);
P3.5T1(记时器1外部输入);
P3.6/WR(外部数据存储器写选通);
P3.7/RD(外部数据存储器读选通);
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有部程序存储器。
注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
图2-2单片机AT89C51引脚图
AT89C51的工作模式:
89C51有四种工作模式:
模式0,模式1,模式2,模式3。
模式0:
选择定时器的高8位和低5位组成一个13位定时器/计数器。
TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。
定时时间t=(213-初值)×振荡周期×12;计数长度位213=8192个外部脉冲。
模式1:
与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。
定时时间t=(216-初值)×振荡周期×12;计数长度位216=65536个外部脉冲。
模式2:
把TL0和TL1配置成一个自动重装载的8位定时器/计数器。
TL用作8位计数器,TH用以保存初值。
TL计数溢出时不仅使TF0置1,而且还自动将TH中的容重新装载到TL中。
定时时间t=(28-初值)×振荡周期×12;计数长度位28=256个外部脉冲。
模式3:
对T0和T1不大相同。
若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。
TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。
TH0仅用作简单的部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。
定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为0~2。
2.2.2DHT11数字传感器介绍
DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP存中,传感器部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为4针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
DHT11有四个引脚,3号引脚一般悬空,如图2-3所示。
DHT11的供电电压为3—5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
建议连接线长度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。
2.2.3LCD1602介绍
1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别。
LCD1602的主要技术参数:
1、显示容量:
16×2个字符
2、芯片工作电压:
4.5—5.5V
3、工作电流:
2.0mA(5.0V)
4、模块最佳工作电压:
5.0V
5、字符尺寸:
2.95×4.35(W×H)mm
LCD1602引脚功能说明
LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,引脚功能如下表2-1所示。
编号
符号
引脚说明
编号
符号
引脚说明
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
背光源负极
表2-1LCD1602引脚接口说明表
第1脚:
VSS为地电源。
第2脚:
VDD接5V正电源。
第3脚:
VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15脚:
背光源正极。
第16脚:
背光源负极。
LCD1602指令说明及时序:
1602液晶模块部的控制器共有11条控制指令,如下表2-2所示。
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据容
11
从CGRAM或DDRAM读数
1
1
读出的数据容
表2-2LCD1602控制命令表
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
2.3系统部分硬件电路设计介绍
2.3.1主控制电路的设计
MCS-51系列单片机是采用高性能的静态89C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片振荡器和时钟电路。
电路如图2-4所示:
图2-4主控制电路图
2.3.2温湿度检电路的设计
DHT11的供电电压为3—5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电路如图2-5所示:
图2-5温湿度采集电路
2.3.3AT89C51的系统时钟电路的设计
时钟电路是用来产生89C51单片机工作时所必须的时钟信号,89C51本身就是一个复杂的同步时序电路,为保证工作方式的实现,89C51在唯一的时钟信号的控制下严格的按时序执行指令进行工作,时钟的频率影响单片机的速度和稳定性。
通常时钟由于两种形式:
部时钟和外部时钟。
我们系统采用部时钟方式来为系统提供时钟信号。
89C51部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器。
电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。
晶振频率为在1.2MHZ~12MHZ之间,频率越高单片机的速度就越快,但对存储器速度要求就高。
为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。
时钟电路如图2-6所示:
图2-6时钟复位电路
2.3.3LCD1602液晶显示电路的设计
显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,1602字符型液晶模块是点阵型液晶,驱动方便,经编码后显示容多样化。
系统的输入模块采用中断扫描的4×4矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。
同时1602液晶显示模块可以和单片机AT89C51直接接口。
电路图如图2-7所示。
图2-7LCD1602电路图
第3章系统的软件设计
系统程序主要包括主程序、LCD模块控制程序、DHT11控制模块程序、延时子程序,整体程序见附录2。
3.1系统软件主程序流程
程序开始后,先对液晶模块显示进行初始化,通过延时一秒等待DHT11温湿度传感器启动。
DHT11温湿度传感器启动后,对其进行数据初始化后,进行温湿度信息的采集、转化、处理,最后通过液晶显示器读出。
DHT11温湿度传感器经过一次数据采集和处理后需返回次延时程序处理来重新初始化后采集温湿度数据。
具体流程图如图3-1所示:
图3-1系统主程序流程图
3.2DHT11数据采集流程
主程序里主要的一部分是数据采集和显示的循环部分,其中DHT11温湿度传感器有严格的时序要求,程序一定要遵守按照其与主机通信的步骤。
其温湿度数据采集流程图如下图3-2所示:
LCD初始化机显示部分,在程序中应先对显示器进行初始化,然后循环调用DHT11模块采集的数据对温度和湿度进行实时显示。
其LCD初始化机显示流程图如下图3-3所示:
图3-3LCD初始化显示流程图
结论
微型计算机在智能化电器发展中起着至关重要的作用,而单片机经济实用、开发简便,因而在工业控制、家电智能化等领域占据了广泛的市场。
本次设计是基于单片机的温湿度检测及显示的设计包括硬件电路和软件编程两部分。
在硬件选择方面,犹豫采用温湿度传感器DHT11,使电路更加方便,并且容易读数,简化了设计。
显示电路比较了LED和LCD之后,发现LED显示的信息量较少,外接电路复杂且耗电量大,而LCD正好弥补了LED的缺点,所以选择了用LCD来连接显示电路。
在软件编程方面,初次完成的程序十分复杂,在很多方面联系不上,我在网上查找了很多的资料,也看了一些教学视频,来不断的完善程序。
而且通过和同学、老师的交流讨论,我学到了很多编程方面的技巧和思想,同时也精简了部分程序。
参考文献
[1]何立民.单片机高级教程-应用与设计[M].:
航空航天大学,2002.
[2]徐爱钧.单片机高级语言C51Windows环境编程与应用[M].:
电子工业,2001.
[3]白雪冰,延林,等.单片机原理及应用[M].:
东北林业大学,2006.
[4]佳薇,丽萍,等.传感器原理与应用[M].:
东北林业大学,2003.
附录1
附录2
源程序:
#include
#defineuintunsignedint
#defineucharunsignedchar
typedefbitBOOL;
sbitio=P2^0;
sbitrs=P2^7;
sbitrw=2^6;
sbitep=P2^5;
uchardata_byte;
ucharRH,RL,TH,TL;
/**************延时模块***************/
voiddelay(ucharms)
{//延时子程序
uchari;
while(ms--)
{
for(i=0;i<250;i++);
}
}
voiddelay1()//延时10us
{
uchari;
i--;
i--;
i--;
i--;
i--;
i--;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温湿度 设计 说明
![提示](https://static.bdocx.com/images/bang_tan.gif)