当前位置:首页 >> 信息与通信 >>

基于DHT11的温湿度控制系统设计


本科毕业设计(论文)
题目: 基于 DHT11 的温湿度检测系统设计

基于 DHT11 的温湿度检测系统设计

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

功能强、性能可靠、成本低等特点。对我们的生活特别有帮助。 关键词: DHT11;单片机;温湿度;检测。

II

Design a System of Temperature and Humidity Detection Based on the DHT11

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.Temperature and humidity is the most basic parameters of environment,temperature and humidity detection is of great significance. This paper mainly introduces the characteristics of the sensors, and uses the STC89C52 singlechip, LCD1602 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 LCD1602 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:DHT11; microcontroller; temperature and humidity ; detection.

III

目录
中文摘要 ................................................ 1 Abstract ................................................ 2 1 绪论 .................................................. 1
1.1 研究的意义 .................................................. 1 1.2 国内外发展现状 .............................................. 1 1.3 设计的市场现状分析 .......................................... 2 1.4 温湿度检测技术和存在的问题 .................................. 2 1.5 设计内容和预期结果 .......................................... 3 1.5.1 主要完成内容........................................... 3 1.5.2 本文的设计思路......................................... 3 1.5.3 预期结果............................................... 4

2 温湿度测量系统方案设计 ................................. 5
2.1 系统总体设计................................................. 5 2.2 系统设计原则 ................................................ 5 2.3 系统方案的论证与选择 ........................................ 6 2.3.1 单片机的选择........................................... 6 2.3.2 显示器的选择........................................... 7 2.3.3 报警系统的选择......................................... 8

3 系统硬件设计 .......................................... 9
3.1 主控模块..................................................... 9 3.1.1 STC89C52 的简介 ........................................ 9 3.1.2 STC89C52 的主要特点 .................................... 9 3.1.3 STC89C52 的引脚功能 .................................... 9 3.1.4 STC89C52 的控制接口 ................................... 11
IV

3.2 复位电路 ................................................... 11 3.3 时钟电路 ................................................... 12 3.4 显示模块 ................................................... 13 3.4.1 LCD1602 简介 .......................................... 13 3.4.2 LCD1602 特性 .......................................... 13 3.4.3 LCD1602 管脚功能...................................... 13 3.4.4 LCD1602 字符集 ........................................ 14 3.4.5 LCD1602 与单片机的接口 ................................ 14 3.5 温湿度采集模块.............................................. 15 3.5.1 温湿度传感器简介...................................... 15 3.5.2 串行接口(单线双向).................................. 16 3.5.3 引脚与接口............................................ 18 3.6 键盘模块 ................................................... 18 3.7 报警模块 ................................................... 19 3.7.1 蜂鸣器报警原理........................................ 19 3.7.2 报警电路接口.......................................... 20 3.8 串口通信模块 ............................................... 20 3.8.1 RS-232C 简介 .......................................... 20 3.8.2 MAX232 简介 ........................................... 21 3.9 小结........................................................ 22

4 系统软件设计 ......................................... 24
4.1 主程序模块程序设计 ......................................... 24 4.2 1602 液晶显示模块程序设计................................... 25 4.3 传感器模块程序设计 ......................................... 26 4.4 键盘模块设计 ............................................... 27
V

4.5 小结 ....................................................... 28

5 设计中遇到的问题及解决方法 ............................ 29
5.1 硬件问题及解决方法 ......................................... 29 5.2 软件所遇问题及解决方法 ..................................... 29

6 结论 ................................................. 30 参考文献 ............................................... 31 致 谢 ................................. 错误!未定义书签。

毕业设计(论文)知识产权声明 ............................ 33 毕业设计(论文)独创性声明 .............................. 35 附录 ................................................... 36
附录 1 硬件原理图............................................... 36 附录 2 程序.................................................... 377

VI

1 绪论

1

绪论

1.1 研究的意义
温度和湿度是两个基本的环境参数。在我们的生活中,我们要时刻关心环境 的变化,只有很好的把握好环境的差异变化,我们才能更好的生存与发展。比如 说在一些养殖厂, 牲畜的成长, 和温湿度是离不开的, 它们只有在适宜的环境下, 在适宜的温度和湿度下,才能成长的更快,我们才能获取更大的效益。准确测量 温湿度在生物药学、食品加工、造纸业等行业更是至关重要。总之,无论在日常 生活中还是在工业、农业方面都离不开对周围环境温湿度的测量。因此,研究温 湿度的控制和测量具有非常重要的意义。 由于传感器能将各种物理量、化学量和生物量等信号转变为电信号,使得人 们可以利用计算机实现自动测量、信息处理和自动控制。传感器主要用于测量和 控制系统, 它的性能好坏直接影响系统的性能。因此我们必须掌握各种传感器的 结构、原理及其性能指标,通过对传感器实例的分析了解,才能将传感器和信息 通信和信息处理结合起来,适应传感器的生产、研制和开发及应用。温湿度传感 器发展速度快,应用领域也很广泛,并且还有很大发展潜力,为了提高对传感器 的认识和了解,尤其是对温湿度传感器的深入研究,基于实时、准确和广泛的原 则进行了设计[1、2]。 本文设计的是基于单片机 STC89C52 的温湿度检测和控制系统, 主要以广泛 应用的 DHT11 温湿度传感器作为温度和湿度数据的采集,该传感器具有测量精 度高、硬件电路简单、数据传输方便,可测试不同环境温湿度的特点。另外和控 制电路相连,可以进行阈值的控制,使温度和湿度参数在预先设定的范围内,不 需要人的直接参与。本系统还通过 RS-232 和上位机相连,可以直接下载程序。

1.2 国内外发展现状
智能温度传感器在 20 世纪 90 年代中期问世。它是微电子技术、计算机技术 和自动测试术的结晶。目前,国际上已开发出多种智能温度传感器系列产品。智 能温度传感器内部包含温度传感器、A/D 转换器、信号处理器、存储器(或寄存 器)和接口电路。有的产品还带多路选择器、中央控制器随机存取存储器 RAM 和只读存储器 ROM。智能温度传感器能输出温度数据及相关的温度控制量,适配 各种微控制器并且可通过软件来实现测试功能,温度计也越来越智能化[3、4]。 湿度传感器产品及湿度测量属于 90 年代兴起的行业。湿度传感器主要分为 电阻式和电容式两种,产品的基本形式都是在基片上涂覆感湿材料形成感湿膜。 空气中的水蒸汽吸附在感湿材料上后,元件的阻抗、介质常数发生很大的变化,

1

西安工业大学毕业设计(论文)

从而制成湿敏元件。近年来,国内外在湿度传感器研发领域取得了较大的发展。 湿敏传感器正从简单的湿敏元件向集成化、 智能化、 多参数检测的方向迅速发展。 国内外各厂家的湿度传感器产品水平不一,质量价格都相差较大,用户如何选择 性能价格比最优的理想产品确有一定难度,需要在这方面作深入的了解。现在国 内市场上出现了不少国内外湿度传感器产品,电容式高分子聚合物,氯化锂和金 属氧化物。 测量温湿度的关键是温湿度传感器。过去测量温度与湿度是分开的。随着技 术的进步和人们生活的需要出现了温湿度共测的传感器。 温度传感器的发展经历 了 3 个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传 感器。目前,国际上新型温度传感器正从模拟式向数字式、从集成化向智能化、 网络化的方向发展。 温湿度传感器也是经历了这样一个阶段逐渐走向数字智能化
[5]



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

1.3 设计的市场现状分析
纵观市场,温湿度检测技术已经比较成熟,已有的各种温湿度检测产品,五 花八门, 如 A2000 家用温湿度报警表、 YD-808A 工业用温湿度显示器等产品。 从 功能上分析这些产品可以看出, 一个比较完整的环境温湿度检测系统应该具备以 下主要的三个功能: (1)实时检测出环境中的温度和湿度参数; (2)检测的参数值显示在显示设备上(如数码管,液晶显示器等) ; (3)根据环境要求,设定温度湿度报警的上下限值,并实时报警。 因此,本设计也应该具备这些功能,并且对每一个部分进行优化设计,也可 以扩展系统功能。 除了功能上的分析之外, 再看这些产品还存在一个问题就是价格太高,不符 合普通消费者的消费水平,如 A2000 家用温湿度报警表,售价 300 元左右。 综上所述, 本设计设计出的环境温湿度检测系统,除了具备市场上已有产品 的功能之外,还应该尽量降低制作价格[6]。

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

西安工业大学毕业设计(论文)

