温湿度测量系统设计与实现 - 图文

更新时间:2023-09-25 12:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业论文

温湿度测量系统设计与实现

湿度测量系统设计与实现

目 录

摘 要 .................................................................................................................................................... I ABSTRACT ........................................................................................................................................ II 1 绪论 ................................................................................................................................................. 1

1.1 研究的意义 ..................................................................................................................... 1 1.2 国内外发展现状 .......................................................................................................... 1 1.3 设计的市场现状分析 ................................................................................................ 2 1.4 温湿度检测技术和存在的问题 .......................................................................... 3 1.5 设计内容和预期结果 ................................................................................................ 4

1.5.1 主要完成的任务 ...................................................................................................... 4 1.5.2 本文的设计思路 ...................................................................................................... 4 1.5.3 预期结果 .................................................................................................................... 5

2 温湿度测量系统方案设计 ................................................................................................. 6

2.1 系统总体设计 ................................................................................................................ 6 2.2 系统设计原则 ................................................................................................................ 7 2.3 系统方案的论证与选择 .......................................................................................... 7

2.3.1 主机MCU的选择 .................................................................................................. 7 2.3.2 显示选择 .................................................................................................................... 8 2.3.3 报警选择 .................................................................................................................... 9

3 硬件电路的设计 .................................................................................................................... 11

3.1 主机MCU模块 ......................................................................................................... 11

3.1.1 STC89C52简介 ..................................................................................................... 11 3.1.2 STC89C52主要特点 ............................................................................................ 11 3.1.3 STC89C52引脚功能 ............................................................................................ 12

3.2 复位电路设计 .............................................................................................................. 14 3.3 时钟电路设计 .............................................................................................................. 14 3.4 显示电路设计 .............................................................................................................. 15

湿度测量系统设计与实现

3.4.1 LCD12864特性 ..................................................................................................... 15 3.4.2 LCD12864管脚功能 ............................................................................................ 16 3.4.3 硬件电路设计 ........................................................................................................ 16

3.5 温湿度采集模块 ........................................................................................................ 17

3.5.1 温湿度传感器简介 ............................................................................................... 17 3.5.2 串行接口(单线双向) ...................................................................................... 17 3.5.3 引脚与接口 ............................................................................................................. 19

3.6 键盘模块 ........................................................................................................................ 20 3.7 报警模块 ........................................................................................................................ 21

3.7.1 蜂鸣器报警原理 .................................................................................................... 21 3.7.2 报警电路接口 ........................................................................................................ 21

3.8 小结 ................................................................................................................................... 22 4 系统软件设计.......................................................................................................................... 24

4.1 主程序设计 ................................................................................................................... 24 4.2 LCD12864显示模块程序设计 .......................................................................... 25 4.3 传感器模块程序设计 .............................................................................................. 25 4.4 键盘模块程序设计 ................................................................................................... 26 4.5 小结 ................................................................................................................................... 27 5 实物的制作过程及遇到的问题 .................................................................................... 28

5.1 实物制作过程 .............................................................................................................. 28

5.1.1 器件的检查与安装 ............................................................................................... 28 5.1.2 器件的焊接和调试 ............................................................................................... 29

5.2 硬件问题及解决办法 .............................................................................................. 30 5.3 软件所遇问题及解决方法 ................................................................................... 31 结 论 ................................................................................................................................................. 32 致 谢 ................................................................................................................................................. 33 参考文献 ............................................................................................................................................ 34

湿度测量系统设计与实现

附 录 ................................................................................................................................................. 35

附录一 程序原代码 ............................................................................................................ 35 附录二 原理图 ....................................................................................................................... 56 附录三 PCB ............................................................................................................................. 57 附录四 PROTEUS仿真图 .............................................................................................. 58

湿度测量系统设计与实现

温湿度测量系统设计与实现

摘 要

DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,传感器包括一个电阻式感湿元件和一个NTC测温元件,具有品质卓越、超快响应、抗干扰能力强、性价比极高等特点。本文主要介绍该传感器的特点,并采用STC89C52单片机,LCD12864液晶显示器,及一些元器件进行组合,从而完成对温湿度的检测。选用温湿度传感器DHT11检测环境温度和湿度,将其输出的数字信号输入单片机STC89C52,单片机采集数字信号并进行数据处理,然后由LCD12864进行显示,外加复位电路、时钟电路、键盘电路和报警电路。本系统整体设计具有界面友好、控制灵活、硬件系统集成度高、电路简单、功能强、性能可靠、成本低等特点。对我们的生活特别有帮助。

