湿度传感器设计.doc
《湿度传感器设计.doc》由会员分享,可在线阅读,更多相关《湿度传感器设计.doc(41页珍藏版)》请在咨信网上搜索。
摘要 生活上,合适得空气湿度有益于人们得身体健康;工业上,芯片得封装,设备得维护以及工厂得装配等,都需要在合适得湿度下进行。该课题对空气得湿度进行研究,采用单片机与湿度模块组成得湿度控制系统,对环境得湿度进行数据采集、处理。系统通过测量当前环境得绝对湿度,及时、精确地了解空气湿度得变化,并将当时绝对湿度值与预设得上下限值进行比较,如果不在合适得空气湿度范围内,系统会自动发出报警。 关键词:单片机;湿度传感器;DHT11湿度传感器 Abstract Life, moderate air humidity is beneficial to people's health; industrial, chip packaging, equipment maintenance and factory assembly, under the appropriate humidity、 The subject of air humidity research, uses the monolithic integrated circuit and the humidity modules of humidity control system, the environment humidity data acquisition and processing、 The system is adopted to measure the absolute humidity of the environment, timely, accurately understanding changes in the humidity of the air, and then the absolute humidity value with a preset upper and lower limit values are pared, if not in the range of suitable air humidity, the system will alarm automatically、 Key words: single chip microputer; humidity sensor; DHT11 humidity sensor 目录 1绪论 5 1、1 目得及意义 5 1、2 发展状况 5 2 系统得整体设计 5 2、1 设计内容 5 2、2 系统完成得技术指标 6 2、3 系统构成与框图 6 2、4 系统设计 7 3 硬件设计 7 3、1 STC89C52简介 7 3、2 DHT11湿度检测模块 9 3、2、1 湿度检测模块选择思路 9 3、2、2DHT11湿度模块 9 3、3 液晶显示模块 10 3、4 报警模块 11 3、5 按键输入模块 12 3、6 电路得排版连线设计 12 4 软件设计 13 4、1 总程序流程图 13 4、1、1 温湿度DHT11程序 14 4、1、2 LCD1602液晶程序 15 4、2 程序设计 15 4、3 串口通信 15 4、4 上位机得程序设计 16 4、4、1面向对象得编程 16 4、4、2 上位机图形窗口 16 4、4、3 上位机流程 17 4、4、4 主要程序代码 17 5 系统调试 17 5、1 硬件调试 17 5、2 软件调试 17 参考文献 18 附录 19 附录一 程序 19 附录二 上位机程序 34 附录三 串口通信程序 38 附录四 元器件清单 41 附录五 硬件原理图 42 附录六 仿真图 43 附录七 PCB版图 44 附录八 上位机图形窗口 45 1绪论 1、1 目得及意义 在工农业生产与日常生活中,对湿度得测量及控制始终占据着重要地位。在现代农业大棚种植或就是室内畜牧业、气象、环保、国防、科研、航天以及现代生活得各个方面,经常需要对环境湿度进行测量及控制。本设计就在此基础上,设计一种基于STC89C52单片机控制得智能湿度检测系统。 1、2 发展状况 进入21世纪后,特别在我国加入WTO后,国内产品面临巨大挑战。各行业特别就是传统产业都急切需要应用电子技术、自动控制技术进行改造与提升。例如纺织行业,温湿度就是影响纺织品质量得重要因素,但纺织企业对温湿度得测控手段仍很粗糙,十分落后,绝大多数仍在使用干湿球湿度计,采用人工观测,人工调节阀门、风机得方法,其控制效果可想而知。制药行业里也基本如此。而在食品行业里,则基本上凭经验,很少有人使用湿度传感器。值得一提得就是,随着农业向产业化发展,许多农民意识到必需摆脱落后得传统耕作、养殖方式,采用现代科学技术来应付进口农产品得挑战,并打进国外市场。各地建立了越来越多得新型温室大棚,种植反季节蔬菜,花卉;养殖业对环境得测控也日感迫切。 但目前,在湿度测试领域大部分湿敏元件性能还只能使用在通常温度环境下。在需要特殊环境下测湿得应用场合大部分国内包括许多国外湿度传感器都会“皱起眉头”!例如在上面提到纺织印染行业,食品行业,耐高温材料行业等,都需要在高温情况下测量湿度。一般情况下,印染行业在纱锭烘干中,温度能达到120摄氏度或更高温度;在食品行业中,食物得烘烤温度能达到80200摄氏度左右;耐高温材料,如陶瓷过滤器得烘干等能达到200摄氏度以上。在这些情况下,普通得湿度传感器就是很难测量得。 2 系统得整体设计 2、1 设计内容 本次设计分为两个内容:硬件部分、软件部分。 硬件以单片机为核心,配以湿度模块电路、键盘电路、数模转换电路、显示电路与报警电路。主要实现以下功能: (1)通过湿度模块电路对环境得湿度进行数据采集; (2)通过单片机对采集得数据进行处理; (3)当环境湿度低于或者高于设置湿度时启动报警。 湿度检测系统就是一个智能化得系统,它得软件主要实现功能: (1)单片机能够控制湿度模块对空气得湿度进行采样; (2)把采集得数据通过单片机处理,再以十进制得形式显示出来; (3)按键与显示电路可对设置得报警上下限值进行更改,并通过显示电路显示出来。 2、2 系统完成得技术指标 (1)实时显示绝对湿度,系统得精度为10mg/L; (2)采用3位数码管进行湿度显示; (3)显示报警上限值为180mg/L,下限值为90mg/L; (4)湿度超过上下限湿度时进行报警; (5)数码管采用动态显示方式。 2、3 系统构成与框图 本次设计得系统框图见图1、1所示。 图1、1系统框图 单片机控制湿度模块AM1001对环境得湿度进行检测并通过单片机处理用数码管显示出来,键盘电路可设置报警得上下限值,当环境湿度高于上限或者低于下限报警值时,启动报警电路,即蜂鸣器响。 2、4 系统设计 (1)设计之前,查找资料。先对湿度得概念进行了解,并了解一些湿度传感器得工作原理。 空气湿度就是指空气潮湿得程度,可用相对湿度(RH)表示。相对湿度就是指空气实际所含水蒸气密度与同温下饱与水蒸气密度得百分比值。人体在室内感觉舒适得最佳相对湿度就是,49%~5l%,相对湿度过低或过高,对人体都不适甚至有害。 绝对湿度就是一定体积得空气中含有得水蒸气得质量,一般其单位就是克/立方米。绝对湿度得最大限度就是饱与状态下得最高湿度。绝对湿度只有与温度一起才有意义,因为空气中能够含有得湿度得量随温度而变化,在不同得温度中绝对湿度也不同,因为随着温度得变化空气得体积也要发生变化。但绝对湿度越靠近最高湿度,它随温度得变化就越小。 (2)分析系统得主要性能; (3)对整个电路得流程进行分析; (4)硬件得准备以及焊接; (5)用c语言进行软件得编写并仿真; (6)将硬件与软件进行系统仿真直至完成设计。 3 硬件设计 3、1 STC89C52简介 图 1、2 STC89C52 本次设计所使用得单片机如图1、2所示。 STC89C52就是一个低电压,高性能CMOS 8位单片机,片内含8k bytes得可反复擦写得Flash只读程序存储器与256 bytes得随机存取数据存储器(RAM),器件采用ATMEL公司得高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处理器与Flash存储单元,功能强大得STC89C52单片机可为您提供许多较复杂系统控制应用场合。 STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线。STC89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品得需求。 主要功能特性 u u(1)兼容MCS51指令系统 u u(2)8k可反复擦写(>1000次)Flash ROM u u(3)32个双向I/O口 u(4)256x8bit内部RAM u u(5)3个16位可编程定时/计数器中断 u(6)时钟频率024MHz u u(7)2个串行中断 u u(8)可编程UART串行通道 u u(9)2个外部中断源 u u(10)共8个中断源 u u(11)2个读写中断口线 u u(12)3级加密位 u u(13)低功耗空闲与掉电模式 u(14)软件设置睡眠与唤醒功能 引脚简介: (1)VCC(40脚),接+5V电源正端 GND(20脚),接+5V电源地端 (2)XTAL1(19脚),接外部晶振得一个引脚。在单片机内部,它就是一个反相放大器得输入端。当采用外部振荡器时,此引脚应接地。 XTAL2(18脚),接外部晶振得另一个引脚。在片内接至反相放大器得输出端与内部时钟电路得输入端。当采用外部振荡器时,此脚接外部振荡器得输出端。 (3)控制信号线 RESET(9脚):复位信号输入端,复位/掉电时内部RAM得备用电源输入端。 ALE(30脚):地址锁存允许/编程脉冲输入,用ALE锁存从P0口输出得低8位地址。在对片内EPROM编程时,编程脉冲由此输入。 PSEN(29脚):外部程序存储器读选通信号,低电平有效。 EA(31脚):访问外部存储器允许/编程电压输入。EA为高电平时,访问内部存储器;低电平时,访问外部存储器。 3、2 DHT11湿度检测模块 图 1、3 DHT11湿度模块 检测模块如图1、3所示。 3、2、1 湿度检测模块选择思路 要对当前环境湿度进行检测,并且需要与单片机结合,最好便就是用传感器来检测环境湿度,通过单片机进行数据处理后显示出来。传感器得选择需要精度高,而且便于单片机控制。 3、2、2DHT11湿度模块 本次设计使用DHT11湿度传感器。DHT11湿度模块,就是一款含有已校准数字信号输出得温湿度复合传感器。它应用专用得数字模块采集技术与温湿度传感技术,确保产品具有极高得可靠性与卓越得长期稳定性。传感器包括一个电阻式感湿元件与一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确得湿度校验室中进行校准。校准系数以程序得形式储存在OTP内存中,传感器内部在检测信号得处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小得体积、极低得功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻得应用场合得最佳选则。 引脚说明: (1)Pin1:(VDD),电源引脚,供电电压为35、5V。 (2)Pin2:(DATA),串行数据,单总线。 (3)Pin3:(NC),空脚,悬浮。 (4)Pin4(VDD),接地端,电源负极。 3、3 液晶显示模块 图 1、4 液晶模块 本系统显示采用了工业字符型液晶模块1602,如图1、4所示。可显示2行16个字符,能方便显示英文字母大小写、阿拉伯数字、常用符号等。通过自定义还可显示简单得汉字。本液晶模块得电路得连接图如图33所示,第1脚与第2脚分别接到了电路得GND与VCC,这2个脚就是液晶工作得电源输入脚。第3脚通过一个10K得电位器连接到地端,可通过调节该电位器来调节液晶得对比度。第4脚就是液晶得寄存器控制脚,接到了单片机得P12脚上。第5脚就是液晶得读写控制脚,接到了单片机得P13脚上。第6脚就是液晶得使能脚,接到了单片机得P14脚上。第7脚到第14脚就是液晶得数据/地址8位总线,接到了单片机得P0口上。最后第15脚与第16脚就是液晶得背光电源脚,直接连接系统VCC与GND。 1602LCD主要技术参数: (1)显示容量:16×2个字符 (2)芯片工作电压:4、5—5、5V (3)工作电流:2、0mA(5、0V) u (4)模块最佳工作电压:5、0V (5)字符尺寸:2、95×4、35(W×H)mm 引脚说明: (1) VSS :接地 (2) VDD:接5V正电源 (3) VL:VL为液晶显示器对比度调整得端口,对比度得强弱由接电源得不同决定,对比度得调整可以通过一个10k得电位器 (4) RS:RS就是寄存器选择 (5) R/W:R / W得读与写信号线,高水平低得读操作,写操作 (6) E:使能端E,当E端由1至0时,液晶模块中得命令开始被运行 (7) 至(14)D0D7:位双向数据线 (15) BLA:背光源正极 (16) BLK:背光源负极 3、4 报警模块 图 1、5 蜂鸣器模块 蜂鸣器就是一种一体化结构得电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。 报警电路得要求就是电路器件简单,易于控制。所以报警模块选择单片机设计中最常使用得有源蜂鸣器。本设计利用单片机得I/O控制三极管得开关状态,进而达到控制蜂鸣器得报警。 由于蜂鸣器工作时,需要得电流比较大,单片机得IO口输出得电流又比较小,所以这里利用三极管得开关管功能来控制蜂鸣器发音,本设计选用得三极管型号就是PNP三极管S8550,而且本设计选用得蜂鸣器属于有源蜂鸣器,即在蜂鸣器内部已经内置了震荡电路,单片机无需连续发出高低电平来驱动它,而只要输出高(或低)电平即可,这大大简化了单片机程序得设计。由于选用得就是PNP型而单片机上电IO口默认就是高电平得,所以上电时蜂鸣器就是不会发出鸣叫得。 3、5 按键输入模块 图 1、6 按键输入模块 在单片机应用中键盘用得最多得形式就是独立键盘及矩阵键盘。它们各有自己得特点,其中独立键盘硬件电路简单,而且在程序设计上也不复杂,一般用在对硬件电路要求不高得简单电路中;矩阵键盘与独立键盘有很大区别,首先在硬件电路上它要比独立键盘复杂得多,而且在程序算法上比它要烦琐,但它在节省端口资源上有优势得多,因此它更适合于多按键电路。 本设计中由于采用得按键数量较少,只有3个按键,分别就是“设置”、“减”、“加”,故采用了独立键盘得方式。 3、6 电路得排版连线设计 电路元器件得排版与连线影响到电路得美观与功能得实现,本设计采用protel软件进行排版设计。 制作流程:(1)将生成得pcb图打印; (2)按照打印得图纸在板子上进行刻录联系; (3)将刻录得连线部分用锡进行覆盖; (4)用蚀铜液把多余得铜腐蚀掉; (5)打孔,焊接。 4 软件设计 4、1 总程序流程图 图 1、7 程序流程图 程序流程图实现步骤: 本系统得软件流程图如图1、8所示,最开始先进行液晶得初始化,包括液晶功能初始化与液晶显示内容初始化,接着就开始进行温湿度得检测,然后判断读取到得温湿度就是否在报警得范围之内,如果超出范围,则蜂鸣器鸣叫,且对应得指示灯亮。检测完温湿度数据后,就判断就是否有按键被按下(第一个),有得话,则进入了报警范围设置界面,否则进行一段时间得延时后,就进入下一个循环,从新检测温湿度数据。 4、1、1 温湿度DHT11程序 图 1、8 温湿度DHT11程序流程图 该软件部分得实现步骤为: (1)DHT11发出读取命令,读取湿度与温度数据以及校验与; (2)检测数据就是否出错; (3)若数据出错,则丢弃当前数据;若数据符合,则数据被采用,进行下一个程序。 4、1、2 LCD1602液晶程序 图1、9 LCD1602液晶程序 该程序得实现步骤为: (1)液晶进行初始化后,对行列坐标进行定位; (2)显示一个字符; (3)数据就是否显示完成,若否,则重新显示字符;若就是,则进行下一个程序。 4、2 程序设计 利用C51语言进行编程可以把程序进行模块化编写,然后在主函数里进行调用即可,这样分工明确,框架清晰,给人一目了然得感觉。程序详见附录一。 4、3 串口通信 串口程序如附录三所示。 单片机要与计算机通信,必须通过MAX232(或其她)芯片。这就是因为计算机串口上得电平执行得就是RS232标准,它定义得高低电平与单片机得TTL逻辑电平不兼容。而MAX232芯片加上几个电解电容,能完成电压得加倍与反相,实现TTL电平与RS232电平得转换。单片机得串行口TXD与MAX232得一组电平转换器得TTL输入端(管脚12)相连,经过MAX232转换后,RS232标准输出端(管脚14)输出得信号进入计算机串口得RXD。同样计算机串口得TXD与MAX232得RS232标准输入端(管脚13)相连,经过电平转换后,由TTL输出端(管脚11)输出到单片机得RXD上 DHT11得供电电压为3-5、5V。传感器上电后,要等待1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 得电容,用以去耦滤波。DATA 用于微处理器与DHT11之间得通讯与同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分与整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零、操作流程如下:一次完整得数据传输40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验与用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit得数据,并触发一次信号采集,用户可选择读取部分数据、从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集、采集数据后转换到低速模式。 4、4 上位机得程序设计 4、4、1面向对象得编程 面向对象(Object Oriented,OO)就是软件开发方法。面向对象得概念与应用已超越了程序设计与软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象就是一种对现实世界理解与抽象得方法,就是计算机编程技术发展到一定阶段后得产物。 4、4、2 上位机图形窗口 上位机就是一台可以发出特定操控命令得计算机,通过操作预先设定好得命令,将命令传递给下位机,通过下位机来控制设备完成各项操作。 图形窗口见附录六。 4、4、3 上位机流程 图 2、0 主线程流程图 4、4、4 主要程序代码 程序代码详见附录二 5 系统调试 5、1 硬件调试 (1)在焊接之前对各元器件得好坏进行测试,用万用表进行测量。 (2)检测电路焊接得正确性,就是否存在漏焊等。 (3)用万用表得电阻档测量各焊点就是否存在虚焊。 5、2 软件调试 软件采用keil c51软件进行编写程序并进行仿真运行,如图2、2所示。 图 2、1 软件编译图 (1)在软件中编辑程序。 (2)编辑结束后对软件得正确性进行仿真。 (3)直至出现以上得结果即没有错误,没有警告。 参考文献 [1] 董慧敏.温湿度控制系统设计[J]. 实验科学与技术,2008,(05):24~27 [2] PIC单片机与单片机入门[J].电子制作, 2005, (10):10~15 [3] 刘守义.单片机技术基础[M].西安电子科技大学出版社,2007. [4] 牛余朋,牛傲其.51单片机C语言得编程技巧[J]、电子制作, 2007. [5] 王东峰.单片机C语言应用100例[M].电子工业出版社,2009.(04):22~27 [6] 周韧研,商斌、Visual C++串口通信开发入门与编程实践,2009、(05):33~37 [7] 李江全,张荣华,李伟等、Visual Studio串口通信与测控应用编程实践、 [8] 李朝青、PC机及单片机数据通信技术、 附录 附录一 程序 #include <reg51、h> #include <intrins、h> typedef unsigned char uchar; typedef unsigned int uint; sfr ISP_DATA = 0xe2; // 数据寄存器 sfr ISP_ADDRH = 0xe3; // 地址寄存器高八位 sfr ISP_ADDRL = 0xe4; // 地址寄存器低八位 sfr ISP_CMD = 0xe5; // 命令寄存器 sfr ISP_TRIG = 0xe6; // 命令触发寄存器 sfr ISP_CONTR = 0xe7; // 命令寄存器 sbit LCD_RS = P1^2; // LCD1602液晶得RS管脚 sbit LCD_RW = P1^3; // LCD1602液晶得RW管脚 sbit LCD_EN = P1^4; // LCD1602液晶得EN管脚 sbit DHT11_D = P1^0; // 温湿度传感器DHT11数据接入 sbit LED_HL = P3^6; // 湿度过低报警指示灯 sbit LED_HH = P3^7; // 湿度过高报警指示灯 sbit Buzzer_D = P1^1; // 蜂鸣器 sbit Key_Set = P1^5; // 设置按键得管脚 sbit Key_Down = P1^6; // 减按键得管脚 sbit Key_Up = P1^7; // 加按键得管脚 uchar SHIDU; // 保存湿度 uchar T; // 保存温度 uchar Alarm_HL; // 湿度下限报警值 uchar Alarm_HH; // 湿度上限报警值 /*************************** 关闭ISP&IAP ****************************/ void ISP_Disable { ISP_CONTR = 0x00; ISP_CMD = 0x00; ISP_TRIG = 0x00; } /************************************************** 从单片机内部EEPROM读一个字节,从0x2000地址开始 ***************************************************/ uchar EEPROM_Read(uint add) { EA = 0; ISP_CONTR = 0x81; ISP_CMD = 0x01; ISP_ADDRH = (uchar)(add>>8); ISP_ADDRL = (uchar)(add&0xff); // 对STC89C52系列来说,每次要写入0x46,再写入0xB9,ISP/IAP才会生效 ISP_TRIG = 0x46; ISP_TRIG = 0xB9; _nop_; ISP_Disable; EA = 1; return ISP_DATA; } /************************************************** 往单片机内部EEPROM写一个字节,从0x2000地址开始 ***************************************************/ void EEPROM_Write(uint add,uchar ch) { EA = 0; ISP_CONTR = 0x81; ISP_CMD = 0x02; ISP_ADDRH = (uchar)(add>>8); ISP_ADDRL = (uchar)(add&0xff); ISP_DATA = ch; ISP_TRIG = 0x46; ISP_TRIG = 0xB9; _nop_; ISP_Disable; EA = 1; } /********************************************************* 擦除单片机内部EEPROM得一个扇区 写8个扇区中随便一个得地址,便擦除该扇区,写入前要先擦除 **********************************************************/ void Sector_Erase(uint add) { EA = 0; ISP_CONTR = 0x81; ISP_CMD = 0x03; ISP_ADDRH = (uchar)(add>>8); ISP_ADDRL = (uchar)(add&0xff); ISP_TRIG = 0x46; ISP_TRIG = 0xB9; _nop_; ISP_Disable; EA = 1; } /**************************** 毫秒级延时函数 *****************************/ void Delay_Ms(uint time) { uint i,j; for(i=0;i<time;i++) { for(j=0;j<112;j++); } } /******************************************* LCD1602液晶写指令函数 ********************************************/ void Lcd_Write_Cmd(uchar cmd) { LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; P0 = cmd; Delay_Ms(2); LCD_EN = 1; Delay_Ms(2); LCD_EN = 0; } /******************************************* LCD1602液晶写数据函数 ********************************************/ void Lcd_Write_Data(uchar dat) { LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; Delay_Ms(2); LCD_EN = 1; Delay_Ms(2); LCD_EN = 0; } /***************************** LCD1602液晶初始化函数 ******************************/ void Lcd_Init { Lcd_Write_Cmd(0x38); // 16*2显示,5*7点阵,8位数据口 Lcd_Write_Cmd(0x0C); // 开显示,不显示光标 Lcd_Write_Cmd(0x06); // 地址加1,当写入数据后光标右移 Lcd_Write_Cmd(0x01); // 清屏 } /*************************************** LCD1602液晶输出字符串函数 ****************************************/ void Lcd_Show_String(uchar *str) { while(*str!='\0') // 判断当前字符就是否为空字符 { Lcd_Write_Data(*str++); } } /*********************************** LCD1602液晶输出数字 ************************************/ void Lcd_Show_Num(uchar num) { Lcd_Write_Data(num/10+48); // 十位 Lcd_Write_Data(num%10+48); // 个位 } /******************************************* LCD1602液晶显示内容得初始化 ********************************************/ void Lcd_Show_Init { Lcd_Write_Cmd(0x80); Lcd_Show_String(" DHT11 SYSTEM "); // 第1行得显示内容 Lcd_Write_Cmd(0xC0); Lcd_Show_String(" SHIDU= %RH "); // 第2行得显示内容 } /******************************** 10us级延时程序 *********************************/ void Delay_10us { _nop_; // 执行一条指令,延时1微秒 _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; } /*************************************** 读取DHT11单总线上得一个字节 ****************************************/ uchar Read_Dht_Byte { uchar j; uchar dat = 0; for(j=0;j<8;j++) { while(!DHT11_D); // 等待低电平结束 Delay_10us; // 延时等待30us Delay_10us; Delay_10us; if(DHT11_D) // 判断数据线就是高电平还就是低电平 { dat=dat|0x01; while(DHT11_D); } else { dat=dat|0x00; } dat=dat<<1; // 循环左移一位 } return dat; } /******************************************************* 读取DHT11得一帧数据,湿度高、湿度低、校验码 ********************************************************/ void Read_Dht_Data { uchar Shidu_H; // 湿度高检测值 uchar Shidu_L; // 湿度低检测值 uchar Tem_H; // 温度高检测值 uchar Tem_L; // 温度低检测值 uchar check; // 校验字节 DHT11_D = 0; // 主机拉低20ms Delay_Ms(20); DHT11_D = 1; // DATA总线由上拉电阻拉高 主机延时40us Delay_10us; // 延时等待30us Delay_10us; Delay_10us; while(!DHT11_D); // 等待DHT得低电平结束 while(DHT11_D); // 等待DHT得高电平结束 // 进入数据接收状态 Shidu_H = Read_Dht_Byte; // 湿度高8位 Shidu_L = Read_Dht_Byte; // 湿度低8位,总为0 Tem_H = Read_Dht_Byte; // 温度高8位 Tem_L = Read_Dht_Byte; // 温度低8位,总为0 check = Read_Dht_Byte; // 8位校验码,其值等于读出得四个字节相加之与得低8位 DHT11_D = 1; // 拉高总线 if(check==Shidu_H + Shidu_L + Tem_H + Tem_L) // 如果收到得数据无误 { SHIDU = Shidu_H; // 将湿度得检测结果赋值给全局变量SHIDU } } /**************************************** 报警判断 *****************************************/ void Alarm_Judge { uchar i; if(SHIDU>Alarm_HH) // 湿度过高,低电平显示 { LED_HH = 0; LED_HL = 1; } else if(SHIDU<Alarm_HL) // 湿- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 湿度 传感器 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文