传统的温度和湿度检测系统主要有以下几种: (1)水汽压(e) :是水汽在大气总压力中的分压力。它表示了空气中水汽的 绝对含量的大小,以毫巴为单位; (2)相对湿度(rh) :湿空气中实际水汽压 e 与同温度下饱和水汽压 E 的百 分比,相对湿度的大小能直接表示空气距离饱和的相对程度。空气完全干燥时, 相对湿度为零。相对湿度越小,表示当时空气越干燥。当相对湿度接近于 100% 时,表示空气很潮湿,越接近于饱和; (3)露点(或霜点)温度:指空气在水汽含量和气压都不改变的条件下,冷 却到饱和时的温度; (4)干湿球温度表:用一对并列装置的、形状完全相同的温度表,一支测气 温,称干球温度表,另一支包有保持浸透蒸馏水的脱脂纱布,称湿球温度表; (5)发湿度表(计) :利用脱脂人发(或牛的肠衣)具有空气潮湿时伸长, 干燥时缩短的特性,制成毛发湿度表或湿度自记仪器,它的测湿精度较差,毛发 湿度表通常在气温低于-10℃时使用; (6)电阻式湿度片:利用吸湿膜片随湿度变化改变其电阻值的原理,常用的 有碳膜湿敏电阻和氯化锂湿度片两种。前者用高分子聚合物和导电材料碳黑,加 上粘合剂配成一定比例的胶状液体,涂覆到基片上组成的电阻片;后者是在基片 上涂上一层氯化锂酒精溶液, 当空气湿度变化时,氯化锂溶液浓度随之改变从而 也改变了测湿膜片的电阻; (7)薄膜湿敏电容:是以高分子聚合物为介质的电容器,因吸收(或释放) 水汽而改变电容值。它制作精巧,性能优良,常用在探空仪和遥测中。 随着智能检测系统的飞速发展, 基于单片机的温湿度检测系统将多传感器系 统结合在一起。 如何把多传感器集中于一个检测控制系统,综合利用来自多传感 器的信息,获得对被测对象的可靠了解和解释,以利于系统做出正确的响应、决 策和控制, 是智能检测控制系统中需要解决的首要问题。在温湿度要求严格的场 合, 利用多传感技术可以提高系统的可靠性和精度,亦可以提高系统的时间空间 的覆盖范围[7、8]。

1.5 设计内容和预期结果
1.5.1 主要完成内容 本文主要完成的内容有: (1) 确定系统的总体功能设计方案; (2) 完成总体设计方案原理图的绘制; (3) 完成硬件电路的焊接及调试; (4) 完成软件系统的设计及编译。 1.5.2 本文的设计思路
3

西安工业大学毕业设计(论文)

本文的设计目的是要对空气中的温度和湿度进行检测。系统的数据采集部 分是温湿度传感器完成的,温湿度传感器将采集到的数据送入 STC89C52 单片 机中,然后通过液晶显示器 LCD1602 进行显示,单片机将预设的参考值与测量 值进行比较,根据比较结果作出判断,当温湿度值超过允许的误差范围,系统 将发出报警声音。 (1)系统硬件设计 通过比较,选用 STC89C52 单片机来构造本系统。在设计过程当中,单片 机的 P0 口用于液晶 LCD1602 显示, P3.4、P3.5、P3.6 为独立式键盘接口,P3 口接温湿度传感器 DHT11,P1 口连接蜂鸣报警器。 (2)系统模块设计 测控模块:检测所处环境的温湿度数据。显示模块:温度和湿度采用液晶显 示,分两行显示使测量结果更直观,便于管理人员做出决策。报警模块:系统采 用三极管驱动的蜂鸣音报警, 当温湿度超过系统所设置的阈值时,蜂鸣器就会发 生报警。 键盘模块; 键盘采用的是独立式键盘, 可分别设置温度和湿度的上限值。 1.5.3 预期结果 根据设计方案及思路,预测出现的设计结果,当系统完好的设计完后,连接 所有的硬件设备,运行相应的软件设备。 软硬件连接完好, 电路完善的情况下,肉眼能看到的是经过一系列的软硬件 编译过的在 LCD 液晶显示器上显示的数字, 当液晶显示器显示的温湿度值超过了 预定的值时系统发出报警提示, 当温湿度值没有超过预定的温湿度范围,测系统 接收下一次的温湿度采集值。

4

2

温湿度测量系统方案设计

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 上显示当前温湿度。 外加复位电路、时钟电路、键盘电路和报警电路。系统程序主要包括数据采集 程序、温温度阈值设置程序、报警程序及显示程序等。本设计可以通过键盘手 动设置温度湿度的上、下限值,该设定值为系统阈值。温湿度传感器将检测到 的值传输给单片机,通过分析比较,当检测数值超出阈值时,驱动蜂鸣器报警, 以便管理人员及时切断电源,实现系统的保护。系统硬件原理图如图 2.1 所示。

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

西安工业大学毕业设计(论文)

供电系统

时钟电路

数据采集系统

键盘电路

单 片 机

显示系统

复位电路

报警电路

图 2.1 硬件原理图

(2)操作维护方便 在系统的软硬件设计时,应从操作者的角度考虑操作和 维护方便,尽量减少对操作人员专业知识的要求,以利于系统的推广。因此在设 计时,要尽可能减少人机交互接口,多采用操作内置或简化的方法。 (3)性价比高 单片机除体积小、功耗低等特点外,最大的优势在于高性能 价格比。一个单片机应用系统能否被广泛应用,性价比是其中一个关键因素。因 此,在设计时,除了保持高性能外,尽可能降低成本,如简化外围硬件电路,在 系统性能和速度允许的情况下尽可能用软件功能取代硬件功能等。

2.3 系统方案的论证与选择
2.3.1 单片机的选择 方案一:采用 AT89C51 单片机。AT89C51 是一种带 4K 字节 FLASH 存储器 (FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、 高性能 CMOS 8 位微处理器,俗称单片机。AT89C51 是一种带 2K 字节闪存可编程 可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除 1000 次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指 令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C51 [9] 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 。 AT89C51 不支持 ISP(在线更新程序)功能,且 4 个时钟周期完成一个指令 周期,处理速度较慢,适用于要求时性不高的系统中。 方案二:采用 STC89C52 单片机,STC89C52 是 STC 公司生产的一种低功耗、
6

西安工业大学毕业设计(论文)

高性能 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 可选[10、11]。 综合本系统需要满足的技术指标以及硬件设计的性价比我们选择方案二。 2.3.2 显示器的选择 方案一:数码管。数码管要正常显示,就要用驱动电路来驱动数码管的各个 段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为 静态式和动态式两类。 (1)静态显示驱动 静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码都由一个单 片机的 I/O 端口进行驱动,或者使用如 BCD 码二-十进制译码器译码进行驱动。 静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O 端口多,如驱动 5 个数码管静态显示则需要 5×8=40 根 I/O 端口来驱动, 要知道一个 89S51 单片机 可用的 I/O 端口才 32 个呢: ) ,实际应用时必须增加译码驱动器进行驱动,增加 了硬件电路的复杂性。 (2)动态显示驱动 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一, 动态驱 动是将所有数码管的 8 个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起, 另外 为每个数码管的公共极 COM 增加位选通控制电路, 位选通由各自独立的 I/O 线控 制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是哪个 数码管会显示出字形, 取决于单片机对位选通 COM 端电路的控制,所以我们只要 将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就 不会亮。 通过分时轮流控制各个数码管的的 COM 端,就使各个数码管轮流受控显 示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为 1~2ms, 由于人的视觉暂留现象及发光二极管的余辉效应, 尽管实际上各位数码管并非同 时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会 有闪烁感,动态显示的效果和静态显示是一样的。 数码管亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定, 从而得到了广泛的应用,但对于温湿度的显示不太方便,而且连线复杂[12]。
7

西安工业大学毕业设计(论文)

