2024年2月21日发(作者:)

温湿度智能测控系统

温湿度智能测控系统

摘要

本设计实现的是单片机温湿度测量与控制系统,通过在 LCD1602

上实时显示室内环境的温度和相对湿度。系统采用集温湿度传感器与

A/D 转换器为一体的 DHT90 传感器芯片,通过单片机 AT89C52 处理

进行显示,其它模块包括了实时时钟/日期产生电路和超限报警处理电

路,对所测量的值进行实时显示和报警处理。

本文介绍了基于 ATMEL 公司的 AT89C52 系列单片机的温湿度实

时测量与控制系统和显示系统的设计,包括介绍了硬件结构原理,并

分析了相应的软件的设计及其要点,包括软件设计流程及其程序实现。

系统结构简单、实用,提高了测量精度和效率。

关键词:温湿度测控

DHT90 传感器

AT89C52 单片机

LCD1602

- I -

温湿度智能测控系统

Abstract

The design and implementation of measurement and control

temperature and humidity is MCU system, through which the temperature

and humidity measurement LCD1602. System adopts set temperature and

humidity sensor and A/D converter for DHT90 chip microcontroller

processing, through that other modules including real-time clock/date

produce circuit and the off-gauge alarm circuit, the value of measurement

for real-time display and alarm.

The paper introduces the ATMEL company based on AT89C52 single-

chip series of temperature and humidity measurement and control system

and real-time display system design, including the hardware structure and

principle, and the corresponding software design, including the design of the

software and its key process and procedure.

System structure is simple, practical, and improve the measuring

precision and efficiency.

Keywords:

temperature and humidity control, DHT90, LCD1602,

AT89C52

- II -

温湿度智能测控系统

目录

摘要.................................................................................................................I

II

目录 ..............................................................................................................III

前言 ................................................................................................................1

1 概述 ............................................................................................................2

1.1 温度、湿度数据采集与监测技术的发展历程 ..............................2

1.2 内外温度和湿度测量的发展史 ......................................................3

2 系统总体设计 ............................................................................................6

2.1 系统功能设计 ..................................................................................6

2.2 系统设计原则 ..................................................................................6

3 方案论证与比较 ........................................................................................8

3.1

数据采集部分 ..................................................................................8

3.2

控制部分 ..........................................................................................9

3.3

显示部分 ........................................................................................10

3.4

系统框架图 ....................................................................................10

4 系统硬件结构 ..........................................................................................11

4.1 温湿度传感器 13

4.1.1 温湿传感器 DHT90 的简介 ...................................................13

4.1.2 接口说明..................................................................................14

4.1.3 温湿传感器 DHT90 的工作过程 ...........................................14

4.1.4 输出转换为物理量..................................................................16

4.2 AT89C52 ........................................................................................18

4.2.1 主要性能参数..........................................................................18

4.2.2 功能特性概述..........................................................................18

4.2.3 特殊功能寄存器......................................................................21

4.2.4 存储器结构..............................................................................23

- III -

温湿度智能测控系统

4.2.5 看门狗定时器..........................................................................24

4.2.6 定时器 2...................................................................................25

4.2.7 中断..........................................................................................27

4.3 单片机最小系统的设计 ................................................................27

4.3.1 复位电路设计..........................................................................27

4.3.2 时钟电路设计..........................................................................28

4.3.3 报警电路..................................................................................28

4.3.4 键盘设定模块..........................................................................29

4.3.5 稳压电路..................................................................................30

4.4 软件设计 ........................................................................................30

5 系统软件设计 ..........................................................................................31

6 仿真与调试 ..............................................................................................32

6.1 仿真 ................................................................................................32

6.2 硬件调试 ........................................................................................33

总结 ..............................................................................................................35

致谢 ..............................................................................................................37

参考文献 ......................................................................................................38

附件 ..............................................................................................................39

- IV -

温湿度智能测控系统

前言

在现代工业现场,随着科技的进步和自动化水平的提高,电缆的

用量越来越大,电缆的安全保护已成为不可忽视的问题。从国内外有

关电缆火灾的统计资料看,许多电缆火灾是由电缆头击穿绝缘引起的。

因此为电缆配置在线温度监测系统,对于电缆接头多,电缆密集的场

所,就显得尤为重要。

粮食是人类生存的必需品,温度与湿度是保存好粮食的先决条件,

我国的公粮现均集中存放在国家或地方的仓库中,最大粮库方圆几公

里,仓库库房数为数十个,测点可达数千个。按照国家粮食保护法则,

必须定期抽样检查各点的粮食温度与湿度,以确保粮食的存储质量。

档案馆中的档案资料同样会受到外界空气温湿度变化的影响,纸

张纤维热胀冷缩,使强度降低,湿度过大会使霉菌和害虫滋长,以致

造成资料质变。

由此可见,温度、湿度监测在人们现实生活生产中应用已日渐广

泛,在发电厂、纺织、食品、医药、仓库、农业大棚等众多的应用场

所,对温度、湿度参量的要求都非常严格,因此能否有效对这些领域

的温、湿度数据进行实时监测和控制是一个必须解决的重要前提。

本课题即以上述问题为出发点,设计实现了温度、湿度的实时监

测系统,该系统不仅能实时采集各抽样点的温度值与湿度值,而且能

够迅速处理,友好的将数据结果显示给用户,并存储结果以方便以后

的对比研究。

- 1 -

温湿度智能测控系统

1 概述

随着社会的发展,人们对环境中的温度和湿度的要求也越来越高,

尤其是在医学、电子电力、航天航空、食品发酵等领域中对湿温度的

要求尤其严格,鉴于此,设计出一个能够精确、稳定、实时测量出温

湿度的实用型温湿度检测仪显得尤为重要。

1.1 温度、湿度数据采集与监测技术的发展历程

最早的也是最简单的实现对温度、湿度的监测是采用人工的方式,

这种方式不仅效率低,劳动时间长,而且会由于抽样的不具代表性使

得监测结果失去其原有的意义。该方式还有一个弊端——其应用场所

有很大的局限性,工作人员不可能直接测量地下电缆的表面温度;去

提取存有炸药、鞭炮等危险品仓库温湿度数据的工作人员还要承担一

定的风险。

后来随着电子技术的出现与进步,科研人员开始采用温度与湿度

传感器代替原始的温度计与湿度计,开发了以单片机为核心的监测系

统,并佐以接口芯片将结果显示在 LED 数码显示管上,单片机可直接

控制打印监测数据。这种方式在很大程度上提高了工作效率,并扩展

了应用范围。但其中所采用的温度、湿度传感器直接输出为模拟电压

信号,该信号在传输过程中易损耗,影响系统精度,且传输距离较近,

需要经过 A/D 转换芯片才能被单片机接收。每个测试点都需要各自

独立的信号线,为了实现多点监测不仅需要成百上千条信号线,还需

要多路模拟转换开关电路轮流对多个测试点进行连续监测,从而增加

了整个系统的环节,使其难于维护,价格昂贵。

近年来,伴随微处理器芯片和网络通信技术的发展,为了简化系

统设计并降低成本,各公司及科研机构开始致力于相关领域的探索,

使得温湿度数据监测数字化、网络化的实现成为可能。其中美国达拉

斯半导体公司推出了 1-Wire(单总线)接口协议,单总线技术与其它

总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且

- 2 -

温湿度智能测控系统

数据传输是双向的,因此单总线技术具有线路简单,硬件开销少,成

本低廉,便于总线扩展和维护等优点。该公司所提供的适用于单总线

微网技术的单总线器件具有无需另附电源、在测试点直接将模拟信号

数字化等特点,一方面减少了系统环节,另一方面保证了系统的精度。

同时各软件公司开发的可视化软件开发工具,更是向着效率高、功能

强大的方向努力,从而为获得良好的用户界面奠定了基础。

1.2 内外温度和湿度测量的发展史

模拟集成温度传感器是在 20 世纪 80 年代问世的,它是将温度传

感器集成在一个芯片上、可完成温度测量及模拟信号输出功能的专用

IC。模拟集成温度传感器的主要特点是功能单一(仅测量温度)、测温

