欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    温湿度检测系统设计说明.docx

    • 资源ID:15699406       资源大小:278.71KB        全文页数:33页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    温湿度检测系统设计说明.docx

    1、温湿度检测系统设计说明等级:工程学院课程设计课程名称 单片机原理与应用 课题名称 环境温、湿度检测系统设计 专业 自动化 班级 1003 学号 4 姓名 罗金细 指导教师晓秀 王迎旭 汪超 林国汉 2013年 7月 2日工程学院课 程 设 计 任 务 书课程名称 单片机原理与应用 课 题 环境温、湿度检测系统设计 专业班级 自动化1003 学生 罗金细 学 号 4 指导教师 晓秀 审 批 任务书下达日期 2013 年 6 月 21 日任务完成日期 2013年 7 月 2 日设计容与设计要求设计容:本课题要求以单片机为核心,采用温湿度传感器 DHT11设计一个对环境温度湿度的检测系统,要求用按键

    2、控制系统选择分别对温度或湿度的测试、复位、去除功能,用四位LED数码管显示实时温度和温度。还可由用户设定温度和湿度的上、下限,设计越限报警功能。设计要求:1确定系统设计方案; 2进展系统的硬件设计;3完成必要元器件选择;4系统软件设计与调试;5系统联调与操作说明6按规要求写设计说明书主 要 设 计 条 件1、PC机与单片机调试软件;2、开发板1块; 3、系统设计、调试所需的元器件。说 明 书 格 式1.课程设计任务书2.目录3.总体方案确定4.各单元硬件电路设计与计算方法5.软件设计与说明包括流程图6.调试结果与必要的调试说明7.总结8、参考文献9、附录附录A 系统原理图附录B 程序清单 10

    3、、课程设计成绩评分表。进 度 安 排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍与讲课。下午:借阅有关资料,总体方案讨论。星期二、确定总体方案,学习与设计相关容。星期三、各局部方案设计,各局部设计。星期四、设计与调试。星期五、设计与调试。星期六、设计与调试。第二周星期一:设计与调试。星期二:设计与调试。星期三:调试、写说明书。星期四-星期五上午:写说明书、完成电子版并打印成稿。星期五下午:辩论。参 考 文 献1 王迎旭等.单片机原理与与应用.机械工业.2012年2 海晏编.51单片机原理与应用M.航空航天大学.20103 XX百科第1章 总体方案设计1.1 设计容要求以单片机为核

    4、心,采用温湿度传感器 DHT11设计一个对环境温度湿度的检测系统,要求用按键控制系统选择分别对温度或湿度的测试、复位、用四位LED数码管显示实时温度和温度。还可由用户设定温度和湿度的上、下限,设计越限报警功能。1.2 总体设计本次设计主要设计了温湿度的测量与显示,硬件方面共分为7个模块,即单片机主控模块、按键模块、晶振电路、复位电路、LED显示模块、报警模块以与DHT11电路模块。数字温湿度传感器DHT11送来数据,经单片机STC90C52RC处理后,并送入LED显示模块,按键电路主要用来完成单片机的启动操作和温湿度初始值的设定,需要4个按键,一个显示温度,一个显示湿度,一个用来设定初始温度和

    5、初始湿度的上限值和下限值一个,另外一个负责启动DHT11。报警电路就是用一个蜂鸣器和一个指示灯来实现的,用来判断周围环境的温度或者湿度是否超出设定值了,超出设定值蜂鸣器就会报警。系统总体框图如图1-1。 图1-1 系统总体框图第2章 硬件设计2.1 DHT11温度湿度传感器电路设计此次单片机课程设计采用的是DHT11数字温湿度传感器,而且是单总线双向结构,所以温湿度检测电路的结构比拟简单。此次课程设计温度测量围:0-50摄氏度;湿度测量围:20%-90%RH。DHT11只有一根数据线,一根电源线,一根地线,还有一根NC悬空。直接将电源线与单片机的电源VCC相连,地线与单片机的GND相连。数据线

    6、DATA与单片机的P1.0口相连,外加一个5K的上拉电阻。所需要的温湿度数据便是由DATA引脚通过P1.0送入单片机的,在单片机做出相应的处理之后得到相应的温湿度数据,原理图如图2-1所示。图2-1 温度检测原理图2.2 按键电路模块设计此次课程设计采用的按键电路为独立按键电路。按键电路就是四个按键分别与STC90C52RC的P1.1、P1.2、P1.3、P1.4口相连,分别与S1-S4相连。当有按键按下时单片机收到有效的信号,S1键显示实际所测得的湿度,S2键显示实际所测得的温度和S3键的功能为设置温湿度的上限值和下限值,S1键为加1,S2键为减1。当S1键和S2键单独使用时用来切换显示温湿

    7、度的准确数据,S4为启动DHT11传感器的独立开关具体原理图如图2-2所示。图2-2 按键原理图2.3 晶振电路和复位电路设计STC90C52部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由部方式产生或外部方式产生。其晶振电路如图2-3所示。图2-3 晶振电路复位电路是保证单片机正常运行的关键因素,所以可靠地复位电路设计是必要的。将RST引脚连续输入2个机器周期即24个时钟振荡期间以上高电平,即可以完成单片机的初始化操作。本设计采用按钮复位方式,其复位电路如图2-4所示。图2-4 复位电路2.3 LED数码显示模块设计此次课程设计采用的共阳

    8、极LED动态数码显示,所谓动态显示,是采用动态扫描的方法逐个地循环点亮各位显示器。虽然在任一时刻只有一位显示器被点亮,但由于人眼具有视觉残留效应看起来与全部显示器持续点亮效果是完全一样的。为了实现LED显示器的动态扫描,除了要给显示器提供段码字形代码的输入外,还要对显示器进展位控制,这就是通常所说的段控和位控。本次课程设计中段码控制为单片机的P1.0-P1.7分别与LED的A.B.C.D。E.F.G.Dp相连,实现了字符的显示,单片机的P2.4-P2.7分别与四个LEDW1.W2.W3.W4显示起相连,实现位控制。其显示原理图如图2-5所示。图2-5 数码显示原理图2.4 报警模块设计此次课程

    9、设计的报警模块采用一个LED显示灯、一个10K的限流电阻和一个扬声器。当实测温度湿度在设定的围,LED灯熄灭,扬声器不会发出警报,工作正常!如果实测温湿度不在设定的围,LED灯亮,扬声器发出警报,此时系统工作不正常!应根据要求调节温湿度设定的上下阀值!报警指示原理图如图2-6所示。图2-6 报警指示原理第3章 软件设计3.1 主程序设计开机启动系统,进入主函数MAIN后延时0.1S等待启动,当按下启动键S4,然后调用温湿度子程序CWD读取温湿度,并用数组将实测的温湿度数据保存起来,分别将温湿度除十取整,将处理后的数据调用到温湿度围检测函数temphumi_range判断实测的温湿度是否在设定的

    10、围并作出相应的处理(正常工作或警报)。其主程序流程图如图3-1所示。 图3-1 主程序流程图3.2 DHT11数据读取子程序设计单片机通过I/O口P1.0向DHT11发送开始信号,DHT11接收到开始信号后进展处理。过对P1.0的状态进展监测,判断DHT11是否准备就绪,假设准备就绪那么读取温湿度数据,如果未准备就绪,那么继续等待,此时开始读取温湿度数据,然后进展数据保存、显示。其数据读取流程图如图3-2所示。图3-2 数据读取流程图3.3 按键子程序设计系统开始工作,按下功能键S3显示所测的温湿度前两位为所测湿度,后两位为所测温度。此时如果按下功能键S1单独显示所测的湿度,具体显示到小数点后

    11、一位,再按下功能键S2单独显示所测的温度,精度同湿度显示一样,此刻按下功能键S3回到初始工作状态即同时显示温湿度。在按下功能键S3可以分别对温湿度上下限进展设计,本次所用的温湿度传感器DHT11所测的围是湿度测量围:20%-90%RH;温度测量围:0-50摄氏度。其按键流程图如图3-3所示。 图3-3 按键流程图在功能键S3按下的时候可以分别对上下限温湿度进展设定,当按下功能键S1或S2的时候,此时为+键和“-键分别用来设置温湿度上下限的数值,“+键按下一次,相应数值加1,“-键按下一次,相应数值减1。当功能键按下次数为0,此时显示的是实际温湿度。其温湿度上下限设定程序流程图如图3-4所示。图

    12、3-4 温湿度上下限设定程序流程图3.4 LED显示子程序设计数码管显示主要用于同时显示温湿度和单独显示准确的温度和湿度,其显示流程图如图3-5所示图3-5 显示流程图第4章 系统安装与调试4.1 系统安装接线图本设计是在Keil C环境下开发的,在编译完Keil C后,再运用STC_ISP_V48.8软件烧录到开发板上,实现实物与程序的连接。如图4-1系统安装接线图。图4-1 系统安装接线图4.2 调试与结果调试完成后,可进展温湿度的测量和上下限温湿度的设定。当功能键按下时,可单独显示温湿度和温湿度上下限值。鉴于调试图很多,本次设计以典型具有代表性调试图作为本次课程设计有力说明。如下图。图4

    13、-2 湿度的显示 图4-3 温度的显示图4-4 湿度上限值 图4-5 温度上限值第 5章 总结本次课程设计还算比拟的成功,设计初期,教师要我们确定系统的主体设计,比如一些主流程图、按键显示模块等,我们这个小组也能按时完成教师布置的任务,跟着教师一步步的走过来,其实感觉起来这个课程设计不是那么的难,比我刚开始着手的时候要简单。在设计的过程中,为了找到自己需要的资料我们一起去读书馆找一些单片机课程设计实例来看看,不过在南校区读书馆资源也是非常的有限,而且还是比拟旧的资料,像关于本次用的温湿度传感器DHT11在南院的图书馆几乎没有,图书馆只有什么单个测温度或者湿度的传感器,不过这个对我们的课程设计帮

    14、助也挺大的,另外此次课程设计的程序来源与XX百科,不过并不是按部就班,我们在它的根底上把它弄懂、理解之后参加自己的设计想法,我想做课程设计无非是想让我们学到,在别人已有的根底上参加自己的设计方案,慢慢的变为自己的知识。在此分别对晓秀教师和我这组的同学表示感。第6章 参考文献1 王迎旭编.单片机原理与应用M.机械工业.20122 海晏编.51单片机原理与应用M.航空航天大学.20103 黄仁欣编.单片机原理与应用技术M.清华大学.20104 中明编.单片计算机原理与接口技术M.人民邮电.2009 5 XX百科第7章 附录附录A 系统原路图附录B 程序清单#include #include #de

    15、fine uchar unsigned char#define uint unsigned inttypedef uchar U8; /* 无符号8位整型变量 */typedef uint U16; /* 无符号16位整型变量 */ -定义区-/ 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;U8 U8comdata ,U8RH_data_L_temp,U8ch

    16、eckdata_temp;U8 str5=DHT11;sbit dht11= P10 ; / 定义传感器端口sbit Buffer=P15; / 高电平有效 蜂鸣器Sbit keyqd=14; / 按键定义sbit keyfun=P13; sbit keyadd=P11; sbit keysub=P12;/ 报警上、下限温湿度uchar tup=50,tdown=0,hup=90,hdown=20;/ 按键功能标识uchar keynum=0,warn_flag=0,count=0,differ=0;/ 共阳极数码管 0-90-9, 10-小数点,11-负号, 12-空,13-上限号,14-下

    17、限号;uchar code LEDData = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f,0xbf,0xff,0xfe,0xf7; / 低位选通,从右往左数1-4uchar code LEDwei=0x7f,0xbf,0xdf,0xef; void keyscan();void temphumi_range(int tempr,int humir);void CWD(void);void COM(void);void display_4f1(uint i,uint j,uint k,uint l);void display_3

    18、w(uint i,uint j,uint k);void display_4w(uint i,uint j,uint k,uint l);void show11(uchar wei,uchar num);int BUFFER_ON();int BUFFER_OFF();void Delay_10us(void);void delay_ms(uchar xms);void main() uint tt,hh; uchar i; delay_ms(0.1); / 延时0.1mS12M晶振) if(keyqd=0) /启动 while(1) i=120; / 调用温湿度读取子程序 CWD(); st

    19、r0=U8RH_data_H; str1=U8RH_data_L; str2=U8T_data_H; str3=U8T_data_L; str4=U8checkdata;tt=str2*10+str3/10; hh=str0*10+str1/10; temphumi_range(tt,hh); / 120次调用显示,消耗_2.12s_时间 while(i-) if(keynum=0) / 前两位显示湿度,后两位显示温度display_4w(str0/10,str0%10,str2/10,str2%10); / 传感器休息时间长,防止按键丢包 keyscan(); else if(keynum=

    20、1) temphumi_range(tt,hh);display_4f1(13,tup/10,tup%10,0);keyscan(); else if(keynum=2) temphumi_range(tt,hh);display_4f1(14,tdown/10,tdown%10,0);keyscan(); else if(keynum=3) temphumi_range(tt,hh);display_4f1(13,hup/10,hup%10,0);keyscan(); else if(keynum=4) temphumi_range(tt,hh);display_4f1(14,hdown/1

    21、0,hdown%10,0);keyscan(); / Delay(20000); / 读取模块数据周期不易小于2S* /*延时子程序*/void delay_ms(uchar xms) / 1ms延时 char x,y; for(x=xms;x0;x-) for(y=110;y0;y-);/ -延时函数-/ void Delay_10us(void) / 延时_10us U8 i; i-;i-;i-; i-;i-;i-;int BUFFER_OFF() Buffer=0; return -1;int BUFFER_ON() Buffer=1; return -1; /*显示子程序*/void

    22、show11(uchar wei,uchar num) P2=0xff;/ 消影 P0=LEDDatanum; P2=LEDweiwei; delay_ms(1);/ 执行整个函数时间 17.675msvoid display_4w(uint i,uint j,uint k,uint l) uint n; for(n=0;n90;n+) if(i=0) show11(3,12); else show11(3,i); if(j=0) if(i=0) show11(2,12); else show11(2,j); else show11(2,j); show11(2,10); / 小数点 show

    23、11(1,k); show11(0,l); / 执行整个函数时间 14.071msvoid display_3w(uint i,uint j,uint k) uint n; for(n=0;n90;n+) if(i=0) show11(1,12); else show11(2,i); show11(1,j); show11(1,10); / 小数点 show11(0,k); void display_4f1(uint i,uint j,uint k,uint l) uint n; for(n=0;n90;n+) if(i=0) show11(3,12); else show11(3,i); i

    24、f(j=0) if(i=0) show11(2,12); else show11(2,j); else show11(2,j); show11(1,k); show11(1,10); / 小数点 show11(0,l); / -主机接收DHT11数据-/ void COM(void) U8 i; for(i=0;i8;i+) U8FLAG=2; while(!dht11)&U8FLAG+);/ dht11=0等待 / 30us是个界限2628代表0;50代表1=小于30是0, / 大于30是1下一步用if判断 Delay_10us(); Delay_10us(); Delay_10us();

    25、U8temp=0; / 没过30us代表的就是0 if(dht11)U8temp=1; / dht11=1,过了30us还是高电平,说明高电平持续时间代表的是1U8FLAG=2; while(dht11)&U8FLAG+); / dht11=1,/ 超时那么跳出for循环 if(U8FLAG=1)break;/ 上一步dht11一直是0,知道U8FLAG加到0256才执行到此, / (跳出时又加了一次1=U8FLAG=1)上一步执行了254次,这一步接的是上一个while语句 / 判断数据位是0还是1 / 如果高电平高过预定0高电平值那么数据位为 1 U8comdata=1; / 数据位左移

    26、U8comdata|=U8temp; / - 湿度读取子程序 -/ / -以下变量均为全局变量-/ / -温度高8位= U8T_data_H-/ / -温度低8位= U8T_data_L-/ / -湿度高8位= U8RH_data_H-/ / -湿度低8位= U8RH_data_L-/ / -校验 8位 = U8checkdata- / void CWD(void) / 主机拉低18ms dht11=0; / 消耗18ms时间,防止闪屏 if(keynum=0) display_4w(str0/10,str0%10,str2/10,str2%10); / 前两位显 示湿度,后两位显示温度 el

    27、se if(keynum=1)display_4f1(13,tup/10,tup%10,0); else if(keynum=2)display_4f1(14,tdown/10,tdown%10,0); else if(keynum=3)display_4f1(13,hup/10,hup%10,0); else if(keynum=4)display_4f1(14,hdown/10,hdown%10,0); / Delay(180); dht11=1; / 总线由上拉电阻拉高 主机延时30us Delay_10us(); Delay_10us(); Delay_10us(); / 主机设为输入 判断从机响应信号 dht11=1; / 判断从机是否有低电平响应信号 如不响应那么跳出,响应那么向下运行 if(!dht11) U8FLAG=2;/ 判断从机是否发出 80us 的低电平响应信号是否完毕 while(!dht11)&U8FLAG+); U8FLAG=2; / 判断从机是否发出 80us 的高电平,如发出那么进入数据接收状态 while(dht11)&U8FLAG+); / 数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_data_L_temp=U8comdata; / 湿度 COM(); U8T_


    注意事项

    本文(温湿度检测系统设计说明.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开