方案二:采用 1602 液晶屏。液晶显示的原理是利用液晶的物理特性,通过 电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。1602 具 有轻薄短小、低压微功耗、体积小、无辐射、平面直角显示及影像稳定不闪烁等 优点,且可视面积大、效果好、分辨率高、抗干扰能力强,适合用于显示字母、 数字、符号等信息,而且不需要扩展过多外围电路,可由单片机直接进行控制输 出显示[13、14]。 相对而言,液晶显示器显示质量高、体积小、功耗低等特点,而且其电路设 计简单,操作更加方便。因此我们选择方案二。 2.3.3 报警系统的选择 方案一:采用语音芯片 ISD1820。美国 ISD 公司于 2001 年最新推出一种单 片 8~20 秒单段语音录放电路 ISD1820,它的基本结构与 ISD1110、1420 完全相 同,采用 CMOS 技术,内含振荡器,话筒前置放大,自动增益控制,防混淆滤波 器,扬声器驱动及 FLASH 阵列。 ISD1820 的地址模式必须要精确计算录音时间与地址单元的换算,才能确定 每段语音的起始地址, 除非使用 ISD 公司生产的 ISD1425 高级语音编程拷贝机进 行自动分段录音并将地址读出, 否则使用起来还是很麻烦的。而操作模式虽然可 以不用担心语音地址的问题, 但在多段录放上的操作略显繁琐,完成一个功能要 进行多个管脚的操作, 使用起来不是很方便。 而且 ISD1820 价格昂贵, 货源稀缺, 虽功能强大,但不是最佳选择。 方案二:采用压电式蜂鸣器。压电式蜂鸣器是一种电声转换器件。将压电材 料粘贴在金属片上, 当压电材料和金属片两端施加上一个电压后, 因为压电效应, 蜂鸣片就会产生机械变形而发出声响。压电材料有多种,用在蜂鸣片上的压电材 料通常是高压极化后的压电陶瓷片。蜂鸣器是一种一体化结构的电子讯响器,采 用直流电压供电,广泛应用于计算机、报警器、电子玩具、汽车电子设备、定时 器等电子产品中作发声器件。压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻 抗匹配器及共鸣箱、外壳等组成,有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成,当接通电源后(1.5-15V 直流工作电压) 多谐振荡器起振输出 1.5-2.5kHZ 的音频信号, 阻抗匹配器推动压电蜂鸣片发声。 因此该产品电路设计简单,操作更加方便,而且具有很高的性价比[15]。 综上所述,本设计选择方案二作为本系统的报警模块。

8

3 系统硬件设计

3

系统硬件设计

本设计的硬件系统主要由主控模块、显示模块、温湿度采集模块、串口通信 模块、键盘模块、报警模块、时钟电路和复位电路组成。

3.1 主控模块
本系统主控模块采用 STC89C52 单片机作为控制核心,通过 DHT11 温湿度传 感器专用的数字模块采集技术和温湿度传感技术, 把采集到的温湿度数字信号通 过单片机的处理输出到 LCD1602 显示器,以显示其温湿度值。本设计可以手动设 置温度和湿度的上、下限值,只要有一样超出设置的阈值时,即温度或者湿度过 高,则该系统的报警系统就会启动,就会发出蜂鸣报警。 3.1.1 STC89C52 的简介 STC89C52 是 STC 公司生产的一种低功耗、 高性能 CMOS8 位微控制器, 具有 8K 在系统可编程 Flash 存储器。STC89C52 使用经典的 MCS-51 内核,但做了很多的 改进使得芯片具有传统 51 单片机不具备的功能。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程 Flash,使得 STC89C52 为众多嵌入式控制应用系统提供高 灵活、超有效的解决方案[16]。 3.1.2 STC89C52 的主要特点 STC89C52 的主要特点有: (1) 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任意 选择,指令代码完全兼容传统 8051; (2) 工作电压:5.5V~3.3V(5V 单片机)/3.8V~2.0V(3V 单片机) ; (3) 工作频率范围: 0~40MHz, 相当于普通 8051 的 0~80MHz, 实际工作 频 率可达 48MHz; (4) 用户应用程序空间为 8K 字节; (5) 片上集成 512 字节 RAM; (6) 通用 I/O 口(32 个) ,复位后为:P0/P1/P2/P3 是准双向口/弱上拉, P0 口是漏极开路输出, 作为总线扩展用时, 不用加上拉电阻, 作为 I/O 口用时, 需加上拉电阻; (7) ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无需专 用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完 成一片; (8) 具有 EEPROM 功能; (9) 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2;
9

西安工业大学毕业设计(论文)

(10) 外部中断 4 路, 下降沿中断或低电平触发电路, Power Down 模式可 由 外部中断低电平触发中断方式唤醒; (11) 通用异步串行口(UART) ,还可用定时器软件实现多个 UART; (12) 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) ; (13) PDIP 封装。 3.1.3 STC89C52 的引脚功能 单片机 STC89C52 的管脚图如图 3.1 所示。

图 3.1 STC89C52 引脚图

STC89C52RC 引脚功能说明: VCC(40 引脚) :接电源。 VSS(20 引脚) :接地。 P0 端口(P0.0~P0.7,39~32 引脚) :P0 口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入“1”时,可 以作为高阻抗输入。在访问外部程序和数据存储器时,P0 口也可以提供低 8 位 地址和 8 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM 编 程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要 求外接上拉电阻。 P1 端口(P1.0~P1.7,1~8 引脚) :P1 口是一个带内部上拉电阻的 8 位双 向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对 端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P1 口作输入口使用时, 因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电 流。 此外, P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入 (P1.0/T2)

10

西安工业大学毕业设计(论文)

和定时器/计数器 2 的触发输入(P1.1/T2EX) 。 P2 端口(P2.0~P2.7,21~28 引脚) :P2 口是一个带内部上拉电阻的 8 位 双向 I/O 端口。 P2 的输出缓冲器可以驱动 (吸收或输出电流方式) 4 个 TTL 输入。 对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。 P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会 输出一个电流。 在 访 问 外 部 程 序 存 储 器 和 16 位 地 址 的 外 部 数 据 存 储 器 ( 如 执 行 “MOVX @DPTR”指令)时,P2 送出高 8 位地址。在访问 8 位地址的外部数据存 储器 (如执行 “MOVX @R1” 指令) 时, P2 口引脚上的内容 (就是专用寄存器 (SFR) 区中的 P2 寄存器的内容) ,在整个访问期间不会改变。 P3 端口(P3.0~P3.7,10~17 引脚) :P3 是一个带内部上拉电阻的 8 位双 向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对 端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时, 因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一 个电流。 RST(9 引脚) :复位输入。当输入连续两个机器周期以上高电平时为有效, 用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST 引脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功 能无效。DISRTO 默认状态下,复位高电平有效。 ( 29 引脚) :外部程序存储器选通信号,是外部程序存储器选通信号。当 AT89C51RC 从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而 访问外部数据存储器时,将不被激活。 VPP(31 引脚) :访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,必须接 GND。注意加密方式 1 时,将内部锁定位 RESET。为了执行内部程序指令,应该接 VCC。在 Flash 编程期间,也接收 12 伏 VPP 电压。 XTAL1(19 引脚) :振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18 引脚) :振荡器反相放大器的输入端[17]。 3.1.4 STC89C52 的控制接口 STC89C52 单片机作为系统的控制核心,P0 口连接液晶显示器的数据口控制 LCD1602 液晶显示温度和湿度值,P2.5、P2.6、P2.7 分别接液晶的 RS、R/W、E 脚对液晶显示器进行控制。 键盘控制用 P3 口, 其中 P3.4 是开阈值和模式的设置, 按一下是开阈值和湿度的设置,按两下是温度的设置,按三下是关阈值,P3.5 和 P3.6 分别是对温度与湿度的上、下限值进行加减设置的。P3.2 连接 DHT11 温 湿度传感器的数据传输口。具体接线见附录温湿度控制系统整体原理图。

3.2 复位电路
11

西安工业大学毕业设计(论文)

本系统复位模块采用的是上电复位。复位电路利用它把电路恢复到起始状 态。 就像计算器的清零按钮的作用一样,当你进行完了一个题目的计算后肯定是 要清零的是吧!或者你输入错误,计算失误时都 要进行清零操作。以便回到原 始状态,重新进行计算。上电复位电路就是上电瞬间,电容充电电流最大,电容 相当于短路,RST 端为高电平,自动复位;电容两端的电压达到电源电压时,电 容充电电流为零,电容相当于开路,RST 端为低电平,程序正常运行。RST 引脚 的高电平只要能保持两个机器周期以上的高电平,单片机就可以进行复位操作。 复位电路的电路图如图3.2所示。

图3.2 复位电路的电路图

复位电路接单片机的 I/O 口第九脚 RST 脚,进行上电复位,当 RST 引脚的高 电平只要能保持两个机器周期以上的高电平,单片机就可以进行复位操作。

3.3 时钟电路
时钟电路用于产生单片机工作时所必须的时钟控制信号, 单片机的内部电路 在时钟信号的控制下,严格的执行指令进行工作,在执行指令时,CPU 首先要到 程序存储器中取出所需要的指令操作码,然后译码,并由时序电路产生一系列控 制信号去完成指令所规定的操作。CPU 发出的时序信号有两类,一类用于片内对 各个功能部件的控制,另一类用于对片外存储器或 I/O 端口的控制。 单片机各功能部件的运行都是以时钟信号为基准, 有条不紊地一拍一拍地工 作, 因此时钟频率直接影响单片的速度,时钟电路的质量也直接影响单片机系统 的稳定性。常用的时钟设计电路有两种方式,一种是内部时钟方式,一种是外部 时钟方式。 本文设计应用的是外部时钟,外部时钟方式是使用外部振荡器产生的 脉冲信号, 本设计采用的是12MHZ 的晶振和30PF 的电容组成时钟电路。时钟电路 的电路图如图3.3所示。