误差小、价格低、响应速度快、传输距离远、体积小、微功耗等,适

合远距离测温、控温,不需要进行非线性校准,外围电路简单。它是

目前在国内外应用最为普遍的一种集成传感器,典型产品有 AD590、AD592、TMP17、LM135 等。

智能温度传感器(亦称数字温度传感器)是在 20 世纪 90 年代中

期问世的。它是微电子技术、计算机技术和自动测试技术(ATE)的

结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温

度传感器内部都包含温度传感器、A/D 转换器、信号处理器、存储器

(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器

(CPU)、随机存取存储器(RAM)和只读存储器(ROM)。智能温度

传感器的特点是能输出温度数据及相关的温度控制量,适配各种微控

制器(MCU);并且它是在硬件的基础上通过软件来实现测试功能的,

其智能化程度也取决于软件的开发水平。进入 21 世纪后,智能温度传

感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发

虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发

展。

新型智能温度传感器的测试功能也在不断增强。例如,DS1629 型

单线智能温度传感器增加了实时日历时钟(RTC),使其功能更加完善。

DS1624 还增加了存储功能,利用芯片内部 256 字节的 E2PROM 存储 器,可存储用户的短信息。另外,智能温度传感器正从单通道向多通 道的方向发展,这就为研制和开发多路温度测控系统创造了良好条件。

- 3 -

温湿度智能测控系统

智能温度传感器的总线技术也实现了标准化、规范化,所采用的总线

主要有单线总线、I2C 总线、SMBus 总线和 SPI 总线。

湿度传感器产品及湿度测量属于 90 年代兴起的行业。湿度传感器

主要分为电阻式和电容式两种,产品的基本形式都是在基片上涂覆感

湿材料形成感湿膜。空气中的水蒸汽吸附在感湿材料上后,元件的阻

抗、介质常数发生很大的变化,从而制成湿敏元件。

近年来,国内外在湿度传感器研发领域取得了较大的发展。湿敏

传感器正从简单的湿敏元件向集成化、智能化、多参数检测的方向迅

速发展。

湿敏元件是最简单的湿度传感器。湿敏元件主要分为电阻式、电

容式两大类。湿敏电阻的特点是在基片上覆盖一层用感湿材料制成的

膜,当空气中的水蒸气吸附在感湿膜上时,元件的电阻率和电阻值都

发生变化,利用这一特性即可测量湿度。湿敏电阻的种类很多,例如

金属氧化特湿敏电阻、硅湿敏电阻、陶瓷湿敏电阻等。湿敏电阻的优

点是灵敏度高,主要缺点是线性度和产品的互换性差。湿敏电容一般

是用高分子薄膜电容制成的,常用的高分子材料有聚苯乙烯、聚酰亚

胺、酷酸醋酸纤维等。当环境湿度发生改变时,湿敏电容的介电常数

发生变化,使其电容量也发生变化,其电容变化量与相对湿度成正比。

湿敏电容的主要优点是灵敏度高、产品互换性好、响应速度快、湿度

的滞后量小、便于制造、容易实现小型化和集成化,其精度一般比湿

敏电阻要低一些。目前,国外生产集成湿度传感器的主要厂家及典型

产品分别为 Honeywell 公司(HIH-3602、HIH-3605、HIH-3610 型),

Humirel 公司(HM1500、HM1520、HF3223、HTF3223 型),Sensiron

公司(SHT11、SHT15 型)。这些产品可分成以下三种类型:

(1)线性电压输出式集成湿度传感器:典型产品有

HIH3605/3610、HM1500/1520。其主要特点是采用恒压供电,内置放

大电路,能输出与相对湿度呈比例关系的伏特级电压信号,响应速度

快,重复性好,抗污染能力强。

(2)线性频率输出集成湿度传感器:典型产品为 HF3223 型。它

采用模块式结构,属于频率输出式集成湿度传感器,在 55%RH 时的

输出频率为 8750Hz(型值),当上对湿度从 10%变化到 95%时,输出

频率就从 9560Hz 减小到 8030Hz。这种传感器具有线性度好、抗干扰

- 4 -

温湿度智能测控系统

能力强、便于配数字电路或单片机、价格低等优点。

(3)频率/温度输出式集成湿度传感器:典型产品为 HTF3223 型。

它除具有 HF3223 的功能以外,还增加了温度信号输出端,利用负温 度系数(NTC)热敏电阻作为温度传感器。当环境温度变化时,其电 阻值也相应改变并且从 NTC 端引出,配上二次仪表即可测量出温度值。

近年来,国内外在湿度传感器研发领域取得了长足进步。湿敏传

感器正从简单的湿敏元件向集成化、智能化、多参数检测的方向迅速

发展,为开发新一代湿度/温度测控系统创造了有利条件,也将湿度测

量技术提高到新的水平。

2002 年 Sensiron 公司在世界上率先研制成功 SHT11、SHT15 型智

能化温度/温度传感器,其外形尺寸仅为 7.6(mm)×5(mm)

×2.5(mm),体积与火柴头相近。出厂前,每只传感器都在温度室中

做过精密标准,标准系数被编成相应的程序存入校准存储器中,在测 量过程中可对相对湿度进行自动校准。它们不仅能准确测量相对温度, 还能测量温度和露点。测量相对温度的范围是 0~100%,分辨力达

0.03%RH,最高精度为±2%RH。测量温度的范围是-40℃~123.8℃,

分辨力为 0.01℃。

- 5 -

温湿度智能测控系统

2 系统总体设计

2.1 系统功能设计

系统要完成的功能设计如下:

(1)实现对室内温湿度参数的实时采集,并进行定时刷新;根据

测量空间和设备的实际需要,由温度、湿度传感器进行关键温、湿度

敏感点进行测量,由单片机对数据进行循环检测、数据处理、存储。

实现温湿度的智能测量。

(2)现场监测设备应具有较高的灵敏度、可靠性、抗干扰能力。

要求达到的技术要求:

测温范围:-20℃~100℃

测温精度:±0.5℃

测湿范围:0~100%RH

测湿精度:±2.5%RH

2.2 系统设计原则

要求单片机系统应具有可靠性、操作维护方便、性价比高等特点。

(1)可靠性

高可靠性是单片机系统应用的前提,在系统设计的每一个环节,

都应该将可靠性作为首要的设计准则。提高系统的可靠性通常从以下

几个方面考虑:使用可靠性高的元器件;设计电路时布线和接地要合

理;对供电电源采用抗干扰措施;输入输出通道抗干扰措施;进行软

硬件滤波;系统自诊功能等。

(2)操作维护简便

在系统的软硬件设计时,应从操作者的角度考虑操作和维护方便,

尽量减少对操作人员专用知识的要求,以利于系统的推广。因此,在

设计时多采用操作内置或简化的方法。同时系统应配有现场故障诊断

- 6 -

温湿度智能测控系统

程序,一旦发生故障能保证有效地对故障进行定位,一边于维修。

(3)性价比

除了体积小、功耗低等特点外,最大的优势在于高性能价格比。

一个单片机应用系统能否被广泛使用,性价比是其中一个关键因素。

因此,在设计时,除了保持高性能以外,要尽可能降低成本,如简化

外围硬件电路,在系统性能和速度容许情况下尽可能用软件功能取代

硬件功能。

- 7 -

温湿度智能测控系统

3 方案论证与比较

当将单片机用作测控系统时,系统总要有被测信号懂得通道,由

单片机拾取必要的输入信息。对于测量系统而言,如何准确获得被测

信号是其核心任务;而对测控系统来讲,对被控对象状态的测试和对

控制条件的监察也是不可缺少的环节。传感器是实现测量与控制的首

要环节,是测控系统的关键部件,如果没有传感器对原始被测信号进

行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工

业生产过程的自动化测量和控制,几乎主要依靠各种传感器来检测和

控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从

而保证生产的高效率和高质量。

3.1 数据采集部分

(1)温度传感器

采用热电阻温度传感器。热电阻是利用导体的电阻随温度变化的

特性制成的测温元件。现应用较多的有铂、铜、镍等热电阻。其主要

的特点为精度高、测量范围大、便于远距离测量。

铂的物理、化学性能极稳定,耐氧化能力强,易提纯,复制性好,

工业性好,电阻率较高,因此,铂电阻用于工业检测中高精密测温和

温度标准。缺点是价格贵,温度系数小,受到磁场影响大,在还原介

质中易被玷污变脆。按 IEC 标准测温范围-200~650℃,百度电阻比 W(100)=1.3850 时,R0 为 100Ω 和 10Ω,其允许的测量误差 A 级 为±(0.15℃+0.002|t|),B 级为±(0.3℃+0.005|t|)。

铜电阻的温度系数比铂电阻大,价格低,也易于提纯和加工;但

其电阻率小,在腐蚀性介质中使用稳定性差。在工业中用于-

50~180℃测温。

(2)湿度传感器

测量空气湿度的方式很多,其原理是根据某种物质从其周围的空

气吸收水分后引起的物理或化学性质的变化,间接地获得该物质的吸

- 8 -

温湿度智能测控系统

水量及周围空气的湿度。电容式、电阻式和湿涨式湿敏原件分别是根

据其高分子材料吸湿后的介电常数、电阻率和体积随之发生变化而进

行湿度测量的。

采用 HS1100/HS1101 湿度传感器。HS1100/HS1101 电容传感器,

在电路构成中等效于一个电容器件,其电容量随着所测空气湿度的增

大而增大。不需校准的完全互换性,高可靠性和长期稳定性,快速响

应时间,专利设计的固态聚合物结构,由顶端接触(HS1100)和侧面

接触(HS1101)两种封装产品,适用于线性电压输出和频率输出两种

电路,适宜于制造流水线上的自动插件和自动装配过程等。相对湿度

在 1%—100%RH 范围内;电容量由 16pF 变到 200pF,其误差不大于

±2%RH;响应时间小于 5s;温度系数为 0.04 pF/℃。

(3)采用的传感器

大连北方测控工程有限公司生产的温湿度传感器 DHT90,将两者

的功能集成在一起,并且输出的是数字信号,不需要再进行 A/D 转换,

其温度测量的范围为-40℃~123.8℃,分辨率为 0.01℃;测湿范围为 0~100%RH,分辨率为 0.03%RH。

综合上面各种设计的技术要求和传感器的特性,考虑到设计简约

化,选择使用传感器 DHT90,输出的是数字信号,不需要进行 A/D 转

换,简化了系统设计。

3.2 控制部分

选择单片机的型号的出发点有以下几个方面:

1. 市场货源

系统设计者只能在市场上能够提供的单片机中选择,特别是作为

产品大批量生产的应用系统,所选择的单片机型号必须有稳定、充足

的货源。

2. 单片机的性能

应根据系统的功能要求和各种单片机的性能,选择最容易实现系

统技术指标的先好,而且能达到较高的性能价格比。单片机性能包括

片内硬件资源、运行速度、可靠性、指令系统功能等方面。影响性能

价格比的因素除了单片机的性能价格以外,还包括硬件和软件的设计

的容易程度、相应工作量大小,以及开发工具的性能价格比。

- 9 -

温湿度智能测控系统

3. 研制周期

在研制任务重、时间紧的情况下,还要考虑所选的单片机型号是

否熟悉,是否能马上着手进行系统的设计,与研制周期有关的还有一

个重要的开发工具,性能优良的开发工具能加快系统地研制进程。

AT89C52 单片机是 AT89C 系列中的增强型的高档产品,它片内

存储器容量是 AT89C51 的一倍,即片内 8KB 的 Flash 程序存储器和

256B 的 RAM。另外,它还增加一个功能性强的、具有独特应用的 16

位定时/计数器 2 等多种功能。

由此,通过目前主流型号的比较,我们最终选择了 AT89C52 通用

的普通单片机来实现系统设计。AT89C52 是一种兼容 MSC51 的微控

制器,工作电压 4.0V 到 5.5V,全静态时钟 0Hz 到 33MHz,三级程序

加密,32 个可编程 I/O 口,全双工串行数据通讯,低功耗支持 Idle 和

Power-down 模式,Power-down 模式支持中断唤醒,看门狗定时器,

双数据针。

3.3 显示部分

采用 1602 液晶模块显示所测数据,1602 液晶接线简单方便,同

时也能满足显示需要。

3.4 系统框架图

本系统由单片机主控电路,DHT90 温湿度采集模块,1602 液晶显

示模块 3 部分组成,下图为框架图。

传感器

DHT90

单片机

AT89C52

液晶显示

1602

图 3.1

- 10 -

温湿度智能测控系统

4 系统硬件结构

本设计的原理是一个基于单片机 AT89C52 与温湿度传感器等技术

相结合主体,利用数字温湿度传感器 DHT90 对环境温湿度进行检测,

实现对环境温湿度的测控。将它的输出由单片机的软件对其进行校正

处理,所得到的结果最终送给液晶显示模块 1602 进行显示。设计原理

图如下:

VC

上 上C1 上

10uFRST

R2

10K

P10

RES1

P11

SW-PB

P12

P13

P14

MOSI P15

MISO P16

SCK P17

1

2

3

4

5

6

7

8

U1

P1.0(T2)

P1.1(T2EX)

P1.2

P1.3

P1.4

P1.5(MOSI)

P1.6(MISO)

P1.7(SCK)

P3.3(INT1)

P3.2(INT0)

P3.5(T1)

P3.4(T0)

EA/VPP

XTAL1

XTAL2

(AD0)P0.0

(AD1)P0.1

(AD2)P0.2

(AD3)P0.3

(AD4)P0.4

(AD5)P0.5

(AD6)P0.6

(AD7)P0.7

(A8)P2.0

(A9)P2.1

(A10)P2.2

(A11)P2.3

(A12)P2.4

(A13)P2.5

(A14)P2.6

(A15)P2.7

VCC

GND

(RXD)P3.0

(TXD)P3.1

ALE/PROG

PSEN

VC

R1

1

VCC

39 P002

2

38 P013

3

37 P024

4

36 P035

5

35 P046

6

34 P057

7

33 P068

8

32 P079

9

21

P20 。。

22

P21

23

P22

24

P23

25

P24

26

P25

27

P26

28

P27

40

VCC

20

10

P30RXD

11

P31TXD

30

ALE

29

PSEN

C6

30pF

C7

1

2

P33 13

P32 12

XTAL1

Y1

XTAL2

P35 15

P34 14

31

VCC

XTAL1 19

XTAL2 18

RST 9

P37 17

P36 16

30pF

RST

P3.7(RD)

P3.6(WR)

AT89S52

上 上 上 上 12M

B1

+

VC

VC

上 上 /上 上

R6

5.1K

P36

D2

1N4148

D5

1N4148

D6

1N4148

D7

1N4148

P33

。。。

Q1

NPN

R8

5.1K

上 上

上 上

S1

P23

S2

P22

S3

P21

S4

P20

上 上

- 11 -

温湿度智能测控系统

POWER。。。。。。。。。。6-15V。。。

POWER

C2

104

1

U2

IN

OUT

GND

2

VCC

C4

C3

C5

104

D1

3

100UF

L7805

100UF

。。。

R3

上 上 上 上 78051K

VCC VCC

U3 LCD1602

D3

D4

R4

1K

上LCD1602

R5

1K

SC

S

SW

VVCV03LALKRR

EA0A1A2AA4A5A6A7BBP14

P15

1

2

3

4

5

6

7

8

1

2

3

4

5

6

7

87

0

1

2

P25P26P2P0P0P0P03P04P05P06

7

VCC

P0VCC

上 上 上

U4 SHT10

W1 10K

1602上上上上

1

2

3

4

VCC

R7

VCC

10K

P15

P16

图 4.1 基于单片机温湿度系统原理图

- 12 -

温湿度智能测控系统

4.1 温湿度传感器 DHT90

温度和湿度是最重要和最常用的信息,在现在社会的各个方面都

有很重要的应用,所以温湿度传感器对于对于测量至关重要,通过传

感器实时采集相关数据信息,输出数字信号信号,然后经微处理器进

行相关信号处理后,方可实现对温度和湿度的显示。

4.1.1 温湿传感器 DHT90 的简介

DHT90 是数字温湿度传感器系列中插针型插针型的传感器。传感 器把传感元件和幸好处理集成起来,输出全标定的数字型号。传感器 采用

COMSens 技术,确保产品具有极高的可靠性与卓越的长久稳定性。 传感器包括一个电容性聚合体测湿温敏元件、一个用能隙材料制成的 测温元件,并在同一芯片上,与 14 位的 A/D 转换器以及串行接口电 路实现无缝连接。每个传感器芯片在极为精确的湿度腔室中进行标定, 校准系数以及程序储存在 OTP 内存中,在标定的过程中使用。

该传感器品质卓越、响应超快、抗干扰能力强、性价比极高。适 用

OEM 用户,免焊接、免水合处理,缩短开发时间,提高开发效率; 精确测量相对湿度、温度、露点;全标定输出,使用时无需重新校准; 卓越的长期稳定性;高精度两线制数字接口,直接与单片机相连;请 求式测量,超低能耗;无需其他外部元件;自动休眠。下面是其技术 指标:

➢ 测湿范围:0~100%RH

➢ 测温范围:-40℃~123.8℃

➢ 响应时间:湿度:<8s,温度:<30s

➢ 分辨率:湿度:0.03%RH,温度:0.01℃

➢ 重复性:湿度:0.1%RH,温度:0.1℃

➢ 迟滞:±1%RH

➢ 长期稳定性:<0.5%RH/年

➢ 安装方式:插针

➢ ±4.5%RH(湿度精度)±0.5℃(温度精度)

➢ 2.54mm 间距插针(安装方式)

- 13 -

温湿度智能测控系统

4.1.2 接口说明

①电源引脚(VDD,GND)

DHT90 的供电电压为 2.4-5.5V,建议供电电压为 3.3V。DHT90 的

串行接口,在传感器信号的读取及电源损耗方面,都做了优化处理;

传感器不能按照 I2C 协议编址,但是,如果 I2C 总线上没有挂接别的

元件,传感器可以连接到 I2C 总线上,但单片机必须按照传感器的协

议工作。

②串行时钟输入(SCK)

SCK 用于微处理器与 DHT90 之间的通讯同步。由于接口包含了 完全静态逻辑,因而不存在完全静态逻辑,因而不存在最小 SCK 频率。

③串行数据

DATA 三态门用于数据的读取。DATA 在 SCK 时钟下降沿之后改

变状态,并仅在 SCK 时钟上升沿有效。数据传输期间,在 SCK 时钟

高电平时,DATA 必须保持稳定。

下表为 DHT90 的引脚结构:

Pin

1

2

3

4

表 4.1 DHT90

的引脚结构

Name

SCK

VDD

GND

DATA

Comment

时钟信号

电源

数据输出

4.1.3 温湿传感器 DHT90 的工作过程

1. 启动传感器

选择供电电压后将传感器通电,上电速率不能低于 1V/ms。通电

后传感器需要 11ms 进入休眠状态,在此之前不允许对传感器发送任何

命令。

2. 发送命令

用一组“启动传输”时序,来表示数据传输的初始化。它包括:

- 14 -

温湿度智能测控系统

当 SCK 时钟高电平,紧接着 SCK 变为低电平,随后在 SCK 时钟高电

平时 DATA 翻转为高电平。

图 4.2

“启动传输”时序

后续命令包含三个地址位(目前只支持“000”),和五个命令位。

DHT90 会以下述方式表示已正确地接收到指令:在第 8 个 SCK 时钟

的下降沿之后,将 DATA 下拉为低电平(ACK 位)。在第 9 个 SCK 时

钟的下降沿之后,释放 DATA(恢复高电平)。

3. 测量时序(RH,T)

发布一组测量命令(‘00000101'表示相对湿度 RH,‘00000011'表

示温度 T)后,控制器要等待测量结束。这个过程需要大约

20/80/320ms,分别对应 8/12/14bit 测量。确切的时间随内部晶振速度,

最多可能有-30%的变化。DHT90 通过下拉 DATA 至低电平并进入空 闲模式,表示测量的结束。控制器在再次触发 SCK 时钟前,必须等待 这个"数据备妥"信号来读出数据。检测数据可以先被存储,这样控制 器可以继续执行其它任务在需要时再读出数据。接着传输 2 个字节的 测量数据和 1 个字节的 CRC 奇偶校验。uC 需要通过下拉 DATA 为低 电平,以确认每个字节。所有的数据从 MSB 开始,右值有效(例如: 对于 12bit

数据,从第 5 个 SCK 时钟起算作 MSB;而对于 8bit 数据, 首字节则无意义)。用 CRC 数据的确认位,表明通讯结束。如果不使 用 CRC-8 校验,控制器可以在测量值 LSB 后,通过保持确认位 ack 高 电平,来中止通讯。在测量和通讯结束后,DHT90 自动转入休眠模式。

4. 通讯复位时序

如果与 DHT90 通讯中断,下列信号时序可复位串口:当 DATA

保持高电平时,触发 SCK 时钟 9 次或更多,参阅图 4-3。在下一次指

令前,发送一个“传输启动”时序。这些时序只复位串口,状态寄存

器内容仍然保留。

- 15 -

温湿度智能测控系统

图 4.3

通讯复位时序

5. CRC-8 校验

数字信号的整个传输过程由 8bit 校验来确保。任何错误数据将被

检测到并清除。用户可选择是否做 CRC 校验。

图 4.4 相对湿度测量时序值

6. 状态寄存器

DHT90 的某些高级功能可以通过给状态寄存器发送指令来实现,

如选择测量分辨率,电量不足提醒或启动加热功能等。

4.1.4 输出转换为物理量

1. 相对湿度

为了补偿湿度传感器的非线性以获取准确数据,建议使用如下公

式修正读数:

2

Rlinea=1+·SO

·SO

C

2

R+3

R(%RH)

H

C

H

H

r

C

SO

RH

12bit

C

1

-2.0468

- 16 -

C

2

0.0

C

3

-

温湿度智能测控系统

367

1.5955E-6

-

4.0845E-4

8bit

-2.0468

872

0.5

表 4.2 湿度转换系数

2.相对湿度对于温度依赖性的补偿

由于实际温度与测试参考温度 25℃(~77℉)的显著不同,湿度信

号需要温度补偿。温度校正粗略对应于 0.12%RH/℃@50%RH,温度补

偿系数请参阅表 4.3。

RHtrue=(T℃- 25) •(t1

。。+t2

•SORH)+ RHlinear

SO

RH

12bit

8bit

t1

0.01

0.01

表 4.3

温度补偿系数

t2

0.00008

0.00128

3.温度

由能隙材料 PTAT(正比于绝对温度)研发的温度传感器具有极好的

线性。可用如下公式将数字输出转换为温度值,温度转换系数请阅表

4.4:

T=1+

2•

SO

T

(

OF)

d

d

VDD

5V

4V

3.5V

3V

2,5V

d1(℃)

-40.1

-39.8

-39.7

-39.6

-39.4

d2(℃)

0.01

0.04

表 4.4 温度转换系数

d1

( F)

-40.2

-39.6

-39.5

-39.3

-39.9

d2(OF)

0.018

0.072

O

SO

T

14bit

12bit

- 17 -

温湿度智能测控系统

1602 显示模块电路原理图如下所示:

图 4.5 1602 显示电路

1602 字符型 LCD 通常有 14 条引脚线或 16 条引脚线的 LCD,多

出来的 2 条线是背光电源线,其引脚如图所示。VCC(15 脚) 和地

线 GND(16 脚),其控制原理与 14 脚的 LCD 完全一样,其中 16 个引

脚及其功能如下表所示:

引脚

1

2

3

VO

符号

VSS

VDD

表 4.5 1602

的引脚图

功能说明

一般接地

接电源(+5V)

液晶显示器对比度调整端,接正电源时对比度最弱,接地

电源时对比度最高(对比度过高时会产生“鬼影”,使用时

可以通过一个 10K 的电位器调整对比度)。

RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平

0 时选择指令寄存器。

R/W 为读写信号线,高电平(1)时进行读操作,低电平

(0)时进行写操作。

E(或 EN)端为使能(enable)端,下降沿使能。

底 4 位三态、 双向数据总线 0 位(最低位)

底 4 位三态、 双向数据总线 1 位

底 4 位三态、 双向数据总线 2 位

底 4 位三态、 双向数据总线 3 位

底 4 位三态、 双向数据总线 4 位

- 18 -

4

5

6

7

8

9

10

11

RS

R/W

E

DB0

DB1

DB2

DB3

DB4

12

13

14

15

16

DB5

DB6

DB7

BLA

BLK

温湿度智能测控系统

底 4 位三态、 双向数据总线 5 位

底 4 位三态、 双向数据总线 6 位

高 4 位三态、双向数据总线

flag)

