温湿度传感器课程设计_第1页
温湿度传感器课程设计_第2页
温湿度传感器课程设计_第3页
温湿度传感器课程设计_第4页
温湿度传感器课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、合用标准文案等级:湖南工程学院课程设计课程名称单片机原理与应用课题名称环境温、湿度检测系统设计专业自动化班级1191学号20姓名指导教师李晓秀王迎旭2013年12月12日优秀文档合用标准文案湖南工程学院课程设计任务书课程名称单片机原理与应用课题环境温、湿度检测系统设计专业班级自动化学生姓名学号2011指导老师李晓秀审批任务书下达日期2013年12月1日任务完成日期2013年12月13日优秀文档合用标准文案主要设计条件设计内容与设计要求设计内容:本课题要求以单片机为核心,采用温湿度传感器DHT11设计一个对环境温度湿度的检测系统,要求用按键控制系统选择分别对温度或湿度的测试、复位、除去功能,用四

2、位LED数码管显示实时温度和温度。设计要求:1)确定系统设计方案;)进行系统的硬件设计;3)完成必要元器件选择;4)系统软件设计及调试;5)系统联调及操作说明6)按规范要求写设计说明书优秀文档合用标准文案1、PC机及单片机调试软件;2、开发板1块;3、系统设计、调试所需的元器件说明书格式课程设计任务书目录整体方案确定各单元硬件电路设计及计算方法软件设计与说明(包括流程图)调试结果与必要的调试说明总结8、参照文件9、附录附录A系统原理图附录B程序清单10、课程设计成绩评分表。进度安排优秀文档合用标准文案设计时间分为二周第一周星期一、上午:部署课题任务,课题介绍及讲课。下午:借阅相关资料,整体方案

3、谈论。星期二、确定整体方案,学习与设计相关内容。星期三、各部分方案设计,各部分设计。星期四、设计及调试。星期五、设计及调试。星期六、设计及调试。第二周星期一:设计及调试。星期二:设计及调试。星期三:调试、写说明书。星期四-星期五上午:写说明书、完成电子版并打印成稿。星期五下午:争辩。参照文件王迎旭等.单片机原理及及应用M机械工业初版社.2012年2康华光等.模拟电子技术第五版M高等教育初版社2011年杜树春等.单片机C语言M北京航空航天大学初版社目录优秀文档合用标准文案第1章归纳61.1设计任务与要求71.2设计方案7第2章硬件设计72.1时钟电路和复位电路82.2温湿度测量电路设计82.3按

4、键电路10第3章软件设计113.1主函数设计113.2按键盘问123.3实时监控与测试流程图13第4章硬件调试与结果解析154.1调试过程154.2硬件调试16第5章总结18参照文件19附录一:系统仿真图20附录二:源程序21电气与信息工程系课程设计评分表29第1章归纳优秀文档合用标准文案1.1设计任务与要求本课题以单片机为核心,用智能集成温温度传感器DHT11主要实现检测温度、湿度的检测,将温度湿度信号经过传感器进行信号的采集并变换成数字信号,再运用单片机进行数据的解析和办理,在数码管上显示当前温湿度。要求用按键控制系统选择分别对温度或湿度的测试、复位、除去功能,完成硬件调试。1.2设计方案

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

6、大器的输入端和输出端。平时,经由片外晶体振荡器或陶瓷谐振器与两个般配电容一起构成一个自激振荡电路。本课题由片外晶体振荡器与两个般配电容一起构成了一个内部时钟振荡电路,为单片机供应时钟源。本设计复位电路采用按键复位,当开关断开时,与上电自动复位电路同样;当开关闭合时,电容经过并联的电阻迅速放电,尔后,RC电路充电,可以保证RST端可以保持一段时间的高电平。如图2.1所示。图2.1时钟及复位电路2.2温湿度测量电路设计DHT11的供电电压为35.5V,传感器上电后,要等待1s以高出不稳优秀文档合用标准文案定状态在此时期无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以