12

西安工业大学毕业设计(论文)

图3.3 时钟电路的电路图

时钟电路分别接单片机的第十八和十九脚 XTAL1 脚和 XTAL2 脚。

3.4 显示模块
液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无 法比拟的优点, 近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子 产品中。单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O 设 备访问形式控制该液晶显示模块。本设计采用 1602 液晶屏,液晶显示的原理是 利用液晶的物理特性, 通过电压对其显示区域进行控制,通电后就可以显示出图 形、文字。在本设计中,应用 1602 显示方便且工作稳定。 3.4.1 LCD1602 简介 1602 字符型液晶是工业字符型液晶,能够同时显示 16×2 即 32 个字符(16 列 2 行)[18]。 注:为了表示的方便,后文皆以 1 表示高电平,0 表示低电平。 3.4.2 LCD1602 特性 LCD1602 的主要特性有: (1)3.3V 或 5V 工作电压,对比度可调; (2)内含复位电路; (3)提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功 能; (4)有 80 字节显示数据存储器 DDRAM; (5)内建有 192 个 5X7 点阵的字型的字符发生器 CGROM; (6)有 8 个可由用户自定义的 5X7 的字符发生器 CGRAM。 3.4.3 LCD1602 管脚功能 1602 采用标准的 16 脚接口,其中: 第 1 脚:VSS 为电源地; 第 2 脚:VCC 接 5V 电源正极;

13

西安工业大学毕业设计(论文)

第 3 脚:V0 为液晶显示器对比度调整端,接正电源时对比度最弱,接地时 对比度最高(对比度过高时会 产生“鬼影” ,使用时可以通过一个 10K 的电位器 调整对比度) ; 第 4 脚:RS 为寄存器选择,高电平 1 时选择数据寄存器、低电平 0 时选择 指令寄存器; 第 5 脚:RW 为读写信号线,高电平 1 时进行读操作,低电平 0 时进行写操 作; 第 6 脚:E(或 EN)端为使能(enable)端,高电平 1 时读取信息,负跳变时执 行指令; 第 7~14 脚:D0~D7 为 8 位双向数据端; 第 15~16 脚:空脚或背灯电源。15 脚背光正极,16 脚背光负极[19]。 3.4.4 LCD1602 字符集 1602 液晶模块内部的字符发生存储器(CGROM)已经存储了 160 个不同的点 阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日 文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码 是 01000001B(41H) ,显示时模块把地址 41H 中的点阵字符图形显示出来,我们 就能看到字母“A” 。 3.4.5 LCD1602 与单片机的接口 LCD1602 的第一个脚接电路板的地。第二脚接电路板的电源。第三脚是显示 器对比度调节端,接一个滑动变阻器,滑动变阻器一端接地一端接电源,用来调 节液晶显示器的对比度。第四脚是寄存器选择端,接单片机的 I/O 口 P2.5,高 电平 1 时选择数据寄存器、低电平 0 时选择指令寄存器。第 5 脚是 RW 读写信号 端,接单片机的 I/O 口 P2.6,高电平 1 时进行读操作,低电平 0 时进行写操作。 第 6 脚是 E(或 EN)端为使能(enable)端,接单片机的 I/O 口 P2.7,高电平 1 时读 取信息,负跳变时执行指令。第 7~14 脚是 D0~D7 为 8 位双向数据端,接单片 机 I/O 口 P0,进行数据传输最终显示在显示器上。第 15 和 16 脚是空脚或背灯 电源,15 脚背光正极接电源,16 脚背光负极接地。LCD 与单片机的接口电路如 图 3.4 所示。

14

西安工业大学毕业设计(论文)

图 3.4 LCD1602 与单片机的接口电路图

3.5 温湿度采集模块
DHT11 实物如图 3.5 所示。

图 3.5 DHT11 传感器实物图

3.5.1 温湿度传感器简介 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传 感器, 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的 可靠性和卓越的长期稳定性。 传感器包括一个电阻式感湿元件和一个 NTC 测温元 件,并与一个高性能 8 位单片机相连接。因此该产品具有品质卓越、超快响应、 抗干扰能力强、 性价比极高等优点。每个 DHT11 传感器都在极为精确的湿度校验 室中进行校准。 校准系数以程序的形式存在 OTP 内存中,传感器内部在检测型号
15

西安工业大学毕业设计(论文)

的处理过程中要调用这些校准系数。 单线制串行接口, 使系统集成变得简易快捷。 超小的体积、 极低的功耗, 使其成为给类应用甚至最为苛刻的应用场合的最佳选 择。产品为 4 针单排引脚封装,连接方便[20]。 3.5.2 串行接口(单线双向) DATA 用于微处理器与 DHT11 之间的通讯和同步,采用单总线数据格式,一 次通讯时间 4ms 左右, 用户 MCU 发送一次开始信号后,DHT11 从低功耗模式转换 到高速模式,等待主机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据, 并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11 接收到开始信 号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11 不会主动进 行温湿度采集.采集数据后转换到低速模式。 具体格式在下面说明,当前小数部分 用于以后扩展,出现读出为零。操作流程如下: 一次完整的数据传输为 40bit,高位先出。 数据格式:8bit 湿度整数数据+8bit 湿度小数数据 +8bi 温度整数数据+8bit 温度小数数据 +8bit 校验和 数据传送正确时校验和数据等于“8bit 湿度整数数据+8bit 湿度小数数据 +8bi 温度整数数据+8bit 温度小数数据”所得结果的末 8 位。 用户 MCU 发送一次开始信号后,DHT11 从低功耗模式转换到高速模式,等待主 机开始信号结束后,DHT11 发送响应信号,送出 40bit 的数据,并触发一次信号采 集,用户可选择读取部分数据.从模式下,DHT11 接收到开始信号触发一次温湿度 采集,如果没有接收到主机发送开始信号,DHT11 不会主动进行温湿度采集.采集 数据后转换到低速模式。 通讯过程如图 3.6 所示。

图 3.6

DHT11 与单片机的通讯过程

总线空闲状态为高电平,主机把总线拉低等待 DHT11 响应,主机把总线拉低 必须大于 18 毫秒,保证 DHT11 能检测到起始信号。DHT11 接收到主机的开始信号 后,等待主机开始信号结束,然后发送 80us 低电平响应信号.主机发送开始信号 结束后,延时等待 20-40us 后, 读取 DHT11 的响应信号,主机发送开始信号后,可 以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。通讯初始化要
16

西安工业大学毕业设计(论文)

求如图 3.7 所示。

图 3.7 通讯初始化要求图

总线为低电平,说明 DHT11 发送响应信号,DHT11 发送响应信号后,再把总线 拉高 80us,准备发送数据,每一 bit 数据都以 50us 低电平时隙开始,高电平的长 短定了数据位是 0 还是 1.格式见下面图示.如果读取响应信号为高电平,则 DHT11 没有响应,请检查线路是否连接正常.当最后一 bit 数据传送完毕后,DHT11 拉低 总线 50us,随后总线由上拉电阻拉高进入空闲状态。 数字 0 信号表示方法如图 3.8 所示。

图 3.8 数字 0 信号电平变化图

数字 1 信号表示方法如图 3.9 所示。

17

西安工业大学毕业设计(论文)

图 3.9 数字 1 信号电平变化图

3.5.3 引脚与接口 (1)引脚介绍: Pin1:(VDD),电源引脚,供电电压为 3-5.5V。 Pin2: (DATA) ,串行数据,单总线。 Pin3:(NC) ,空脚,请悬浮。 Pin4(VDD) ,接地端,电源负极。 (2) 接口说明 : 建议连接线长度短于 20 米时用 5K 上拉电阻,大于 20 米时根据实际情况使用 合适的上拉电阻。 DHT11 接口图如图 3.10 所示。 单片机 P3.2 口用来发收串行数据, 即数据口。 连接传感器的 Pin2 (单总线, [21] 串行数据) 。

图 3.10 DHT11 接口图

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

3.6 键盘模块
18

西安工业大学毕业设计(论文)