关键词 传感器/单片机/温湿度/检测

I

湿度测量系统设计与实现

Design and implementation of temperature and humidity

measurement system

ABSTRACT

DHT11 temperature and humidity digital sensor is a composite temperature and humidity sensor , it outputs the already calibrated digital signal ,the sensor includes a resistance type moisture element and a NTC temperature measuring element, with excellent quality, super fast response, strong anti-interference ability, extremely high performance-price ratio.This paper mainly introduces the characteristics of the sensors, and uses the STC89C52 singlechip, LCD12864 display, and some of the components are combined, so as to complete the detection of temperature and humidity. Choose DHT11 temperature and humidity sensors to detect temperature and humidity, the output of digital signal input microcontroller STC89C52 single-chip digital signal and data processing, and then by the LCD12864 display, plus the reset circuit, clock circuit, keyboard circuit and alarm circuit.The system design with friendly interface, flexible control, high hardware system integration, simple circuit, functional, reliable performance, low cost, etc. Particularly helpful to our life.

KEY WORDS Sensor,Microcontroller,Temperature and humidity,Detection

II

湿度测量系统设计与实现

1 绪论

1.1 研究的意义

温度和湿度是两个基本的环境参数。在我们的生活中,我们要时刻关心环境的变化,只有很好的把握好环境的差异变化,我们才能更好的生存与发展。比如说在一些养殖厂,牲畜的成长,和温湿度是离不开的,它们只有在适宜的环境下,在适宜的温度和湿度下,才能成长的更快,我们才能获取更大的效益。准确测量温湿度在生物药学、食品加工、造纸业等行业更是至关重要。总之,无论在日常生活中还是在工业、农业方面都离不开对周围环境温湿度的测量。因此,研究温湿度的控制和测量具有非常重要的意义。

由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人们可以利用计算机实现自动测量、信息处理和自动控制。传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此我们必须掌握各种传感器的结构、原理及其性能指标,通过对传感器实例的分析了解,才能将传感器和信息通信和信息处理结合起来,适应传感器的生产、研制和开发及应用。温湿度传感器发展速度快,应用领域也很广泛,并且还有很大发展潜力,为了提高对传感器的认识和了解,尤其是对温湿度传感器的深入研究,基于实时、准确和广泛的原则进行了设计[1、2]。

本文设计的是基于单片机STC89C52的温湿度检测和控制系统,主要以广泛应用的DHT11温湿度传感器作为温度和湿度数据的采集,该传感器具有测量精度高、硬件电路简单、数据传输方便,可测试不同环境温湿度的特点。另外和控制电路相连,可以进行阈值的控制,使温度和湿度参数在预先设定的范围内,不需要人的直接参与。

1.2 国内外发展现状

智能温度传感器在20世纪90年代中期问世。它是微电子技术、计算机技术和自动测试术的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智能温度传感器内部包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路。有的产品还带多路选择器、中央控制器随机存取存储器RAM和只读存储器ROM。智能温度传感器能输出温度数据及相关的温度控制量,适配各种微控制器并且可通过

1

湿度测量系统设计与实现

软件来实现测试功能,温度计也越来越智能化。

湿度传感器产品及湿度测量属于90年代兴起的行业。湿度传感器主要分为电阻式和电容式两种,产品的基本形式都是在基片上涂覆感湿材料形成感湿膜。 空气中的水蒸汽吸附在感湿材料上后,元件的阻抗、介质常数发生很大的变化从而制成湿敏元件。近年来,国内外在湿度传感器研发领域取得了较大的发展。湿敏传感器正从简单的湿敏元件向集成化、智能化、多参数检测的方向迅速发展。国内外各厂家的湿度传感器产品水平不一,质量价格都相差较大,用户如何选择性能价格比最优的理想产品确有一定难度,需要在这方面作深入的了解。现在国内市场上出现了不少国内外湿度传感器产品,电容式高分子聚合物,氯化锂和金属氧化物。

