基于DHT11的温度湿度监测系统

合集下载

基于DHT11的温湿度监测电路设计

基于DHT11的温湿度监测电路设计

题目:基于DHT11的温湿度监测电路设计基于DHT11的温湿度监测电路设计摘要本次设计是采用MSC-51系列单片机中的AT89S51和DHT11构成的低成本的温湿度的检测控制系统。

单片机AT89S51是一款低消耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域得到广泛应用。

DHT11温湿度传感器是一款含有已校准数字输出的温湿度复合传感器,传感器包括一个电阻式感湿原件和一个NTC 测温元件,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

设计主要包括硬件电路的设计和系统软件的设计。

硬件电路主要包括单片机、温湿度传感器、显示模块、报警器以及控制设备等五部分。

其中由DHT11温湿度传感器及LCD1602字符型液晶模块构成系统显示模块;测温湿度控制电路由温湿度传感器和预设温度值比较报警电路组成;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣)。

软件部分包括了主程序、显示子程序、测温湿度子程序。

关键词:AT89S51;DHT11;温湿度监测DHT11 Temperature and Humidity monitoring circuit designABSTRACTAT89S51 is a low consumption, high performance CMOS8 bit microcontroller.Because of its powerful features and low price, it is used in many areas.DHT11 temperature and humidity sensor is a temperature and humidity combined sensor containing a calibrated digital output, the sensor consists of a resistor in the original sense of wet and a NTC temperature measurement devices.The product has many advantages, such as excellent quality, fast response, strong anti-jamming capability . This design is fromed by the AT89S51 in MSC-51 Series and DHT11 constitute which is a low-cost temperature and humidity measurement and control system. The design includes the design of hardware circuit design and system software.The hardware has Five modules.They are a microcontroller, temperature and humidity sensors, display module, alarm and control equipment. The LCD1602-character LCD module constitute the system display module.The temperature and humidity control circuit by the temperature and humidity sensors and preset temperature alarm circuit.According to the need of pre-enter the default value, when the actual measurement of the temperature humidity does not conform the preset temperature and humidity standards, send the alarm signal (buzzer will beep).The software part includes the main program, the display routines, temperature and humidity subroutine.Key words:AT89S51 ;DHT11 ;Temperature and humidity monitoring.目录1 前言 (1)1.1本文研究的背景及意义 (1)1.2研究任务和主要内容 (1)1.2.1本系统要完成任务 (1)1.2.2主要内容 (1)2 设计任务要求分析 (2)2.1设计要求 (2)2.2系统组成 (2)2.3本章小结 (2)3 硬件设计 (3)3.1单片机模块设计 (3)3.1.1AT89S51单片机 (3)3.1.2单片机最小系统 (4)3.1.3复位电路 (4)3.1.4时钟电路 (5)3.1.5温湿度设置(按键)电路 (6)3.2显示电路 (6)3.3传感器电路 (8)3.4电源指示灯电路 (10)3.5系统的蜂鸣器电路 (10)3.6本章小结 (11)4软件设计 (12)4.1温湿度采集模块 (14)4.2显示模块 (15)4.3蜂鸣器报警模块 (15)4.4PROTUES运行结果 (16)4.5本章小结 (17)结论 (18)参考文献 (19)致谢 (20)1 前言1.1 本文研究的背景及意义在日常生活中,温湿度监控系统应用很广泛,例如:机房、档案馆、材料加工场等场所,都必须严格控制环境的温度和相对湿度,使其保持在一定的范围。

DHT11温湿度传感器

DHT11温湿度传感器

DHT11温湿度传感器概述 DHT11数字温湿度传感器是⼀款含有已校准数字信号输出的温湿度复合传感器。

它应⽤专⽤的数字模块采集技术和温湿度传感技术,确保产品具有极⾼的可靠性与长期的稳定性。

传感器包括⼀个电阻式感湿元件和⼀个NTC测温元件,并与⼀个8位单⽚机相连接。

因此该产品具有抗⼲扰能⼒强、性价⽐⾼等优点。

硬件连接 DHT11使⽤1-wire总线与MCU进⾏半双⼯通信,当连接线长度短于20⽶时可⽤5K的上拉电阻,⼤于20⽶时需要根据实际情况选择合适的上拉电阻。

通信过程 DATA引脚⽤于MCU与DHT11之间的通讯和同步,采⽤单总线数据格式,⼀次通讯时间4ms左右,数据分⼩数部分和整数部分,⼀次完整的数据传输为40bit,⾼位先出(MSB)。

数据格式:8bit湿度整数数据+8bit湿度⼩数数据+8bit温度整数数据+8bit温度⼩数数据+8bit校验和。

数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度⼩数数据+8bit温度整数数据+8bit温度⼩数数据”所得结果的末8位。

通信的开始 上图为MCU与DH11通信的开始,MCU拉低总线20ms后拉⾼,请求DH11响应,DH11收到信号后将总线拉低以此来响应主机,响应后拉⾼总线开始传输数据,本图来源为DH11的数据⼿册。

需要注意MCUI/O引脚输⼊输出模式的切换,本⼈使⽤的是GPIOG的号引脚与DHT11进⾏通信。

数据的判断 上图中可以看出论时数据0还是数据1,数据的开始总线都是被拉低50us,只是在总线被拉⾼时的时长不⼀样,于是程序便可以在40us 的时候判断引脚的电平,以此来指定当前传输的数据是0是1。

温湿度传感器程序 以下为温湿度传感器初始化函数和获得温湿度数据的程序,初始化相关引脚后调⽤read_ht_data(&data),便可以获得所需数据,注意该函数1s钟只能调⽤⼀次,不然获取不到数据。

还需要保证延迟函数是准确的,参考我之前的系统定时器的相关随笔。

单总线传感器DHT11在温温度测控中的应用

单总线传感器DHT11在温温度测控中的应用

单总线传感器DHT11在温温度测控中的应用引言随着科技的不断发展,汽车、空调、除湿器、烘干机等种类繁多的电器都已进入人们的日常生活,而这些电器设备很多都离不开对温度、湿度等环境因素的要求。

因此,温度、湿度传感器用途越来越广泛。

