基于单片机的温湿度检验系统.doc
《基于单片机的温湿度检验系统.doc》由会员分享,可在线阅读,更多相关《基于单片机的温湿度检验系统.doc(29页珍藏版)》请在咨信网上搜索。
计 控 学 院 College of computer and control engineering Qiqihar university 电气工程课程设计报告 题目:寝室温湿度检测装置设计 系 别 电 气 工 程 系 合用班级 电气12级 指引教师 时 间 学生姓名 提交日期 摘 要 随着人们生活水平提高,人们对健康提出了更高规定,空气中湿度通过各种直接或间接途径影响了咱们舒服感,空气中湿度过大或过小都会对人体健康不利。在寻常生活中,温湿度监控系统应用很广泛,例如:机房、档案馆、材料加工场等场合,乃至咱们寝室,温湿度与健康密切关联,都必要控制环境温度和相对湿度,使其保持在一定范畴。使用DHT11可以灵活检测环境温湿度,由顾客设定一定阈值,实时监测显示,并且可以依照顾客规定设定报警装置,当温湿度超过一定范畴时,及时报警。基于此,我设计了一款用51单片机控制温湿度监控系统,操作简朴,使用以便。 核心词:温湿度; 51单片机; DHDT11 目 录 摘 要 I 第1章 绪论 1 1.1 本论文背景和意义 1 1.2 本论文基本内容 1 1.3 方案设计 1 1.3.1 温湿度监控系统满足基本规定 1 1.3.2 系统功能原理图 2 第2章 硬件设计 3 2.1 电路原理图 3 2.2 电路原理图简介 3 2.3 蜂鸣器电路某些阐明 4 2.4 晶振电路某些阐明 4 2.5 1602模块电路阐明 4 2.6 湿度传感器DHT11简介 5 2.7 技术参数阐明 6 第3章 软件设计 7 3.1 软件设立实现功能 7 3.2 软件流程图 7 第4章 实验板测试 8 结论 9 参照文献 10 附录 11 第1章 绪论 1.1 本论文背景和意义 室内温湿监控系统设计是一种对现实生活非常实用,本课题研究重要内容是设计制作对室内温湿度监督与控制,相称于简易空调制作,理解空调系统,运用原理设计制作方案;运用物理知识制作控制温湿变化设备;传感器获取外界温湿度参数,51单片机编程控制,实现智能化设计;并用仿真软件对控制效果进行仿真研究。 随着科技飞速发展和普及,高性能设备越来越多,各行各业对温湿度规定也越来越高。老式温湿度监测模式是以人为基本,依托人工轮流值班,人工巡回查看等方式来测量和记录环境状况信息。在这种模式下,不但效率低下不利于人才资源充分运用,并且缺少科学性,许多重大事故都是由人为因素导致,人工维护缺少完整管理系统。而问世监控系统就可以解决这样人才资源挥霍,管理不及时问题,这是由于它智能化设计所决定。它工作环节如下:感应环境温湿度;单片机判断感应到温湿度与否异常;若感应到温湿度异常,实行办法进行调节;判断异常与否超过预设时间,若超过预设时间,则输出异常信号报警;判断异常与否解决完毕,若解决完毕,解除报警。这样就可以运用控制器对机房温湿度进行监控,从而实现环境温湿度管理实时性和有效性。故本次设计对于类似项目还具备普遍意义。 1.2 本论文基本内容 本设计完毕是温室温湿度监测系统,运用单片机设一种温湿度检测系统,对给定温湿度进行测试并实时显示,并怕不断当时温度或湿度与否在规定范畴内,若不是,测启动报警系统。 1.3 方案设计 1.3.1 温湿度监控系统满足基本规定 a.温度检测范畴0-50度,相对湿度20%-90%; b.可以依照实际用途设定温湿度报警值; c.监测数据可以通过模块显示; 1.3.2 系统功能原理图 依照设计规定拟定了系统总体方案,整个方案由单片机、湿温度传感器、显示模块、报警器等五某些构成。系统功能原理图如图1所示。 湿度传感器 温度传感器 单片机 蜂鸣器 LCD显示 图1-1 系统功能原理图 第2章 硬件设计 2.1 电路原理图 单片机是整个系统控制中枢,它指挥外围器件协调工作,从而完毕特定功能。硬件实现上采用模块化设计,每个模块只实现一种功能,最佳将各个模块连接在一起。这种设计比较简朴就可以实现,电路原理图如图2-1所示: 图2-1 电路原理图 2.2 电路原理图简介 本系统重要硬件有电源电路、温湿度传感器、蜂鸣器、晶振电路、复位电路、LCD显示电路、且控制电路核心器件是由STC红晶科技公司生产STC11F04E单片机,属于MCS-51列,STC11F04E是一种低功耗、高性能CMOS8位微控制器,具备8K在系统可编程FLASH存储器;相比老式51系列速度更快,且在本设计中充分运用了该单片机资源不挥霍I/O口。片上Flash容许程序存储器在线编程。这些长处使得STC11F04E为众多嵌入式控制应用系统提供高灵活、超有效解决方案,价格低廉,性能可靠,抗干扰强,因而广泛应用在工业控制和嵌入式中。系统蜂鸣器电路、晶振电路、复位电路如图2-1、图2-2 、图2-3所示: 图2-2 蜂鸣器电路 图2-3 晶振电路 图2-4复位电路 2.3 蜂鸣器电路某些阐明 蜂鸣器额定电流不大于30mA,其中使用三极管驱动工作,为了减少功耗本实验采用9012晶体管。 2.4 晶振电路某些阐明 晶振电路采用11.095MHz无源晶振,微调电容大小取30PF。 2.5 1602模块电路阐明 显示模块选用1602字符型液晶模块,是当前应用比较广泛液晶屏之一,电路如图2-5所示。 图2-5 1602液晶显示电路 2.6 湿度传感器DHT11简介 DHT11数字温湿度传感器是一款具有已校准熟悉信号输出温湿度复合传感器,它应用专用数字模块采集技术和温湿度传感技术,保证产品具备极高可靠性和卓越长期稳定性。传感器涉及一种电阻式感湿元件和一种NTC测温元件,并与一种高性能8位单片机相连接。因而该产品具备品质卓越、超快响应、抗干扰能力强、性价比极高等长处。每个DHT11传感器都在即为精准湿度校验室中进行校准。校准系数以程序形式存在OTP内存中,传感器内部在检测型号解决过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小体积、极低功耗,信号传播距离可达20米以上,使其成为给类应用甚至最为苛刻应用场合最佳选取。产品为4针单排引脚封装,连接以便。DHT11应用电路如图2-6: 图2-6 DHT11应用电路 2.7 技术参数阐明 a.供电电压: 3.3~5.5V DC; b.输 出: 单总线数字信号; c.测量范畴: 湿度20-90%RH, 温度0~50℃; d.测量精度: 湿度+-5%RH, 温度+-2℃; e.分 辨 率: 湿度1%RH, 温度1℃; f.互 换 性: 可完全互换; g.长期稳定性: <±1%RH/年; 第3章 软件设计 3.1 软件设立实现功能 系统单片机代码采用C语言编写,以Kei uVision4为开发环境。系统软件实现功能: a.通过LCD显示温湿度值; b.比较检测到温湿度值和报警值,发现超限蜂鸣器及时报警; 3.2 软件流程图 依照这些功能,系统软件流程图如图3-1所示: 1602初始化 延时 读取温湿度值 读取成功 1602显示数据 报警,发出信号 与否超限 Y 延时 N 图 3-1 系统软件流程图 第4章 实验板测试 通过测试实验板,已基本达到预定目,测评如下: 1. 预先设立温度阈值是30摄氏度,湿度阈值是30%TH; 2. 温度测试:通电后,温度显示室内值,用手捂住DHT11,使显示屏达到30,此时蜂鸣器及时报警; 3. 湿度测试:紧接着温度测试,用嘴吹气增长DHT11湿度,使其达到阈值30,蜂鸣器及时报警; 通过测试,实验板基本完毕预定目的,即完毕了温湿度检测,且能在设定阈值范畴内报警,达到了预期效果。 结论 由于采用是高效单片机作为核心,DHT11可以灵活检测环境温湿度,由顾客设定一定阈值,实时监测显示;此温湿度控制仪具备精度高、成本低、体积小、接口简朴等长处,还具备良好抗干扰能力。加上优化程序,使得本系统具备很高实用性。单片机应用如今已经在工业、电子等方方面面展示出了它优越性,运用单片机在设计电路逐渐成了趋势, 它与外围简朴电路再加上优化程序就可以构建任意产品,使得本设计成为现实。随着单片机日益发展,它必将在将来显示出更大活力,为电子设计增长更多精彩。 在设计过程中, 由于时间和本人能力限制, 设计中存在某些需要改进和优化地方。测量精度有待进一步提高,软件设计也存在不合理之处。但从设计过程中,对于单片机有更进一步结识, 对用于单片机仿真软件操作能力也明显提高,也对温湿度检测系统有了更深刻理解,对protel99se和Altium designer仿真软件有了更明确结识,通过此设计,对在实验板在制作过程中浮现各种问题解答提高了自己思考能力和动力能力。端正了做事心态,不能有半点马虎,细节决定成败,做事应当滴水不漏,认认真真,踏踏实实,对后来寻常生活和工作都受益匪浅。 参照文献 [1] 谢自美. 电子线路设计*实验*测试[M].华中科技大学出版社. [2] 张友德等. 单片微型机原理、应用和实验[M].电子工业出版社. [3] 吴经国等.单片机应用技术[M]. 中华人民共和国电力出版社. [4] 李群芳.单片机微型计算机与接口技术[M].电子工业出版社. [5] 闫石.数字电子技术基本[M].高等教诲出版社. [6] 黄智伟.全国大学生电子设计竞赛训练教程[M].电子工业出版社. [7] 周立功.单片机实验与实践[M].北京航空航天大学出版社. [8] XU Yi - min .The Design for Stepping Motor of SCM Control System[J]. Heilongjiang Science and Technology Institute..1 附录 附录1 程序源代码 /*******************************************************************************/ //DHT11温湿度测试程序 //P0作为LCD数据控制口,P2.0 作为DHT11data总线 ,P2.1作为状态显示 //用三根杜邦线连到开发板 /********************************************************************************/ #include <reg52.h> #include <intrins.h> typedef unsigned char unint8; typedef unsigned char unint16; unsigned char str1[]={" "}; unsigned char str2[]={" "}; unsigned char code dis1[] = {"2-# H:"}; unsigned char code dis2[] = {"618 T:"}; sbit TRH = P3^7;//温湿度传感器DHT11数据接入 sbit ST = P3^1;//状态显示,是为了以便调试,详细使用时候可以不要 sbit SF = P3^2; sbit LCD_RS = P3^3; sbit LCD_RW = P3^4; sbit LCD_EN = P3^5; unint8 TH_data,TL_data,RH_data,RL_data,CK_data; unint8 TH_temp,TL_temp,RH_temp,RL_temp,CK_temp; unint8 com_data,untemp,temp; unint8 respond; /*********************************************************************************/ void delayNOP() { _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); _NOP_(); } /*********************************************************************************/ /*********************************************************************************/ // 毫秒级延时子程序 /*********************************************************************************/ void delay_ms(unsigned char ms) { unsigned char i; while(ms--) { for(i = 0;i< 150;i++) { _NOP_(); _NOP_(); _NOP_(); _NOP_();_NOP_(); _NOP_(); _NOP_(); _NOP_(); } } } /*********************************************************************************/ /*********************************************************************************/ //5us级延时程序 /*********************************************************************************/ void delay_us() { unint8 i; i--; i--; i--; i--; i--; i--; } /********************************************************************************/ /********************************************************************************/ // 测试LCD忙碌状态 //lcd_busy()为1时,忙,等待。lcd_busy()为0时,闲,可写指令与数据。 /********************************************************************************/ bit lcd_busy() { bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P1&0x80); LCD_EN = 0; return(result); } /*******************************************************************************/ /*******************************************************************************/ // 写入指令数据到LCD /*******************************************************************************/ void lcd_wcmd(unsigned char cmd) { while(lcd_busy()); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _NOP_(); _NOP_(); P1 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; } /*****************************************************************************/ /*****************************************************************************/ //写显示数据到LCD //RS=高电平,RW=低电平,E=高脉冲,D0-D7=数据。 /*****************************************************************************/ void lcd_wdata(unsigned char dat) { while(lcd_busy()); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P1 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; } /****************************************************************************/ /****************************************************************************/ //LCD初始化设定 /****************************************************************************/ void lcd_init() { delay_ms(15); lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据 delay_ms(5); lcd_wcmd(0x38); delay_ms(5); lcd_wcmd(0x38); delay_ms(5); lcd_wcmd(0x0c); //显示开,关光标 delay_ms(5); lcd_wcmd(0x06); //移动光标 delay_ms(5); //lcd_wcmd(0x01); //清除LCD显示内容,如果屏幕过暗,可将这俩句删除 //delay_ms(5); } /****************************************************************************/ /****************************************************************************/ //设定LCD显示位置 /****************************************************************************/ void lcd_dis_pos(unsigned char pos) { lcd_wcmd(pos | 0x80);//数据指针=80+地址变量 } /****************************************************************************/ /****************************************************************************/ //收发信号检测,数据读取 /****************************************************************************/ char receive() { unint8 i; ST=0; com_data=0; for(i=0;i<=7;i++) { respond=2; while((!TRH)&&respond++); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); if(TRH) { temp=1; respond=2; while((TRH)&&respond++); } else temp=0; com_data<<=1; com_data|=temp; } return(com_data); } /****************************************************************************/ /****************************************************************************/ //湿度读取子程序 //温度高8位== TL_data //温度低8位== TH_data //湿度高8位== RH_data //湿度低8位== RH_data //校验 8位 == CK_data //调用程序有 delay();,Delay_5us();,RECEIVE(); /***************************************************************************/ void read_TRH() { //主机拉低18ms TRH=0; delay_ms(36); TRH=1; //DATA总线由上拉电阻拉高 主机延时20us delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); delay_us(); //delay_us(); //delay_us();delay_us();delay_us();delay_us(); //主机设为输入 判断从机响应信号 TRH=1; //判断DHT11与否有低电平响应信号 如不响应则跳出,响应则向下运营 if(!TRH) { respond=2; //判断DHT11发出 80us 低电平响应信号与否结束 while((!TRH)&& respond++); respond=2; //判断从机与否发出 80us 高电平,如发出则进入数据接受状态 while(TRH && respond++); //数据接受状态 RH_temp = receive(); RL_temp = receive(); TH_temp = receive(); TL_temp = receive(); CK_temp = receive(); TRH=1;ST=1; //数据校验 untemp=(RH_temp+RL_temp+TH_temp+TL_temp); if(untemp==CK_temp) { RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; } } //湿度整数某些 if(((RH_data/10>2||TH_data/10>2))||((TH_data%10<5&&TH_data/10<2))) { SF=0; delay_ms(50); SF=1; } else SF=1; str1[0] = (char)(0X30+RH_data/10); str1[1] = (char)(0X30+RH_data%10); str1[2] = 0x2e;//小数点 //湿度小数某些 str1[3] = (char)(0X30+RL_data/10); str1[5] = 0X25;//"%" str1[6] = 0X52;//"R" str1[7] = 0X48;//"H" //温度整数某些 str2[0] = (char)(0X30+TH_data/10); str2[1] = (char)(0X30+TH_data%10); str2[2] = 0x2e;//小数点 //温度小数某些 str2[3] = (char)(0X30+TL_data/10); str2[5] = 0XDF; //"'" str2[6] = 0X43; //"C" } /****************************************************************************/ //主函数 //TH,TL,RH,RL分别代表温湿度整数和小数某些 /****************************************************************************/ void main() { unsigned char i,n=0x40,m; lcd_init(); delay_us(); while(1) { read_TRH(); //写字符 for(i=0;i<=7;i++) { delay_ms(5) ; lcd_dis_pos(i); //显示字符 delay_ms(5) ; lcd_wdata(dis1[i]); delay_ms(5) ; lcd_dis_pos(n+i); //显示字符 delay_ms(5) ; lcd_wdata(dis2[i]); } //写湿度数据 m=0x08; for(i=0;i<=7;i++) { lcd_dis_pos(m); delay_ms(5) ; lcd_wdata(str1[i]); delay_ms(5) ; m++; } //写温度数据 m=0x48; for(i=0;i<=7;i++) { lcd_dis_pos(m); delay_ms(5) ; lcd_wdata(str2[i]); delay_ms(5) ; m++; } //延时 delay_ms(1000) ; } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温湿度 检验 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文