基于单片机的家用温湿度传感器设计.doc

上传人:wj 文档编号:4710699 上传时间:2023-05-07 格式:DOC 页数:61 大小:978.50KB
下载 相关 举报
基于单片机的家用温湿度传感器设计.doc_第1页
第1页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第2页
第2页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第3页
第3页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第4页
第4页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第5页
第5页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第6页
第6页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第7页
第7页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第8页
第8页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第9页
第9页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第10页
第10页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第11页
第11页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第12页
第12页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第13页
第13页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第14页
第14页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第15页
第15页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第16页
第16页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第17页
第17页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第18页
第18页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第19页
第19页 / 共61页
基于单片机的家用温湿度传感器设计.doc_第20页
第20页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的家用温湿度传感器设计.doc

《基于单片机的家用温湿度传感器设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的家用温湿度传感器设计.doc(61页珍藏版)》请在冰点文库上搜索。

基于单片机的家用温湿度传感器设计.doc

滨江学院

毕业论文

题目

基于单片机的家用气象系统设计

院系

滨江学院自动控制系

专业

自动化

学生姓名

学号

指导教师

职称

二〇一二年五月三十一日

目录

1、绪论 1

1.1研究目的目的与意义 1

1.2研究的任务要求与具体功能操作 1

1.3本文指导思想 2

2、主要芯片的选择与论证 2

2.1单片机的选择方案 2

2.2显示器的选择方案 2

2.3温湿度传感器的选择方案 2

3、硬件介绍及局部系统设计 3

3.1系统结构 3

3.2主要芯片及功能介绍 3

3.2.1单片机芯片及功能介绍 3

3.2.2数字湿度传感器SHT11 4

3.2.3温度传感器DS18B20 8

3.2.4LMO16液晶显示器和外围电路 12

3.2.5蜂鸣器应用 15

3.3最小系统设计 17

3.3.1振荡器、时钟电路及时序 17

3.3.2复位功能 17

3.4矩阵式键盘系统设计 18

3.4.1矩阵式键盘的结构原理 18

3.4.2键盘工作方式 18

3.4.3键盘扫描识别及消抖措施 19

4、软件设计流程图 20

4.1矩阵式扫描键盘功能的实现 20

4.2按键声音功能的实现 20

4.3液晶显示功能的实现 21

4.4DS18B20温度测量功能的实现 23

4.5SHT11湿度测量功能实现 24

4.6电子时钟功能的实现 26

5、应用软件 28

5.1Keil软件的使用 28

5.1.1Keil软件的简介 28

5.1.2Keil软件调试运行流程 28

5.2Proteus软件的使用 31

5.2.1Proteus的简介 31

5.2.2Proteus仿真流程 31

附表1系统元器件表和原理图 35

附表2系统仿真效果图 37

附表3系统源程序 39

58

基于单片机的家用气象系统设计

摘要:

一个好的气象系统能够为人们及时准确的的提供当天的气象信息。

本文主要针对室内温度和湿度,外加一个电子时钟展开思考设计的。

本设计由单片机AT89C51,LM016L显示器,温湿度传感器SHT11和温度传感器DS18B20为核心,辅以必要的电路,构成一个家用气象系统,其具有测量准确,显示直观等特点,适合家用。

关键词:

电子时钟,单片机,温湿度传感器SHT11,温度传感器DS18B20,显示器LM016L等。

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系统结构

此系统主要由晶振电路,测量电路,校正电路,显示电路和发声电路构成,如图所示:

AT89c51

晶振电路

测量电路

校正电路

显示电路

发声电路

图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的引脚功能

DATA

SCK

SHT11

图3-2SHT11引脚图

主要引脚功能如下:

1)sck为时钟线,用于微处理器与SHT11之间的同步通讯,内含完全静态逻辑,所以不存在最小sck频率。

2)DATA为数据线,用于数据的读取。

DATA在sck时钟的下降沿改变状态,并仅在sck时钟的上升沿有效。

在数据传输期间,在sck时钟高电平时DATA必须保持稳定。

(3)sht11内部结构

湿度传感器SHT11将温湿度测量、模数转换、信号变换和加热器等功能集成到一个芯片上,内含湿度敏感元件和温度敏感元件。

它们分别将温湿度转换成电信号,在进入运算放大器,使其微弱信号进行放大;然后进入一个14位的模数转换器;最后测量值由二线数字串行接口输出。

其内部结构如图3-3所示。

湿度传感器

运算放大器

温度传感器