键盘分为独立式键盘和矩阵式键盘。在本设计中由于按键不多,因此选用独 立式键盘: (1)总开关:主要控制硬件系统的开/关机; (2)数字设置键:K1 是模式选择键,按一次为开阈值和温度设置模式,按 两次是温度设置模式,按三下是关阈值。K2 和 K3 只有在湿度和温度设置模式下 才有效,分别为阈值增加和阈值减小。 键盘模块的电路图如图 3.11 所示。

图 3.11 键盘模块电路图

开关 K1、K2、K3 分别接单片机的 I/O 口 P3.4、P3.5、P3.6。K1 是模式选择 键, 按一次为开阈值和温度设置模式, 按两次是温度设置模式, 按三下是关阈值。 K2 和 K3 分别为阈值增加和阈值减小。

3.7 报警模块
本系统采用蜂鸣器作为报警装置,蜂鸣器是一种一体化结构的电子讯响器, 采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、 汽车电子设备、电话机、定时器等电子产品中作发声器件。 蜂鸣器主要分为压 电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA” (旧 [22] 标准用“FM” 、 “LB” 、 “JD”等)表示 。 3.7.1 蜂鸣器报警原理 本设计采用蜂鸣音报警电路, 其工作过程就是把传感器采集的数据通过单片 机处理后,与该参数上限给定值进行比较,如果高于上限值则进行报警。 蜂鸣器发声原理是电流通过电磁线圈, 使电磁线圈产生磁场来驱动振动膜发 声的,因此需要一定的电流才能驱动它,单片机 I/O 口引脚输出的电流较小,单 片机输出的 TTL 电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电 路。 所以才用一个三极管来放大驱动蜂鸣器。在本系统中峰鸣器报警接口电路的 设计采用压电式蜂鸣器,通过 STC89C52 的 1 根 I/O 口线经驱动器驱动蜂鸣音发 声。压电式蜂鸣器约需 10mA 的驱动电流,可以用一个晶体三极管驱动,P1.5 接

19

西安工业大学毕业设计(论文)

晶体管基极输入端。当 P1.5 输出高电平“1”时,晶体管导通,压电蜂鸣器两端 获得约+5V 电压而鸣叫;当 P1.5 输出低电平“0”时,三极管截止,蜂鸣器停止 发声[23]。 3.7.2 报警电路接口 报警系统由一个电阻, 一个三极管和一个蜂鸣器组成,三极管用来放大电路 中的电流,来驱动蜂鸣器发声。报警系统连接单片机的 I/O 口 P1.5,当单片机 检测到温度或者湿度超出所设置的阈值时,就会给 P1.5 置低电平 0,这时三极 管导通,蜂鸣器报警,如果没有超出阈值,P1.5 置高电平 1,三极管截止。报警 模块的电路图如图 3.12 所示。

图 3.12 三极管驱动的蜂鸣器报警电路图

3.8 串口通信模块
串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位 进行传输数据的一种通讯方式。 为了实现单片机与计算机之间的通信,利用单片 机的 RXD、TXD 接口连接到 RS232 串行口接收或发送数据和指令,但是单片机的 TTL 电平和 RS232 不兼容,因此使用了 MAX232 进行电平转换,本系统采用 RS-232C 接口方式。 接口芯片采用 MAX232, 这种芯片可以实现 TTL 电平和 RS-232C 接口电平之间的转换,也就是可以把 5V 电平表示“1” 、0V 电平表示“0”的逻 辑,转换成-3-15V 电平表示“1” 、+3-15V 电平表示“0”的逻辑,从而解决了由 于 PC 机的串行口是 RS-232C 标准的接口,其输入输出在电平上和采用 TTL 电平 的 STC89C52 在接口时会产生电平不同的问题。因此,PC 机和 STC89C52 单片机 串行通信便可以顺利进行。 3.8.1 RS-232C 简介 RS-232-C 是美国电子工业协会 EIA 制定的一种串行物理接口标准。RS 是英 文“推荐标准”的缩写,232 为标识号,C 表示修改次数。RS-232-C 总线标准设 有 25 条信号线,包括一个主通道和一个辅助通道。RS232C 定义了数据终端设备 (DTE)与数据通信设备(DCE)之间的物理接口标准。接口标准包括机械特性、功能
20

西安工业大学毕业设计(论文)

特性和电气特性等方面的内容。在电气特性中,采用负逻辑电平表示,规定逻辑 0 电平为+5V—+15V,逻辑 1 为-15V—-5V,常称之为 RS232 电平。而单片机输出 的是 TTL 或 COMS 电平。我们知道,TTL/COMS 电平规定逻辑 0 电平为 0V,逻辑 1 电平为+5V。显然,当 PC 机与单片机进行通信时,其接口就不能直接相连,必须 经过电平转换,否则就会损坏设备。 当微机配备了 RS 一 232 接口后,它不仅可以与多种仪器和外设连接,而且, 通过它还可以在两台微机之间进行近程和远程的通信。该总线有以下优点: (1)串行通讯成本低廉,通用性强,符合 RS 一 232 标准的串行口已成为 PC 机的标准配置; (2)通过该总线接口,可以使微机控制各种测量仪器,组成自动测试系统; (3)扩展了微机的应用领域,使个人计算机的功能得以加强; (4)现代信息处理系统要求电子测量、通信和微机有机结合在一起,即用测 量仪表采集、检测信息,用通信网络进行传输,并通过计算机进行处理和控制; (5)RS-232C 的信号连接十分灵活,通过对信号线进行适当调整,即可通过 MODEM 进行远程传送,也可以直接连接应于近距离传输;即可以连接成主从的 DTE-DCE 方式,也可以把两台微机连接成对等的方式。 RS-232C 的总线可分为四类信号线,即数据总线、控制总线、定时总线和信 号地线。 数据线:数据传送是串行的,可工作在全双工或半双工状态。 控制总线:该总线由发送控制信号、接收控制信号和设备状态信号组成,发 送控制信号有 RTS 和 CTS;接收控制信号有 DDC,信号品质检测器和振铃指器。 定时总线:该信号是确定数据位的中心,不向外部提供。 信号地线:RS-232C 采用负逻辑工作,即逻辑“l”电平为-5V-15V,逻辑“0” 的电平为-5V-15V。 RS-232C 总线是以异步串口的方式工作,异步串行通信具有异步和串行两个 特点。 所谓串行, 是指发送方和接收方之间数据信息是在单根数据线上每次传送 一个二进制位。所谓异步,是指同一数据字符内的定时和顺序是严格的,而相邻 两个数据字符之间的停顿时间可以长短不一。 3.8.2 MAX232 简介

本系统采用的是 MAXIM 公司生产的 MAX232 接口芯片,MAX232 芯片是美信 (MAXIM)公司专为 RS-232 标准串口设计的单电源电平转换芯片,使用+5v 单电 源供电。MAX232 芯片与 TTL/COMS 电平兼容,片内有 2 个发送器,2 个接收器, 且使用+5V 单电源供电,使用非常方便。 MAX232 芯片能够同时满足 TTL 向 RS232C 和 RS232C 向 TTL 电平转换的功能。 同时,MAX232 具有士 15V 防静电释放功能,能保持在士 15V 的静电释放的情况 下正常工作,不损坏两端的器件,提高了系统工作的可靠性[24]。 引脚介绍:
21

西安工业大学毕业设计(论文)

第一部分是电荷泵电路。由 1、2、3、4、5、6 脚和 4 只电容构成。功能是 产生+12v 和-12v 两个电源,提供给 RS-232 串口电平的需要。 第二部分是数据转换通道。由 7、8、9、10、11、12、13、14 脚构成两个数 据通道。 其中 13 脚(R1IN) 、12 脚(R1OUT) 、11 脚(T1IN) 、14 脚(T1OUT)为第一 数据通道。 8 脚(R2IN) 、9 脚(R2OUT) 、10 脚(T2IN) 、7 脚(T2OUT)为第二数据通道。 TTL/CMOS 数据从 11 引脚(T1IN) 、10 引脚(T2IN)输入转换成 RS-232 数据 从 14 脚(T1OUT) 、7 脚(T2OUT)送到电脑 DB9 插头;DB9 插头的 RS-232 数据从 13 引脚 (R1IN) 、 8 引脚 (R2IN) 输入转换成 TTL/CMOS 数据后从 12 引脚 (R1OUT) 、 9 引脚(R2OUT)输出。 第三部分是供电。15 脚 GND、16 脚 VCC(+5v) 。 MAX232 芯片控制电路与 RS-232 接口电路如图 3.13 所示。

图3.13 MAX232与 RS-232接口电路图

RS-232是用来从电脑上给单片机下载程序的,它的第五脚接地。第二脚接 MAX232的第七脚 T2OUT,第三脚接 MAX232的第八脚 T2IN。这样就可以快捷简单 的为单片机下载程序而不用开发板。