测量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开的。随着技术的进步和人们生活的需要出现了温湿度共测的传感器。温度传感器的发展经历了3个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、网络化的方向发展。温湿度传感器也是经历了这样一个阶段逐渐走向数字智能化。

温湿度检测系统在国内各行业的发展水平仍然不高,虽然应用已经十分广泛,但从国内生产的温湿度检测器来讲发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。

进入21世纪后,特别在我国加入WTO后,国内产品面临巨大挑战。各行业特别是传统产业都急切需要应用电子技术、自动控制技术进行改造和提高。例如纺织业,温湿度是影响纺织品质量的重要因素,但纺织企业对温湿度的控制手段仍很粗糙,十分落后,绝大多数仍然在使用干湿球温度计,采用人工观测,人工调节阀门、风机的方法,其控制效果可想而知。制药行业里也基本如此。在食品行业里,则基本上凭经验,很少有人使用温湿度传感器。

1.3 设计的市场现状分析

纵观市场,温湿度检测技术已经比较成熟,已有的各种温湿度检测产品,五花八门,如A2000家用温湿度报警表、YD-808A工业用温湿度显示器等产品。从功能上分析这些产品可以看出,一个比较完整的环境温湿度检测系统应该具备以下主要的三个功能:

(1)实时检测出环境中的温度和湿度参数;

2

湿度测量系统设计与实现

(2)检测的参数值显示在显示设备上(如数码管,液晶显示器等); (3)根据环境要求,设定温度湿度报警的上下限值,并实时报警;

因此,本设计也应该具备这些功能,并且对每一个部分进行优化设计,也可以扩展系统功能。

除了功能上的分析之外,再看这些产品还存在一个问题就是价格太高,不符合普通消费者的消费水平,如A2000家用温湿度报警表,售价300元左右。

综上所述,本设计设计出的环境温湿度检测系统,除了具备市场上已有产品的功能之外,还应该尽量降低制作价格。

1.4 温湿度检测技术和存在的问题

传统的温度和湿度检测系统主要有以下几种:

(1)水汽压(e):是水汽在大气总压力中的分压力。它表示了空气中水汽的绝对含量的大小,以毫巴为单位;

(2)相对湿度(rh):湿空气中实际水汽压e与同温度下饱和水汽压E的百分比,相对湿度的大小能直接表示空气距离饱和的相对程度。空气完全干燥时,相对湿度为零。相对湿度越小,表示当时空气越干燥。当相对湿度接近于100% 时,表示空气很潮湿,越接近于饱和;

(3)露点(或霜点)温度:指空气在水汽含量和气压都不改变的条件下,冷却到饱和时的温度;

(4)干湿球温度表:用一对并列装置的、形状完全相同的温度表,一支测气温,称干球温度表,另一支包有保持浸透蒸馏水的脱脂纱布,称湿球温度表; (5)发湿度表(计):利用脱脂人发(或牛的肠衣)具有空气潮湿时伸长,干燥时缩短的特性,制成毛发湿度表或湿度自记仪器,它的测湿精度较差,毛发湿度表通常在气温低于-10℃ 时使用;

(6)电阻式湿度片:利用吸湿膜片随湿度变化改变其电阻值的原理,常用的有碳膜湿敏电阻和氯化锂湿度片两种。前者用高分子聚合物和导电材料碳黑,加上粘合剂配成一定比例的胶状液体,涂覆到基片上组成的电阻片;后者是在基片上涂上一层氯化锂酒精溶液,当空气湿度变化时,氯化锂溶液浓度随之改变从而也改变了测湿膜片的电阻;

(7)薄膜湿敏电容:是以高分子聚合物为介质的电容器,因吸收(或释放)水

3

湿度测量系统设计与实现

汽而改变电容值。它制作精巧,性能优良,常用在探空仪和遥测中[3、4]。

随着智能检测系统的飞速发展,基于单片机的温湿度检测系统将多传感器系统结合在一起。如何把多传感器集中于一个检测控制系统,综合利用来自多传感器的信息,获得对被测对象的可靠了解和解释,以利于系统做出正确的响应、决策和控制,是智能检测控制系统中需要解决的首要问题。在温湿度要求严格的场合,利用多传感技术可以提高系统的可靠性和精度,亦可以提高系统的时间空间的覆盖范围。