7、去耦滤波。数据用于微办理器与DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分。如图2.2所示,本电路上拉电阻为5K,数据端接P1.7(接受温湿度数据)。图2.2温湿度测量电路2.3显示电路本电路由四位一体共阳极数码管显示,采用9015三极管做位驱动。依照发光二极管物理连结的不同样,七段数码管可以分为共阴极和共阳极两种结构。其中P0端口为段选,P2.0P2.3为位选,如图2.3所示。优秀文档合用标准文案图2.3显示电路2.4按键电路单片机设计中按键可分为独立式按键和矩阵式按键,本系统由于按键较少,故采用四个独立按键,上拉电阻为1K。其中,四个按键功

8、能分别是显示温度、显示湿度、实时监控显示温湿度、测试温湿度。如图2.4。图2.4按键电路优秀文档合用标准文案第3章软件设计本软件设计主若是对距离进行测量、显示。因此,整个软件可分为依照硬件电路对单片机位定义;温湿度设置子程序;温湿度接收子程序;显示子程序;延时子程序等。由于本设计方案要求硬件电路和软件编程相结合,因此选择合适的编程语言十分重要。C语言执行效率没有汇编语言高,但语言简洁,使用方便灵便,运算丰富,表达化种类多样化,程序设计自由度大,很好的可重用性,可移植性等特点基于C语言的众多优点本设计选择此语言来编程。3.1主函数设计软件分为两部分,主程序和中断服务程序。主程序完成初始化工作、温

9、湿度数据接收办理控制。外面中断服务子程序主要完成时间值的读取、结果的输出等工作,如图3.1所示。开始初始化显示扫描按键图3.1主程序流程图优秀文档合用标准文案3.2按键盘问独立式按键接口采用直接读入方式工作,直读式键盘接口是一个输入接口,输入接口主要功能是解决数据输入的缓冲(选通)问题。本设计按键较少,采用的独立按键。可否按键?Y确定键测显显实试示示时温湿测度度试图3.2盘问按键办理在扫描按键函数中,每按下不同样按键会返回一个不同样的数值,在主函数中有按键盘问函数判断为那个按键按下,随后进入不同样的子函数,如图3.2所示。优秀文档合用标准文案3.3实时监控与测试流程图本系统设计分为实时监控与测

10、试模块,图3.3示为测试模块。上电是数码管显示四个零,当按下测试按键后,系统开始测量环境温、湿度。当数码管显示四个“”时,表示成功测量温、湿度。当按下温度(湿度)显示按键,该模块显示测试时的温度(湿度)。当要进行下一次测量时,必定按下测试按键。开始N可否按键?Y显示N可否按键?Y调用测试函数温度按键按下?湿度按键按下?YY调用显示温度函数调用显示湿度函数图3.3测试流程图优秀文档合用标准文案图3.4示为实时监控模块,按下实时监控键后,启动T0准时器开始准时,每一分钟测试一次温度、湿度,并在四位一体的共阳极数码管轮流显示温度、湿度。当按下温度(湿度)显示按键后,该模块只显示实时的温度(湿度)。当

11、再次按下实时监控按键后。准时器T0关闭。开始N可否按键?Y显示可否按键?NY重装初值启动准时器调用测试函数轮流显示温湿度图3.4实时监控模块优秀文档合用标准文案第4章硬件调试与结果解析4.1调试过程在编写此程序前,感觉DHT11的通讯程序和取数程序最犯难写,在以前的学习中我并没有接触过单总线的通讯时序图。经过查阅资料和参照现有的程序,尔后在老师讲解和与本组的其他组员谈论后,终于弄理解这方面的知识。而在测量函数中,刚开始并没有测得数据,经过查阅书籍我设置了一个全局变量,一步一步追踪每一步并显示在P1的LED灯上,一步一步追踪,完满了DTH11的通讯与取数函数。但在通讯与取数函数与按键函数连结时,

12、总是有必然的概率测不到数据,慢慢的调试我发现我的通讯与取数函数要连续调用两次才能每次正确的读取数据,在此,我设置了一个全局变量作为一个标志位,每次按下测量键是将该标志位设置为2,使通讯与取数函数循环两次,这样保证了每次按下测试按键后就能与DHT11正确的通讯从而保证获取正确的数据。在实时监控这个模块中,为了保证温、湿度能循环显示、按键后能只显示温度(湿度)。由于按键有限,因此一下设置了很多的标志位。由于标志位太多,而没有将所有的环节考虑进去,一下程序有调试了许久才正确的实现要求的功能。优秀文档合用标准文案4.2硬件调试如图4.1所示,按下左下角按键时,单片机开始与DHT11通讯并开始测试温、湿

