温湿度检测仪电子设计竞赛报告

温湿度检测仪电子设计竞赛报告

ID:11908022

大小:647.50 KB

页数:13页

时间:2018-07-14

温湿度检测仪电子设计竞赛报告_第1页
温湿度检测仪电子设计竞赛报告_第2页
温湿度检测仪电子设计竞赛报告_第3页
温湿度检测仪电子设计竞赛报告_第4页
温湿度检测仪电子设计竞赛报告_第5页
资源描述:

《温湿度检测仪电子设计竞赛报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、电子设计竞赛报告题目:温湿度测量仪专业:电子信息工程姓名学号:伍迹龙10041213余颖10041201石萌10041202完成日期:2013年4月一.电路设计方案论证1.电路原理说明(1)系统设计框图数码管显示单片机部分电路温湿度读取本电路由3部分组成:单片机部分,温湿度传感器部分,显示部分.系统设计框图如下:(2)单片机电路单片机电路方面,我们用了单片机的定时器跟计数器,通过编程实现单片机对温湿度模块进行数据读取及处理,然后通过数码管动态显示温湿度(3)温湿度模块DHT11通过温湿度传感器测量温湿度(4)数码管显示通过

2、段选和位选进行动态扫描显示。2.各主要元件功能分析(1)单片机电路电路比较简单,首先是单片机需要+5V电源,所以需要接好电源跟地,连接好单片机最小系统,然后选择了P2^5口作为数据传输口,从DHT11的总线上读取温湿度数据,P2^0和P2^1作为数码管的段选和位选口,连接两片74HC573(锁存器),产生扫描和显示信号。(2)DHT11传感器型号测量范围测湿精度测温精度分辨力封装DHT1120-90%RH0-50℃±5%RH±2℃14针单排直插串行接口(单线双向)DATA用于微处理器与DHT11之间的通讯和同步,采用单总线

3、数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应

4、信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。1.通讯过程如图1所示图1总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后,读取DHT11的响应信号,

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

6、三.程序设计语言部分1.主程序模块#include"dht11.h"#include//数码管位定义sbitDULA=P2^0;sbitWELA=P2^1;#defineSET_DULA()(DULA=1)#defineRESET_DULA()(DULA=0)#defineSET_WELA()(WELA=1)#defineRESET_WELA()(WELA=0)//中断计数标志staticunsignedcharflag;//数码管编码staticunsignedcharcodearray[]={0x3f

7、,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};externinttemp_value,humi_value;staticvoidInitTime(void);voidDelay_1ms(unsignedintms);staticvoidSMG_Display(unsignedintvalue);intmain(void){unsignedcharmark=0;//先等上电稳定Delay_1ms(1000);//因为读一次数据dht11才会触发一次采集数据.//即在先使用数据时

8、采集一次数据ReadTempAndHumi();//因为在两次采集数据需一定的时间间隔,这里还可减少Delay_1ms(3000);//设定定时器InitTime();while(1){//三秒读一次温湿度if(flag==60){flag=0;mark++;/*//读温湿度,可检测函数调用是否失败,/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。