1.5 设计内容和预期结果

1.5.1 主要完成的任务

本文主要完成的内容有:

(1)确定系统的总体功能设计方案; (2)完成总体设计方案原理图的绘制; (3)完成硬件电路的焊接及调试; (4)完成软件系统的设计及编译。

1.5.2 本文的设计思路

本文的设计目的是要对空气中的温度和湿度进行检测。系统的数据采集部分是温湿度传感器完成的,温湿度传感器将采集到的数据送入STC89C52单片机中,然后通过液晶显示器LCD1602进行显示,单片机将预设的参考值与测量值进行比较,根据比较结果作出判断,当温湿度值超过允许的误差范围,系统将发出报警声音。 (1)系统硬件设计

通过比较,选用STC89C52单片机来构造本系统。在设计过程当中,单片机的P0口用于液晶LCD1602显示,P2.0、P2.1、P2.2为独立式键盘接口,P3.5口接温湿度传感器DHT11,P1.4口连接蜂鸣报警器。 (2)系统模块设计

测控模块:检测所处环境的温湿度数据。显示模块:温度和湿度采用液晶显示,分两行显示使测量结果更直观,便于管理人员做出决策。报警模块:系统采用三极管驱动的蜂鸣音报警,当温湿度超过系统所设置的阈值时,蜂鸣器就会发生报警。键盘模块;键盘采用的是独立式键盘,可分别设置温度和湿度的上限值。

4

湿度测量系统设计与实现

1.5.3 预期结果

根据设计方案及思路,预测出现的设计结果,当系统完好的设计完后,连接所有的硬件设备,运行相应的软件设备。

软硬件连接完好,电路完善的情况下,肉眼能看到的是经过一系列的软硬件编译过的在LCD液晶显示器上显示的数字,当液晶显示器显示的温湿度值超过了预定的值时系统发出报警提示,当温湿度值没有超过预定的温湿度范围,测系统接收下一次的温湿度采集值。

5

湿度测量系统设计与实现

2 温湿度测量系统方案设计

2.1 系统总体设计

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

(1)实现对环境温湿度参数的实时采集,由单片机对数据进行循环检测、数据处

理、显示,实现温湿度的连续测量; (2)实现超限数据的及时报警;

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

(4)软件设计既要具有完成数据采集、处理的功能,其软件编程应具有功能强大

和执行速度快。 设计要达到的技术指标:

(1)测量范围:湿度20-90%RH,温度0-50℃; (2)测量精度:湿度±5%RH,温度±2℃; (3)分辨率:湿度1%RH,温度1℃。

该设计的总体方案是数据采集用的是DHT11温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器,传感器包括一个电阻式感湿元件和一个NTC测温元件,具有品质卓越、超快响应、抗干扰能力强、性价比极高等特点。单片机采用STC89C52,液晶显示采用LCD1602,报警采用蜂鸣器和发光二极管(声光报警),键盘使用独立键盘,外加复位电路和时钟电路。

温度湿度信号通过温湿度传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52进行数据的分析和处理,并在LCD1602上显示当前温湿度。外加复位电路、时钟电路、键盘电路和报警电路。系统程序主要包括数据采集程序、温温度阈值设置程序、报警程序及显示程序等。本设计可以通过键盘手动设置温度湿度的上、下限值,该设定值为系统阈值。温湿度传感器将检测到的值传输给单片机,通过分析比较,当检测数值超出阈值时,驱动蜂鸣器报警,以便管理人员及时切断电源,实现系统的保护。

用户交互模块主要由按键、12864点阵液晶、蜂鸣器和控制器构成。其中按键用于用户设定温湿度准确值,12864用于数据显示,蜂鸣器用于提示用户,控制器用于调节控制不符合要求的温、湿度。按照设计要求系统总体框图如图2-1所示。

6

湿度测量系统设计与实现

LCD晶振电路蜂鸣器主机CPU温湿度传感器指示灯按键

图2-1总体设计框图

2.2 系统设计原则

