为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

温湿度传感器_课程设计报告

2022-01-29 4页 doc 3MB 6阅读

用户头像 个人认证

pyaiw

擅长施工管理及辅助设计,并对施工技术、质量与安全的深入研究

举报
温湿度传感器_课程设计报告..PAGE.v.等级:XX工程学院课程设计课程名称单片机原理与应用课题名称环境温、湿度检测系统设计专业自动化班级1191学号20XX指导教师李晓秀王迎旭2021年12月12日XX工程学院课程设计任务书课程名称单片机原理与应用课题环境温、湿度检测系统设计专业班级自动化学生XX学号2021指导教师李晓秀审批任务书下达日期2021年12月1日任务完成日期2021年12月13日设计内容与设计要求设计内容:本课题要求以单片机为核心,采用温湿度传感器DHT11设计一个对环境温度湿度的检测系统,要求用按键控制系统选择分别对温度或...
温湿度传感器_课程设计报告
..PAGE.v.等级:XX工程学院课程设计课程名称单片机原理与应用课题名称环境温、湿度检测系统设计专业自动化班级1191学号20XX指导教师李晓秀王迎旭2021年12月12日XX工程学院课程设计任务书课程名称单片机原理与应用课题环境温、湿度检测系统设计专业班级自动化学生XX学号2021指导教师李晓秀审批任务书下达日期2021年12月1日任务完成日期2021年12月13日设计内容与设计要求设计内容:本课题要求以单片机为核心,采用温湿度传感器DHT11设计一个对环境温度湿度的检测系统,要求用按键控制系统选择分别对温度或湿度的测试、复位、去除功能,用四位LED数码管显示实时温度和温度。设计要求:1〕确定系统设计;2〕进展系统的硬件设计;3〕完成必要元器件选择;4〕系统软件设计及调试;5〕系统联调及操作说明6〕按要求写设计主要设计条件PC机及单片机调试软件;开发板1块;系统设计、调试所需的元器件说明书格式课程设计任务书目录总体方案确定各单元硬件电路设计及计算方法软件设计与说明〔包括图〕调试结果与必要的调试说明总结8、参考文献9、附录附录A系统原理图附录B程序清单10、课程设计成绩评分表。进度安排设计时间分为二周第一周星期一、上午:布置课题任务,课题介绍及讲课。下午:借阅有关资料,总体方案讨论。星期二、确定总体方案,学习与设计相关内容。星期三、各局部方案设计,各局部设计。星期四、设计及调试。星期五、设计及调试。星期六、设计及调试。第二周星期一:设计及调试。星期二:设计及调试。星期三:调试、写说明书。星期四--星期五上午:写说明书、完成电子版并打印成稿。星期五下午:辩论。参考文献[1]王迎旭等.单片机原理及及应用[M] 机械工业.2021年 [2]康华光等.模拟电子技术 第五版[M] 高等教育 2021年[3]杜树春等.单片机C语言[M] 航空航天大学目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc375077195"第1章概述PAGEREF_Toc375077195\h7HYPERLINK\l"_Toc375077196"1.1设计任务与要求PAGEREF_Toc375077196\h7HYPERLINK\l"_Toc375077197"1.2设计方案PAGEREF_Toc375077197\h7HYPERLINK\l"_Toc375077198"第2章硬件设计PAGEREF_Toc375077198\h8HYPERLINK\l"_Toc375077199"2.1时钟电路和复位电路PAGEREF_Toc375077199\h8HYPERLINK\l"_Toc375077200"2.2温湿度测量电路设计PAGEREF_Toc375077200\h9HYPERLINK\l"_Toc375077201"2.3按键电路PAGEREF_Toc375077201\h10HYPERLINK\l"_Toc375077202"第3章软件设计PAGEREF_Toc375077202\h12HYPERLINK\l"_Toc375077203"3.1主函数设计PAGEREF_Toc375077203\h12HYPERLINK\l"_Toc375077204"3.2按键查询PAGEREF_Toc375077204\h13HYPERLINK\l"_Toc375077205"3.3实时监控与测试流程图PAGEREF_Toc375077205\h14HYPERLINK\l"_Toc375077206"第4章硬件调试与结果PAGEREF_Toc375077206\h15HYPERLINK\l"_Toc375077207"4.1调试过程PAGEREF_Toc375077207\h15HYPERLINK\l"_Toc375077208"4.2硬件调试PAGEREF_Toc375077208\h16HYPERLINK\l"_Toc375077209"第5章总结PAGEREF_Toc375077209\h18HYPERLINK\l"_Toc375077210"参考文献PAGEREF_Toc375077210\h19HYPERLINK\l"_Toc375077211"附录一:系统仿真图PAGEREF_Toc375077211\h20HYPERLINK\l"_Toc375077212"附录二:源程序PAGEREF_Toc375077212\h21HYPERLINK\l"_Toc375077213"电气与信息工程系课程设计评分表29第1章概述1.1设计任务与要求本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现检测温度、湿度的检测,将温度湿度信号通过传感器进展信号的采集并转换成数字信号,再运用单片机进展数据的分析和处理,在数码管上显示当前温湿度。要求用按键控制系统选择分别对温度或湿度的测试、复位、去除功能,完成硬件调试。1.2设计方案本课题的温湿度测试,通过单片机STC-89C51连接温湿度模块、显示模块将温度、湿度同时显示。单片机发送一次开场信号后,DHT11从低功耗模式转换到高速模式,等待主机开场信号完毕后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,如果没有接收到单片机发送来的信号,DHT11不会主动进展温度采集,采集数据后转换到低速模式。系统设计框图如图1.1所示。单片机按键电路显示电路DHT11温度采集电路时钟复位电路图1.1程序设计框图第2章硬件设计2.1时钟电路和复位电路MCS-51单片机内部有一个用于构成振荡器的高增益反放大器,引脚XTAL1和XTAL2分别是反相放大器的输入端和输出端。通常,经由片外晶体振荡器或陶瓷谐振器与两个匹配电容一起构成一个自激振荡电路。本课题由片外晶体振荡器与两个匹配电容一起构成了一个内部时钟振荡电路,为单片机提供时钟源。本设计复位电路采用按键复位,当开关断开时,与上电自动复位电路一样;当开关闭合时,电容通过并联的电阻迅速放电,然后,RC电路充电,能够保证RST端能够维持一段时间的高电平。如图2.1所示。图2.1时钟及复位电路2.2温湿度测量电路设计DHT11的供电电压为3-5.5V,传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚〔VDD,GND〕之间可增加一个100nF的电容,用以去耦滤波。数据用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数局部和整数局部。如图2.2所示,本电路上拉电阻为5K,数据端接P1.7〔承受温湿度数据〕。图2.2温湿度测量电路2.3显示电路本电路由四位一体共阳极数码管显示,采用9015三极管做位驱动。根据发光二极管物理连接的不同,七段数码管可以分为共阴极和共阳极两种构造。其中P0端口为段选,P2.0~P2.3为位选,如图2.3所示。图2.3显示电路2.4按键电路单片机设计中按键可分为独立式按键和矩阵式按键,本系统由于按键较少,故采用四个独立按键,上拉电阻为1K。其中,四个按键功能分别是显示温度、显示湿度、实时监控显示温湿度、测试温湿度。如图2.4。图2.4按键电路第3章软件设计本软件设计主要是对距离进展测量、显示。因此,整个软件可分为按照硬件电路对单片机位定义;温湿度设置子程序;温湿度接收子程序;显示子程序;延时子程序等。由于本设计方案要求硬件电路和软件编程相结合,所以选择适宜的编程语言十分重要。C语言执行效率没有汇编语言高,但语言简洁,使用方便灵活,运算丰富,表达化类型多样化,程序设计自由度大,很好的可重用性,可移植性等特点基于C语言的众多优点本设计选择此语言来编程。3.1主函数设计软件分为两局部,主程序和中断效劳程序。主程序完成初始化工作、温湿度数据接收处理控制。外部中断效劳子程序主要完成时间值的读取、结果的输出等工作,如图3.1所示。开场初始化显示扫描按键图3.1主程序流程图3.2按键查询独立式按键接口采用直接读入方式工作,直读式键盘接口是一个输入接口,输入接口主要功能是解决数据输入的缓冲〔选通〕问题。本设计按键较少,采用的独立按键。是否按键.确定键实时测试显示湿度显示温度测试Y图3.2查询按键处理在扫描按键函数中,每按下不同按键会返回一个不同的数值,在主函数中有按键查询函数判断为那个按键按下,随后进入不同的子函数,如图3.2所示。3.3实时监控与测试流程图本系统设计分为实时监控与测试模块,图3.3示为测试模块。上电是数码管显示四个零,当按下测试按键后,系统开场测量环境温、湿度。当数码管显示四个"—〞时,表示成功测量温、湿度。当按下温度〔湿度〕显示按键,该模块显示测试时的温度〔湿度〕。当要进展下一次测量时,必须按下测试按键。开场是否按键.显示是否按键.调用测试函数N温度按键按下.调用显示温度函数调用显示湿度函数YY湿度按键按下.YNY图3.3测试流程图图3.4示为实时监控模块,按下实时监控键后,启动T0定时器开场定时,每一分钟测试一次温度、湿度,并在四位一体的共阳极数码管轮流显示温度、湿度。当按下温度〔湿度〕显示按键后,该模块只显示实时的温度〔湿度〕。当再次按下实时监控按键后。定时器T0关闭。显示开场是否按键.是否按键.重装初值启动定时器调用测试函数NNYY轮流显示温湿度图3.4实时监控模块第4章硬件调试与结果分析4.1调试过程在编写此程序前,感觉DHT11的通信程序和取数程序最为难写,在之前的学习中我并没有接触过单总线的通信时序图。通过查阅资料和参考现有的程序,然后在教师讲解和与本组的其他组员谈论后,终于弄明白这方面的知识。而在测量函数中,刚开场并没有测得数据,通过查阅书籍我设置了一个全局变量,一步一步跟踪每一步并显示在P1的LED灯上,一步一步跟踪,完善了DTH11的通信与取数函数。但在通信与取数函数与按键函数衔接时,总是有一定的概率测不到数据,慢慢的调试我发现我的通信与取数函数要连续调用两次才能每次正确的读取数据,在此,我设置了一个全局变量作为一个标志位,每次按下测量键是将该标志位设置为2,使通信与取数函数循环两次,这样保证了每次按下测试按键后就能与DHT11正确的通信从而保证得到正确的数据。在实时监控这个模块中,为了保证温、湿度能循环显示、按键后能只显示温度〔湿度〕。由于按键有限,所以一下设置了很多的标志位。因为标志位太多,而没有将所有的环节考虑进去,一下程序有调试了很久才正确的实现要求的功能。4.2硬件调试如图4.1所示,按下左下角按键时,单片机开场与DHT11通信并开场测试温、湿度。图示为测量温、湿度成功。图4.1初始化当按以下图示按键时,数码管显示此时或实时监控的环境湿度。其中最前端的"C〞表示此时显示的事环节温度,如图4.2。图4.2显示湿度当按下此按键时,数码管显示此时或实时监控的环境温度。其中最前端的"H〞表示此时显示的是环境湿度,如图4.3。图4.3显示温度第5章总结这次单片机课程设计不仅稳固了以前学过的知识,而且学到了很多书本上没有没到的知识,掌握了一种系统的研究方法,可以进展一些简单的编程,通过这次课程设计我们明白理论与实际相结合是很重要的,只有理论知识还不够,理论实践相结合才能提高实际动手能力和独立思考的能力。同样,在学习中也发现了自己的缺乏之处,例如对以前所学过的知识理解不够深刻,掌握不够结实。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术开展的日新日异,单片机已经成为当今计算机应用中空前活泼的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回忆起此次单片机课程设计,我仍感慨颇多。确实,从选题到定稿,从理论到实践,在接近两个星期的日子里,可以说得是苦多于甜,在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,通过这次课程设计之后,一定把以前所学过的知识重新温故。参考文献[1] 王迎旭等.单片机原理及及应用[M] 机械工业.2021年[2] 龚建伟、熊光明等.Visual.c.Tubor.c串口通信[M] [3] 康华光等.模拟电子技术第五版[M] 高等教育2021年[4] 杜树春等.单片机C语言[M] 航空航天大学附录一:系统仿真图附录二:源程序*includebitflag2,flag3,flag5;sbitdht11=P1^7;*defineNUMBER20//防止在与硬件通信时发生死循环的计数范围*defineSIZE5*defineOK1*defineERROR0//函数的返回值表示读取数据是否成功OK表示成功ERROR表示失败voidDHT11_Delay_10us(void);//延时10usvoidceshiwenshidu(void);voidxianshishidu(void);voidxianshiwendu(void);unsignedcharReadValue(void);unsignedcharDHT11_ReadTempAndHumi(void);voiddelay_1_002s(void);voiddelay(unsignedchari);//延时程序voiddisplay(unsignedcharled0,led1,led2,led3);//动态扫描显示程序unsignedcharkeyscan(void);//键盘扫描unsignedcharstatus;//*defineucharunsignedchar//*defineuintunsignedintunsignedcharflag1,flag4;unsignedcharled_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x89};/*共阳字型段码表,"0"--"F","-","H〞*/unsignedcharled0,led1,led2,led3;unsignedcharvalue_array[5];//存放五字节数据的数组unsignedcharvalue_temp,value_humi;voidDHT11_Delay_10us(void){unsignedchari;i--;i--;i--;i--;i--;i--;}/*读一个字节的数据*/unsignedcharDHT11_ReadValue(void){unsignedcharcount,value=0,i;status=OK;//设定标志为正常状态for(i=8;i>0;i--){//高位在先value<<=1;count=0;//每一位数据前会有一个50us的低电平时间.等待50us低电平完毕while((dht11==0)&&(count++=NUMBER){status=ERROR;//设定错误标志return0;//函数执行过程发生错误就退出函数}//26-28us的高电平表示该位是0,为70us高电平表该位1DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();//延时30us后检测数据线是否还是高电平if(dht11!=0){//进入这里表示该位是1value++;//等待剩余(约40us)的高电平完毕while((dht11!=0)&&(count++=NUMBER){status=ERROR;//设定错误标志return0;}}}return(value);}//读温度和湿度函数,读一次的数据,共五字节,读出成功函数返回OK,错误返回ERRORunsignedcharDHT11_ReadTempAndHumi(void){unsignedchari=0,check_value=0,count=0;display(led0,led1,led2,led3);//EA=0;dht11=0;//拉低数据线大于18ms发送开场信号display(led0,led1,led2,led3);//需大于18毫秒dht11=1;//释放数据线,用于检测低电平的应答信号//延时20-40us,等待一段时间后检测应答信号,应答信号是从机拉低数据线80usDHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();DHT11_Delay_10us();if(dht11!=0)//检测应答信号,应答信号是低电平{//没应答信号returnERROR;}else{//有应答信号while((dht11==0)&&(count++=NUMBER)//检测计数器是否超过了设定的范围{dht11=1;returnERROR;//读数据出错,退出函数}count=0;dht11=1;//释放数据线//应答信号后会有一个80us的高电平,等待高电平完毕while((dht11!=0)&&(count++=NUMBER){dht11=1;returnERROR;//退出函数}//读出湿.温度值for(i=0;i0;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;}voidxianshishidu(void){led0=17;led1=value_humi/10;led2=value_humi%10;led3=0;}voidxianshiwendu(void){led0=12;led1=value_temp/10;led2=value_temp%10;led3=0;}voidmain(){unsignedcharkey;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();display(led0,led1,led2,led3);}switch(key){case0xe0:flag4=2,ceshiwenshidu();break;//开场测试温湿度case0xd0:xianshishidu(),flag5=1,flag2=0;break;//显示湿度case0xb0:xianshiwendu(),flag5=1,flag2=1;break;//显示温度case0x70:flag4=1,TR0=~TR0,flag3=~flag3,flag5=0;break;}}}voidshishiceshi_T0(void)interrupt1{TH0=0x3c;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%)综合评分指导教师签名:________________日期:________________注:=1\*GB3①表中标*号工程是硬件制作或软件编程类课题必填内容;=2\*GB3②此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、〔非16K大小的图纸及程序清单〕。
/
本文档为【温湿度传感器_课程设计报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索