A/D转换器

二线串行数字接口和CRC校验

校准寄存器

SCK

DATA

VCC

GND

图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

说明

默认值

备注

0

‘1’=8bitRH/12bitT

‘0’=12bitRH/14bitT

0

1

不从opt加载

0

2

加热

0

3

仅供测试不使用

0

4

预留

0

5

预留

0

6

‘0’=vdd>2.47

‘1’=vdd<2.47

X

无结束后更新

7

预留

0

(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校验数据,主机不回应,则表示结束测量。

检测数据可以先被存储,这样主机可以继续执行其它任务,在需要时在读出数据。

DATA

SCK

START

Address’000’

Command’00101’

A2

A1

A0

C4

C3

C2

C1

C0

ack

图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位

-4

0.648

-7.2X10-4

由于实际温度和参考测试温度25℃有所不同,而温度对湿度的影响又十分明显,所以有必要对线性修正后的湿度值进行温度补偿,公式如下:

RH2=(T-25)*(t1+t2*SOrh)+RH1

式中:

RH2为经过线性和温度修正后的湿度值,T为湿度被感测时的温度,t1和t2为温度修正系数,取值如下表3-4:

表3-4温度修正系数

SORH

t1

t2

12位

0.01

0.00008

88位

0.01

0.00128

3)温度值输出

由于sht11温度敏感元件的是采用ptat能隙材料制成的,因而线性输出特性很好。

温度的实际值由下式算出:

T=d1+d2*s0t

式中:

d1和d2为特定的系数,d1的取值决定于sht11工作电压,d2的取值决定于sht11内部数模转换器采用的分辨率有关,其具体对应关系分别如下表3-5,3-6所示:

表3-5d1与工作电压的对应关系

V/v

d1/℃

d1/℉

5

-40.00

-40.00

4

-39.75

-39.50

3.5

-39.66

-39.35

3

-39.60

-39.28

2.5

-39.55

-39.23

表3-6d2与分辨率的对应关系

SO

d2/℃

d2/℉

14位

0.01

0.018

12位

0.04

0.072

4)露点计算

露点是一个临界的温度值,是空气保持一定程度湿度务必达到的最低值。

当空气的温度低于临界值,空气因吸收不了过多的水分,这些水分会变成露水。

其值可通过当前相对湿度值和温度值计算得到,具体公式如下:

(式中:

T为当前温度值,SORH为相对湿度值,Dp为露点)

logEW=0.66077+7.5*T/(237.3+T)+Log10(SORH)-2

Dp=((0.66077-logEW)*237.3)/(logEW-8.16077)

3.2.3温度传感器DS18B20

(1)DS18B20的特点

DS18B20是DALLAS公司生产的单总线数字温度传感器芯片,具有3引脚TO-92小体积封装形式;温度测量范围-55℃~+125℃.可编程9~12位A/D转换精度,测量分辨率可达0.0625℃;被测量温度用16位补码方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生。

多个DS18B20可以并联到三根或两根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少。

主要特性如下:

1)适应电压范围宽:

3.0V~5.5V,在寄生电源方式下可由数据线供电。

2)在使用中不需要任何外围元件。

3)独特的单线接口方式:

与处理器连接时仅需要一根信号线即可实现双向通信。

4)测温范围宽:

-55℃~+125℃,在-10℃~+85℃时精度为±0.5℃。

5)可以通过编程实现9~12位的分辨率,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。

6)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多750ms内把温度转化为数字。

7)可以采用多点组网功能。

8)用户可自行设定非易失性的上下限报警值。

9)负压特性:

当电源极性相反连接时,传感器不会因过热烧毁,但失去正常测量功能。

(2)DS18B20的引脚功能

123

(a)TO-92封装

NCNC

NCNC

VDDNC

DQGND

(b)SOIC封装

图3-5DS18B20外形及引脚图

主要引脚功能如下:

DQ:

信号传输端。

GND:

电源地。

VDD:

电源输入端,当采用寄生电源工作方式时,此引脚接地。

(3)DS18B20内部结构

DS18B20内部结构主要由4部分组成:

64位只读程序存储器、温度传感器,非易失性高低温报警触发器TH和TL,配置寄存器,其结构原理如下图3-6所示:

6位

ROM总线接口

存储器、控制电路

高速缓存器

温度传感器

触发器TH

触发器TL

配置寄存器

CRC生成器

电源检测

VDD

GND

DQ

图3-6DS18B20内部结构

DS18B20的存储器部件有以下几种:

