基于单片机的温湿度测量仪设计
基于单片机的智能温湿度检测器设计

基于单片机的智能温湿度检测器设计设计基于单片机的智能温湿度检测器,旨在实时监测环境的温湿度值,并根据不同的条件进行相应的处理和提醒,提高用户对环境的感知能力。
本文将分为五个部分进行介绍:引言、设计方案、系统实现、系统测试和总结。
引言随着科技的发展,人们对于生活环境的要求也越来越高,温湿度是人们感知环境的两个重要指标。
通过实时监测温湿度值,可以及时采取调控措施来提高环境的舒适度。
同时,温湿度检测器广泛应用于气象、农业、生物、医疗和工业等领域。
因此,设计一种基于单片机的智能温湿度检测器对于提高环境感知能力具有重要意义。
设计方案本设计方案采用单片机作为核心处理器,利用传感器采集环境的温湿度数据,并通过LCD显示模块实时显示。
同时,通过调节风扇和加热器来改变环境温湿度,通过蜂鸣器和LED灯进行相应的警示。
系统还具有数据存储和远程监测功能,可以通过WiFi或蓝牙模块进行数据传输和远程控制。
系统实现1.硬件设计:-单片机选择:选择一款适合的单片机,如STC89C52系列,具有较高的性能和丰富的外设接口。
-传感器选择:选择一种温湿度传感器,如DHT11或DHT22,能够准确地测量环境的温湿度。
-显示模块选择:选择一款合适的LCD显示模块,如16×2字符LCD,用于实时显示温湿度数值。
-外部模块选择:选择合适的风扇、加热器、LED灯和蜂鸣器等外部模块,用于调控环境温湿度并进行相应的警示。
2.软件设计:-采样程序:编写程序读取传感器采集的温湿度数据,并将其存储在内存中。
-显示程序:编写程序将温湿度数值显示在LCD显示模块上,通过按键实现数据的切换和查看。
-控制程序:编写程序根据设定的温湿度范围,控制风扇和加热器的开关,以及蜂鸣器和LED灯的警示。
-数据存储程序:编写程序将采集的温湿度数据存储在EEPROM或SD卡中,以备后续分析和记录。
-远程监测程序:编写程序利用WiFi或蓝牙模块将温湿度数据传输到手机或电脑上,实现远程监测和控制。
基于单片机的土壤温湿度检测计设计设计

基于单片机的土壤温湿度检测计设计设计土壤温湿度检测是农业生产中常见的一个问题,可以帮助农民掌握土壤中的环境条件,从而更好地管理农作物的生长环境,提高农作物产量。
本文将基于单片机设计一个土壤温湿度检测计,在介绍设计方案之前,我们先来了解一下土壤温湿度检测的原理和要解决的问题。
1.土壤温湿度检测原理土壤温湿度检测的原理主要是利用温湿度传感器测量土壤温湿度的值。
温湿度传感器通常是通过变化的电阻来测量温湿度的。
当温湿度发生变化时,传感器内部的电阻也会发生相应的变化。
通过连接到单片机的模拟输入引脚,可以将传感器的输出电压转化为数字信号,从而获取温湿度的数值。
2.设计方案基于以上原理,我们可以设计一个基于单片机的土壤温湿度检测计。
设计主要包括以下几个部分:2.1 单片机选择:单片机是控制整个系统的核心部件。
在选择单片机时,首先要考虑单片机的性能和资源是否足够满足我们的需求。
同时,还要考虑单片机的价格和易用性。
常用的单片机有STM32系列和Arduino等。
我们可以根据具体需求选择适合的单片机。
2.2传感器选择:温湿度传感器是关键的部件。
我们可以选择适用于土壤温湿度检测的传感器,如DHT11或DHT22、传感器的选择要考虑到准确性、精度和稳定性等因素。
2.3电路设计:电路设计是整个系统的基础。
首先需要根据所选择的单片机和传感器,设计合适的电路连接,包括连接单片机的引脚、传感器的引脚和其他组件的引脚。
其次,还要设计相应的电源电路,以提供所需的电压和电流。
2.4 程序设计:程序设计是实现功能的关键。
通过编程,我们可以将传感器的输出信号转换为温湿度数值,并将其显示在LCD屏幕上。
在程序设计时,我们可以使用相应的编程语言,如C语言或Python等,根据单片机型号和开发环境选择合适的编译器和开发工具。
3.功能扩展除了基本的土壤温湿度检测功能,我们还可以对设计进行功能扩展,提供更多的便利和实用性:3.1数据存储:设计一个存储功能,可以将土壤温湿度数值存储到存储器中,以便后期分析和比较。
基于单片机的温湿度监测系统设计