新一代的数字传感器不再需要外置的A/D转换模块,并具有标准接口,使用方便,得到了越来越多的应用。

DHT11作为一种新型的单总线温湿度数字传感器,具有更多的优点,它使系统设计更加简单,控制方便,易于实现。

1 单总线通信简介目前常用的微机与外设之间进行数据传输的串行总线主要有I2C总线、SPI总线和SCI总线。

其中I2C总线以同步串行两线方式进行通信(1条时钟线,1条数据线),SPI总线则以同步串行三线方式进行通信(1条时钟线,1条数据输入线,1条数据输出线),而SCI总线是以异步方式进行通信的(1条数据输入线,1条数据输出线)。

这些总线至少需要两条或两条以上的信号线。

近年来,美国的达拉斯半导体公司(Dallas Semiconductor)推出了一项特有的单总线(1-wire Bus)技术。

该技术与上述总线不同。

它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单、硬件开销少、成本低、便于总线扩展和维护等优点。

单总线适用于单主机系统,能够控制一个或多个从机设备。

主机可以是微控制器,从机是单总线器件,它们之间的数据交换只通过1条信号线。

当只有1个从机设备时,系统可按单节点系统操作;当有多个从机设备时,系统则按多节点系统操作。

2 DHT11的主要特点及引脚说明广州奥松电子有限公司新近推出的DHT11数字温湿度传感器,是一款含有已校准数字信号输出的温湿度复合传感器。

它应用专用的数字模块采集技术和温湿度传感技术,具有很高的可靠性与稳定性。

DHT11传感器包括1个电阻式感湿元件和1个NTC测温元件,并与1个高性能8位单片机相连接。

单线制串行接口,使系统连接可以更简洁。

DHT11 温湿度传感器说明书

DHT11 温湿度传感器说明书

DHT11说明书温湿度传感器●具有抗冲击性及电气性能优良●完全标定●数字输出,单总线通讯●优异的长期稳定性●响应迅速、恢复时间快、抗干扰能力强产品简述DHT11是一款含有已校准数字信号输出的温湿度复合传感器,采用了自主研发的集成式数字温湿度元件,应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。

DHT11传感器内包含一个温湿度测量元件和一个高性能MCU。

应用范围DHT11温湿度传感器可以应用于农业、家电、汽车、气象、医疗等领域,如暖通空调、除湿机、冷链仓储、测试及检测设备、数据记录仪、湿度调节系统、医疗等。

图1.DHT11温湿度传感器1.传感器性能1.1相对湿度表1.湿度特性表参数测试条件最小典型最大单位量程范围附加说明15-95%RH精度2--±5%RH重复性--±1-%RH互换性-完全互换响应时间3τ(63%)-<6-s迟滞--±0.3-%RH漂移4典型值-<0.5-%RH/yr 1.2电气特性表2.电气特性表符号参数测试条件最小典型最大单位VCC供电电压- 3.35 5.5VI平均电流5休眠-60-µA 测量-1000-µAV OL低电平输出电压I L6=5mA0-300mVV OH高电平输出电压Rp<25kΩ0.9*VCC-VCC VV IL低电平输入电压下降0-0.3VV IH高电平输入电压上升0.7-VCC VRp上拉电阻7VCC=5V1 4.7100kΩT S采样周期-2--s实际使用中的一些特性如功耗、输入和输出的高、低电平电压等都取决于供电电压。

在使用传感器时,要使系统获得鲁棒性,请确保各参数在表2所给出的范围内。

1正常工作范围:8~85%RH,超出此范围,传感器读数会有偏差(在90%RH湿度下60小时后,漂移>3%RH)。

工作范围进一步限定在-20~60℃。

2此精度为传感器出厂检验时,在25℃、VCC=5V条件下的测试精度。

温湿度检测DHT11

温湿度检测DHT11

初始化 具体过程
① 总线在空闲的时候为高电平。 ② 主机把总线拉低等待DHT11的响应。拉低的时间必 须大于 18毫秒,保证DHT11能检测到起始信号。 ③ DHT11接收到主机的开始信号后, 等待主机开始信号结束, 然后发送80us低电平响应信号。 ④主机发送开始信号结束 后,延时等待20-40us后, 读取DHT11 的响应信号。(主机发送开始信号后,可以切换 到输入模式, 或者输出高电平均可) ⑤当最后一bit数据传送完毕后,DHT11拉低总线 50us,随后总 线由上拉电阻拉高进入空闲状态。
温湿度检测DHT11
简介
• 产品概述 DHT11 数字温湿度传感器是一款含有已校 准数字信号输出的温湿度复合传感器。单线 制串行接口,使系统集成变得简易快捷。 超 小的体积、极低的功耗,信号传输距离可 达 20 米以上。产品为 4 针单排引脚封装。
产品简介 电路图
连接线长度短于20米时用5K上拉电阻。DHT11的供电电 压为 3-5.5V。传感器上电后,要等待 1s 以越过不稳定状态 在此 期间无需发送任何指令。电源引脚(VDD,GND)之间 可增加一个100nF 的电容,用以去 耦滤波。
单片机接收信号后 激活DHT11
单片机将所读数据 转发给手机
DHT11初始化后将 所读温湿度传给单 片机
DHT进入低功耗状 态
结束
总结
• 大体上,当我们需要读取温湿度时候,直 接通过手机发送请求信号即可,DHT11那儿 只需要接收命令即可,平常时间多工作在 低功耗状态。手机方面,用户可以自行获 取温湿度信息也可以让手机定时发送请求 信息,实时监控温湿度。
Байду номын сангаас
初始化 通讯过程
手机与DHT11通讯

基于DHT11的实验室多点温湿度报警系统设计

基于DHT11的实验室多点温湿度报警系统设计
湿度整数
二进制
o l 1o o 00 0
十六进 制
2H 4
十进制
3 6