背光电源正极

背光电源负极

7 位(最高位)(也是 busy

4.2 AT89C52

4.2.1 主要性能参数

(1)与 MCS—51 产品指令和引脚完全兼容;

(2)8k 字节可重擦写 Flash 闪速存储器;

(3)1000 次擦写周期;

(4)全静态操作:0Hz—24MHz;

(5)三级加密程序存储器;

(6)256×8 字节内部 RAM;

(7)32 个可编程 I/O 口线;

(8)3 个 16 位定时/计数器;

(9)8 个中断源;

(10)可编程串行 UART 通道;

(11)低功耗空闲和掉电模式。

4.2.2 功能特性概述

AT89C52 提供以下标准功能:8k 字节 Flash 闪速存储器,256 字

节内部 RAM,32 个 I/O 口线,3 个 16 位定时/计数器,一个 6 向量两

级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,

AT89C52 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工

作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串

行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振 荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

(1)VCC:电源电压;

- 19 -

温湿度智能测控系统

(2)GND:接地;

(3)P0 口:是一组 8 位漏极开路型双向 I/O 口,也即地址/数据

总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL

逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。在访问

外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)

和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,

P0 口接收指令字节,而在程序校验时,输出指令字节。校验时,要求

外接上拉电阻。

(4)P1 口:是一个带内部上拉电阻的 8 位双向 I/O 口,P1 口的