1)ROM存储器

ROM中存放的是64位序列号,出厂前已被刻好,它可以看作是该传感器的地址序列号。

每个器件地址序列号不同。

64位序列号的排列是开始8位(0x28)是产品类型标志,接着的48位是传感器的自身序列号,最后的8位是前面56位的循环冗余校验码。

由于每一个DS18B20序列号不同,一根总线可挂接多个DS18B20。

2)高速暂存存储器

高速暂存存储器由9个字节组成,其分配如表2-7所示。

第0,1个字节存放转换所得的温度值;第2,3个字节分别是高温度触发器TH和低温度触发器TL;第4个字节是配置存储器;第5,6,7个字节保留;第8个字节是CRC校验码。

表3-7DS18B20高速暂存存储器的分配

字节序号

功能

0

温度转换的低字节

1

温度转换的高字节

2

高温触发器TH

3

低温触发器TL

4

配置寄存器

5

保留

6

保留

7

保留

8

CRC校验寄存器

其中,高温度触发器和低温度触发器分别存放温度报警的上限值和下限值;就把转换后的温度值与温度报警的上限和下限值作比较,若超出设定范围,则把该器件的告警标志置位,并对CPU发出告警搜索命令。

另外,配置寄存器用来设置温度值的转换分辨率,其每位的意义如表3-8所示:

表3-8配置寄存器

D7D6D5D4D3D2D1D0

TM

R1

R0

1

1

1

1

1

低五位全是1,是该命令的标志,TM是测量模式设置位,用于确定传感器是在工作/测试模式。

当传感器在制造时该位被置0,不必改动。

R1和R2用来确定分辨率,如表3-9所示(不设置默认为12位)

表3-9温度值的转换分辨率设置表

R1

R2

分辨率/位

温度最大转换时间ms

0

0

9

93.75

0

1

10

187.5

1

0

11

275.00

1

1

12

750.00

(5)DS18B20的温度转换过程

1)DS18B20的通信协议

根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:

每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对传感器进行预订的操作。

DS18B20的ROM指令和RAM指令如表3-10和表3-11所示:

表3-10DS18B20的ROM指令

指令

代码

功能

读ROM

0x33

读传感器ROM的编码

匹配ROM

0x55

发出命令后发出64位ROM编码,访问总线上相对应的DS18B20,为读写准备

搜索ROM

0xf0

确定同一总线上传感器的个数和识别ROMD地址

跳过ROM

0xcc

忽略64位ROM,直接发出温度转换指令

告警搜索命令

0xec

执行后只有温度超过设定值的芯片才做出反应

表3-11DS18B20的RAM指令

指令

代码

功能

温度变化

0x44

启动DS18B20进行温度转换

读暂存器

0xbe

读内部RAM中9字节的内容

写暂存器

0x4e

在RAM的3,4字节写上上下限温度数据

命令,紧跟之后,是传送两字节的数据

复制暂存器

0x48

将RAM中3,4节内容复制到EEPROM

重调EEPROM

0xb8

将EEPROM中的内容复制到RAM中的3,4字节

读供电方式

0xb4

读DS18B20的供电模式,寄生供电发‘0’,

外接电源供电发‘1’

2)DS18B20工作时序

DS18B20温度转换的每一步骤都有严格的时序要求,一切时序都是将微处理器作为主设备,传感器作为从设备。

每一次通信传输的开始都是从主设备启动写时序,若想从设备输入数据,在命令字写入后,主设备要启动读指令就可完成数据接收。

传输都是从数据和命令的低位开始。

①初始化时序

与DS18B20间的任何通讯都需要以初始化序列开始,一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。

在初始化序列期间,总线控制器拉低总线保持至少480us以发出一个复位脉冲,然后释放总线。

当DS18B20探测到引脚上的上升沿之后,等待15-60us,然后发出一个由60-240us低电平信号构成的存在脉冲。

②写时序

有两种写时序,分别为写1时序和写0时序。

主设备通过写1时序写逻辑1到传感器,写0时序写逻辑0到传感器。

所有写时序必须至少保持60us,包括两个写周期之间保持1us以上的恢复时间。

当主设备把数据线的电平从高拉到低的时候,写时序开始。

主设备若要产生一个写时序,务必把数据线拉低并持续15us后释放。

总控制器要产生写0时序,务必把数据线拉低并保持60us以上。

主设备初始化写时序后,DS18B20在15us到60us内对I/O线采样。

若数据线上是高电平就是

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2