5 O
湿度小数 温度整数 温度小数
校 验 码
o l o 1 o 1 oO O 0 O 1 ol l O 0 0 O o 11 o 0
1 l 1o O 1l0
3H 2 1H 6 5H O
山西 电子 技 术 21 0 1年第 4期
文章 编 号 :6 44 7 (0 )4 04 -2 17 -58 2 1 0 ・0 50 1
应 用 实践
基 于 D T 实验 室 多点 温 湿度 报 警 系统 设 计 H1 1的
王 志宏 , 白翠珍
( 山西 医科 大学 基 础 医学院 , 西 太原 000 ) 山 30 1
BH C
2 2

8 O
D T1 H 1 与单 片机主机通讯过程时序如图 3所示 , 总线空 闲状态为高 电平 , 机把 总 线拉 低大 于 1 等 待 D T I 主 8ms H 1
器 和高亮发 光管 , 实现报警 功能。
13 OI l . t l特性研究 T
D T 1 H 1【数字温湿度传感 器 , 2 是一款含有 已校 准数字信
当温湿度 数据超 出设定 温湿 度值 时 , 由单 片 机驱 动 报警 装 置, 实现现场报警功 能。
图 1 系统 原 理 结 构 框 图
1所示 。
表 l 4 bt 0 i数据结构表
1 2 硬 件选 型 .
单 片 机 选 用 国 产 宏 晶 科 技 生 产 的 高 性 价 比 SC 95 R T 8 C 1 C系列 j与传统 8 5 单 片机 相 比, 具有功 , 01 其 耗低 , 抗外部 电磁辐射 干扰强 , 序下 载方式 为 U R 程 A T方式 等优 点 , 用 非 常 方 便 。显 示 模 块 采 用 自带 汉 字 库 的 使 L D 26 , C 18 4 主控 芯 片为 S 72 , 求 支 持 串 口通 信 ( 分 T9 1要 部 L D模块需要跳线 才能 实 现 串 口通 信 功 能 ) C 。报 警 装置 采 用 L D与蜂 鸣器实现声光报警 , E 当温湿 度超出设定 值时 , 单 片机 VO 口输 出高 电平 , N N型三 极管驱 动大 电流蜂 鸣 经 P

基于DHT11温湿度测控系统设计

基于DHT11温湿度测控系统设计
t h e o p e r a t i o n, C H4 5 1 d i st l a d i s p l a y t u b e w a s u s e d t o d r i v e c h i p t o r e a l i z e r e l- a t i me d i s p l a y o f d e t e c t i o n d a t a,UL N 2 0 0 3 Wa S u s e d t o c o n t r o l t h e h u mi t u r e c o n d i t i o n i n g e q u i p me n t ,S O a s t o r e a l i z e t h e a u t o ma t i c r e g u l a t i o n o f h u mi t u r e . Th e e x p e i r me n t l a r e s u l t s s h o w t h a t t h e me a s u r e me n t a n d c o n t r o l s y s t e m o f c o n s t a n t h u mi t u r e c a l q b e u s e d t o i mp r o v e t h e a c c u r a c y o f p r e c i s i o n h o iz r o n t a l ma c h i n i n g c e n t e r o b v i o u s l y .T h e me a s u r e me n t a n d c o n t r o l s y s t e m i s ma i n t a i n e d c o n v e n i e n t l y w i t h s ma l l v o l u me ,l o w p o we r c o n s u mp t i o n,s i mp l e c i r c u i t

dht11模块测量温湿度的流程

dht11模块测量温湿度的流程

DHT11模块测量温湿度的流程概述本文将介绍D HT11模块的使用方法,包括连接电路、读取数据的流程以及温湿度的计算方法。

连接电路首先,我们需要将DH T11模块与单片机进行连接。

需要使用3个引脚:V C C、GN D和数据引脚。

具体的连接方式如下:-将DH T11模块的VC C引脚连接到单片机的3.3V或5V电源引脚上。

-将DH T11模块的GN D引脚连接到单片机的地(GN D)引脚上。

-将DH T11模块的数据引脚连接到单片机的任意可用的数字引脚上。

连接完成后,我们可以开始测量温湿度了。

测量温湿度的流程1.初始化在开始测量之前,我们需要对DH T11模块进行初始化。

初始化的步骤包括向D HT11发送一个低电平的信号,并延时至少18毫秒。

这个低电平信号将引导D HT11进入测量模式。

2.接收数据初始化完成后,D HT11模块会将测量到的温湿度数据以串行的形式发送回来。

我们需要准备好接收数据的缓冲区,并准备接收数据的引脚。

3.解析数据接收到数据后,我们需要对它进行解析。

D H T11模块发送的数据包括温度和湿度的整数部分和小数部分。

我们需要按照一定的规则将这些数据进行解析,得到最终的温度和湿度数值。

4.计算温湿度解析完数据后,我们可以根据DH T11模块的计算公式来得到真实的温度和湿度数值。

这个公式在D HT11模块的数据手册中有详细的说明。

5.显示结果最后,我们可以将测量得到的温湿度数据显示在单片机的L CD屏幕上,或者通过串口进行输出。

以上就是使用DH T11模块测量温湿度的完整流程。

通过连接电路、初始化、接收数据、解析数据和计算温湿度,我们可以准确地测量环境中的温度和湿度,为后续的应用提供数据支持。

小结本文介绍了使用D HT11模块测量温湿度的流程。

通过连接电路、初始化、接收数据、解析数据和计算温湿度,我们可以轻松地获取环境的温湿度数据。

这对于许多物联网和环境监测应用来说是非常重要的。

希望通过本文的介绍,你能够更好地理解和应用DH T11模块。

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