3.9 小结
本系统设计主要有主控模块、显示模块、温湿度采集模块、串口通信模块、 键盘模块、报警模块、复位电路和时钟电路八大模块。其中主控模块 STC89C52 的晶振电路采用12MHz 的无源晶振,微调电容大小取30pF。 显示模块选用 LCD1602 字符型液晶模块, 是目前工控系统中使用最为广泛的液晶屏之一。温湿度采集模 块所采用的 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度 复合传感器, 它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有 极高的可靠性与稳定性;其单线制串行接口,使系统集成变得简易快捷。报警模 块采用蜂鸣器, 采用 PNP 型晶体管8550放大单片机 I/O 口的电流。系统的输入模

22

西安工业大学毕业设计(论文)

块采用独立式键盘,操作简单,温湿度检测方便准确。该设计最终要实现的目标 是, 温湿度采集数据并传输到单片机,单片机经过数据处理在发送到液晶显示器 显示, 同时单片机会将采集到的数据同系统设置的阈值进行比较, 如果超过阈值, 蜂鸣器就会发出报警声,如果没有超出阈值,单片机就会继续采集温湿度数据。 本设计的最终实物如图3.14所示。

图3.14 最终实物图 键盘一共有三个键,开关 K1、K2、K3分别接单片机的 I/O 口 P3.4、P3.5、 P3.6。K1是模式选择键,按一次为开阈值和温度设置模式,按两次是温度设置模 式,按三下是关阈值。K2和 K3分别为阈值增加和阈值减小。显示器一共是两行 显示,第一行显示的是湿度,第二行显示的是温度。显示器右边的两列显示是湿 度和温度的阈值,阈值可以通过键盘调节。

23

4 系统软件设计

4

系统软件设计

在完成了系统硬件的设计后,再设计系统软件,首先要建立程序框架的流程 图,对整个设计划分模块,逐个模块实现其功能,最终把各个子模块合理的连接 起来, 构成总的程序, 这样能快速准备的进行编程。 首先建立主程序框架流程图, 弄明白整个系统程序设计, 其次再分别设计显示模块、传感器模块和键盘模块的 程序,最后在进行整合,形成一个完整的程序。 本系统采用 C 语言编程。C 语言是一种计算机程序设计语言。它既具有高级语言 的特点,又具有汇编语言的特点。 C 语言编程的优点有: (1)简洁紧凑、灵活方便。C 语言一共只有32个关键字,9种控制语句,程 序书写形式自由, 区分大小写。 把高级语言的基本结构和语句与低级语言的实用 性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者 是计算机最基本的工作单元。 (2)运算符丰富。C 语言的运算符包含的范围很广泛,共有34种运算符。C 语言把括号、赋值、强制类型转换等都作为运算符处理。从而使 C 语言的运算类 型极其丰富, 表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言 中难以实现的运算。 (3)数据类型丰富。C 语言的数据类型有:整型、实型、字符型、数组类型、 指针类型、 结构体类型、 共用体类型等。 能用来实现各种复杂的数据结构的运算。 并引入了指针概念,使程序效率更高。另外 C 语言具有强大的图形功能,支持多 种显示器和驱动器。且计算功能、逻辑判断功能强大。 (4)语法限制不太严格,程序设计自由度大。虽然 C 语言也是强类型语言, 但它的语法比较灵活,允许程序编写者有较大的自由度。

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

24

西安工业大学毕业设计(论文)

开始

初始化

键盘扫描

延时

温湿度检测并传送数 据回单片机

1602 显示数值据

判断温度和湿度 是否超出阈值

NO

YES
报警系统启动(即蜂 鸣器发声)

结束

图 4.1 主程序流程图

4.2

1602 液晶显示模块程序设计

液晶显示模块是一个慢显示器件, 在执行每条指令之前要确认模块的忙标志 为低电平,表示不忙,则此指令失效,要显示字符时要先输入显示字符地址,告
25

西安工业大学毕业设计(论文)

诉模块在哪里显示了字符。1602 液晶显示模块可与单片机接口直接连接,无需 再加驱动。 LCD1602的显示数据过程是首先液晶初始化,初始化完成后执行延时程序, 等待数据的采集, 延时完成后 LCD 会先写入一些指令和显示字符的地址,在这完 成后单片机会向 LCD 发送数据即写数据, 数据发送完 LCD 就会读取写入的地址并 显示出来,最后返回。软件流程图如图4.2所示。

开始

取显示首地址

液晶 1602 初始化 写数据 延时 读数据并显示 写 LCD 指令

写显示行列地址

返回

图 4.2 液晶显示模块程序流程图

4.3

传感器模块程序设计

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

26

西安工业大学毕业设计(论文)

开始 从机 80?s低电 平是否结束 P3.2 输出低电平

NO

YES
延时 18ms 从 机 80? s 高 电平是否结束 P3.2 输出高电平 单片机进行数据接收 延时 40ms 将数据按十进制数位存

NO NO

NO
读 P3.2 引脚判断是 否为低电平

入数组

结束并保持

YES
图 4.3 DHT11 传感器模块的软件流程图

高电平

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

4.4 键盘模块设计
键盘模块是用来设置系统阈值的, 首先通过模式选择键开阈值并选择温度和 湿度的设置, 加一键和减一键是对温度和湿度的设置。第一次按模式键然后经过 延时可以开阈值和进行湿度的设置,第二次按模式键并延时是温度的设置,第三 次按模式键是关阈值。 键盘模块软件流程图如图 4.4 所示。
27

西安工业大学毕业设计(论文)

开始

模式选择

延时

温度或湿度阈值加减

关阈值

图 4.4 键盘模块软件流程图

4.5 小结
本系统的软件设计采用了 C 语言编程, 只需对温度和湿度进行相应的采集处 理后,即可让液晶实时显示当前的温度与湿度值。报警模块只需接上单片机的 I/O 口, 并对其接口线进行编程方可,当温度与湿度超过阈值时报警模块就会报 警。这样就可以完成环境中温湿度的检测。 本设计在完成硬件电路设计并焊接好电路硬件的基础上, 通过串口模块将软 件代码下载至 STC89C52 单片机中完成系统集成。由于采用了 STC89C52 单片机, 性能可靠、电路简单,系统中还可充分利用 STC89C52 中先进的软件硬件资源, 便于软件系统的升级,操作方便。

28

5

设计中遇到的问题及解决方法

5

设计中遇到的问题及解决方法

5.1 硬件问题及解决方法
(1)LCD1602 不显示: 检查 LCD 各个端口与单片机的连接是否接通,发现都通着,又检查了 LCD 数据口连接顺序与单片机的 I/O 口顺序是否一致, 最后发现 LCD 的数据口顺序接 反了,LCD 的 D0-D7 接单片机的 I/O 口 P2.0-P2.7。 (2)蜂鸣器不响: 因为刚开始不知道老师给的三极管是啥型号的, 自己就用万用表测试了一下 就焊接上了, 结果不响, 我就按照三极管的型号上网查了一下结果发现自己检测 错了,自己的是 PNP 型的,三个管脚分别是字面对着自己 ebc。然后卸下来重新 焊上去蜂鸣器就响了。 (3)LCD1602 显示乱码: 把程序下载到单片机上, 液晶显示的不是程序要显示的内容。我就用万用表 检查 8 根数据线是否都接通, 结果发现都是连通的。然后就考虑是不是数据线短 路了, 用万用表分别测量 8 跟数据线有没有短路的,结果发现有一根在焊接的时 候不小心焊到旁边的焊盘上了, 导致数据线接到了电源线上,那根数据线就会一 直显示高电平,所以显示就乱码了。用烙铁把连接的焊锡分开以后,重新上电发 现液晶显示正常了。

5.2 软件所遇问题及解决方法
(1)键盘问题 按键没有按照程序设计的工作,模式键没有起作用,加减键也不规律的进行 加减。通过仔细检查程序,通过检查按键硬件电路发现按键电路都好着呢,然后 再检查程序, 发现程序中按键按下之后没有用延时程序,就给程序中各个按键后 边加了个延时程序,下载程序之后发现按键可以实现功能了。 (2)湿度显示不稳定 在数据采集完成以后, 显示在显示器上, 发现湿度显示不稳定, 一直在跳动。 刚开始以为是正常情况,可是最后发现跳动的特别厉害,跳动幅度也很大。最后 想到可能是单片机一直在采集数据然后显示数据, 中间没有停歇才导致显示不稳 定,就给数据采集前加了个延时程序,通过串口下载程序后,发现湿度显示稳定 了。

29

6

结论

6

结论

