基于单片机的家用温湿度传感器设计Word文件下载.docx
《基于单片机的家用温湿度传感器设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的家用温湿度传感器设计Word文件下载.docx(75页珍藏版)》请在冰豆网上搜索。
![基于单片机的家用温湿度传感器设计Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/9/b5b31704-29d8-4d34-bfb3-2a6bf222d255/b5b31704-29d8-4d34-bfb3-2a6bf222d2551.gif)
1、绪论
1.1研究目的目的与意义
随着科技的飞速发展,人们对生活质量要求也随之提高,生活中人体舒适度高低成了人们重要的幸福指数之一。
适宜的室内气象条件,如温度、湿度、空气流速、气味等,是人们达到满意舒适度的重要因素,这些气象信息需要仪器的测量来获得,但目前市场单一的湿度或温度等测量仪器已经无法满足人们生活的实际需求,因此,需要集成度更好、测量精确度更高的测量仪器来代替它们。
所以如果开发出一种基于单片机的家用气象系统,将温度、湿度、时钟等测量功能集于一体,其将很好的契合人们的日常生活要求。
这对于设计者来说也是一次能力的考察,强调了对单片机扩展的应用。
1.2研究的任务要求与具体功能操作
本文任务是基于对单片机的使用,对部分家用气象信息系统简单设计,主要包含温湿度。
设计任务与主要功能包括:
(1)电子时钟的设计,并用矩阵式键盘对时间进行校正,闹铃操作;
(2)温度测量显示系统设计,要求测量范围-10℃~45℃、精确度(±
0.1℃);
(3)湿度测量显示系统设计,要求测量范围0~100RH%、精确度(±
3%RH);
(4)用显示器显示相应的时间,温度及湿度,要求形象直观;
(5)能够在闹铃时间到或有按键按下时,蜂鸣器发出响声;
具体按键功能如下:
(1)当仿真按钮按下时,LCD显示器进入欢迎界面;
(2)当“开始”键按下时,LCD显示器进入正常时钟计数界面
(3)当“闹铃设置”键按下时,LCD显示器进入闹铃时间设置界面;
(4)当“年、月、日、时、分、秒”键按下时,想要设置的时间处(包括闹铃)光标不断闪烁;
(5)当“加”,“减”键按下时,上述光标闪烁处的数值进行加1或减1;
(6)当“退出”键按下时,LCD显示器返回到时间设置后的正常计数界面;
(7)当“闹铃启/停”键按下时,启动或停止闹铃功能;
1.3本文指导思想
本文是对部分家用气象信息测量系统的简单设计,首先对设计所需要用到的主要芯片进行选择和论证,确定了选用单片机AT89C51作为系统的主要控制芯片,温度传感器DS18B20实现温度测量,SHT11实现湿度测量,显示部分采用的是液晶显示器LM016L。
本论文重点部分是对模块的硬件和软件时序进行详解。
比如AT89C51、SHT11、DS18B20和LM016L等芯片的引脚功能和工作原理,有便于更好理解。
在最后给出系统程序和电路原理仿真图,让设计成果更加清晰呈现。
2、主要芯片的选择与论证
2.1单片机的选择方案
方案一:
XC9000系列有并行处理数据的能力,能快速响应,但处理数据复杂,价格昂贵。
方案二:
采用单片机作为控制芯片,运算功能强,处理方便灵活,性能比较稳定,价格也比较便宜,接近自身专业。
综上所述,方案二为最佳方案。
2.2显示器的选择方案
12864液晶显示器可实现多组数据的显示,字体比较大,比较清晰,但价格昂贵,接线复杂,性价比不高。
LM016L液晶显示器简单方便,价格便宜,也能满足显示要求。
方案三:
七段数码管显示内容有限,控制程序复杂,面积较大;
综上所示,方案二为最佳方案。
2.3温湿度传感器的选择方案
DHT11是一款复合传感器,测湿范围在20%~90%RH,误差±
5%RH;
测温范围0~50℃,误差±
2℃。
SHTXX系列是一款温湿度复合传感器,可测量湿度范围在0%~100%RH,误差范围在±
(1.8%~3%)RH。
HS101是电容式湿度传感器,测量范围0%~100%RH,误差范围±
2%RH。
方案四:
DS18B20温度传感器,具有独特的单线总线传输,接线方便,温测范围在-55℃~125℃,误差范围±
0.5℃,精确度可达0.0625。
综上所述,根据设计任务要求,温测范围为-10℃~45℃、误差±
0.1℃,湿度测量范围为0~100RH%、误差±
3%RH可知,方案二,方案四是最佳方案。
3、硬件介绍及局部系统设计
3.1系统结构
此系统主要由晶振电路,测量电路,校正电路,显示电路和发声电路构成,如图所示:
图3-1AT89C51系统结构图
3.2主要芯片及功能介绍
3.2.1单片机芯片及功能介绍
单片机微处理器是在一块芯片上集成了CPU、时钟和振荡器电路、ROM和RAM存储器、定时器、计数器和并串行I/O接口等功能部件的一台具有一定功能的计算机。
具有体积小、重量轻、单一电源,低功耗,功能强,价格低廉,运算速度快、抗干扰能力强、可靠性高,具有较强功能的位处理能力等。
引脚功能如下:
VCC:
供电电压;
GND:
接地。
P0:
P0引脚为一个8位漏级开路双向I/O口,具有驱动8个TTL门电路的负载能力。
当访问外存时,它是地址(低8位)/数据总线复用;
当外部不扩展而单片应用时,作双向I/O口用,是一个准双向I/0口;
在进行片内程序检验期间,作指令代码输出用。
P1:
P1引脚是一个标准的内部提供上拉电阻的8位准双向并行I/O口,具有驱动4个TTL门电路的负载能力。
它通常用I/O口使用,输出时具有锁存功能,输入时具有缓冲功能。
P2:
与P1引脚功能相似,其区别在于P2引脚访问外存时只能作高8位地址总线。
P3:
具有上拉电阻的8位准双向并行I/O端口;
当系统复位或上电时,P3口处于第二功能状态。
RST:
复位输入端。
若在该引脚上输入持续2个机器周期的高电平将使单片机复位。
ALE:
允许地址锁存信号输出。
PSEN:
访问外部程序存储器的选通信号,低电平有效。
EA:
此引脚为访问内部或外部程序存储器的选择信号。
XTAL1:
此引脚接外部晶振一端。
XTAL2:
此引脚接外部晶振另一端。
3.2.2数字湿度传感器SHT11
(1)Sht11的特点
Sht11是一款数字湿度传感器芯片。
该芯片广泛应用于暖通空调、汽车、家电等领域,其特点如下:
1)高度集成,将温度测量,湿度测量,信号变换,A/D转换和加热等功能集成到一个芯片上;
2)提供二线串行数字接口sck和data,接口接单,支持crc校验传输,其可靠性较高;
3)可以编程调节测量精度,内置A/D转换器(分辨率为8~12位,可以通过对芯片内部寄存器进行设置);
4)测量精度高,又集温度传感器和湿度传感器,所以能提供温度和线性补偿的湿度测量和露点计算功能;
(2)sht11的引脚功能
图3-2SHT11引脚图
主要引脚功能如下:
1)sck为时钟线,用于微处理器与SHT11之间的同步通讯,内含完全静态逻辑,所以不存在最小sck频率。
2)DATA为数据线,用于数据的读取。
DATA在sck时钟的下降沿改变状态,并仅在sck时钟的上升沿有效。
在数据传输期间,在sck时钟高电平时DATA必须保持稳定。
(3)sht11内部结构
湿度传感器SHT11将温湿度测量、模数转换、信号变换和加热器等功能集成到一个芯片上,内含湿度敏感元件和温度敏感元件。
它们分别将温湿度转换成电信号,在进入运算放大器,使其微弱信号进行放大;
然后进入一个14位的模数转换器;
最后测量值由二线数字串行接口输出。
其内部结构如图3-3所示。
图3-3SHT11内部结构图
主机是通过二线数字串行接口与SHT11进行数据传输的。
其通信协议不能兼容I^2C总线协议,因此需要用单片机I/O接口模拟该数据传输时序。
其对SHT11的控制是通过几个命令字来实现的,命令字的定义如下表3-1所示:
表3-1SHT11命令代码
命令字
含义
0x03
测量温度
0x05
测量湿度
0x07
对内部状态寄存器读
0x06
对内部状态寄存器写
0x1E
复位命令
(4)sht11状态寄存器
Sht11的某些高级功能可以通过状态寄存器来实现。
在这里主要介绍通过设置状态寄存器的相关位来设定
传感器的测量分辨率。
默认的分辨率是14bit(温度),8bit(湿度),通常情况下使用12bit(温度)和8bit(湿
度)。
状态寄存位如下表所示:
表3-2SHT11状态寄存位
Bit
说明
默认值
备注
‘1’=8bitRH/12bitT
‘0’=12bitRH/14bitT
1
不从opt加载
2
加热
3
仅供测试不使用
4
预留
5
6
‘0’=vdd>
2.47
‘1’=vdd<
2.47
X
无结束后更新
7
(5)sht11工作原理
1)湿度传输开始和测量时序
微处理器和湿度传感器通信采用串行二线接口sck和data,其中sck为时钟线,data为数据线,该二线串行协议和ic2协议是互不相容的。
在程序开始,微处理器需要用一组“启动传输”时序表示数据传输的启动,如下图所示。
当sck时钟为高电平时,data翻转为低电平;
紧接着sck变为低电平,随后又变为高电平,在sck时钟为高电平时,data再次翻转为高电平。
Sht11温湿度测试时序如图所示。
主机发出启动命令,随后发出一个8位命令字,该命令字前3位是地址和后5位是命令位;
发送完该命令后设数据线data为输入,等待sht11的响应,这个过程需要大约11/55/210ms,分别对应8/12/14bit测量;
sht11接收到上述命令字后,在第8个时钟下沿,下拉data为低电平作为从机的ack;
在第9个时钟下降沿之后,从机释放data(恢复高电平)总线;
释放总先后,sht11开始测量当前的温湿度,测量结束后,再次将data总线拉为低电平;
主机检测到data总线被拉低后,得知测量已经结束,主机在次触发sck时钟前,必须等待这个“数字备妥“信号来读出数据;
从机在第8个下降沿,先输出高字节数据;
在第9个时钟下降沿,主机拉低data总线作为ack信号,接着将data总线释放;
在随后8个sck时钟下降沿,从机先输出低字节数据;
下一个sck下降沿,主机再次拉低data总线作为ack信号用来接收数据,最后8个时钟下降沿从机输出crc校验数据,主机不回应,则表示结束测量。
检测数据可以先被存储,这样主机可以继续执行其它任务,在需要时在读出数据。
图3-4SHT11时序图
2)湿度的线性和温度补偿
Sht11的data数据总线可以直接输出测量到的湿度值。
该数字量值称为“相对湿度”,需要进行补偿,即湿度和温度补偿后才能得到精度相对较高的湿度值。
因为输出的相对湿度值呈一定的非线性,所以为了补偿湿度传感器的这一特性,湿度值可按下式进行修正:
RH1=C1+C2*SOrh+C3*S0rh*SOrh
式中:
RH为经过线性修正后的湿度值,Sorh为测量到的相对湿度,C1,C2,C3,为线性修正系数,其值如表3-3所列:
表3-3湿度修正系数
SOrh
C1
C2
C3
12位
-4
0.0405
-2.8X10-6
8位
0.648
-