基于DHT11温湿度测控系统的设计
第2 6 卷第 4 期 2 0 1 3 年1 2 月
海南师范大学学报 ( 自然科学版 )
J o u r n a l o f Ha i n a n N o r ma l U n i v e r s i t y ( N a t u r a l S c i e n c e )
Vo 1 . 2 6 No . 4 De e . 2 01 3
基于 D H T l l 温湿度测控系统的设计
颜 丽娜 , 王 顺 忠 , 张铁 民
( 海南师范大学 物理 与电子工程学院, 海南 海 口 5 7 1 1 5 8 ) 摘 要: 依据 D H T l l 温湿度传感器的工作原理 , 设计 了以单片机 S T C 8 9 C 5 2 R C为主控核心的 实验室温湿度测控 系统. 在硬件方面, 主要设计 了单片机最小 系统电路、 D H T l l 与单片机的连接 电路 、 1 2 8 6 4 液晶显示电路、 蜂鸣器报警电路及抽湿机驱动 电路. 在软件方面, 主要编写了D H T 1 1 检测温湿度程序 、 1 2 8 6 4 显示程序 、 报警程序及驱动抽 湿机动作的程序. 实验表 明, 所设计的 系统 可以正常工作 , 系统运行状态良好.
Te mp e r a t u r e a n d Hu mi d i t y Ba s e d o n DHTl l
YAN L i n a。 W ANG Sh u n z h o n g。Z HANG Ti e mi n ( C o l l e g e o fP h y s i c s a n d E l e c t r o n i c E n g i n e e r i n g , Ha i n a n N o r m a l e , H a i k o u 5 7 1 1 5 8 , C h i n a )

利用DHT11测温度湿度实验报告

利用DHT11测温度湿度实验报告

微电子工艺实验题目气压温度测量系统学生姓名洪强学号***********学院电子与信息工程学院专业电子科学与技术指导教师曹鸿霞二O一五年十一月二十二日目录目录................................................ 错误!未定义书签。

1 系统描述.......................................... 错误!未定义书签。

1.1 课程设计题目 (2)1.2 系统设计方案介绍 (2)1.3 方案论证 (3)2 硬件电路设计 (3)2.1 LCD1602液晶显示模块 (3)2.1.1 LCD1602原理图及引脚说明 (4)2.1.2 LCD1602操作时序 (5)2.2 AT89C52单片机 (6)2.3 DHT11传感器模块 (7)2.3.1 DHT11原理图及引脚说明 (7)2.3.2 DHT11数据帧 (8)2.3.3 DHT11电气特性 (8)2.3.4 DHT11操作时序 (9)2.4 蜂鸣器模块 (10)2.5 DHT11温湿度检测设计图 (11)3 软件程序设计 (11)3.1 程序流程图 (11)3.2程序设计 (12)3.2.1主程序 (12)3.2.2 LCD显示程序 (13)3.2.3蜂鸣器程序 (20)4 实验结果 (21)5 实验总结 (22)参考文献 (22)测量气压温度测量系统洪强南京信息工程大学电子科学与技术,南京 210044摘要本实验基于使用STC89C52单片机、DHT11传感器模块、1602液晶显示屏模块以及报警模块。

简单明了的实现的可提要求。

DHT11数字温湿度传感器把采集到的温湿度数据传给单片机。

经过单片机的处理。

准确的显示到液晶屏上。

并对温湿度设置上下限。

越限报警。

)关键词:单片机DHT11传感器1602液晶显示屏STC89C52 报警1 系统描述1.1 课程设计题目温度测量及显示要求:①基于52系列单片机平台和DHT11温湿度传感器完成温湿度的测量;②温度测量数据的显示,可以用LCD1602显示;③对温湿度设置上下限,超过限度报警1.2 系统设计方案介绍电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。

基于DHT11传感器的温湿度采集系统

基于DHT11传感器的温湿度采集系统

器, 将采 集的温湿度数 据显示到 T F T L C D。如果采 集的数据超 过要 求 , 蜂 呜 器发 出报警信 号。实验结果 表 明该 系统 电路
简单 , 工作稳 定可靠。
关键 词 : 处理 器 ;无 线 传 感 器 ;温 度 ;湿度 ; 数 据 采 集 中 图分 类 号 : T P 2 7 3 文 献标 识 码 : A d o i : 1 0 . 3 9 6 9 / j . i s s n . 1 0 0 6 - 2 4 7 5 . 2 0 1 3 . 1 1 . 0 3 2
2 .D e p a r t me n t o f C o m p u t i n g I n f o r ma t i o n , H o h h o t V o c a t i o n a l C o l l e g e , H o h h o t 0 1 0 0 5 1 ,C h i n a )
Ab s t r a c t :A t e mp e r a t u r e a n d h u mi d i t y a c q u i s i t i o n s y s t e m i s d e s i g n e d b y u s i n g C o a e x - M3 a s t h e ma i n c o n t r o l l i n g c h i p a n d DHT 1 1 a s t h e s e n s o r 0 f t e mp e r a t u r e a n d h u mi d i t y .wh i c h me e t s t h e r e q u i r e me n t s f o l o w p o w e r c o n s u mp t i o n a n d c o s t s .T F T L CD i s u s e d t o d i s p l a y t e mp e r a t u r e a n d h u mi d i t y v a l u e s .I f t h e c o l l e c t e d d a t a i s o v e r r e q u i r e me n t .a b u z z e r s e n d s o u t la a r m s i na g 1.Ex — p e r i me n t l a r e s u l t s s h o w t h a t t h e s y s t e m wo r k s s t a b l y a n d r e l i a b l y w i t h s i mp l e c i r c u i t . Ke y wo r d s:p r o c e s s o r ;wi r e l e s s s e n s o r ;t e mp e r a t u r e ;h u mi d i t y ;d a t a a c q u i s i t i o n

基于51单片机的DHT11温湿度传感器