基于单片机的温湿度监测系统设计基于单片机的温湿度监测系统设计一、引言随着工业自动化和物联网技术的快速发展,对环境参数的监测变得越来越重要。
特别是在工业生产过程中,保持环境条件的稳定对于产品质量和生产效率具有重大影响。
为了实现这一目标,本文将介绍如何基于单片机设计一种温湿度监测系统。
二、相关技术在这个系统中,我们将使用单片机作为主控制器,负责采集和处理环境中的温度和湿度数据。
单片机是一种集成度高、价格低廉的微控制器,广泛应用于各种嵌入式系统中。
传感器则负责采集环境中的温湿度数据,并将数据传输给单片机。
我们将选择具有数字输出功能的温湿度传感器,以确保数据传输的稳定性和准确性。
此外,单片机通过液晶显示屏实时显示采集到的温湿度数据,用户可以通过按键对系统进行设置和校准。
单片机的编程语言通常为C语言,程序编写的好坏将直接影响系统的性能和稳定性。
三、系统设计1、硬件选择:选择具有I2C接口的温湿度传感器,如DHT11或SHT11,它们可以同时采集温度和湿度数据,且精度较高。
选择一个适用于单片机的液晶显示屏,如1602或2004,用于实时显示数据。
2、软件设计:根据系统的需求,编写单片机程序。
程序应包括数据采集、数据处理、数据显示和按键处理等功能。
在编写程序时,需要注意代码的优化,以提高系统的响应速度和稳定性。
3、程序编写:使用C语言编写单片机程序,实现上述功能。
程序应具有良好的可读性和可维护性,同时考虑代码优化,以提高系统的性能。
四、系统优化为了提高系统的性能和稳定性,可以进行以下优化:1、减小系统功耗:选择低功耗的单片机和传感器,优化程序,降低系统的待机功耗。
2、提高系统稳定性:在程序中加入自检功能,确保系统在异常情况下能自动复位,提高系统的稳定性。
3、优化数据传输速度:根据实际需要,调整数据传输速度,以提高系统的响应速度。
五、结果分析为了评估系统的性能,我们将对设计的温湿度监测系统进行实验验证。
比较实验结果与预期目标之间的差异,分析系统的优缺点,并根据实际情况进行优化。
基于51单片机的简易温湿度测量仪

