王军磊论文终结版11.docx
- 文档编号:6627272
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:22
- 大小:1.40MB
王军磊论文终结版11.docx
《王军磊论文终结版11.docx》由会员分享,可在线阅读,更多相关《王军磊论文终结版11.docx(22页珍藏版)》请在冰豆网上搜索。
王军磊论文终结版11
安阳师范学院本科学生毕业设计报告
室内温湿度检测系统设计
作者王军磊
系(院)物理与电气工程学院
专业电气工程及其自动化
年级2010级
学号101154040
指导教师高相铭
日期
学生诚信承诺书
本人郑重承诺:
所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。
签名:
日期:
论文使用授权说明
本人完全了解安阳师范学院有关保留、使用学位论文的规定,即:
学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。
签名:
导师签名:
日期
室内温湿度检测系统设计
王军磊
(安阳师范学院物理与电气工程学院,河南安阳455002)
摘要:
本设计实现的是单片机温湿度测量与控制系统,通过LCD1602显示所测量的温湿度。
系统采用集温湿度传感器与A/D转换器为一体的DHT11芯片,通过单片机处理进行显示,其对所测量的值进行实时显示。
本文介绍了基于ATMEL公司的AT89C52系列单片机的温湿度实时测量与控制系统和显示系统的设计,包括介绍了硬件结构原理,并分析了相应的软件的设计及其要点,包括软件设计流程及其程序实现。
系统结构简单、实用,提高了测量精度和效率。
关键词:
单片机;DHT11;LCD1602;温湿度控制
1 引言
在日常实际生产生活中,科研、农业、暖通、纺织、机房、航空航天、电力等工业部门对产品质量的要求越来越高,对环境温、湿度的控制以及对工业材料的水分值的监测与分析都已成为比较普遍的技术条件之一。
目前我国农业正处于从传统农业向以优质、高产、高效益为目标的现代农业转化的新阶段。
环境控制工程作为农业生物速生、优质、高产的手段,是农业现代化的重要标志。
温室大棚中的环境由多个因子组成,如温度、光照、湿度及二氧化碳浓度等。
时下,我国温室环境控制目前仍靠人工经验来管理,严重影响了农业生产的效益,阻碍了农业生产的发展,因此,采用先进的人工智能技术,科学、合理地控制影响作物的环境因子,通过计算机控制设备进行环境控制,以便给作物生长创造一个最佳的环境条件,做到既提高产品的质量、产量、经济价值和社会效益,同时尽量降低生产成本,这对温室环境施行自动检测和控制是非常必的。
温室设施的关键技术是环境控制,主要是温湿度的控制,其目的是提高控制及作业精度。
湿度是表示大气干燥程度的物理量。
在一定的温度下在一定体积的空气里含有的水汽越少,则空气越干燥;水汽越多,则空气越潮湿。
空气的干湿程度叫做“湿度”。
在此意义下,常用绝对湿度、相对湿度、比较湿度、混合比、饱和差以及露点等物理量来表示。
湿度表示气体中的水蒸汽含量,有绝对湿度和相对湿度两种表示方法。
绝对湿度是一定体积的空气中含有的水蒸气的质量,一般其单位是克/立方米,绝对湿度的最大限度是饱和状态下的最高湿度;相对湿度是绝对湿度与最高湿度之间的比,它的值显示水蒸气的饱和度有多高。
温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最常见最基本的工艺参数,例如机械、电子、石油、化工等各类工业中广泛需要对温度、湿度的检测与控制。
并且随着人们生活水平的提高,人们对自己的生存环境越来越关注,而空气中温湿度的变化与人体的舒适度和情绪都有直接的影响,所以对温度、湿度的检测就非常有必要了。
随着科技的进步,检测仪表也向着智能化、小型化、低功耗的方向发展。
在这个发展过程中,以单片机为核心控制器的温湿度检测以体积小、操作简单、性能稳定、测量精度高等诸多有点正逐步进入生产生活的各个方面。
2方案选择
方案一:
采用单总线的DS1820的温度传感器和HS110X相对湿度传感器组成的控制仪。
方案二:
采用集温湿度传感器于一体的DHT11芯片为主要芯片的控制仪。
由于传统的模拟式湿度传感器(方案一)一般不仅要设计信号调理电路,还要经过复杂的校准和标定过程,其测量精度难以保证。
而SHT11是瑞士Sensiri-on公司生产的具有二线串行接口的单片全校准数字式新型相对湿度和温度传感器,可用来测量相对湿度、温度和露点等参数,具有数字式输出、免调试、免标定、免外围电路及全互换的特点。
该传感器将CMOS芯片技术与传感器技术融合,为开发高集成度、高精度、高可靠性的温湿度测控系统提供了解决方案。
所以本设计采用的是方案二。
3系统设计
本设计核心部件为AT89C52,信号采集及处理部分由DHT11构成,进入单片机后经处理后通过LCD1602显示温湿度,信号显示采用的液晶屏为5X7点阵,一行可显示16字,四行。
其他组成部分为实时时钟发生电路,产生同现在相同的时间和具体日期,通过LCD1602液晶模块显示。
硬件中包括一个开关,为复位开关。
开机后,所有器件初始化,温湿度传感器DHT11开始进行温湿度测量和计算,最后通过LCD1602液晶显示器显示结果。
其他是一些附件,比如复位、晶振电路。
整体电路框图1如下:
图1整体电路框图
3.1硬件设计部分
3.1.1复位电路部分
这种复位电路的工作原理是:
单片机的复位电路在刚接通电时,刚开始电容是没有电的,电容内的电阻很低,通电后,5V的电通过电阻给电容进行充电,电容两端的电会由0V慢慢的升到4V左右(此时间很短一般小于0.3秒),RC构成的微分电路在上电瞬间产生一个微分脉冲,其宽度大于两个机器周期,89C52将复位。
正因为这样,复位脚的电由低电位升到高电位,引起了内部电路的复位工作,RST端电压慢慢下降,降到一定电压值以后,即为低电平,单片机开始正常工作;当按下复位键时,电容两端放电,电容又回到0V了,于是又进行了一次复位工作。
3.1.2显示电路部分
此模块是由LCD1602芯片实时温湿度显示的电路部分。
LCD1602是一个四行每行16字的液晶显示屏,D0-D7接P0口,RS、RW、E接P3.5、P3.6、P3.7起控制作用。
1602采用标准的16脚接口,其中:
第1脚:
VSS为地电源;第2脚:
VDD接5V正电源;第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度;第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器;第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据;第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令;第7~14脚:
D0~D7为8位双向数据线;第15~16脚:
空脚。
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。
1602液晶模块内部的控制器共有11条控制指令,如表1所示。
表1控制指令表
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
清显示
0
0
0
0
0
0
0
0
0
1
光标返回
0
0
0
0
0
0
0
0
1
*
置输入模式
0
0
0
0
0
0
0
1
I/D
S
现实开/关控制
0
0
0
0
0
0
1
D
C
B
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
置功能
0
0
0
0
1
DL
N
F
*
*
置字符发生储存器地址
0
0
0
1
字符发生存储地址(AGG)
置数据储存器地址
0
0
1
显示数据存储地址(ADD)
读忙标志或地址
0
1
BF
计数地址(AC)
写数CGRAM或DDRAM
1
O
要写的数据
从CGRAM或DDRAM读数
1
1
读出数据
3.1.3单片机—AT89C52
AT89C52是一个低功耗,高性能CMOS8位单片机,8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89C52有40个引脚,8kBytesFlash片内程序存储器,256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器
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的一些特殊功能口,如下表2所示:
表2口管脚备选功能
管脚号
功能
管脚号
功能
P3.0RXD
串行输入口
P3.4T0
计时器0外部输入
P3.1TXD
串行输出口
P3.5T1
计时器1外面输入
P3.2/INT0
外部中断0
P3.6/WR
外部数据存储器写选通
P3.3/INT1
外部中断1
P3.7/RD
外部数据存储器读选通
3.1.4振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器XTAL2应不接。
输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)指令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:
读数据。
3.1.5温湿度传感器DHT11
DHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。
温湿度传感器SHT11集温度传感器和湿度传感器于一体,因此采用DHT11进行温湿度实时监测的系统具有精度高、成本低、体积小、接口简单等优点;另外DHT11芯片内部集成了14位A/D转换器,且采用数字信号输出,因此抗干扰能力也比同类芯片高。
该芯片在温湿度监测、自动控制等领域均已得到广泛应用。
该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。
主要特点如下:
◆高度集成,将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上;
◆提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,传输可靠性高;
◆测量精度可编程调节,内置A/D转换器(分辨率为8~12位,可以通过对芯片内部寄存器编程选择);
◆测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿的湿度测量值和高质量的露点计算功能;
◆封装尺寸超小(7.62mm×5.08mm×2.5mm),测量和通信结束后,自动转入低功耗模式;
◆高可靠性,采用CMOSens工艺,测量时可将感测头完全浸于水中。
b.DHT11的引脚功能
DHT11温湿度传感器采用SMD(LCC)表面贴片封装形式,接口非常简单,引脚名称及排列顺序如图2所示。
图2DHT11外形及引脚排列
各引脚的功能如下:
◇脚1和4--信号地和电源,其工作电压范围是2.4~5.5V;
◇脚2和脚3--二线串行数字接口,其中DA-TA为数据线,SCK为时钟线;
◇脚5~8--未连接。
c.DHT11的内部结构和工作原理
温湿度传感器DHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上。
该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。
这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D转换器;最后经过二线串行数字接口输出数字信号。
DHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系测量过程中,校准系数会自动校准来自传感器的信号。
此外,DHT11内部还集成了一个加热元件,加热元件接通后可以将DHT11的温度升高5℃左右,同时功耗也会有所增加。
此功能主要为了比较加热前后的温度和湿度值,可以综合验证两个传感器元件的性能。
在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。
加热后DHT11温度升高、相对湿度降低,较加热前,测量值会略有偏差,微处理器是通过二线串行数字接口与DHT11进行通信的。
通信协议与通用的I2C总线协议是不兼容的,因此需要用通用微处理器I/O口模拟该通信时序。
微处理器对DHT11的控制是通过5个5位命令代码来实现的,命令代码的含义如表3所列。
表3DHT11控制命令代码
命令代码
含义
00011
测量温度
00101
测量湿度
00111
读内部状态寄存器
00110
写内部状态寄存器
11110
复位命令,是内部状态寄存器恢复默认值。
下次进行要等待11秒
其它
保留
d.DHT11应用设计
微处理器采用二线串行数字接口和温湿度传感器芯片DHT11进行通信,所以硬件接门设计非常简单;然而,通信协议是芯片厂家自己定义的,所以在软件设计中,需要用微处理器通用I/O口模拟通信协议。
DHT11通过二线数字串行接口来访问,所以硬件接口电路非常简单。
需要注意的地方是:
DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和DHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有要求;当工作电压高于4.5V时,SCK频率最高为10MHz,而当工作电压低于4.5V时,SCK最高频率则为1MHz。
硬件连接如图3所示。
图3硬件接线图
3.2软件设计部分
本设计用到了proteus和keilc51两种软件,两者能完美的结合在一起,实现虚拟的实物效果,为以后的实物焊接提供了保障。
。
编程软件采用的是keiluvision2软件,程序采用C语言编程。
软件部分经本人调试可以运行,能够正确显示结果。
具体模块由一个C(kellen.C)主函数文件和9个h文件构成。
H文件如下所示:
reg51.h;(8051的相关参数初始化)
absacc.h;
intrins.h;(伪本征函数)
math.h;(数学公式函数)
LCD1602.h;(1602液晶显示函数)
DHT11.h;(温湿度采集计算函数)
3.2.1主函数解析:
/***************************************************/
/***************************************************/
#include
#include
#include
#include
#include
#include
voidDelay1ms(unsignedintcount)//延时函数
{
unsignedinti,j;
for(i=0;i for(j=0;j<120;j++); } main() { LCD_Initial();//LCD初始化 {GotoXY(0,0);//LCD显示函数 Print("Date: "); GotoXY(16,0); Print("Temper: "); GotoXY(0,1); Print("Time: "); GotoXY(16,1); Print("Humidi: "); while (1) { convert_SHT(&aa,TEMP);//温度转换 convert_SHT(&aa,HUMI);//湿度转换 caculation_SHT(&aa);//温度和湿度的补偿 float_convert(&aa);//将浮点数转换成整型,各个位的数分别保存 Print(CurrentTime.DateString); GotoXY(23,0);//第一行显示温度 Print(aa.num_temp); GotoXY(28,0); Print(""); GotoXY(23,1);//第一行显示湿度 Print(aa.num_humi); GotoXY(28,1); Print(""); Delay1ms(300);//延时 } } } /***************************************************/ /***************************************************/ 3.2.2软件设计 微处理器和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线。 该二线串行通信协议和I2C协议是不兼容的。 在程序开始,微处理器需要用一组“启动传输”时序表示数据传输的启动,如图4所示。 当SCK时钟为高电平时,DATA翻转为低电平;紧接着SCK变为低电平,随后又变为高电平;在SCK时钟为高电平时,DATA再次翻转为高电平。 图4DHT11湿度测试时序图 (1)DHT11湿度测试时序如图4所示。 主机发出启动命随后发出一个后续8位命令码,该命令码包含3个地址位(芯片设定地址为000)和5个命令位发送完该命令码,将DATA总线设为输入状态等待DHT11的响应;DHT11接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为从机的ACK;在第9个时钟下降沿之后,从机释放DATA(恢复高电平)总线;释放总线后,从机开始测量当前湿度,测量结束后,再次将DATA总线拉为低电平;主机检测到DATA总线被拉低后,得知湿度测量已经结束,给出SCK时钟信号;从机在第8个时钟下降沿,先输出高字节数据;在第9个时钟下降沿,主机将DATA总线拉低作为ACK信号。 然后释放总线DATA;在随后8个SCK周期下降沿,从机发出低字节数据;接下来的SCK下降沿,主机再次将DATA总线拉低作为接收数据的ACK信号;最后8个SCK下降沿从机发出CRC校验数据,主机不予应答(NACK)则表示测量结束。 由于微处理器通过二线串行数字接口访问湿度传感器DHT11,而访问协议是芯片生产商定义的,所以需要用通用I/O口模拟该通信协议。 我们选用Atmel公司的微处理器ATmega128通过对I/O口寄存器的编程,该处理器的I/O口可以根据需要设置成输入、输出、高阻等状态。 这为模拟该通信协议提供了条件。 在软件实现过程中,通过宏定义来实现I/O口状态的改变。 (2)湿度线性补偿和温度补偿 DHT11可通过DATA数据总线直接输出数字量湿度值。 该湿度值称为“相对湿度”,需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。 由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值: RHlinear=C1+C2×SOrh+C3×SOrh*2式中: RHlinear为经过线性补偿后的湿度值,SORH为相对湿度测量值,C1、C2、C3为线性补偿系数,取值如表4所列。 表4温度线性补偿系数表5湿度值温度补偿系数 SOrh t1 T2 12位 0.01 0,00008 8位 0.01 0.00128 SOrh C1 C2 C3 12位 -4 0.0405 -2×10*6 8位 -4 0.648 -7.2×10*4
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 王军磊 论文 终结 11
![提示](https://static.bdocx.com/images/bang_tan.gif)