基于51单片机的DHT11温湿度传感器
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Delay_10us()//进入函数3us
{
uchar i;//每条语句1us
i--;
i--;
i--;
i--;
i--;
i--;
}
void display(uchar th,uchar tl)
{
uchar ih=0,il=0,jh=0,jl=0,kh=0,kl=0;
{
flag=2;
while((!dth)&&(flag++)); //等待拉高
//Delay_10us();
//Delay_10us();
//Delay_10us();
j=3;while(j--);//延时30us
temp=0;
if(dth==1)temp=1;
flag=2;
while(dth&&(flag++));//等待拉低
//if(flag==1)break;
cdata<<=1;
cdata=cdata|temp;
}
return cdata;
}
void getdth()
{
uchar i;
dth=0;
delayms(18);//18ms
dth=1;
//Delay_10us();
//Delay_10us();
//Delay_10us();
//Delay_10us();
i=4;while(i--);//延时40us
dth=1;
if(dth!=1)//dth11响应

dht11的应用原理

dht11的应用原理

DHT11的应用原理简介DHT11是一种数字温湿度传感器,广泛应用于测量环境温湿度的领域。

它采用数字信号输出,具有成本低、功能强大等优点,因此在家庭自动化、温湿度监测等方面得到了广泛的应用。

工作原理DHT11传感器是基于热电元件的原理来测量温度和湿度的。

它包含一个热电元件和一个湿度传感元件,通过测量它们的电阻值来得到相应的温度和湿度数值。

数据格式DHT11的数据格式是40位的数据,分为温度数据和湿度数据,以及校验位。

传感器通过单总线进行通信,发送和接收都是由主控芯片来完成的。

以下是DHT11数据格式的解释:•起始信号: 一个50微秒的低电平以及一个80微秒的高电平•数据位: 每一位包括一个50微秒的低电平以及一个26-28微秒的高电平•数据0: 数据位的高电平持续时间为26-28微秒,低电平持续时间为50微秒左右•数据1: 数据位的高电平持续时间为70微秒左右,低电平持续时间为26-28微秒DHT11的应用DHT11广泛应用于以下领域:1.家庭自动化控制系统: DHT11可以测量室内温湿度,用于智能家居系统中的温湿度监测和控制,如自动调节空调、加湿器、除湿器等设备。

2.温湿度监测系统: DHT11可以用于监测温室、仓库、实验室等环境的温湿度情况,及时反馈数据给用户,保证环境的稳定性。

3.智能农业: 在农业领域,DHT11可以用于实时监测农作物生长环境的温湿度,帮助农民科学地管理农田,提高作物的产量和质量。

4.仓储管理系统: DHT11可以用于监测仓库内部的温湿度情况,确保货物的质量和安全,防止因温度湿度过高或过低导致货物受损或腐烂。

电路连接连接DHT11传感器时,需要注意以下几点:•VCC: 连接到3.3V或5V的电源•GND: 连接到地•DATA: 连接到主控芯片的GPIO口代码示例以下是示例代码,用于读取DHT11传感器的温湿度数值:```python import Adafruit_DHTDHT_SENSOR = Adafruit_DHT.DHT11 DHT_PIN = 4humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN) if humidity is not None and temperature is not None: print(f。

基于DHT11的无线温湿度传感器网络节点的设计

基于DHT11的无线温湿度传感器网络节点的设计
第 3 卷第 5期 1
21 0 0年 9 月
\0 - N O. ,l3l 5
井 山人 学学报 L 自然科 版 )
Jun l f ig a gh nU iesy( aua S in e o ra o n g n sa nv r t N trl c c) J i e 6 1 _

a v n a e uc sl w we o s mp i n, o c s, i h i tg a i n s a l iea d sa eo e a i n d a t g ss h a o po rc n u to l w o t h g n e r to m l sz n tbl p r to 引言
近 年来 ,随着 无线传感 器 技术 的发展和进 步 , 无 线 传 感 器 网络 被 越 来 越 多 的应 用 到 环 境 监 测领
域 。传感 器节 点是构成 无线 传感 网络 的关键部 分 , 设 计 出低 功耗 、低成 本 的传 感器 网络 节点对提 高无

要 :荩 于 温 事 和 养 殖 孵 化等 场 所 需要 及 时 监 测 环 境 温 发 f 需求 , f 勺
r 种 低 战 小 、低 功 的 尤线 滁 瞍 } £
传 感 器 络 点 。主 要 介 绍 了 节 点 的 软硬 件 设计 ,详 细 闸述 了 D T l 湿 度 传 感 器 的 }序 。传 感 器 节 点 的 改计 l H1温 j l f _ l
关键字 :无线传感器节点;M P 3 . ;低功耗;数据 采集 ;温 瞍 感器 S 4 0单”机
中 图分 类 号 :T 3 1 1 P 9. 4 文 献 标 识 码 :A DO : .9 9jsn】7 ~0 52 1.J 1 I 03 6/i . 4 8 8 .0 】 0 5 1 .s 6 0.

温湿度传感器dht11原理

温湿度传感器dht11原理

温湿度传感器dht11原理DHT11温湿度传感器是一种数字式的温湿度传感器,由湿度敏感元件和温度敏感元件组成。

它能够通过单一的总线接口与微机或其他设备进行连接,并实时传输温湿度数据。

DHT11的工作原理如下:1. 传感器原理DHT11传感器采用的是湿电阻式的湿度测量原理。

它包含一个湿度敏感的电阻元件,该元件由具有定期间隔的两根电极构成。

当空气中的湿度增加时,湿度敏感元件的电阻值会减小;而在相对较干燥的环境中,湿度敏感元件的电阻值会增加。

对于温度测量,DHT11采用热敏电阻式测温原理。

它包含一个热敏元件,其电阻值随着温度的变化而变化。

当环境温度升高时,热敏元件的电阻值会减小;相反,当环境温度下降时,热敏元件的电阻值则会增加。

2. 信号采集与转换DHT11传感器通过单一的数据总线与外部设备进行通信。

外部设备通过给传感器发送启动信号,该信号包括一个至少18毫秒的低电平脉冲信号来唤醒传感器。

接下来,传感器将会返回信号应答。

在应答信号之后,外部设备会发送一个读取信号,以指示传感器准备好开始传输数据。

在数据传输过程中,传感器将以时间间隔的形式通过总线发送数据位。

每个数据位由50ms低电平信号和高电平信号组成,传感器通过判断每个时间间隔低电平信号的持续时间,来解析出对应的数据位。

3. 数据解析DHT11传感器的数据包含40位二进制码,其中包括温度值、湿度值和校验位。

温度值和湿度值都是以整数形式传输,校验位用于验证数据的正确性。

数据的解析方式是通过测量低电平脉冲的时间来识别每个数据位。

低电平脉冲持续时间为26-28μs表示逻辑0,而持续时间为70μs表示逻辑1。

在解析的过程中需要注意的是,DHT11传感器在开始发送数据位时会先发送一个高电平信号,因此在数据解析中还需要将起始的高电平信号排除。

4. 校验位最后一位是校验位,用于验证数据的正确性。

校验位是通过前面所传输的温湿度值的和进行计算得到的,如果校验位与和不符,则说明数据传输错误,需要重新读取。

一种基于DHT11的数字温湿度计及设计方法[发明专利]

一种基于DHT11的数字温湿度计及设计方法[发明专利]

专利名称:一种基于DHT11的数字温湿度计及设计方法专利类型:发明专利
发明人:李和平,范晨阳,温梦柯,李钟谷
申请号:CN201811338169.2
申请日:20181112
公开号:CN109211334A
公开日:
20190115
专利内容由知识产权出版社提供
摘要:本发明涉及测量技术,具体涉及一种基于DHT11的数字温湿度计及设计方法,包括CPU模块、温湿度采集模块、电源模块、实时时钟模块、显示模块、按键模块、报警模块与存储模块,CPU 模块分别连接显示模块、温湿度采集模块、存储模块、实时时钟模块、按键模块和报警模块,电源模块为CPU模块和其他模块供电;CPU模块包括MCU电路、时钟电路以及复位电路;CPU模块用于接收温湿度采集模块的数据并进行处理,接收实时时钟模块产生的实时时间数据并进行处理,读取按键模块所设置的温湿度范围数据,对环境温湿度和设置的温湿度范围进行比较,将温湿度数据、温湿度范围、实时时间、报警状态送显示模块显示。

该数字温度计温度能实现多种功能,满足标准测温精度与测湿精度。

申请人:武汉理工大学
地址:430070 湖北省武汉市洪山区珞狮路122号
国籍:CN
代理机构:武汉科皓知识产权代理事务所(特殊普通合伙)
代理人:彭艳君
更多信息请下载全文后查看。

基于ESP8266的DHT11温湿度检测

基于ESP8266的DHT11温湿度检测

基于ESP8266的DHT11温湿度检测作者:王小祥来源:《数字技术与应用》2019年第08期摘要:WIFI模块ESP8266以其价格低、性能能优而被广泛应用。

其不仅能实现WIFI功能,而且可以实现MCU控制功能。

本文主要介绍利用ESP8266和DHT11实现温度与湿度的检测。

关键词:ESP8266;DHT11;检测中图分类号:TP27 文献标识码:A 文章编号:1007-9416(2019)08-0034-021 DHT11简介DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

其内置电容式感湿元件、NTC 测温元件和一个高性能 8 位单片机,具有极高的可靠性与卓越的长期稳定性。

广泛应用于家电、汽车、医疗等行业的温湿度检测控制。

主要特点如下:测量相对湿度范围:5~95%RH,测量温度范围:-20~60℃。

DHT11的引脚说明:①VCC:供电3.3V~5.5VDC;②DAT:串行数据,单总线;③悬空;④GND。

DHT11采用单总线通讯协议(一般外接4.7kΩ的上拉电阻),其与单片机通迅主要由起始信号、响应信号、数据传输、结束信号组成。

(1)起始信号:起始信号由主机发送,主机拉低T(18ms<T<30ms),然后释放总线,通知从机(DHT11)准备数据。

(2)响应信号:从机(DHT11)检测到起始信号后会拉低83us作为响应信号,然后拉高87us通知主机准备接收数据。

(3)数据传输:从机发送87us高电平的通知信号后紧接着发送40Bit数据,高位先出。

数据“0”—为低电平54us,高电平23~27us;数据“1”—为低电平54us,高电平68~74us。

40位数据的组成:16位湿度数据(高8位是湿度的整数,低8位是湿度的小数(湿度的小数部分为0));16位温度数据(高8位是温度的整数,低8位是温度的小数);8位校验和(湿度与温度4个字节数据的和)。

结束信号:从机发送完40Bit数据后会输出54us的低电平作为结束信号,然后转为输入状态,而主机在检测到从机结束信号后应配置为输出模式并输出高电平。

根据DHT11的温度检测

根据DHT11的温度检测

西安邮电大学温度测控与报警系统课程设计报告书系部名称:自动化学院学生姓名:专业名称:测控技术与仪器班级:1001班2013年4月8日至时间:2013 年4月19日温湿度测控与报警系统设计一、设计要求:以DHT11作为温度传感器,进行环境温湿度测试。

将结果显示在数码管或液晶屏上。

同时,设定温度上下限,当温度越限即报警。

二、设计方案分析1、方案设计:2、背景知识介绍:(1)控制部分控制部分是采用单片机STC89C52。

<1>STC89C52简介STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,俗称单片机。

该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

单片机总控制电路如下图<2>复位操作复位操作有上电自动复位相按键手动复位两种方式。

上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图所示。

这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。

按键手动复位有电平方式和脉冲方式两种。

其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的,其电路如下图所示:(a)上电复位(b)按键电平复位(c)按键脉冲复位上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。

本系统的复位电路采用上电复位方式。

(2)测量部分测量部分我们采用DHT11温度传感器。

1> 概述:DHT11是广州奥松有限公司生产的一款湿温度一体化的数字传感器。

该传感器包括一个电阻式测湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

通过单片机等微处理器简单的电路连接就能够实时的采集本地湿度和温度。

DHT11与单片机之间能采用简单的单总线进行通信,仅仅需要一个I/O口。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于DHT11的温度湿度监测系统班级:计科XX班姓名:XX指导老师:XX完成时间:2010年12月10日一:选题背景随着电子科技的迅速发展,对仓库、工厂、博物馆等等地方温湿度监测系统的要求不断增高,从而也促进自动检测系统的迅速发展,本文详细叙述一个计算机温湿度自动检测系统的总体结构,设计原则及具体性能指标。

由于系统具有较高的精度,反应速度快,在环境测量方面具有很好的应用前景。

防潮、防霉、防腐、防爆是仓库、工厂等地方日常工作的重要内容,是衡量仓库、工厂等地方管理质量的重要指标。

它直接影响到储备物资的使用寿命和工作可靠性。

为保证日常工作的顺利进行,首要问题是加强仓库和工厂内温度与湿度的监测工作。

但传统的方法是用与湿度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的库房进行通风、去湿和降温等工作。

这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性大。

因此我们需要一种造价低廉、使用方便且测量准确的温湿度测量仪。

随着人们生活水平的提高,人们逐渐对温湿度变得敏感起来,对于温度湿度的了解,有助于人们的生活起居。

有时候需要知道空气中的温度湿度,以便于出行和穿戴的选择,有时候需要知道太阳能热水器的水温,以便于洗浴。

为了能实时了解空气中的温度和湿度,有必要制作一种测量温度和湿度的仪器。

有些地方,如博物馆,一些文物必须保存在适合的温度湿度范围内,以免文物长时间接触空气中的水分而造成文物损坏,而文物保存在适合的温度湿度范围内,其代价又太大,有时难以承受。

所以,无论如何,都有必要实时监控空气中的温度湿度,必然需要一种价格低廉,使用方便的测量仪器来监控温度和湿度。

二:需求分析DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。

它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。

传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。

因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。

每个DHT11传感器都在极为精确的湿度校验室中进行校准。

校准系数以程序的形式储存在OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。

单线制串行接口,使系统集成变得简易快捷。

超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

产品为 4 针单排引脚封装。

连接方便,特殊封装形式可根据用户需求而提供。

应用领域►暖通空调►测试及检测设备►汽车►数据记录器►消费品►自动控制►气象站►家电►湿度调节器►医疗►除湿器三:总体设计方案(1)设计思路本系统采用已有的ELITE-III单片机开发板,以ELITE-III单片机开发板为核心,只需要加入少量的外围器件DHT11即可实现温湿度的监控,不必另外购买器件,方面简单,可靠性高。

根据DHT11的说明,温度和湿度的显示至少为六位,温度和湿度的显示各三位,两位整数,一位小数,需要六个数码管。

由于本实验加入了时间监控,所以增加了矩阵键盘,以控制时间的显示和温湿度的显示。

(2)应用技术分析本系统采用了以下关键技术:1、单片机最小系统2、数码管显示3、矩阵键盘4、时钟5,DHT11温湿度监控(3)设计难点本系统的设计有如下几个难点第一,本系统涉及的关键技术都比较简单,但实现起来有难度,尤其是各个程序模块连接的时候容易出现问题;第二,本系统关于DHT11的程序编写有难度,DHT11使用的是单总线传输,因此必须对总线有一定的了解;第三,本系统由于借用ELITE-III单片机开发板,开发板上的矩阵键盘和数码管使用了相同的引脚P2.0和P2.1,硬件上设置有点问题,程序编写的难度加大。

四:硬件设计(1)本系统的关键在于数字温湿度传感器DHT11,下面是关于DHT11说明:型号测量范围测湿精度测温精度分辨力封装DHT11 20-90%RH 0-50℃±5%RH ±2℃ 1 4针单排直插1、传感器性能说明 参数 条件 Min Typ Max 单位湿度分辨率 1 1 1 %RH 16 Bit 重复性±1 %RH 精度 25℃ ±4 %RH 0-50℃ ±5 %RH 互换性 可完全互换 量程范围0℃ 30 90 %RH 25℃ 20 90 %RH 50℃20 80 %RH 响应时间1/e(63%)25℃,1m/s 空气 61015S迟滞±1 %RH 长期稳定性 典型值 ±1 %RH/yr 温度 分辨率1 1 1 ℃ 16 16 16 Bit 重复性±1 ℃ 精度±1 ±2 ℃ 量程范围0 50 ℃ 响应时间1/e(63%) 630S2、接口说明建议连接线长度短于20米时用5K 上拉电阻,大于20米时根据实际情况使用合适的上拉电阻3、 电源引脚DHT11的供电电压为 3-5.5V 。

传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。

电源引脚(VDD ,GND )之间可增加一个100nF 的电容,用以去耦滤波。

4、串行接口(单线双向)DATA 用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。

数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。

用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。

1.通讯过程如图1所示图1总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。

DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。

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

数字0信号表示方法如图4所示图4数字1信号表示方法.如图5所示图55、测量分辨率测量分辨率分别为8bit(温度)、8bit(湿度)。

6、电气特性VDD=5V,T = 25℃,除非特殊标注参数条件min typ ma单位x 供电 DC 3 5 5.5V 供电电流测量 0.5 2.5 mA 平均 0.2 1 mA 待机 100 150 uA 采样周期秒1次注:采样周期间隔不得低于1秒钟。

(2)硬件设计电路图如下所示:(3)ELITE-III单片机开发板五:软件设计(1)本系统的主要程序如下所示://2010年12月2日//作者:XX//基于DHT11的温湿度监控系统(可以显示监测时间)#include <reg52.h> //51芯片管脚定义头文件#define uchar unsigned char#define uint unsigned intsbit dht=P1^2;//DHT1引脚定义//74LS138译码电路引脚定义,键盘,数码管,点阵使用时都需要它sbit pa=P1^4;sbit pb=P1^5;sbit pc=P1^6;//74hc138a.b.c输入端,控制数码管段选sbit poe=P1^7;//74HC138使能端//全局变量uchar i,j;//DHT11变量定义uchar bdata dht_data;//存储DHT11发来的一个字节的数据uchar t1,t2,t3,t4,t5;//存放DHT11发来的一个字节的数据uchar dht_tab[5];//存放DHT11发来的数据//矩阵键盘uchar key,key_value;//读取键码//时钟电路(计时)uchar t_count,t_hour;//计数毫秒和月uint t_time;//计数分uchar mod;//时间修正(DHT11测温度占用)//数码管显示值(共阳极)uchar codetab[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00};//0至F 共16个数,全亮//延时函数大约9.9us==delay(1)void delay(uint time){while(time--);}//***********************************************************************************//数码管显示模块void display(uchar temp1,uchar temp2)//temp2个数码管显示temp1{//P2=0xff;//关闭数码管位选poe=0;pa=0;pb=1;pc=0;//选中锁存器,未打开P0=temp1;poe=1;poe=0;//打开74LS138P2=temp2;//0xfe,0xfd,0xfb,0xf7,0xef,0xdf第1,2,3,4,5,6个数码管亮;0xfe,0xfc,0xf8,0xf0,0xe0,0xc0:1,2,3,4,5,6个数码管亮}void displayxx(uchar tem1,uchar tem2,uchar tem3,uchar tem4,uchar tem5,uchar tem6){//数码管显示函数(六个数码管都显示)display(tem1,0xfe);delay(100);display(tem2,0xfd);delay(100);display(tem3,0xfb);delay(100);display(tem4,0xf7);delay(100);display(tem5,0xef);delay(100);display(tem6,0xdf);delay(100);P2=0xff;}void disp(){//数码管显示测试函数t1=12;t2=34;t3=56;for(s=0;s<150;s++){displayxx(tab[t1/10],tab[t1%10],tab[t2/10],tab[t2%10],tab[t3/10],tab[t3%10]);P2=0xff;//关闭数码管位选for(s=0;s<150;s++){displayxx(tab[7],tab[8],tab[9],tab[10],tab[11],tab[12]);}P2=0xff;//关闭数码管位选for(s=0;s<150;s++){displayxx(tab[13],tab[14],tab[15],tab[16],tab[0],0xff);}P2=0xff;//关闭数码管位选}//结束//*********************************************************************************** //*********************************************************************************** //DHT11测温度湿度模块void DHT11(){EA=0;//关闭总中断dht=0;//单总线引脚,设为P1.2,主机发出开始信号dht_data=0;//存放一个字节的数据for(i=0;i<20;i++)delay(102);//大约1msdht=1;//拉高并延时while(dht);//开始信号(等待主机发出的开始信号结束)while(!dht);//DHT11输出响应信号while(dht);//DHT11输出响应信号延时for(j=0;j<5;j++){//五个字节(共四十位)for(i=0;i<8;i++){//每次八位(一个字节的数据)dht_data=dht_data<<1;//左移一位,最低位存储DHT11发来的数据while(!dht);//等待50us的低电平结束delay(4);//延时大约40usif(dht==1){//判断总线信号(发来的是否是逻辑高)dht_data=dht_data|0x01;//存储DHT11发来的一位数据while(dht);//等待低电平,等待下一位数据发送}else{//总线信号为低电平(发来的是逻辑低)dht_data=dht_data|0x00;//存储DHT11发来的一位数据}}dht_tab[j]=dht_data;//存储到数组中}delay(6);//EA=1;//t1=dht_tab[0];//湿度整数部分t2=dht_tab[1];//湿度小数部分t3=dht_tab[2];//温度整数部分t4=dht_tab[3];//温度小数部分t5=dht_tab[4];//检验位}//结束//*********************************************************************************** //*********************************************************************************** //时钟电路模块模块(使用定时器1,十六位定时器,50ms)void TIME_init(){EA=0;P0=0xff;P1=0xff;P2=0xff;P3=0xff;TMOD=0x15;//选择定时计数器模式1工作方式T0 T1工作于方式1TH1=0x3c;//初值50msTL1=0xb0;//初值TR1=1;//开T0定时器ET1=1;//允许T0定时器中断EA=0;//关闭总中断}void timer0(void)interrupt 3{EA=0;TH1=0x3c;//初值50msTL1=0xb0;//初值t_count++;if(t_count==20){//是否到一秒t_count=0;t_time++;//加一秒if(t_time==43200)//是否到十二小时{t_hour++;//if(t_hour==60)t_hour=0;//是否到一个月t_time=0;}}EA=1;}void TIME()//数码管显示时间{t1=t_time/3600;//时t2=(t_time-t1*3600)/60;//分t3=t_time%60;// 秒if(t_hour%2)t1=t1+12;displayxx(tab[t1/10],tab[t1%10]&0x7f,tab[t2/10],tab[t2%10]&0x7f,tab[t3/10],tab[t3%10]);}//结束//*********************************************************************************** //*********************************************************************************** //矩阵键盘模块void keyscan()//扫描键盘{poe=0;pa=0;pb=0;pc=1;//选中缓冲器RDKey(74LS138)P0=0xff;P2=0xfe;//扫描0至8号键poe=1;//打开缓冲器if(P0!=0xff)//判断1至8号键是否按下{delay(10);if(P0!=0xff){key=P0;switch(key){case 0xfe:key_value=0;break;case 0xfd:key_value=1;break;case 0xfb:key_value=2;break;case 0xf7:key_value=3;break;case 0xef:key_value=4;break;case 0xdf:key_value=5;break;case 0xbf:key_value=6;break;case 0x7f:key_value=7;break;default:key_value=16;break;//出错}}poe=0;//关闭缓冲器RDKey(74LS138)}//大ifP2=0xff;poe=0;pa=0;pb=0;pc=1;//选中缓冲器RDKey(74LS138)P0=0xff;P2=0xfd;//扫描0至8号键poe=1;//打开缓冲器if(P0!=0xff)//判断9至16号键是否按下{delay(10);if(P0!=0xff){key=P0;switch(key){case 0xfe:key_value=8;break;case 0xfd:key_value=9;break;case 0xfb:key_value=10;break;case 0xf7:key_value=11;break;case 0xef:key_value=12;break;case 0xdf:key_value=13;break;case 0xbf:key_value=14;break;case 0x7f:key_value=15;break;default:key_value=16;break;//出错}}poe=0;//关闭缓冲器RDKey(74LS138)// delay(3000); //延时50us}//大ifP2=0xff;}//结束//******************************************************************************//******************************************************************************//主函数//****************************************************************************** void main(){P0=0xff;P1=0xff;P2=0xff;P3=0xff;key_value=16;i=0;j=0;s=0;mod=0;TIME_init();disp();EA=1;s=0;while(1){keyscan();if(key_value<12){//按1至12个键中的任意一个,显示时间TIME();}else{//按13至16个键中的任意一个,显示温度if(s>200){//大约1.2s测一次温度s=0;DHT11();mod++;//粗略修正DHT11测温度占用的时间if(mod==50){//大约20mst_time++;mod=0;}}s++;displayxx(tab[t1/10],tab[t1%10]&0x7f,tab[t2/10],tab[t3/10],tab[t3%10]&0x7f,tab[t4%10]);}}}//主程序结束//******************************************************************* (2)程序流程图六:总结和展望(1)总结通过这次系统的设计和测试,我收获颇多。

相关文档
最新文档