要求单片机系统应具有可靠性高、操作维护方便、性价比高等特点。设计原则有以下几个:

(1)可靠性高:可靠性是单片机系统应用的前提,在系统设计的每一个环节,都应该将可靠性作为首要的设计准则。提高系统的可靠性通常从以下几个方面考虑:使用可靠性高的元器件;设计电路板时布线和接地要合理;对供电电源采用抗干扰措施;输入输出通道抗干扰措施;进行软硬件滤波等。

(2)操作维护方便:在系统的软硬件设计时,应从操作者的角度考虑操作和维护方便,尽量减少对操作人员专业知识的要求,以利于系统的推广。因此在设计时,要尽可能减少人机交互接口,多采用操作内置或简化的方法。

(3)性价比高 :单片机除体积小、功耗低等特点外,最大的优势在于高性能价格比。一个单片机应用系统能否被广泛应用,性价比是其中一个关键因素。因此,在设计时,除了保持高性能外,尽可能降低成本,如简化外围硬件电路,在系统性能和速度允许的情况下尽可能用软件功能取代硬件功能等。

2.3 系统方案的论证与选择

2.3.1 主机MCU的选择

方案一:采用AT89C51单片机。AT89C51是一种带4K字节FLASH存储器

7

湿度测量系统设计与实现

(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案[5]。

AT89C51不支持ISP(在线更新程序)功能,且4个时钟周期完成一个指令周期,处理速度较慢,适用于要求时性不高的系统中。

方案二:采用STC89C52单片机,STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能: 8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外STC89C52 可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选[6、7]。

综合本系统需要满足的技术指标以及硬件设计的性价比我们选择方案二。

2.3.2 显示选择

方案一:数码管。数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。

(1)静态显示驱动

片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码

8

湿度测量系统设计与实现

管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 (2)动态显示驱动

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划\的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的[8]。

数码管亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定,从而得到了广泛的应用,但对于温湿度的显示不太方便,而且连线复杂。

方案二:采用12864液晶屏。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。12864具有轻薄短小、低压微功耗、体积小、无辐射、平面直角显示及影像稳定不闪烁等优点,且可视面积大、效果好、分辨率高、抗干扰能力强,适合用于显示字母、数字、符号等信息,而且不需要扩展过多外围电路,可由单片机直接进行控制输出显示。

相对而言,液晶显示器显示质量高、体积小、功耗低等特点,而且其电路设计简单,操作更加方便[9、10]。

综上所述,本设计选择方案二。

2.3.3 报警选择

方案一:采用语音芯片ISD1820。美国ISD公司于2001年最新推出一种单片8~20秒单段语音录放电路ISD1820,它的基本结构与ISD1110、1420完全相同,采用CMOS技术,内含振荡器,话筒前置放大,自动增益控制,防混淆滤波器,扬声器驱动及FLASH阵列。

9

湿度测量系统设计与实现

}

}

case 1:

write_byte((0X80|xpos),0);break; case 2:

write_byte((0X90|xpos),0);break; case 3:

write_byte((0X88|xpos),0);break; case 4:

write_byte((0X98|xpos),0);break; default:break;

/* 设置显示文字的位置--------------------------------------------------------------*/ void lcd_mesg_XY(unsigned char x,unsigned char y,char* str) {

unsigned char lcd_temp; set_xy(x,y); lcd_temp=*str;

while(lcd_temp != 0x00) {

write_byte(lcd_temp,1); lcd_temp=*(++str); } }

/* 设置显示文字的位置--------------------------------------------------------------------*/ /*void lcd_mesg(unsigned char code *adder1) {

unsigned char i;

write_byte(0x80,0); //设置上半部分的起始地址 delay_lcd(100);

40

湿度测量系统设计与实现

for(i=0;i<32;i++)

{

write_byte(*adder1,1); adder1++;

}

write_byte(0x90,0); //设置下半部分的起始地址 delay_lcd(100);

/* 设置显示数字的位置--------------------------------------------------------------*/ void lcd_num_XY(char* str,char L) {

unsigned char lcd_temp;

lcd_temp=str[L]; write_byte(lcd_temp,1); }

/* ---------显示字符用的--------------------------------------------------------------*/ void lcd_CH(char CH) {

write_byte(CH,1); }