13、度。图示为测量温、湿度成功。图4.1初始化当按以下图示按键时,数码管显示此时或实时监控的环境湿度。其中最前端的“C”表示此时显示的事环节温度,如图4.2。图4.2显示湿度优秀文档合用标准文案当按下此按键时,数码管显示此时或实时监控的环境温度。其中最前端的“H”表示此时显示的是环境湿度,如图4.3。图4.3显示温度优秀文档合用标准文案第5章总结此次单片机课程设计不但牢固了以前学过的知识,而且学到了很多书籍上没有没到的知识,掌握了一种系统的研究方法,可以进行一些简单的编程,经过此次课程设计我们理解理论与实质相结合是很重要的,只有理论知识还不够,理论实践相结合才能提高实质着手能力和独立思虑的能力。同

14、样,在学习中也发现了自己的不足之处,比方对以前所学过的知识理解不够深刻,掌握不够牢固。课程设计是培养学生综合运用所学知识,发现、提出、解析和解决实责问题,锻炼实践能力的重要环节,是对学生实质工作能力的详尽训练和察看过程。随着科学技术发展的日新日异,单片机已经成为此刻计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感想颇多。的确,从选题到定稿,从理论到实践,在凑近两个星期的日子里,可以说得是苦多于甜,在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各样各样的问题,经过此次课程设计此后,必然

15、把以前所学过的知识重新温故。优秀文档合用标准文案参照文件王迎旭等.单片机原理及及应用M机械工业初版社.2012年2龚建伟、熊光明等串口通讯M康华光等.模拟电子技术第五版M高等教育初版社2011年杜树春等.单片机C语言M北京航空航天大学初版社优秀文档合用标准文案附录一:系统仿真图优秀文档合用标准文案附录二:源程序#includebitflag2,flag3,flag5;sbitdht11=P17;#defineNUMBER20/防范在与硬件通讯时发生死循环的计数范围#defineSIZE5#defineOK1#defineERROR0/函数的返回值表示读取数据可否成功OK表示成功ERROR表示失

16、败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(

17、void);/键盘扫描unsignedcharstatus;/#defineucharunsignedchar/#defineuintunsignedintunsignedcharflag1,flag4;unsignedcharled_code=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 xbf,0 x89;/*共阳字型段码表,0-F,-,“H”*/unsignedcharled0,led1,led2,led3;unsignedcharvalu

18、e_array5;/存放五字节数据的数组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;i0;i-)/高位在先value=1;count=0;/每一位数据前会有一个50us的低电平时间.等待50us低电平结束while(dht11=0)&(c

19、ount+=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);/读温度

20、和湿度函数,读一次的数据,共五字节,读出成功函数返回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();

21、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;/

22、退出函数/读出湿.温度值for(i=0;iSIZE;i+)value_arrayi=DHT11_ReadValue();if(status=ERROR)/调用ReadValue()读数据出错会设定status为ERRORdht11=1;returnERROR;/读出的最后一个值是校验值不需加上去if(i!=SIZE-1)优秀文档合用标准文案/读出的五字节数据中的前四字节数据和等于第五字节数据表示成功check_value+=value_arrayi;/endfordisplay(led0,led1,led2,led3);/在没用发生函数调用失败进行校验if(check_value=value_

23、arraySIZE-1)value_humi=value_array0;value_temp=value_array2;dht11=1;returnOK;/正确的读出dht11输出的数据elsereturnERROR;/校验数据错voiddelay_1_002s(void)unsignedcharz,b,c;for(z=0;z10;z+)for(b=0;b160;b+)for(c=0;c207;c+);voiddelay(unsignedcharx)unsignedchari,j;for(i=0;ix;i+)for(j=0;j0;flag4-)d=DHT11_ReadTempAndHumi()

24、;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=0 xf0;TMOD=0 x01;TH0=0 x3c;TL0=0 xb0;EA=1;ET0=1;TR0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论