输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口

写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低

时会输出一个电流(IIL)。与 AT89C51 不同之处是,P1.0 和 P1.1 还可

分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入

(P1.1/T2EX)参见表 4.6。

引脚号

P1.0

P1.1

表 4.6 P1.0 和 P1.1

的第二功能

功能特性

T2(定时/计数器 2 外部计数脉冲输入),时钟输出

T2EX(定时/计数器 2 捕获/重装载触发和方向控制)

(5)P2 口:是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的 输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2

写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口, 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低 时会输出一个电流。在访问外部程序存储器或 16 位地址的外部数据存 储器(例如执行 MOVX@DPTR 指令)时,P2 口送出高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行 MOVX@RI 指令)时,P2 口输出 P2 锁存器的内容。Flash 编程或校验时,P2 亦接收高位地址和 一些控制信号;

(6)P3 口:是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口

输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口

写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被

- 20 -

温湿度智能测控系统

外部拉低的 P3 口将用上拉电阻输出电流。P3 口除了作为一般的 I/O 口

外,更重要的用是它的第二功能,参见表 4.7。

- 21 -

温湿度智能测控系统

表 4.7 P3 口第二功能

端口引脚

P3.0

P3.1

P3.2

P3.3

P3.4

P3.5

P3.6

P3.7