毕 业 设 计 (论 文)设计(论文)题目:____基于51单片机的简易温湿度测量仪_单 位(系别):___电子信息工程系_____学 生 姓 名:__ __________ _专 业:___通信工程___________班 级:学 号:____ ________指 导 教 师:____ ____________答辩组负责人:______________________填表时间: 20 12 年 5 月重庆邮电大学移通学院教务处制编 号:____________审定成绩:____________摘要单片微型计算机(Single Chip Microcomputer) 简称单片机, 又称MCU(Micro Controller Unit),是将计算机的基本部分微型化,使之集成在一块芯片上的微机.片内含有CPU、ROM、RAM、并行I/O、串行I/O、定时器/计数器、中断控制、系统时钟及系统总线等。
随着科技的发展,单片机已不是一个陌生的名词,它的出现是近代计算机技术发展史上的一个重要里程碑,因为单片机的诞生标志着计算机正式形成了通用计算机系统和嵌入式计算机系统两大分支。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具。
本文所涉及的是市场占有率最高的是MCS—51 系列,因为世界上很多知名的IC 生产厂家都生产51 兼容的芯片。
生产MCS—51 系列单片机的厂家如美国AMD 公司、ATMEL 公司、INTEL 公司、WINBOND 公司、PHILIPS 公司、ISSI 公司、TEMIC 公司及南韩的LG 公司、日本NEC、西门子公司等。
到目前为止,MCS—51 单片机已有数百个品种,还在不断推出功能更强的新产品。
【关键词】单片机温度测控ABSTRACTMCS-80C51 Based on the temperature of the 51 SCM measurement instrument Abstract: Single Chip Microcomputer hereinafter referred to as the single chip microcomputer,also known as MCU(Micro Controller Unit), the computer is the basic part of miniaturization, make integration on a single chip microcomputer. Piece contains CPU、ROM、RAM、Parallel I/O、serial ports I/O、the timer/counter、interrupt control、The system clock and the system bus, etc. With the development of technology, SCM is not a strange nouns,, It is the emergence of the history of modern computer technology, Because the birth of the single chip microcomputer marks formal form the computer general computer systems and embedded computer system two branches. Single chip microcontroller tiny size and low cost, Can be widely embedded in such as toys household appliances robot instruments automotive electronic industrial control unit office automation equipment financial electronic system ship terminals and personal information communication product, become a modern electronic system is the most important intelligent tool. This paper is related to the market share is the highest MCS 51 series, because much of the world famous IC manufacturers are production 51 compatible chip production MCS 51 series microcontroller manufacturers such as the AMD ATMEL company INTEL company WINBOND company PHILIPScompany TEMIC company and South Korea ISSIcompany LG company Japan NEC Siemens ag, etc so far, MCS 51 SCM has hundreds of species, also in continuously introduce more powerful new products.【Key words】single chip A/D temperature measurement and control MCS-80 C51目录前言 1 第一章温湿度测量的目的及要求 2 第一节作品设计目的第二节作品设计内容及要求第三节第三节本章小结第二章部分器件简介 4 第一节烟雾传感器 4一、烟雾传感器介绍 6二、MQ-2的构成及工作原理9第二节LM393 9一、LM393简介与特点及应用10二、LM393功能结构10第三节单片机10一、单片机的概述10二、AT89C51 11第四节蜂鸣器21 第五节本章小结23 第三章51单片机烟雾探测警报系统的硬件设计及实现24 第一节MQ-2模块设计24 第二节蜂鸣器电路设计25 第三节51单片机烟雾探测警报器整体设计实现26 第四节本章小结27 第四章51单片机烟雾探测警报系统的软件编写及调试28 第一节系统的软件编写28 第二节程序调试35第三节本章小结36 结论37 致谢38 参考文献39 附录40一、英文原文40二、英文翻译41三、工程设计及图纸42四、源程序43五、其他44前言随着科学技术的日新月异,人类社会取得了长足的进步!在居家生活、工农业生产、气象、环保、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。
基于单片机的温湿度检测系统硬件设计

基于单片机的温湿度检测系统硬件设计介绍:随着科技的发展,温湿度检测系统在许多领域都有广泛的应用。
本文将介绍一种基于单片机的温湿度检测系统的硬件设计。
设计目标:该温湿度检测系统的设计目标是能够准确地测量环境温度和湿度,并能够实时显示测量结果。
硬件设计:该系统的硬件设计包括传感器模块、单片机模块、显示模块和电源模块。
1.传感器模块:温湿度传感器是实现温湿度检测的核心部件。
一种常用的传感器是DHT11,它具有高精度和稳定性。
该传感器采用数字信号输出,能够直接与单片机连接。
传感器模块的设计包括传感器接口电路和信号处理电路。
2.单片机模块:单片机模块负责处理传感器模块输出的信号,并进行数据处理和显示控制。
常用的单片机有STM32、PIC等。
单片机模块的设计包括单片机主控芯片、时钟电路、存储器、输入输出接口电路和通信接口电路等。
3.显示模块:显示模块的设计主要包括显示屏和显示控制电路。
常用的显示屏有LCD、LED等,可以根据需求选择合适的显示屏。
显示控制电路负责将单片机模块处理的数据通过合适的方式显示在显示屏上。
4.电源模块:电源模块的设计包括电源管理电路和供电电源。
电源管理电路负责对输入电源进行稳压、过流保护等处理,以保证系统的正常工作。
供电电源根据设计需求选择合适的电源,如电池供电或者直接接入交流电源。
软件设计:该温湿度检测系统的软件设计包括传感器数据采集、信号处理、数据计算和显示控制等。
1.传感器数据采集:单片机模块通过GPIO口读取传感器模块输出的数字信号,并将其转换为二进制数据。
2.信号处理:将传感器模块输出的二进制数据转换为温度和湿度值,并进行校准。
可以根据实际应用需求进行数据处理,如滤波、平均值计算等。
3.数据计算:根据温湿度传感器的特点和相关算法,对信号处理后的数据进行计算,得出准确的温湿度值。
4.显示控制:将计算得出的温湿度值通过显示模块显示在显示屏上,可以选择以数字形式或者图形形式显示。
基于单片机的温湿度监测系统设计

