ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:885.71KB ,
资源ID:14840130      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14840130.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温湿度传感器课程设计.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

温湿度传感器课程设计.docx

1、温湿度传感器课程设计等级:湖南工程学院课 程 设 计课程名称 单片机原理与应用 课题名称 环境温、湿度检测系统设计专 业 自动化 班 级 1191 学 号 20 姓 名 指导教师 李晓秀 王迎旭 2013 年 12 月 12 日湖南工程学院课 程 设 计 任 务 书课程名称 单片机原理与应用 课 题 环境温、湿度检测系统设计 专业班级 自动化 学生姓名 学 号 2011 指导老师 李晓秀 审 批 任务书下达日期 2013 年 12 月 1 日任务完成日期 2013 年 12 月 13 日设计内容与设计要求设计内容:本课题要求以单片机为核心,采用温湿度传感器 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 王迎旭等.单片机原理及及应用M机械工业出版社.2012年2 康华光等.模拟电子技术第五版M高等教育出版社2011年 3 杜树春等.单片机C语言M北京航空航天大学出版社第1章 概述 7 设计

4、任务与要求 7 设计方案 7第2章 硬件设计 8 时钟电路和复位电路 8 温湿度测量电路设计 9按键电路 10第3章 软件设计 12主函数设计 12按键查询 13 实时监控与测试流程图 14第4章 硬件调试与结果分析 15调试过程 15 硬件调试 16第5章 总结 18参考文献 19附录一:系统仿真图 20附录二:源程序 21电气与信息工程系课程设计评分表 29第1章 概述 设计任务与要求本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现检测温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机进行数据的分析和处理,在数码管上显示当前温湿度。要求用按

5、键控制系统选择分别对温度或湿度的测试、复位、清除功能,完成硬件调试。 设计方案本课题的温湿度测试,通过单片机STC-89C51连接温湿度模块、显示模块将温度、湿度同时显示。单片机发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,如果没有接收到单片机发送来的信号,DHT11不会主动进行温度采集,采集数据后转换到低速模式。系统设计框图如图所示。 图 程序设计框图第2章 硬件设计 时钟电路和复位电路MCS-51单片机内部有一个用于构成振荡器的高增益反放大器,引脚XTAL1和XTAL2分别是反相放大器的输

6、入端和输出端。通常,经由片外晶体振荡器或陶瓷谐振器与两个匹配电容一起构成一个自激振荡电路。本课题由片外晶体振荡器与两个匹配电容一起构成了一个内部时钟振荡电路,为单片机提供时钟源。本设计复位电路采用按键复位,当开关断开时,与上电自动复位电路相同;当开关闭合时,电容通过并联的电阻迅速放电,然后,RC电路充电,能够保证RST端能够维持一段时间的高电平。如图所示。图 时钟及复位电路 温湿度测量电路设计DHT11的供电电压为3,传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。数据用于微处理器与DHT11之间的通讯和

7、同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分。如图所示,本电路上拉电阻为5K,数据端接(接受温湿度数据)。图2. 2 温湿度测量电路 显示电路本电路由四位一体共阳极数码管显示,采用9015三极管做位驱动。根据发光二极管物理连接的不同,七段数码管可以分为共阴极和共阳极两种结构。其中P0端口为段选,为位选,如图所示。图 显示电路按键电路单片机设计中按键可分为独立式按键和矩阵式按键,本系统由于按键较少,故采用四个独立按键,上拉电阻为1K。其中,四个按键功能分别是显示温度、显示湿度、实时监控显示温湿度、测试温湿度。如图。 图 按键电路第3章 软件设计本软件设计主要是对距离