RXD(串行输入口)

TXD(串行输出口)

INT0(外中断 0)

INT1(外中断 1)

T0(定时/计数器 0)

T1(定时/计数器 1)

WR(外部数据储存器写选通)

RD(外部数据储存器读选通)

第二功能

(7)RST:复位输入。当振荡器工作时,RST 引脚出现两个机器

周期以上高电平将使单片机复位。

(8)ALE/PROG:当访问外部程序存储器或数据存储器时,

ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情

况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可

对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储

器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚还用于

输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器 (SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位 后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚 会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。

(9)PSEN:程序储存允许(PSEN)输出是外部程序存储器的读

选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个

机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部

数据存储器,将跳过两次 PSEN 信号。

(10)EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储 器(地址为 0000H—0000H—FFFFH),EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如

EA 端为高电平(接 Vcc 端),CPU 则执行内部程序存储器中的指令。

Flash 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这 必须是该器件是使用 12V 编程电压 Vpp。

(11)XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。

- 22 -

温湿度智能测控系统

(12)XTAL2:振荡器反相放大器的输出端。

图 4.6 AT89C52 的框架图

4.2.3 特殊功能寄存器

在 AT89C52 片内存储器中,80H-FFH 共 128 个单元为特殊功能寄

存器(SFE),SFR 的地址空间映象如表 4-9 所示。并非所有的地址都

被定义,从 80H—FFH 共 128 个字节只有一部分被定义,还有相当一

部分没有定义。对没有定义的单元读写将是无效的,读出的数值将不

确定,而写入的数据也将丢失。不应将数据“1”写入未定义的单元,

由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复

- 23 -

温湿度智能测控系统

位后这些单元数值总是“0”。

表 4.8 AT89C52SFR 映像及复位状态

AT89C52 除了与 AT89C51 所有的定时/计数器 0 和定时/计数器 1

外,还增加了一个定时/计数器 2。定时/计数器 2 的控制和状态位位于

T2CON(见表 4-8),寄存器对(RCAO2H、RCAP2L)是定时器 2 在

16 位捕获方式或 16 位自动重装载方式下的捕获/自动重装载寄存器。

表 4.6 定时/计数器 2

控制寄存器 T2CON

T2CON 地址=0C8H 复位值=0000 0000B

TF2

7

符号

TF2

功 能

定时器 2 溢出标志位。必须软件清“0”。RCLK=1 或 TCLK=1 时,

TF2 不用置位。

EXF2

6

RCLK

5

TCLK

4

EXEN2

3

TR2

2

C/T2

1

CP/RL

0

- 24 -

EXF2

温湿度智能测控系统

定时器 2 外部标志位。EXEN2=1 时,T2EX 上的负跳变而出现捕捉或

重载时,EXF2 会被硬件置位。定时器 2 打开,EXF2=1 时,将引导

CPU 执行定时器 2 中断程序。EXF2 必须如见清“0”。在向下/向上技

术模式(DCEN=1)下 EXF2 不能引起中断。

串行口接收数据时钟标志位。若 RCLK=1,串行口将使用定时器 2 溢

出脉冲作为串行口工作模式 1 和 3 的串口接收时钟;RCLK=0,将使

用定时器 1 计数溢出作为串口接收时钟。

串行口发送数据时钟标志位。若 TCLK=1,串行口将使用定时器 2 溢

出脉冲作为串行口工作模式 1 和 3 的串口发送时钟;TCLK=0,将使

用定时器 1 计数溢出作为串口发送时钟。

定时器 2 外部允许标志位。当 EXEN2=1 时,如果定时器 2 没有用作

串行时钟,T2EX(P1.1)的负跳变见引起定时器 2 捕捉和重载。若

EXEN2=0,定时器 2 将视 T2EX 端的信号无效

开始/停止控制定时器 2。TR2=1,定时器 2 开始工作

定时器 2 定时/计数选择标志位。C/T2=0,定时;C/T2=1,外部事

件计数(下降沿触发)

捕捉/重载选择标志位。当 EXEN2=1 时,CP/RL2=1,T2EX 出现负

脉冲,会引起捕捉操作;当定时器 2 溢出或 EXEN2=1 时 T2EX 出现

负跳变,都会出现自动重载操作。CP/RL2=0 将引起 T2EX 的负脉冲

当 RCKL=1 或 TCKL=1 时,此标志位无效,定时器 2 溢出时,强制

做自动重载操作。

RCLK

TCLK

EXEN2

TR2

C/T2

CP/RL2

(1)中断寄存器

AT89C52 有 6 个中断源,2 个中断优先级,IE 寄存器控制各中断

位,IP 寄存器中 6 个中断源的每一个可定为 2 个优先级。

(2)定时器 2 寄存器

寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位(如表

4-8 所示),寄存器对 RCAP2H 和 RCAP2L 是定时器 2 的捕捉/自动重

载寄存器。

4.2.4 存储器结构

MCS-51 器件有单独的程序存储器和数据存储器。外部程序存储器

和数据存储器都可以 64K 寻址。

(1)程序存储器:如果 EA 引脚接地,程序读取只从外部存储器

开始。

- 25 -

温湿度智能测控系统

对于 89S52,如果 EA 接 VCC,程序读写先从内部存储器(地址

0000H~1FFFH)开始,接着从外部寻址,寻址地址为:

2000H~FFFFH。

(2)数据存储器:AT89C52 有 256 个字节的内部 RAM,80H-

FFH 高 128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是

高 128 字节的 RAM 和特殊功能寄存器的地址是相同的,但物理上它

们是分开的。当一条指令访问 7FH 以上的内部地址单元时,指令中使

用的寻址方式是不同的,也即寻址方式决定是访问高 128 字节 RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功 能寄存器。例如,下面的直接寻址指令访问特殊功能寄存器 0A0H(即

P2 口)地址单元:

MOV0A0H,#data

间接寻址指令访问高 128 字节 RAM,例如,下面的间接寻址指令

中,R0 的内容为 0A0H,则访问数据字节地址为 0A0H,而不是 P2 口

(0A0H)。

MOV@R0,#data

堆栈操作也是间接寻址方式,所以,高 128 位数据 RAM 亦可作

为堆栈区使用。

4.2.5 看门狗定时器

WDT 是一种需要软件控制的复位方式。WDT 由 13 位计数器和特

殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT

在默认情况下无法工作;为了激活 WDT,户用必须往 WDTRST 寄存

器(地址:0A6H)中依次写入 01EH 和 0E1H。当 WDT 激活后,晶振

工作,WDT 在每个机器周期都会增加。WDT 计时周期依赖于外部时

钟频率。除了复位(硬件复位或 WDT 溢出复位),没有办法停止

WDT 工作。当 WDT 溢出,它将驱动 RSR 引脚一个高个电平输出。

(1)WDT 的使用

为了激活 WDT,用户必须向 WDTRST 寄存器(地址为 0A6H 的

SFR)依次写入 0E1H 和 0E1H。当 WDT 激活后,用户必须向

WDTRST 写入 01EH 和 0E1H 喂狗来避免 WDT 溢出。当计数达到

8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正

- 26 -

温湿度智能测控系统

常工作、WDT 激活后,每一个机器周期 WDT 都会增加。为了复位

WDT,用户必须向 WDTRST 写入 01EH 和 0E1H(WDTRST 是只读寄

存器)。WDT 计数器不能读或写。当 WDT 计数器溢出时,将给 RST 引脚产生一个复位脉冲输出,这个复位脉冲持续 96 个晶振周(TOSC),

其中 TOSC=1/FOSC。为了很好地使用 WDT,应该在一定时间内周期 性写入那部分代码,以避免 WDT 复位。

(2)掉电和空闲方式下的 WDT

在掉电模式下,晶振停止工作,这意味这 WDT 也停止了工作。 在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件 复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用 户就应该给 WDT 喂狗,就如同通常 AT89S52 复位一样。通过中断退 出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使 得晶振 10

稳定。当中断拉高后,执行中断服务程序。为了防止 WDT 在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。 这就意味着 WDT 应该在中断服务程序中复位。为了确保在离开掉电 模式最初的几个状态 WDT 不被溢出,最好在进入掉电模式前就复位 WDT。在进入待机模式前,特殊寄存器 AUXR 的 WDIDLE 位用来决 定 WDT 是否继续计数。默认状态下,在待机模式下,

WDIDLE=0,WDT 继续计数。为了防止 WDT 在待机模式下复位

AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再

重新进入待机模式。

4.2.6 定时器 2

定时器 2 是一个 16 位定时/计数器。它既可当定时器使用,也可

作为外部事件计数器使用,其工作方式由特殊功能寄存器 T2CON 的

C/T2 位选择。定时器 2 有三种工作方式:捕获方式,自动重装载(向

上或向下计数)方式和波特率发生器方式,工作方式由 T2CON 的控

制位来选择,参见表 4.7。

RCLK+TCLK

0

0

- 27 -

表 4.7 定时器

2 工作方式

CP/RL2 TR2 MODE

0

1

1

1

16-bit Auto-rload

16-bit Cupture

1

X

X

X

温湿度智能测控系统

1 Baud rate generater

0 (Off)

定时器 2 由两个 8 位寄存器 TH2 和 TL2 组成,在定时器工作方式

中,每个机器周期 TL2 寄存器的值加 1,由于一个机器周期由 12 个振

荡时钟构成,因此,计数速率为振荡频率的 1/12。

在计数工作方式时,当 T2 引脚上外部输入信号产生由 1 至 0 的下

降沿时,寄存器的值加 1,在这种工作方式下,每个机器周期的 5SP2

期间,对外部输入进行采样。若在第一个机器周期中采到的值为 1,

而在下一个机器周期中采到的值为 0,则在紧跟着的下一个周期的

S3P1 期间寄存器加 1。由于识别 1 至 0 的跳变需要 2 个机器周期(24

个振荡周期),因此,最高计数速率为振荡频率的 1/24。为确保采样的

正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以

保证输入信号至少被采样一次。

(1)自动重载

当定时器 2 工作于 16 位自动重载模式,可对其编程实现向上计数

或向下计数。这一功能可以通过特殊寄存器 T2MOD(见表 4-10)中 的

DCEN(向下计数允许位)来实现。通过复位,DCEN 被置为 0,因 此,定时器 2 默认为向上计数。DCEN 设置后,定时器 2 就可以取决 于

T2EX 向上、向下计数。如图 6 所示,DCEN=0 时,定时器 2 自动 计数。通过 T2CON 中的 EXEN2 位可以选择两种方式。如果 EXEN2=0,定时器 2 计数,计到 0FFFFH 后置位 TF2 溢出标志。计数 溢出也使得定时器寄存器重新从 RCAP2H 和 RCAP2L 中加载 16 位值。 定时器工作于捕捉模式,RCAP2H 和 RCAP2L 的值可以由软件预设。 如果 EXEN2=1,计数溢出或在外部 T2EX(P1.1)引脚上的 1 到 0 的 下跳变都会触发 16

位重载。这个跳变也置位 EXF2 中断标志位。

(2)可编程时钟输出

定时器 2 可通过编程从 P1.0 输出一个占空比为 50%的时钟信号。

P1.0 引脚除了是一个标准的 I/O 口外,还可以通过编程使其作为定时/

计数器 2 的外部时钟输入和输出占空比 50%的时钟脉冲。当时钟振荡

频率为 16MHz 时,输出时钟频率范围为 61Hz—4MHz。当设置定时/

计数器 2 为时钟发生器时,C/T2(T2CON.1)

=0,T2OE(T2MOD.1)=1,必须由 TR2(T2CON.2)启动或停止定

- 28 -

温湿度智能测控系统

时器。时钟输出频率取决于振荡频率和定时器 2 捕获寄存器

(RCAP2H,RCAP2L)的重新装载值,公式如下:

振荡频率

输出时钟频率=

4 x[65536 (RCP 2 H , RCP 2 L)]

在时钟输出方式下,定时器 2 的翻转不会产生中断,这个特性与

作为波特率发生器使用时相仿。定时器 2 作为波特率发生器使用时,

还可作为时钟发生器使用,但需要注意的是波特率和时钟输出频率不

能分开确定,这是因为它们同使用 RCAP2L 和 RCAP2L。

4.2.7 中断

AT89C52 共有 6 个中断向量:两个外中断(INT0 和 INT1),3 个

定时器中断(定时器 0、1、2)和串行口中断。这些中断源可通过分

别设置专用寄存器 IE 的置位或清 0 来控制每一个中断的允许或禁止。

IE 也有一个总禁止位 EA,它能控制所有中断的允许或禁止。

定时器 2 的中断是由 T2CON 中的 TF2 和 EXF2 逻辑或产生的,

当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务

程序需确定是 TF2 或 EXF2 产生中断,而由软件清除中断标志位;定

时器 0 和定时器 1 的标志 TF0 和 TF1 在定时器溢出那个机器周期的

S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。

4.3 单片机最小系统的设计

4.3.1 复位电路设计

复位电路是单片机应用中重要的一环,它对单片机抗干扰有重要

作用。在振荡运行的情况下,要实现复位操作,必须使 RST 引脚至少

保持两个机器周期的高电平。复位期间不产生 ALE 及 PSEN 信号。单

片机的复位电路如图 4.7 所示。

- 29 -

温湿度智能测控系统

图 4.7 复位电路

4.3.2 时钟电路设计

AT89C52 单片机内部有个振荡器,可以用作 CPU 的时钟源。本系

统时钟选用内部方式。AT89C52 内部含有一个高增益的反相放大器,

通过 XTAL1(输入端)、XTAL2(输出端)外接作为反馈元件的片外

石英晶体(或陶瓷谐振器)和电容 C1,C2 组成的并联谐振电路后便

构成片内自激振荡器,从而利用它内部的振荡器产生时钟。连接方法

见图 4-9 所示,其中晶体呈感性,其决定着振荡器的振荡频率;电容

C1,C2 对频率有微调作用。电路中反馈元件选用石英晶体,电容 C1

和 C2 均为 30PF,电容与晶体的安装位置应尽量靠近单片机。

图 4.8 时钟电路

4.3.3 报警电路

本设计采用的是声光报警,设定报警的上下限值实现报警功能,

使用单片机的中断系统。

- 30 -

温湿度智能测控系统

根据单片机接收到的数据经过处理后与该参数设定的上下限进行

比较,高于上限值(或低于下限值)则进行报警,同时能进行正常的

显示。

报警电路中,以红色 LED 和蜂鸣器构成,在输入温湿度的上下限

后,系统会进行实时采样,并判断测试温湿度与输入温湿度之间的差

异,当检测出的温湿度在设定的温湿度上下限外就会报警,即红色

LED 亮,同时蜂鸣器响。报警电路如图 4-11 所示。

VCC

B1

+

VCC

VCC

R6

5.1K

P36

D4

。。。

Q1

NPN

R8

5.1K

R5

1K

P15

图 4.9 报警电路

4.3.4 键盘设定模块

本设计可以直接设定温湿度参数的上下限值,从而达到对温湿度

控制报警的功能。按设置键出现设置界面,按确定键选择需要设置的

数字,上下键设置需要限定的温湿度如图 4-12 所示。

上 上 /上 上

P33

上 上

S1

P23

S2

P22

S3

P21

S4

P20

D2

1N4148

D5

1N4148

D6

1N4148

D7

1N4148

上 上

上 上

图 4.10 键盘设定模块

- 31 -

温湿度智能测控系统

4.3.5 稳压电路

三端稳压集成电路 LM7805 来组成稳压电源所需的外围元件极少,

电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,

而且价格便宜。

本系统所有芯片都需要+5V 的工作电压,而干电池只能提供的电

压为 1.5V 的倍数的电压,并且随着使用时间的延长,其电压会逐渐

下。

本电路是一个输出正 5V 直流电压的稳压电源电路。IC 采用集成

稳压器 7805,电容分别为输入端和输出端滤波电容,R3 为负载电阻,

D1 为工作指示灯,POWER 为供电电源,电压范围 6-15V 直流。当输

出电较大时,7805 应配上散热板。稳压电路如图 4.11 所示。

POWER。。。。。。。。。。6-15 V 。。。

C2

10 4

C3

POWER

1

U2

IN

OUT

GND

2

C4

10 0UF

VCC

3

10 0UF

LM7 805

C5

10 4

R3

1K

D1

上 上 上 上 7805

图 4.11 稳压电路图

4.4 软件设计

整个系统的功能是由硬件电路配合软件程序来实现的,当硬件基

本定型的时候软件也基本定下拉了,从软件的功能不同,可以分为两

的类:一是主程序,它是整个软件的核心,专门用来协调各个执行模

块和操作者的联系。二是子程序,它是用来完成各种实质性的工作的,

如测量、计算、显示、通讯等。每一个执行软件就是一个小的执行模

块,这里将每一个模块一一列出来,并为每个执行模块进行功能定义

和接口定义。各执行模块规划好以后,就可以规划监控软件了。首先

要根据系统的总体功能选择一种最合适的主程序结构,然后根据实时

性的条件,合理安排监控软件和执行软件之间的调度关系。

- 32 -

。。。。。

温湿度智能测控系统

5 系统软件设计

本温湿度测试系统的软件包括主程序、中断子程序、显示子程序、

延时程序,其系统采集顺序是通过读写信号来控制 DHT90 通道启动。

1602 和 DHT90 的

初始化

延时 0.2s

读取温度湿度值

读取是否

成功

DHT90通信重启

线性拟合数据

1602 显示数据

延时 0.8s

图 5.1

- 33 -

温湿度智能测控系统

6 仿真与调试

6.1 仿真

根据设计的要求,编写单片机的程序。下图为程序的编译:

图 6.1 程序的编译

根据原理图,用 Proteus 进行仿真,因为本次设计所使用的传感器

DHT90,在 Proteus 元件库里面没有,所以使用有相同功能和技术特性

的 SHT10 来代替。

- 34 -

温湿度智能测控系统

图 6.2 仿真图

6.2 硬件调试

单片机应用系统的硬件和软件调试是交叉进行的,但通常是先排

除样机中明显的硬件故障,尤其是电源故障,才能安全地和仿真器相

连,进行综合调试。

焊完整个电路后,要立刻检查电路,看是否有错线、开路、短路;

以及元器件是否在焊接的过程中有损坏,因此,在设计过程中要明确

各元器件的工作条件,严格按照制作要求进行操作,损坏的元器件要

及时更换,以免损坏其他元件或影响电路功能的实现;最后是电源故

障,源必须单独调试好以后才能加到系统的各个部件中。本设计中就

出现电源故障,经过一个稳压电路才使其正常工作,在检查完电路,

确定没有错误后,进行整体测试,接上+5V 的电源,但是只是点亮了

1602 的背光,并没有显示字符,于是在网上查询相关的问题,分析各

种问题,我的问题主要是 1602 的亮度调节和 P0 口的上拉电阻。如果

- 35 -

温湿度智能测控系统

1602 的亮度没有调节好,就算正常工作,也看不见。上拉电阻则复杂

一些,单片机的 PO 口是与集电极开路的输出端相连结的,而集电极

开路的输出端只能输出低电平和高阻态,因此当我们要得到高电平时

就要接一个上拉电阻,把电位钳在高电平上。对电路进行了微调,去

掉 1602 第 3 脚上 10K 的滑动变阻器,直接换成 1K 的电阻;在 PO 口

接上 10K 的上拉电阻。

再进行测试,系统正常工作,在 1602 上有温度和湿度的数据,传

感器正常工作,系统调试完毕。

- 36 -

温湿度智能测控系统

总结

经过几个月的忙碌,这个温湿度智能测控仪的设计终于完成了。

回顾整个毕业设计,从开始的不了解,觉得很复杂,有传感器、单片

机和 1602,最麻烦的是还要编程序;到最后的完成,对各个模块都有

了更深认知。

本设计综合利用单片机技术、传感器技术、数字电子技术和 LCD

显示等科学知识,完成了单片机控制的温度、湿度和显示装置的设计,

比较系统地介绍了硬件的组成及设计方法并利用单片机 C 语言完成了

系统软件的设计。

1. 把传感器技术应用到单片机控制系统中,实现了对环境温度和

湿度的数据采集和读取。

2. 利用 LCD 液晶的显示技术完成了环境温度、湿度及显示电路

的设计。

3. 在本设计的基础上皆有继电器模块,可以外接调温调湿电器,

把功能扩展延伸为实现对环境温湿度的控制。

4. 整个系统软硬件搭配合理,设计、开发、维护方便,性价比高

由于采用的是高效单片机作为核心,集温度传感器和湿度传感器

于一体的 DHT90 作为主要的采集与测量系统,其中它自带的 A/D 转

换器,使得此温湿度控制仪具有精度高、成本低、体积小、接口简单

等优点,还具有良好抗干扰能力。加上优化程序,使得本系统具有很

高的实用性。

单片机的应用如今已经在工业、电子等方方面面展示出了它的优

越性,利用单片机在设计电路逐渐成了趋势,它与外围的简单电路再

加上优化程序就可以构建任意的产品,使得本设计成为现实。随着单

片机的日益发展,它必将在未来显示出更大的活力,为电子设计增加

更多精彩。

通过设计本系统,我学到了很多关于单片机,传感器和电路设计

方面的许多知识,将理论与实践相结合是一个很有难度的事情。在这

次实验中,我们不断地查找很多专业方面的知识和实验仪器设备,以

- 37 -

温湿度智能测控系统

及学术论文,学到了如何查阅科技论文,和很好的利用科技知识,将

知识和实际生活所需结合起来,使我们懂得学的东西有所用,有所长,

使我对模拟电路知识,multisim、protues、protel99se 等软件的应用都 有很大的提高。科学研究是一件很艰苦也是一件很有成就感的工作, 在这次实验中有很深的体会。以后要多加思考和动手,及时将所学的 知识由于实际的工作和学习中,让知识活起来,让脑子动起来,为将 来的工作学习打下坚实的基础。

在设计过程中,由于时间和本人能力的限制,设计中存在一些需

要改进和优化的地方。测量精度有待进一步提高,软件设计也存在不

合理之处。但从设计过程中,对于单片机有更进一步的认识,对用于

单片机仿真的软件操作能力也明显提高,通过此设计,本人受益颇丰。

- 38 -

温湿度智能测控系统

致谢

- 39 -

温湿度智能测控系统

参考文献

[1] 姜志海, 黄玉清, 刘连鑫. 单片机原理及应用(第 2 版)[M]. 电子工

业出版社, 2009.

[2] 童诗白, 华成英. 模拟电子技术基础[M]. 高等教育出版社, 2006. [3]

胡乾斌. 单片微型计算机原理与应用[M]. 华中科技大学出版社,

[4]

[5]

[6]

[7]

[8]

2007.

张洪润. 传感器应用设计 300 例(上册)[M]. 北京航空航天大学出版

社, 2008.

阎石. 数字电子技术基础(第 3 版)[M]. 高等教育出版社, 2006. 周立功. 单片机实验与实践[M]. 北京航空航天大学出版社, 2008. 谢自美. 电子线路设计*实验*测试[M]. 华中科技大学出版社, 2009. 黄智伟. 全国大学生电子设计竞赛训练教程[M]. 电子工业出版社, 2010.

- 40 -

温湿度智能测控系统

附件

程序如下:

#include

#include

#include

#include

#include "1602.h"

#include "sht10.h"

#define uchar unsigned char

#define uint unsigned int

#define KEY_CANCEL 0x08

#define KEY_UP 0x04

#define KEY_DOWN 0x02

#define KEY_ENTER 0x01

//uchar xdata key_lcd_val_tmp[12];//临时保存用户设置的数据,当用户

按 ENTER 键时写入相应寄存器

//uchar current_page=1;//记录当前正在显示的页面,初始状态显示第一

uchar is_setting_system = 0;//记录系统是否处于设置系统状态==1,默认

是显示页面状态==0

uint key_value = 0; //键值为零

uchar key_value_valid = 0;//系统可以处理新键值

uchar j;

sbit Beep =P3^6;

sbit LED_RED =P1^5;

sbit LED_GREEN=P1^4;

sbit KEY01=P2^0;

sbit KEY02=P2^1;

sbit KEY03=P2^2;

- 41 -

温湿度智能测控系统

sbit KEY04=P2^3;

void delay(uint);

void Init();

void delay_LCM(uint);

void initLCM( void);

//LCD 延时子程序

//LCD 初始化子程序

BusyC);