41

for(i=16;i<64;i++)

{

write_byte(*adder1,1); adder1++;

}

} */

湿度测量系统设计与实现

/* 设置显示自定义图片--------------------------------------------------------------*/ void display_lcd(unsigned char code *adder) { }

void display() {

unsigned char i,j;

write_byte(0x34,0); //写数据时,关闭图形显示

42

int i,j;

//*******显示上半屏内容设置 for(i=0;i<32;i++) { }

//*******显示下半屏内容设置 for(i=0;i<32;i++) { }

write_byte((0x80+i),0); //SET 垂直地址 VERTICAL ADD write_byte(0x88,0); //SET 水平地址 HORIZONTAL ADD for(j=0;j<16;j++) { }

write_byte(*adder,1); adder++;

write_byte((0x80+i),0); //SET 垂直地址 VERTICAL ADD write_byte(0x80,0); //SET 水平地址 HORIZONTAL ADD for(j=0;j<16;j++) { }

write_byte(*adder,1); adder++;

//为反白做准备,目地是在图形显示时防止有噪点

湿度测量系统设计与实现

for(i=0;i<32;i++) {

write_byte(0x80+i,0); //先写入水平坐标值 write_byte(0x80,0); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 write_byte(0x00,1); delay_lcd(1); }

for(i=0;i<32;i++) {

write_byte(0x80+i,0); //先写入水平坐标值 write_byte(0x88,0); //写入垂直坐标值 for(j=0;j<16;j++) //再写入两个8位元的数据 write_byte(0x00,1); delay_lcd(1); }

write_byte(0x36,0); //写完数据,开图形显示 }

void white(unsigned char x,unsigned char y,unsigned char width) Y值为0-3,width为行反白格数 {

unsigned char i,j,flag=0x00; display(); if(y>1) {

flag=0x08; y=y-2; } for(i=0;i<16;i++)

{

43

//反白,X值为0-7,

湿度测量系统设计与实现

}

}

write_byte((0x80+(y<<4)+i),0); write_byte((0x80+flag+x),0); for(j=0;j

write_byte(0xff,1); write_byte(0xff,1); }

delay_lcd(1);

(3) 12864_LCD.h #ifndef __12864_LCD_H #define __12864_LCD_H

#include \

sbit RS = P2^7; sbit RW = P2^6; sbit E = P2^5; sbit PSB = P2^4; sbit RST = P2^3;

void init_lcd1(void); void init_lcd2(void); void init_lcd(void);

void write_byte(char dat,bit ret);

void delay_lcd(unsigned int m); //延时程序

void delays(unsigned int nn); //延时10×n毫秒程序 void set_xy(unsigned char xpos,unsigned char ypos); void lcd_num_XY(char* str,char L); void lcd_CH(char CH);

44

湿度测量系统设计与实现

DHT11接口图如图3-10所示。

单片机P3.5口用来发收串行数据,即数据口。连接传感器的Pin2(单总线,串行数据)[17]。

图3-10 DHT11接口图

传感器的第一脚是电源脚,接电路板的电源。第二脚是数据端,接单片机的I/O口P3.5,把数据传输到单片机。第三脚是空管脚,悬空。第四脚是接地端,接电路板的地。

3.6 键盘模块

键盘分为独立式键盘和矩阵式键盘。在本设计中由于按键不多,因此选用独立式键盘:

(1)总开关:主要控制硬件系统的开/关机;

(2)数字设置键:K3是模式选择键,按一次为开阈值和温度设置模式,按两次是湿度设置模式,按三下是关阈值。K2和K3只有在湿度和温度设置模式下才有效,分别为阈值增加和阈值减小。 键盘模块的电路图如图3-11所示。

图3-11 键盘模块电路图

20

湿度测量系统设计与实现

开关K3、K4、K5分别接单片机的I/O口P2.0、P2.1、P2.2。K3是模式选择键,按一次为开阈值和温度设置模式,按两次是湿度设置模式,按三下是关阈值。K4和K5分别为阈值增加和阈值减小。

3.7 报警模块

本系统采用蜂鸣器作为报警装置,蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示[18]。

3.7.1 蜂鸣器报警原理

本设计采用蜂鸣音报警电路,其工作过程就是把传感器采集的数据通过单片机处理后,与该参数上限给定值进行比较,如果高于上限值则进行报警。

蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机I/O口引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。所以才用一个三极管来放大驱动蜂鸣器。在本系统中峰鸣器报警接口电路的设计采用压电式蜂鸣器,通过STC89C52的1根I/O口线经驱动器驱动蜂鸣音发声。压电式蜂鸣器约需10mA的驱动电流,可以用一个晶体三极管驱动,P1.4接晶体管基极输入端。当P1.4输出高电平“0”时,晶体管导通,压电蜂鸣器两端获得约+5V电压而鸣叫;当P1.4输出低电平“1”时,三极管截止,蜂鸣器停止发声[19]。

3.7.2 报警电路接口

本设计采用峰鸣音报警电路。如图所示。蜂鸣器额定电流≤30Ma,而对于STC89C52单片机,P1.4口的灌电流为15mA,由此可见,仅靠单片机的P1.4口电流是不能驱动蜂鸣器的,必须使用晶体管放大电路,为了使单片机的功率更小,所以使用PNP型晶体管,当外部环境的温度或者湿度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫[20]。

报警系统由一个电阻,一个三极管和一个蜂鸣器组成,三极管用来放大电路中的

21

湿度测量系统设计与实现

电流,来驱动蜂鸣器发声。报警系统连接单片机的I/O口P1.4,当单片机检测到温度或者湿度超出所设置的阈值时,就会给P1.4置低电平0,这时三极管导通,蜂鸣器报警,如果没有超出阈值,P1.4置高电平1,三极管截止。报警模块的电路图如图3-11所示。实物图如图3-12所示。

图3-11 蜂鸣器报警

图3-12 蜂鸣器

3.8 小结

本系统设计主要有主控模块、显示模块、温湿度采集模块、键盘模块、报警模块、复位电路和时钟电路七大模块。其中主控模块STC89C52的晶振电路采用12MHz的无源晶振,微调电容大小取30pF。显示模块选用LCD12864字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一。温湿度采集模块所采用的DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字

22

湿度测量系统设计与实现

模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与稳定性;其单线制串行接口,使系统集成变得简易快捷。报警模块采用蜂鸣器,采用PNP型晶体管8550放大单片机I/O口的电流。系统的输入模块采用独立式键盘,操作简单,温湿度检测方便准确。该设计最终要实现的目标是,温湿度采集数据并传输到单片机,单片机经过数据处理在发送到液晶显示器显示,同时单片机会将采集到的数据同系统设置的阈值进行比较,如果超过阈值,蜂鸣器就会发出报警声,如果没有超出阈值,单片机就会继续采集温湿度数据。

键盘一共有三个键,开关K3、K4、K5分别接单片机的I/O口P2.0、P2.1、P2.2。K3是模式选择键,按一次为开阈值和温度设置模式,按两次是湿度设置模式,按三下是关阈值。K2和K3分别为阈值增加和阈值减小。显示器一共是四行显示,第一行显示的是温度,第二行显示的是湿度,第三行是显示温度报警值,第四行是显示湿度报警值。

本设计的最终实物如图3-13所示。

图3-13最终实物

23

湿度测量系统设计与实现

4 系统软件设计

4.1 主程序设计

本系统的整个程序流程是首先上电,系统各部分进行初始化,单片机初始化,液晶显示器初始化等。初始化完成后进行键盘扫描,然后再进行延时一段时间,供传感器采集数据,延时完成后就进行数据的采集并传输到单片机,单片机处理之后传输到液晶显示器,液晶显示器显示温湿度值。并且判断温度和湿度是否超出阈值,如果没有超过,就继续执行数据采集程序,如果有一个值超出阈值,则启动报警系统,蜂鸣器发出声音,温湿度检测结束。主程序流程图如图4-1所示。

开始初始化键盘扫描延时温湿度检测并传送数据回单片机12864数据显示NO温湿度是否超出阀值?YES报警系统启动结束

图4-1主程序流程图

24

湿度测量系统设计与实现

4.2 LCD12864显示模块程序设计

液晶显示模块是一个慢显示器件,在执行每条指令之前要确认模块的忙标志为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告诉模块在哪里显示了字符。12864液晶显示模块可与单片机接口直接连接,无需再加驱动。

LCD12864的显示数据过程是首先液晶初始化,初始化完成后执行延时程序,等待数据的采集,延时完成后LCD会先写入一些指令和显示字符的地址,在这完成后单片机会向LCD发送数据即写数据,数据发送完LCD就会读取写入的地址并显示出来,最后返回。软件流程图如图4-2所示。

开始LCD12864初始化取显示首地址延时写数据写LCD指令读数据并显示写显示行列地址返回

图4-2液晶显示模块程序流程图

4.3 传感器模块程序设计

根据传感器的通信协议,首先由单片机通过I/O口主动产生要求的激发信号,然后将数据线的控制权交给传感器,接着单片机通过while语句不间断的检查I/O口的高低电平,从而达到对时序的正确把握,解析出准确的传输数据。 DHT11传感器模块的软件流程图如图4-3所示。

25

湿度测量系统设计与实现

开始从机80us低电平是否NO结束?P3.5输出低电平YES延迟18ms从机80us高电平是否NO结束?YESP3.5输出高电平单片机进行数据接收延迟40ms将数据按十进制数位存入数组读P3.5引脚判断是否为低电平?NO结束并保持YES

图4-3 DHT11传感器模块的软件流程图

传感器模块负责温湿度数据源的采集,首先数据口连接端P3.5输出低电平,延时18ms之后P3.5输出高电平,延时40ms之后,读P3.5引脚是否为低电平,如果不是低电平就继续读,如果是低电平就执行判断从机80μs高电平是否结束,如果没有结束就继续判断,如果结束就进行单片机数据接收,将接收到的数据按十进制数位存入指定的数组中,数据采集结束并保持数据采集持续进行。

4.4 键盘模块程序设计

键盘模块是用来设置系统阈值的,首先通过模式选择键开阈值并选择温度和湿度的设置,加一键和减一键是对温度和湿度的设置。第一次按模式键然后经过延时可以

26

湿度测量系统设计与实现

开阈值和进行温度的设置,第二次按模式键并延时是湿度的设置,第三次按模式键是关阈值。

键盘模块软件流程图如图4-4所示。

开始模式选择延时温湿度阀值设置关闭阀值设置模式

图4-4键盘模块软件流程图

4.5 小结

本系统的软件设计采用了C语言编程,只需对温度和湿度进行相应的采集处理后,即可让液晶实时显示当前的温度与湿度值。报警模块只需接上单片机的I/O 口,并对其接口线进行编程方可,当温度与湿度超过阈值时报警模块就会报警。这样就可以完成环境中温湿度的检测。

本设计在完成硬件电路设计并焊接好电路硬件的基础上,通过串口模块将软件代码下载至STC89C52单片机中完成系统集成。由于采用了STC89C52单片机,性能可靠、电路简单,系统中还可充分利用STC89C52中先进的软件硬件资源,便于软件系统的升级,操作方便。

27

湿度测量系统设计与实现

5 实物的制作过程及遇到的问题

5.1实物制作过程

5.1.1 器件的检查与安装。

器件的检查对整个电路的功能实现有着一定的重要作用,如果器件有所损坏,当实物制作完成,然而却无法实现功能,这样就无法得知是软件还是硬件的问题,因此在器件的安装之前我们要对器件进行检测,确保器件的完好,经检测本设计所用器件均正常。本设计器件检测工具及所用器件分别如图5-1和5-2所示。

图5-1检测工具

图5-2设计所用元器件

28

湿度测量系统设计与实现

器件安装如图5-3所示。

图5-3 器件安装

5.1.2 器件的焊接和调试

器件的焊接有着一定的重要性,如果焊接不当可能会把器件给烧毁,每个器件都有这自己的耐温值,如果长时间超过限定的温度值,器件就会损坏。这样将对设计造成不必要的麻烦。因此在焊接的时候一定要把握时间,避免这种情况的发生。在这里调试主要是指软件的调试。电路焊接及调试如图5-4和5-5所示。

图5-4器件焊接

29

本文来源:https://www.bwwdw.com/article/bnnd.html

Top