基于单片机的温湿度监测系统设计一、引言在现代生活和工业生产中,对环境温湿度的准确监测具有重要意义。
温湿度的变化可能会影响到产品质量、设备运行以及人们的生活舒适度。
因此,设计一个高效、准确且可靠的温湿度监测系统至关重要。
本设计基于单片机,旨在实现对环境温湿度的实时监测和数据处理。
二、系统总体设计方案(一)系统功能需求本系统需要实现以下功能:1、实时采集环境温湿度数据。
2、对采集到的数据进行处理和分析。
3、将温湿度数据显示在液晶显示屏上。
4、具备数据存储功能,以便后续查询和分析。
5、当温湿度超出设定范围时,能够发出报警信号。
(二)系统总体架构本系统主要由传感器模块、单片机控制模块、显示模块、存储模块和报警模块组成。
传感器模块负责采集温湿度数据,并将其转换为电信号传输给单片机。
单片机对接收的数据进行处理和分析,然后将结果发送给显示模块进行显示,同时将数据存储到存储模块中。
当温湿度超出设定范围时,单片机控制报警模块发出报警信号。
三、硬件设计(一)传感器选择选用 DHT11 数字温湿度传感器,它是一款含有已校准数字信号输出的温湿度复合传感器。
具有体积小、功耗低、响应速度快、性价比高等优点,能够满足本系统的设计要求。
(二)单片机控制模块选择 STC89C52 单片机作为控制核心。
它具有丰富的 I/O 口资源、较高的处理速度和稳定性,能够有效地处理和控制整个系统的运行。
(三)显示模块采用液晶显示屏 1602,它能够清晰地显示温湿度数据和相关信息。
(四)存储模块选用 EEPROM 芯片 AT24C02 作为存储模块,用于存储温湿度数据,方便后续查询和分析。
(五)报警模块使用蜂鸣器作为报警装置,当温湿度超出设定范围时,单片机控制蜂鸣器发出报警声音。
四、软件设计(一)主程序流程系统上电后,首先进行初始化操作,包括单片机内部资源的初始化、传感器的初始化、显示模块的初始化等。
然后,系统进入循环,不断读取传感器采集到的温湿度数据,并进行处理和分析。
基于单片机的温湿度自动控制系统设计

方案 设计
元器件的选择
本次设计的元器件包括 STC89C5单片机、晶体振荡器、 电阻、电容、按键、开关、电 源座、三极管、二极管、蜂鸣 器、传感器、液晶显示屏、继 电器等。
3.系统硬件设计
STC89C52引脚图
1 整体方案设计
整个系统采用STC89C52单片机作为核心器件,与 电阻,电容,晶振等器件,组成了最小的单片机系 统。其它模块都是以单片机最小系统为中心展开的。
2 最小系统模块
STC89C52是一款低电压,高性能的CMOS 8位单 片机,它包含8k字节的可反复擦写的Flash只读程 序存储器(ROM)和256 字节的随机存取数据存 储器(RAM)。
12345678901234567890 22222222233333333334 0123456776543210 EC A 2222222200000000 LC E PPPPPPPPPPPPPPPP AV PSEN 21 LL AAD 01234567 TTN 11111111 PPPPPPPPRESETP30/RXDP31/TXDP32/INT0P33/INT1P34/T0P35/T1P36/WRP37/RDXXG 01234567890 123456789 11111111112
我国温湿度测控现状还远远没有工业化,生产实践中仍然存 在着设备配套能力差,环境控制水平落后和软硬件资源无法 共享等不足。
2.系统整体方案设计
设计要求
1)可同时测量温湿度。 2)1602液晶显示屏显示数据。 3)温度和湿度的正常范围都可以通过 按键设置。 4)如果超出正常范围,蜂鸣器会鸣叫 报警 。 5)有相应指示灯指示温湿度过高或过 低。 6)可模拟升温、降温、增湿和除湿过 程,使温湿度保持恒定。
《2024年基于单片机的温湿度控制系统的设计》范文