WDLCM);

Y,uchar DData);

void lcd_wait(void); //LCD 检测忙子程序

void WriteCommandLCM(uchar WCLCM,uchar

//写指令到 ICM 子函数

void WriteDataLCM(uchar

X,uchar

//写数据到 LCM 子函数

void DisplayOneChar(uchar

//显示指定坐标的一个字符子函数

void DisplayListChar(uchar X,uchar Y,uchar code *DData);

//显示指定坐标的一串字符子函数

void weishu1(float m);

void display(void);

void alarm(void);

void handle_key_lcd1602(void);//处理按键与 lcd1602 显示,while 循环

中直接使用

/**********main funcation************/

void main(void)

{

/*********************************/

uint temp,humi;

// uint Temp_CHA;

// float humi_val;

// float temp_val;

温度

// float dew_point;

//定义两个共同体,一个用于湿度,一个用于

//用于记录露点值

uchar error; //用于检验是否出现错误

uchar checksum;//CRC

bit temp_f;

- 42 -

温湿度智能测控系统

unsigned char HUMI,TEMP;

HUMI=0X01;

TEMP=0X02;

temp_f=1;

// uchar wendu[6];//用于记录温度

// uchar shidu[6];//用于记录湿度

/**********************************/

//delay(500); //系统延时 500ms 启动

//t=0; //采样值存储单元初始化为 0

initLCM( );

Init();

LED_GREEN=0;

Beep =1;

delay(1000);

Beep =0;

WriteCommandLCM(0x01,1);

DisplayListChar(0,0,str1);

//清显示屏

DisplayListChar(0,1,str2);

s_softreset();

//s_connectionreset(); //启动连接复位

while(1)

{

handle_key_lcd1602();

if( is_setting_system == 0 )

{

error=0; //初始化 error=0,即没有错误

error+=s_measure((unsigned char*)&temp_val.i,&checksum,TEMP); //温

度测量

error+=s_measure((unsigned char*)&humi_val.i,&checksum,HUMI); //湿

度测量

if(error!=0) s_connectionreset(); ////如果发生错误,系

统复位

- 43 -

温湿度智能测控系统

else

{

humi_val.f=(float)humi_val.i;

temp_val.f=(float)temp_val.i;

calc_sth10(&humi_val.f,&temp_val.f);

//

dew_point

temp=temp_val.f*10;

//转换为浮点数

//转换为浮点数

//修正相对湿度及温

//计算 e dew_point=calc_dewpoint(humi_val.f,temp_val.f);

humi=humi_val.f*10;

Temp_bai=temp/1000; //温度百位

Temp_shi=temp%1000/100; //温度十位

Temp_ge =temp%100/10; //温度个位

Temp_fen=temp%10; //温度小数点后第一位

Humi_bai=humi/1000; //湿度百位

Humi_shi=humi%1000/100; //湿度十位 Humi_ge

=humi%100/10; //湿度个位 Humi_fen=humi%10;

//湿度小数点后第一位 alarm();

if(( Temp_bai !=0) && ( Temp_bai !=1) )

{

temp=temp*-1.0+10.0;

Temp_shi=temp%1000/100; //温度十位

Temp_ge =temp%100/10; //温度个位

Temp_fen=temp%10; //温度小数点后第一位

/*

Temp_CHA=Temp_shi*100+Temp_ge*10+Temp_fen;

Temp_CHA=55.0-Temp_CHA;

Temp_shi=Temp_CHA/100;

Temp_ge =Temp_CHA%100/10;

Temp_fen=Temp_CHA%10;

*/

- 44 -

//温度十位

//温度个位

//温度小数点后第一位

温湿度智能测控系统

display0();

}

else

{

display1();

}

display2();

}

}

else

handle_key_lcd1602();

}

}

/***********************/

void Init()

{

//TMOD=0x11;

//TL1=0x3C;

//TH1=0xB0;

EA=1;

// ET1=1; //定时器 1 允许

IT1=1;

EX1=1; //外部中断 1 允许

// TR1=1; //定时器 1 运行

}

/*********延时 K*1ms,12.000mhz**********/

void delay(uint k)

{

uint i,j;

for(i=0;i

for(j=0;j<100;j++);

- 45 -