8、进行测量、显示。因此,整个软件可分为按照硬件电路对单片机位定义;温湿度设置子程序;温湿度接收子程序;显示子程序;延时子程序等。由于本设计方案要求硬件电路和软件编程相结合,所以选择合适的编程语言十分重要。C语言执行效率没有汇编语言高,但语言简洁,使用方便灵活,运算丰富,表达化类型多样化,程序设计自由度大,很好的可重用性,可移植性等特点基于C语言的众多优点本设计选择此语言来编程。主函数设计软件分为两部分,主程序和中断服务程序。主程序完成初始化工作、温湿度数据接收处理控制。外部中断服务子程序主要完成时间值的读取、结果的输出等工作,如图所示。初始化开始显示扫描按键图 主程序流程图按键查询 独立式按键接

9、口采用直接读入方式工作,直读式键盘接口是一个输入接口,输入接口主要功能是解决数据输入的缓冲(选通)问题。本设计按键较少,采用的独立按键。是否按键确定键实时测试显示湿度显示温度测试Y图 查询按键处理在扫描按键函数中,每按下不同按键会返回一个不同的数值,在主函数中有按键查询函数判断为那个按键按下,随后进入不同的子函数,如图所示。 实时监控与测试流程图 本系统设计分为实时监控与测试模块,图示为测试模块。上电是数码管显示四个零,当按下测试按键后,系统开始测量环境温、湿度。当数码管显示四个“”时,表示成功测量温、湿度。当按下温度(湿度)显示按键,该模块显示测试时的温度(湿度)。当要进行下一次测量时,必须

10、按下测试按键。开始是否按键显示是否按键调用测试函数N温度按键按下调用显示温度函数调用显示湿度函数YY湿度按键按下YNY 图 测试流程图图示为实时监控模块,按下实时监控键后,启动T0定时器开始定时,每一分钟测试一次温度、湿度,并在四位一体的共阳极数码管轮流显示温度、湿度。当按下温度(湿度)显示按键后,该模块只显示实时的温度(湿度)。当再次按下实时监控按键后。定时器T0关闭。显示开始是否按键是否按键重装初值启动定时器调用测试函数NNYY轮流显示温湿度图 实时监控模块第4章 硬件调试与结果分析调试过程在编写此程序前,感觉DHT11的通信程序和取数程序最为难写,在之前的学习中我并没有接触过单总线的通信

11、时序图。通过查阅资料和参考现有的程序,然后在老师讲解和与本组的其他组员谈论后,终于弄明白这方面的知识。而在测量函数中,刚开始并没有测得数据,通过查阅书籍我设置了一个全局变量,一步一步跟踪每一步并显示在P1的LED灯上,一步一步跟踪,完善了DTH11的通信与取数函数。但在通信与取数函数与按键函数衔接时,总是有一定的概率测不到数据,慢慢的调试我发现我的通信与取数函数要连续调用两次才能每次正确的读取数据,在此,我设置了一个全局变量作为一个标志位,每次按下测量键是将该标志位设置为2,使通信与取数函数循环两次,这样保证了每次按下测试按键后就能与DHT11正确的通信从而保证得到正确的数据。在实时监控这个模

12、块中,为了保证温、湿度能循环显示、按键后能只显示温度(湿度)。由于按键有限,所以一下设置了很多的标志位。因为标志位太多,而没有将所有的环节考虑进去,一下程序有调试了很久才正确的实现要求的功能。 硬件调试如图所示,按下左下角按键时,单片机开始与DHT11通信并开始测试温、湿度。图示为测量温、湿度成功。图 初始化当按下图示按键时,数码管显示此时或实时监控的环境湿度。其中最前端的“C” 表示此时显示的事环节温度,如图。图 显示湿度当按下此按键时,数码管显示此时或实时监控的环境温度。其中最前端的“H”表示此时显示的是环境湿度,如图。图 显示温度第5章 总结这次单片机课程设计不仅巩固了以前学过的知识,而