《基于单片机的温湿度控制系统的设计》篇一一、引言在现代智能家居及工业自动化控制领域,温湿度控制系统的设计与实现至关重要。
为了满足各种应用场景的需求,本文提出了一种基于单片机的温湿度控制系统的设计方案。
该系统以单片机为核心,通过精确的传感器采集温湿度数据,并利用先进的控制算法实现温湿度的自动调节,从而达到预期的控制效果。
二、系统设计概述本系统采用单片机作为核心控制器,通过与温湿度传感器、执行器等设备的连接,实现对环境温湿度的实时监测与控制。
系统设计包括硬件设计和软件设计两部分。
(一)硬件设计硬件部分主要包括单片机、温湿度传感器、执行器、电源等。
其中,单片机选用性能稳定、处理速度快的型号,负责采集传感器数据、处理控制算法、发送控制指令等任务。
温湿度传感器选用精度高、稳定性好的型号,用于实时监测环境中的温湿度数据。
执行器包括加热器、加湿器、除湿器等,根据控制指令调整环境中的温湿度。
(二)软件设计软件部分主要包括单片机程序、控制算法等。
单片机程序采用C语言编写,实现数据的采集、处理、传输等功能。
控制算法采用先进的PID算法,实现对温湿度的精确控制。
此外,系统还具有数据存储、通信等功能,可与上位机进行数据交互。
三、系统工作原理系统工作时,温湿度传感器实时采集环境中的温湿度数据,并将数据传输给单片机。
单片机对数据进行处理后,根据设定的控制算法计算出执行器的控制指令,并通过执行器对环境中的温湿度进行调整。
同时,单片机还将数据存储起来,并通过通信接口与上位机进行数据交互。
四、系统实现(一)硬件实现硬件部分需要根据设计要求进行选型和制作。
单片机、温湿度传感器、执行器等设备需要选用性能稳定、精度高的型号,并按照电路图进行连接。
同时,还需要制作电源、通信接口等辅助设备,以保证系统的正常运行。
(二)软件实现软件部分需要编写单片机程序和控制算法。
单片机程序采用C语言编写,包括数据采集、处理、传输等功能。
控制算法采用PID算法,实现对温湿度的精确控制。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计报告题目:基于单片机的温湿度仪表设计班级:智能科学与技术1201班学生姓名:文波学号:120407130指导教师:朱建光成绩:工业大学摘要温度和湿度是两个最基本的环境参数,人们生活与温湿度息息相关。
在日常生活、工业、医学、环境保护、化工、石油等领域,经常需要对环境温度和湿度进行测量和控制。
准确测量温湿度在生物制药食品加工、造纸等行业更是至关重要。
因此,研究温湿度的测量方法和装置具有重要的意义。
随着科技的不断发展,单片机技术已经普及到我们的工作、生活、科研等各个领域。
已经成为一种比较成熟的技术。
由于单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便等优点,目前已经渗透到我们工作和生活的方方面面。
本设计STC89C52为主要控制器件,以DHT11为数字温度传感器的新型数字温湿度计。
本设计主要包括硬件电路的设计和系统软件的设计。
目录第一章目标及主要任务 (3)第二章硬件设计 (3)2.1系统设计方案 (3)2.2 STC89C52介绍 (4)2.3 DHT11数字传感器介绍 (5)2.4电路设计 (7)第三章软件设计 (11)3.1 系统软件主程序流程 (11)3.2 DHT11数据采集流程 (13)第四章结论与调试 (13)附录(程序清单) (14)参考文献 (22)第一章目标及主要任务在本次课程设计中,为实现对温湿度的检测与显示,主要利用以STC89C52为核心构架硬件电路,DHT11温湿度传感器采集环境温度及湿度信息(温度检测围:0℃至+50℃。
测量精度:2℃.;湿度检测围:20%-90%RH检测精度:5%RH),数码管直接显示温度和湿度(显示方式:温度:两位显示;湿度:两位显示);同时利用C语言编程实现温湿度信息的显示功能。
扩展功能:可设置温湿度报警值,温湿度超过设置的响应报警值,会发出报警信号。
第二章硬件设计2.1 系统设计方案本方案使用STC89C52作为控制核心,一直能温湿度传感器DHT11作为温湿度测量元件,显示电路采用4位数码管显示,采用单片机最小系统。
系统硬件电路设计框图如下图2-1。
图2-1系统硬件电路设计框图2.2 STC89C52介绍STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash存储器。
STC89C52使用经典的MCS-51核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案图2-2 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。
器件参数:1.增强型8051单片机,6 时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051.[2]2. 工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机)3.工作频率围:0~40MHz,相当于普通8051 的0~80MHz,实际工作频率可达48MHz4. 用户应用程序空间为8K字节5. 片上集成512 字节RAM6. 通用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、T210.外部中断4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒11. 通用异步串行口(UART),还可用定时器软件实现多个UART12. 工作温度围:-40~+85℃(工业级)/0~75℃(商业级)13. PDIP封装2.3 DHT11数字传感器介绍DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。
每个DHT11传感器都在极为精确的湿度校验室中进行校准。
校准系数以程序的形式储存在OTP存中,传感器部在检测信号的处理过程中要调用这些校准系数。
单线制串行接口,使系统集成变得简易快捷。
超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。
产品为4 针单排引脚封装。
连接方便,特殊封装形式可根据用户需求而提供。
1.引脚说明DHT11有四个引脚,3号引脚一般悬空,如图2-3所示。
DHT11的供电电压为3—5.5V。
传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。
电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。
建议连接线长度短于20米时用5K上拉电阻,大于20米时根图2-3 DHT11典型电路据实际情况使用合适的上拉电阻。
2.技术参数供电电压:3.3~5.5V DC输出:单总线数字信号测量围:湿度20-90%RH,温度0~50℃测量精度:湿度+-5%RH,温度+-2℃分辨率:湿度1%RH,温度1℃互换性:可完全互换,长期稳定性:<±1%RH/年3.串行接口(单线双向)DATA 引脚用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。
数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。
用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。
1.通讯过程如图1所示图2-4 通信过程如图2-5,总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。
DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。
图2-5 主机唤醒从机响应过程总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,应检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。
数字0信号表示方法如图4所示图2-6 数字0信号数字1信号表示方法.如图5所示图2-6 数字1信号2.4电路设计1.单片机系统电路图2-7 单片机系统2.数码管电路注:数码管前两位显示湿度,后两位显示温度图2-8 数码管电路3.报警灯电路注:D27为湿度超(上限)报警信号灯D26为温度度超(上限)报警信号灯图2-9 LED报警电路4.按键电路按键1为加按键2为减按键6为设置图2-10 按键电路5.总体电路图图2-11 总体电路图第三章系统软件设计系统程序主要包括主程序、DHT11控制模块程序、延时子程序、中断服务子程序,整体程序见附录。
3.1 系统软件主程序流程程序开始后,先对单片机进行初始化(开中断),通过延时一秒等待DHT11温湿度传感器启动。
主程序分为三个不同的模式,通过中断次数进行选择。
模式一:温湿度测量模式DHT11温湿度传感器启动后,对其进行数据初始化后,进行温湿度信息的采集、转化、处理,最后通过数码管读出,并判断温湿度是否超过报警值以产生报警信号。
DHT11温湿度传感器经过一次数据采集和处理后,需返回次延时程序处理来重新初始化DHT11后采集温湿度数据。
模式二:湿度报警值设定模式扫描按键1和按键2,若按键按下对湿度相应的加1减一,并通过数码管显示。
模式二:温度报警值设定模式扫描按键1和按键2,若按键按下对温度相应的加1减一,并通过数码管显示。
程序流程图如下:图3-1 程序流程图3.2 DHT11数据采集流程DHT11温湿度传感器有严格的思绪要求,程序一定要遵循其与主机通信的步骤。
其温湿度数据采集流程图如下:图3-2 DHT数据采集流程图第四章调试与结论作品实现了课设的所有要求,并添加了扩展功能——温湿度报警。
硬件上选择DHT11作为温湿度传感器,使电路简单,容易读数,简化了设计。
软件上,在DHT11与主机通信上遇到困难,查了很多资料。
键盘和数码管闪烁上也经过了多次调试才取得成功。
附录程序清单:#include <reg51.h>#include <intrins.h>//typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量*/typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量*/typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量*/typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量*///#define uchar unsigned char#define uint unsigned int#define Data_0_time 4//----------------------------------------------////----------------IO口定义区--------------------////----------------------------------------------//sbit P2_0= P2^0 ;//----------------------------------------------////----------------定义区--------------------////----------------------------------------------//U8 U8FLAG;U8 U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8che ckdata_temp;U8 U8data;U8 str[4];U8 k,m=0;U8 i,j;S8 rb,tb;uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Delay(U16 j){ U8 i;for(;j>0;j--){for(i=0;i<27;i++);}}void Delay_10us(void){U8 i;i--;i--;i--;i--;i--;i--;}void (void){U8 i;for(i=0;i<8;i++){U8FLAG=2;while((!P2_0)&&U8FLAG++);Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(P2_0)U8temp=1;U8FLAG=2;while((P2_0)&&U8FLAG++);//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1// 如果高电平高过预定0高电平值则数据位为1U8data<<=1;U8data|=U8temp; //0}//rof}//--------------------------------//-----湿度读取子程序------------//--------------------------------//----以下变量均为全局变量--------//----温度高8位== U8T_data_H------//----温度低8位== U8T_data_L------//----湿度高8位== U8RH_data_H----- //----湿度低8位== U8RH_data_L----- //----校验8位== U8checkdata-----//----调用相关子程序如下----------//---- Delay();, Delay_10us();,();//-------------------------------- void st(U8 a,U8 b){str[0]=table[a/10];str[1]=table[a%10];str[2]=table[b/10];str[3]=table[b%10];}void RH(void){//主机拉低18msP2_0=0;Delay(180);P2_0=1;//总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入判断从机响应信号P2_0=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!P2_0) //T !{U8FLAG=2;//判断从机是否发出80us 的低电平响应信号是否结束while((!P2_0)&&U8FLAG++);U8FLAG=2;//判断从机是否发出80us 的高电平,如发出则进入数据接收状态while((P2_0)&&U8FLAG++);//数据接收状态();U8RH_data_H_temp=U8data;();U8RH_data_L_temp=U8data;();U8T_data_H_temp=U8data;();U8T_data_L_temp=U8data;U8checkdata_temp=U8data;P2_0=1;//数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_t emp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}}st(U8RH_data_H,U8T_data_H);}int0()interrupt 0{++m;m=0;Delay(2000);}//---------------------------------------------- //main()//---------------------------------------------- void main(){ EA=1;IT0=1;EX0=1; //开中断0P2=0xff;P3=0xff;rb=60;tb=20;Delay(10000); //延时1swhile(1){if(rb>99)rb=0;if(rb<0)rb=99;if(tb>50)if(tb<0)tb=50;switch(m){case 0: //模式一{RH();//调用温湿度读取子程序if(U8RH_data_H>=rb)P2&=0x7f;else P2|=0x80;if(U8T_data_H>=tb)P2&=0xbf;else P2|=0x40;k=200;while(k--){P0=str[0];P1=0xfe;Delay(20);P1=0xfd;Delay(20);P0=str[2];P1=0xfb;Delay(20);P0=str[3];P1=0xf7;Delay(20);}}break;case 1:{ //模式二if(P3==0x7f)++rb;if(P3==0xbf)--rb;k=50;while(k--){P0=str[0]; P1=0xfe; Delay(10);P0=str[1]; P1=0xfd; Delay(10);P0=str[2]; P1=0xfb; Delay(10);P0=str[3]; P1=0xf7; Delay(10);}k=50; while(k--) {P1=0xfb;Delay(10);P0=str[3];P1=0xf7;Delay(10);P1=0xff;Delay(20);}}break;case 2:{ //模式三if(P3==0x7f)++tb;if(P3==0xbf)--tb;k=50;while(k--){st(rb,tb);P0=str[0];P1=0xfe;P0=str[1]; P1=0xfd; Delay(10);P0=str[2]; P1=0xfb; Delay(10);P0=str[3]; P1=0xf7; Delay(10);} k=50; while(k--) {P0=str[0]; P1=0xfe; Delay(10);P0=str[1]; P1=0xfd;P1=0xff;Delay(20);}}break;}}}参考文献[1]群芳,肖看,士军.单片微型计算机与接口技术(第四版).:电子工业社,2014.[1]谭浩强.C程序设计(第四版).:清华大学,2010.。