随着社会的发展,科技越来越越发达,我们的生活也越来越智能化。温湿度 是我们生活环境中的两个重要的参数,在我们的生活中,我们要时刻关心环境的 变化,只有很好的把握好环境的差异变化,我们才能更好的生存与发展。 本文设计的温、湿度智能测控系统主要有以下几个各方面: (1)采用 STC89C52 单片机为控制核心; (2)采用数字式温度传感器 DHT11 为温、湿度数据采集器件,通过 PC 机作 为人机接口,实现了数据采集与测控指令参数的设置; (3)显示部分采用已标准的 1602 液晶为显示屏,具有显示质量高、体积小、 功耗低等优点。 本系统整体设计具有界面友好、控制灵活、硬件系统集成度高、电路简单、 功能强、性能可靠、成本低等特点。对我们的生活特别有帮助 。 在这次设计中我也学到了很多东西主要, 原来在课堂上学习的单片机知识都 是理论,从没有实践过,这次设计就让我的理论知识应用到了实践中。经过近这 一段时间的努力,从拿到题目,到后来查找资料,理论学习,焊接电路板,实验 编程调试, 这一切都使我的理论知识和动手能力有了很大的提高。了解了单片机 的硬件结构和软件编程方法,对单片机的工作方式有了很大的认知。同时,对一 些外围设备比如传感器、液晶屏、键盘、蜂鸣器等有了一定的了解。 本系统具有较强的实用性,具体方面有: (1) 我对 DHT11 与 DS18B20 及一些水银温湿度测量器的测量数据进行了比较, 验证了 DHT11 测量数据的准确性和稳定性。低廉的价格、小巧的体积、准确稳定 的测量数据、简单的单总线控制方式、简洁的电路连接,这些将使 DHT11 拥有良 好的应用前景; (2)LCD1602 液晶具有显示质量高、体积小、功耗低等优点,在以后会得到 更广泛的应用 (3)本系统还具有较高的扩展性,可以集时钟,温湿度测量等于一体,具有 一定的市场价值。

30

参考文献

参考文献
[1]秦永和.湿度传感器测试系统[D].哈尔滨:哈尔滨工程大学,2002 [2]王魁汉.温度检测技术现状与展望(上)[J],基础自动化,1997,62(3):l-3 [3]J.Kramar,J.Jun . The Moleeular Measuring Maehine. Proceedings of the 1998 International Confereneeon Meehatronie Teehnology , 1998 , Page :477~487 [4]E · Clayton Teague . Metrology and precision engineering design , J.Vac.Sci . Technol.B[C] . 1989, No6,Page: 89~103 [5]R.L.GeigerP.E.AllenN.R.Strader.VLSI.Design Techniques for Analog A nd Digitial Ciruits,McGraw-Hill Inc.1990. [6]ANALOG DEVICES.The technology of AT89C51[EB/OL].White Paper,Spe.28 .2000. [7]孙良彦.国外湿度传感器发展动态[J],传感器技术,1996,38(5):2-3 [8]刘志强, 罗庆生. 一种智能化温度检测系统的设计[J]. 中国测试技术, 2003, 29(3):95-98 [9]李勋,刘源.单片机实用教程[M].北京:北京航空航天大学出版社,2006. [10]高光天. 传感器与信号调理器件应用技术[M]. 北京: 科学技术出版社, 2002, 84-85 [11]吴金戌? 8051 单片机实践与应用[M]?北京?清华大学出版社? 2002. [12]付晓光.单片机原理与应用技术[M].北京:清华大学出版社,2004. [13]李维祥.MCS-51 单片机原理与应用[M].天津:天津大学出版社,2002. [14]石东海.单片机数据通信技术从入门到精通[M].西安:西安科技大学出版 社,2003,100-104 [15] 阳成军.用单总线器件组建温湿度测控系统硬件设计 [J] .传感器世界 2004(2):38-39 [16] 郑争兵, 基于单片机与 AD509 的温度测量报警系统[J],国外电子测量技术, 2009,27 [17]汪英,基于微机测控网络的温湿度及火盗警[D],长沙:湖南大学,2007: [18]吴汉清.常用的典型单片机资料[J].无线电,2007,(11):50-57. [19] 叶 健 斌 . 基 于 单 片 机 嵌 入 式 系 统 的 GPS 应 用 [J]. 电 子 质 量 , 2008 , (7):16-24. [20]王静.通用库房温湿度测控系统[D].中国海洋大学,2009:5. [21]刘宝元,张玉虹,姜旭,段存丽.基于单片机的温湿度监控系统设计[J].国 外电子测量技术,2009, (12) :30-33,35.
31

参考文献

[22] 陈 汝 全 . 实 用 微 机 与 单 片 机 控 制 技 术 [M] . 电 子 科 技 大 学 出 版 社.2005:16-17. [23]张广军,黄俊钦.温度传感器现场动态校准方法与实验研究[J] 北京航空航 天大学学报 1997:7-9. [24]李建民.单片机在温度控制系统中的应用[M].江汉大学学报,1996:72-78.

32

致谢

毕业设计(论文)知识产权声明
作者完全了解西安工业大学有关保护知识产权的规定,即:本科学生在校攻 读学士学位期间毕业设计(论文)工作的知识产权属于西安工业大学。本人保证 毕业离校后,使用毕业设计(论文)工作成果或用毕业设计(论文)工作成果发 表论文时署名单位仍然为西安工业大学。学校有权保留送交的毕业设计(论文) 的原文或复印件,允许毕业设计(论文)被查阅和借阅;学校可以公布毕业设计 (论文)的全部或部分内容,可以采用影印、缩印或其他复制手段保存毕业设计 (论文) 。 (保密的毕业设计(论文)在解密后应遵守此规定) 毕业设计(论文)作者签名: 指导教师签名: 日期:

33

毕业设计(论文)独创性声明

毕业设计(论文)独创性声明
秉承学校严谨的学风与优良的科学道德, 作者声明所呈交的毕业设计 (论文) 是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中 特别加以标注和致谢的地方外,毕业设计(论文)中不包含其他人已经发表或撰 写过的成果, 不包含他人已申请学位或其他用途使用过的成果。与我一同工作的 同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了致谢。 毕业设计(论文)与资料若有不实之处,作者承担一切相关责任。 毕业设计(论文)作者签名: 指导教师签名: 日期:

35

西安工业大学毕业设计(论文)

附录

附录 1

硬件原理图

36

西安工业大学毕业设计(论文)

附录 3

程序

//单片机 : STC89C52 // 功能 :串口发送温湿度数据 晶振 12M //硬件连接: P3.2 口为通讯口连接 DHT11,DHT11 的电源和地连接单片机的电源和 //****************************************************************// #include <reg52.h> #define LCD_DB P0 unsigned int s1[5]; unsigned int s2[5]; sbit LCD_RS=P2^5; sbit LCD_RW=P2^6; sbit LCD_E=P2^7; sbit P3_2 = P3^2; sbit moshi=P3^4; sbit INC=P3^5; sbit DEC=P3^6; sbit SPK=P1^5; /******定义函数****************/ #define uchar unsigned char #define uint unsigned int typedef unsigned char U8; typedef unsigned int U16; /* /* 无符号 8 位整型变量 */

无符号 16 位整型变量 */

int count1=70,count2=35; uchar moshicount=0; U8 U8FLAG; U8 U8count,U8temp; U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp, U8RH_data_L_temp,U8checkdata_temp; U8 U8comdata;

37

西安工业大学毕业设计(论文) void LCD_init(void);//初始化函数 void LCD_write_command(uchar command); //写指令函数 void LCD_write_data(uchar dat); //写数据函数

void LCD_disp_char(uchar x,uchar y,uchar dat); //在某个屏幕位置上显示一个字符,X(0-16),y(1-2) void delay_n40us(uint n);//延时函数 //******************************** //*******液晶初始化函数*************** void LCD_init(void) { LCD_write_command(0x38); //设置 8 位格式,2 行,5x7

LCD_write_command(0x0c); //整体显示,关光标,不闪烁 LCD_write_command(0x06); //设定输入方式,增量不移位 LCD_write_command(0x03); //清除屏幕显示 delay_n40us(100); } //******************************* //******************************** //********写指令函数************ void LCD_write_command(uchar dat) { LCD_DB=dat; LCD_RS=0; LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } //******************************* //********写数据函数*************

38