13、且学到了很多书本上没有没到的知识,掌握了一种系统的研究方法,可以进行一些简单的编程,通过这次课程设计我们明白理论与实际相结合是很重要的,只有理论知识还不够,理论实践相结合才能提高实际动手能力和独立思考的能力。同样,在学习中也发现了自己的不足之处,例如对以前所学过的知识理解不够深刻,掌握不够牢固。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起

14、此次单片机课程设计,我仍感慨颇多。的确,从选题到定稿,从理论到实践,在接近两个星期的日子里,可以说得是苦多于甜,在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,通过这次课程设计之后,一定把以前所学过的知识重新温故。参考文献1王迎旭等.单片机原理及及应用M机械工业出版社.2012年2龚建伟、熊光明等.串口通信M3康华光等.模拟电子技术 第五版M高等教育出版社2011年 4杜树春等.单片机C语言M北京航空航天大学出版社 附录一:系统仿真图附录二:源程序#include bit flag2,flag3,flag5;sbit dht11 = P17; #define NUMBE

15、R 20 待50us 低电平结束 while(dht11 = 0) & (count+ = NUMBER) status = ERROR; 度值 for(i = 0; i SIZE; i+) value_arrayi=DHT11_ReadValue(); if(status = ERROR) /调用ReadValue()读数据出错会设定status 为ERROR dht11 = 1; return ERROR; /读出的最后一个值是校验值不需加上去 if(i != SIZE - 1) /读出的五字节数据中的前四字节数据和等于第五字节数据表示成功 check_value += value_arr

16、ayi; /end for display(led0,led1,led2,led3);/在没用发生函数调用失败进行校验 if(check_value = value_arraySIZE - 1) value_humi = value_array0; value_temp = value_array2; dht11 = 1; return OK; /正确的读出dht11 输出的数据 else return ERROR; /校验数据错 void delay_1_002s(void) unsigned char z,b,c; for(z=0;z10;z+) for(b=0;b160;b+) for(

17、c=0;c207;c+); void delay(unsigned char x) unsigned char i,j; for(i=0;ix;i+) for(j=0;j0;flag4-) d=DHT11_ReadTempAndHumi(); display(led0,led1,led2,led3); if(flag3=0) if(d=1) led0=16; led1=16; led2=16; led3=16; flag4=1;void xianshishidu(void) led0=17; led1=value_humi/10; led2=value_humi%10; led3=0;void

18、 xianshiwendu(void) led0=12; led1=value_temp/10; led2=value_temp%10; led3=0;void main() unsigned char key; P3=0xf0; TMOD=0x01; TH0=0x3c; TL0=0xb0; EA=1; ET0=1; TR0=0; delay_1_002s(); display(led0,led1,led2,led3); while(1) display(led0,led1,led2,led3); key=keyscan(); if(flag1=10) ceshiwenshidu(); dis

19、play(led0,led1,led2,led3); switch(key) case 0xe0: flag4=2,ceshiwenshidu();break; /开始测试温湿度 case 0xd0: xianshishidu(),flag5=1,flag2=0;break; /显示湿度 case 0xb0: xianshiwendu(),flag5=1,flag2=1;break; /显示温度 case 0x70: flag4=1,TR0=TR0,flag3=flag3,flag5=0;break; void shishiceshi_T0(void) interrupt 1 TH0=0x3c

20、; TL0=0xb0; flag1+; if(flag1=NUMBER) flag1=0; if(flag5=0) flag2=flag2; if(flag2=0) xianshishidu(); else xianshiwendu(); 电气与信息工程系课程设计评分表项 目评 价优良中及格差设计方案合理性与创造性(10%)开发板焊接及其调试完成情况*(10%)硬件设计或软件编程完成情况(20%)硬件测试或软件调试结果*(10%)设计说明书质量(20%)答辩情况(10%)完成任务情况(10%)独立工作能力(10%)出勤情况(10%)综 合 评 分 指导教师签名:_ 日 期:_ 注:表中标*号项目是硬件制作或软件编程类课题必填内容; 此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。

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

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