西安工业大学毕业设计(论文) void LCD_write_data(uchar dat) { LCD_DB=dat; LCD_RS=1;//数据 LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } //******************************** //*******显示一个字符函数********* void LCD_disp_char(uchar x,uchar y,uchar dat) { uchar address; if(y==1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); } //******************************** //********延时函数*************** void delay_n40us(uint n) { uint i; uchar j; for(i=n;i>0;i--) for(j=0;j<2;j++); }

39

西安工业大学毕业设计(论文) void Delay_10us(void) { U8 i; i--; i--; i--; i--; i--; i--; } void Delay(U16 j) { U8 i; for(;j>0;j--) for(i=0;i<27;i++); }

//*******一字节数据传送函数********* void COM(void) { U8 i; for(i=0;i<8;i++) { U8FLAG=2; while((!P3_2)&&U8FLAG++); Delay_10us(); Delay_10us(); Delay_10us(); U8temp=0; if(P3_2)U8temp=1; U8FLAG=2;

40

西安工业大学毕业设计(论文) while((P3_2)&&U8FLAG++);//超时则跳出 for 循环 if(U8FLAG==1)break; /判断数据位是 0 还是 1 / 如果高电平高过预定 0 高电平值则数据位为 1 U8comdata<<=1; U8comdata|=U8temp; }//rof //0

} //-------------------------------//-----湿度读取子程序 -----------//-------------------------------//----以下变量均为全局变量-------//----温度高 8 位== U8T_data_H-----//----温度低 8 位== U8T_data_L-----//----湿度高 8 位== U8RH_data_H----//----湿度低 8 位== U8RH_data_L----//----校验 8 位 == U8checkdata----//----调用相关子程序如下---------//---- Delay();, Delay_10us();,COM(); //-------------------------------void RH(void) { //主机拉低 18ms P3_2=0; Delay(180); P3_2=1; //总线由上拉电阻拉高 主机延时 20us Delay_10us(); Delay_10us(); Delay_10us();

41

西安工业大学毕业设计(论文) Delay_10us(); //主机设为输入 判断从机响应信号 P3_2=1; //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P3_2) { U8FLAG=2; //判断从机是否发出 80us 的低电平响应信号是否结束 while((!P3_2)&&U8FLAG++); U8FLAG=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((P3_2)&&U8FLAG++); //数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P3_2=1; //数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_tem p); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; //T !

42

西安工业大学毕业设计(论文) U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; //湿度整数部分 { s1[0]=(int)(0X30+U8RH_data_H/10); s1[1]=(int)(0X30+U8RH_data_H%10); //湿度小数部分 s1[2]=(int)(0X30+U8RH_data_L/10); //温度整数部分 s2[0]=(int)(0X30+U8T_data_H/10); s2[1]=(int)(0X30+U8T_data_H%10); //温度小数部分 s2[2]=(int)(0X30+U8T_data_L/10); } }//fi }//fi } //液晶显示函数 void disp() { LCD_disp_char(0,1,'s'); LCD_disp_char(1,1,'h'); LCD_disp_char(2,1,'i'); LCD_disp_char(3,1,'d'); LCD_disp_char(4,1,'u'); LCD_disp_char(5,1,':'); LCD_disp_char(6,1,s1[0]); LCD_disp_char(7,1,s1[1]); LCD_disp_char(8,1,'.'); LCD_disp_char(9,1,s1[2]);

43

西安工业大学毕业设计(论文) LCD_disp_char(10,1,'%'); LCD_disp_char(11,1,'R'); LCD_disp_char(12,1,'H');

LCD_disp_char(0,2,'w'); LCD_disp_char(1,2,'e'); LCD_disp_char(2,2,'n'); LCD_disp_char(3,2,'d'); LCD_disp_char(4,2,'u'); LCD_disp_char(5,2,':'); LCD_disp_char(6,2,s2[0]); LCD_disp_char(7,2,s2[1]); LCD_disp_char(8,2,'.'); LCD_disp_char(9,2,s2[2]); LCD_disp_char(10,2,0xDF); LCD_disp_char(11,2,'C'); } //阈值设置函数 void shezhi() { s1[3] = (char)(0x30+count1/10); s1[4] = (char)(0x30+count1%10); s2[3] = (char)(0x30+count2/10); s2[4] = (char)(0x30+count2%10); if(moshi==0) { delay_n40us(10000); moshicount++; } if(moshicount==1) {

44

西安工业大学毕业设计(论文) if(INC==0) { delay_n40us(10000); count1++;} else if(DEC==0) { delay_n40us(10000); count1--;} LCD_disp_char(14,1,' '); LCD_disp_char(15,1,' '); LCD_disp_char(14,2,' '); LCD_disp_char(15,2,' '); s1[3] = count1/10; S1[4] = count1%10; s2[3] = count2/10; s2[4] = count2%10; LCD_disp_char(14,1,s1[3]+0x30); LCD_disp_char(15,1,s1[4]+0x30); LCD_disp_char(14,2,s2[3]+0x30); LCD_disp_char(15,2,s2[4]+0x30);

} else if(moshicount==2) { if(INC==0) { delay_n40us(10000); count2++;} else if(DEC==0) { delay_n40us(10000);

45

西安工业大学毕业设计(论文) count2--;} LCD_disp_char(14,1,' '); LCD_disp_char(15,1,' '); LCD_disp_char(14,2,' '); LCD_disp_char(15,2,' '); s1[3] = count1/10; s1[4] = count1%10; s2[3] = count2/10; s2[4] = count2%10; LCD_disp_char(14,1,s1[3]+0x30); LCD_disp_char(15,1,s1[4]+0x30); LCD_disp_char(14,2,s2[3]+0x30); LCD_disp_char(15,2,s2[4]+0x30); } else if(moshicount==3) { delay_n40us(10000); LCD_disp_char(14,1,' '); LCD_disp_char(15,1,' '); LCD_disp_char(14,2,' '); LCD_disp_char(15,2,' '); moshicount=0; } } //蜂鸣器报警程序 void laba() { if((U8RH_data_H>=count1)||(U8T_data_H>=count2)) SPK=0; else SPK=1;

46

西安工业大学毕业设计(论文) } //*********主函数***************** void main(void) { LCD_init(); Delay(4); while(1) { delay_n40us(10000); RH(); disp(); laba(); shezhi(); } }

47


相关文章:
基于单片机的温湿度控制系统_图文
\ 基于单片机的温湿度控制系统一、研究背景 温度、湿度和人类的生产、生活有着...而是采用 DHT11 数字温湿度一体传感器进型温湿度 的测量。 一方面在简化了设计...
基于DHT11的低成本蚕室温湿度自动控制系统的设计
基于DHT11 的低成本蚕室温湿度自动控制系统设计 摘要环境温湿度对蚕的生长有着极大的影响,而目前市场上的温湿度控制产 品价格过高,不适应于中小型农村蚕农的...
基于DHT11的温湿度监控论文
基于DHT11的温湿度监控论文_信息与通信_工程科技_专业资料。桂林电子科技大学课程...桂林电子科技大学课程设计论文 第 页 共 页 引言在日常生活中,温湿度监控系统...
基于单片机的温度控制系统设计毕业论文_图文
基于单片机的温度控制系统设计毕业论文_工学_高等教育_教育专区。北京经济管理职业...4 2016.3.4—2016.3.11 2016.3.12—2016.3.31 2016.4.1—2016.4.30...
基于单片机的温湿度检测控制系统设计
基于单片机的温湿度检测控制系统设计_电子/电路_工程...] 2011.11.3---2012.1.20 确定设计(论文)题目...// sbit dht=P1^0; sbit fine=P1^1; sbit hot...
基于单片机的温湿度控制系统毕业设计(论文)_图文
基于单片机的温湿度控制系统毕业设计(论文)_工学_高等教育_教育专区。摘 要 温...DHT11 数字温湿度传感器把采集到的温湿度 数据传给单片机。经过单片机的处理。...
基于单片机的温度控制系统设计
基于单片机的温度控制系统设计_信息与通信_工程科技_专业资料。基于单片机的论文基于单片机的温度控制系统设计 [摘要]: 文章介绍了基于单片机温度控制的硬件设计和软件设...
基于单片机的数字温度控制系统设计
创新项目报告 项目名称:基于单片机的数字温度控制系统设计 专业: 电子信息工程技术...11 4 数码管显示与单片机对接 ......
基于单片机的智能温室温湿度控制系统的设计_图文
本文旨在论述一种温室大棚温 湿度控制系统的设计,该系统主要由单片机 AT89S52、温湿度传感器 DHT11、 无线通信模块 nRF2401、 液晶显示 LCD1602 等组成。 采用温...
基于单片机的温度控制系统设计
基于单片机的温度控制系统设计_能源/化工_工程科技_专业资料。毕业设计说明书(论文...11 SE G 4 P25 P24 P23 P22 P21 RXD TXD ALE/P PSEN 26 25 24 23 ...
更多相关标签: