「温湿度检测报警系统」.doc_第1页
「温湿度检测报警系统」.doc_第2页
「温湿度检测报警系统」.doc_第3页
「温湿度检测报警系统」.doc_第4页
「温湿度检测报警系统」.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

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

文档简介

计算机科学与技术学院微计算机系统设计课程设计学号:S#专业:计算机科学与技术学生姓名:#任课教师:# 教授2012年12月温湿度检测与报警系统摘要以STC12C5A60S2单片机为控制单元,串行接口智能显示驱动芯片作为数码管和键盘的驱动器,采用C语言进行编程,设计实现一款临界值可调的温湿度检测与报警系统。本系统采用DHT11温湿度模块采集并处理温湿度参数,单片机从DHT11读取四十位数字信号(四十位数字信号为:湿度高八位,湿度低八位,温度高八位,温度低八位和校验位),根据要显示的内容选择性的把数据送往HD7279A,控制数码管的显示。HD7279A读取按键按下的键位,反馈给MCU,实现不同的操作。该系统能够对空气温湿度进行准确的检测,并能实时显示当前温湿度。当温度或湿度越过临界值时,系统发出相应的报警信号。温湿度的临界值可以手动调节,方便不同的领域应用该系统。关键词:STC12C5A60S2,DHT11,HD7279A,温湿度,报警1引言在当今社会的各行各业,温度和湿度对各行业的影响不尽相同,但是温度和湿度是生产生活中的关键因素,只有把周围环境的温度和湿度控制在合适的范围,生产生活才能有序的进行。1.1选题的目的和意义改革开放以来,我国的经济迅猛发展,人们生活消费水平的提高,在各行业生产中,在人们的日常生活中,环境的温度和湿度对于各方面起着弥足重要的作用。温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度;湿度是表示大气干燥程度的物理量,在一定温度下单位体积空气里含有的水汽的多少。温度、湿度和人类的生产、生活有着密切的关系,同时也是工业生产中最为常见的,而且是最基本的工艺参数;例如机械、石油化工、电子等各类行业中广泛需要对温度和湿度进行检测和控制。并且随着人们生活水平的提高,人们对自己的生存环境越来越关注,而空气中温湿度的变化与人体的舒适度和情绪都有着某种间接或者直接的关系,所以对温湿度的检测和控制就显得非常重要和迫切了。1.2课题研究现状及发展趋势应用在现在社会生活及工农业生产上的温湿度测试器有许多种,温湿度传感器也各式各样。不同的温湿度测试器采用的传感器不同,但是设计原理大致相同,它们都由三部分组成:测量部分、本体部分、PC界面。测量部分主要由温湿度传感器组成,传感器检测周围的温湿度。本体部分主要是控制芯片,当温湿度超过一定的范围时,控制芯片会控制相应的部件,做出相应的操作,直至温湿度数值达到正常的范围。PC界面主要是显示信息给用户,让用户知道周围的温湿度参数。总体来看,现代温湿度检测系统呈现出高精度、检测灵敏度高、体型小巧、可交互、标准化和模块化的趋势和发展。1.3课题的主要内容本课题设计的是温湿度检测报警系统,本系统的是以STC12C5A60S2为主控制芯片,包括HD7279A数码管键盘驱动模块、以DHT11为核心的温湿度检测模块和报警器等。本系统可以精确对周围环境的温湿度进行检测,实时显示温湿度的值。本系统的特点是:温湿度的临界值时可调的,越过临界值发出报警信号,报警信号根据低于或高于临界值的不同而不同。总之,该系统为用户提供一个精准的温湿度数字检测器。本设计主要在以下方面展开研究工作:(1)分析温湿度的发展历程和现状,论述课题的研究目的和研究意义(2)硬件总体设计的展开。简要介绍系统所需要的关键器件及其工作的原理,论述每个模块的硬件实现及其原理。(3)系统的软件设计。根据硬件设计和功能需求编写相应的软件程序。(4)对系统进行硬件和软件调试,得出结论并总结心得2系统的硬件介绍此部分主要介绍本系统的总体设计和主要模块的工作原理。2.1系统的总体设计系统主要由STC12C5A60S2单片机控制模块、DHT11温湿度检测处理模块、HD7279A为驱动的按键和显示模块、报警模块和辅助模块等几部分组成。本系统的结构图如2-1所示。图2-1 系统总体设计温湿度检测模块不断的对周围环境温湿度参数进行采集处理,STC12C5A60S2单片机不断的和温湿度检测模块进行数据交换,并通过HD7279A驱动数码管显示温湿度,通过按键调节温湿度的上下临界值,打开或关闭报警系统的允许位。如果温湿度异常,报警模块报警。2.2 DHT11温湿度检测模块介绍温湿度检测模块式本系统的核心部分,主要负责温湿度的采集和模数的转换,为系统提供一组温湿度数字信号,方便处理。DHT11数字温度、湿度传感器是一款有已经校准数字信号输出的温度、湿度传感器。它采用先进的数字模块采集技术和温度、湿度传感技术,保证产品具有较高的可靠性与非凡的长期稳定性。DHT11测量范围2090RH 050,测湿精度5RH, 测温精度2,分辨力为1。DHT11实物及典型电路图如图2-2所示。图2-2 DHT11实物及典型电路图DHT11与STC12C5A60S2之间交换的数据是40bit的数字信号,MCU先从DHT11中读取高位,再读取低位,其40bit数据的格式为:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和。数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。由于DHT11的精度为1,故小数位为0。2.3 HD7279A驱动芯片和矩阵键盘、数码管2.3.1 HD7279A简介HD7279A是一片具串行接口的,可同时驱动8位共阴式数码管的智能显示驱动芯片,该芯片同时还可以连接多达64键的键盘矩阵,单片即可完成LED显示,键盘接口的全部功能。HD7279A的管脚图如2-3所示。图2-3 HD7279管脚HD7279A的主要特征为:(1).串行接口,无需外围元件可直接驱动LED。(2).各位独立控制译码/不译码及消隐和闪烁属性。(3).(循环)左移/(循环)右移指令。(4).具有段寻址指令,方便控制独立LED。(5).64键键盘控制器,内含去抖动电路2.3.2 矩阵键盘的功能介绍本系统采用矩阵键盘作为用户与系统的交互接口。矩阵键盘中按键的标号为:0到F,其中0、1、2、4、5、8、9、C和D有具体的功能,其他按键无效。具体功能如表2.3所示。表2.3 按键号使用及其功能简介键号功能简介0实时显示温度模式1实时显示湿度模式2报警系统允许与否切换按键4温度下限显示和温度下限调节(与C、D键配合使用)5湿度下限显示和温度下限调节(与C、D键配合使用)8温度上限显示和温度下限调节(与C、D键配合使用)9湿度上限显示和温度下限调节(与C、D键配合使用)C在十/个位减小温/湿度的数值(与4、5、8、9键配合使用)D在十/个位增加温/湿度的数值(与4、5、8、9键配合使用)2.3.3 数码管显示功能本系统采用四个七段数码管显示所有的信息,要显示的内容包括:实时温湿度、温湿度的上下临界值和调节上下临界值时闪烁等。3 系统的软件设计系统软件采用C语言,基于STC12C5A60S2单片机进行设计。根据系统功能要求,主控系统软件分为1个主程序模块和6个子程序模块,即系统初始化、定时器模块、温湿度采集模块、HD7279A驱动键盘和数码管显示、报警模块。软件设计的流程图如图3-1所示。下面就这几个方面进行介绍详细介绍。图3-1 软件设计的流程图3.1 系统的初始化模块系统初始化包括:DHT11初始化,HD7279A初始化,中断初始化,温湿度初始临界值初始化,报警使能初始化。其主要代码如下所示。init()/发光二极管初始化P2_7=1;/74hc245数据方向为A进B出P2_6=0;/74HC573芯片使能输出 P3_6=0;baojing_EN_flag = 1;/初始化温湿度的临界值wen_MAX=25;wen_MIN=15;shi_MAX=40;shi_MIN=20;/P4.4设置为通用I/O口P4SW=0x10; /7279初始化Write_1byte(0xbf);/测试闪烁DELAY_10nms(200);Write_1byte(CMD_RESET); /重启芯片DELAY_10nms(20);/中断初始化EA=1; /开总中断ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模式1TH0=(65536-10000)/256; /定时器T0的高8位赋初值TL0=(65536-10000)%256; /定时器T0的高8位赋初值TR0=1; /开始计数3.2 定时器模块定时器中断服务程序为本系统软件设计的核心,其作用举足轻重。本系统采用定时器T0的模式1,即16位定时/计数器。当计数器计数溢出是产生中断,执行中断服务子程序。中断服务程序的伪代码如下所示。void Time0(void) interrupt 1 using 0 EA=0;TR0=0;/关总中断,停止计数RH();/读取温湿度数据default_show()/默认显示if(baojing_EN_flag=0) baojing();/是否执行报警if(HD7279_KEY_DOWN=0) /有键按下 DATA_IN=Receive_cmd_data(KEY_VALUE);/读出按键值while(HD7279_KEY=0); /去抖动 switch (按键号)case 0: display_wen();break;/显示温度case 1: display_shi();break;/显示湿度case 2: if(可以报警) Function(消除报警);case 8: adjust(wen_MAX,8);break; /温度上限调节case 4: adjust(wen_MIN,4);break; /温度下限调节case 9: adjust(shi_MAX,9);break; /湿度上限调节case 5: adjust(shi_MIN,5);break; /湿度下限调节case 12:sub();break;/增加操作case 13:add();break;/增加操作 TH0=(65536-10000)/256; /定时器T0的高8位重新赋初值TL0=(65536-10000)%256; /定时器T0的高8位重新赋初值TR0=1; /重新计数EA=1; /开总中断3.3 温湿度检测模块由于DHT11数据线为串行接口(单线双向),MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,我们可选择读取部分数据。COM()函数执行一次取出8bit,要想取出40bit的数据,须执行四次COM()操作,即执行RH()。其伪代码如下所示。void COM(void) for(i=0;i8;i+) U8FLAG=2; while(!P4_4)&U8FLAG+); /等待数据起始信号结束 Delay_30us(); /延时30-40us后判断如果是低电平表示为数据0/如果是高电平表示为数据1 U8temp=0; if(P4_4)U8temp=1; U8FLAG=2; while(P4_4)&U8FLAG+); if(U8FLAG=1)break; U8comdata wen_MIN + 10) & wen_H_shi=1)if(wen_MAX/10 != 0 )wen_MAX -= 10; show(wen_MAX); if(shi_MAX shi_MIN + 10) & shi_H_shi=1 )if(shi_MAX/10 != 0 ) shi_MAX -= 10; show(shi_MAX);if(wen_MAX wen_MIN + 1) & wen_H_ge=1)if(wen_MAX%10 != 0 )wen_MAX -= 1; show(wen_MAX); if(shi_MAX shi_MIN + 1) & shi_H_ge=1)if(shi_MAX%10 != 0) shi_MAX -= 1; show(shi_MAX);/调下届if(wen_L_shi=1) if(wen_MIN/10 != 0) wen_MIN -= 10; show(wen_MIN);if(wen_L_ge=1) if( (wen_MIN%10)!= 0 ) wen_MIN-; show(wen_MIN);if(shi_L_shi=1)if(shi_MIN/10 != 0) shi_MIN -= 10; show(shi_MIN);if(shi_L_ge=1) if( (shi_MIN%10)!= 0 ) shi_MIN-; show(shi_MIN);/*/*add函数,增加上下限*/*/void add()/调上界if(wen_H_shi=1)if(wen_MAX/10 != 9) wen_MAX = wen_MAX + 10; show(wen_MAX);if(wen_H_ge=1) if( (wen_MAX%10)!= 9 ) wen_MAX+; show(wen_MAX);if(shi_H_shi=1) if(shi_MAX/10 != 9) shi_MAX = shi_MAX + 10; show(shi_MAX);if(shi_H_ge=1) if( (shi_MAX % 10)!= 9 ) shi_MAX+; show(shi_MAX);/调下界的十位if(wen_MAX wen_MIN + 10) & wen_L_shi=1)if(wen_MIN/10 != 9)wen_MIN += 10; show(wen_MIN); if(shi_MAX shi_MIN + 10) & shi_L_shi=1)if(shi_MIN/10 != 9)shi_MIN += 10; show(shi_MIN);/调下界的个位if(wen_MAX wen_MIN + 1) & wen_L_ge=1 ) if( (wen_MIN%10)!= 9 ) wen_MIN+; show(wen_MIN);if(shi_MAX shi_MIN + 1) & shi_L_ge=1) if( (shi_MIN % 10)!= 9 ) shi_MIN+; show(shi_MIN);3.5 报警模块当温湿度值超过/低于临界值时,发出报警信号,发光二极管闪烁。当超过时红灯闪烁,低于时绿灯闪烁。按键2为报警的使能按键,初始状态不允许报警,按下按键后允许报警,再按下又不允许报警。不允许报警的状态下,二极管为灭状态。当温度异常时,数码管显示温度;湿度异常时,数码管显示湿度;两者都异常时,数码管显示温度。void baojing()/判断是温度越界还是湿度越界,不同的越界显示不同的参数if(U8T_data_H wen_MAX | U8T_data_H wen_MAX )P0=0xff;/ 全部灭DELAY_10nms(10);P0=0xaa; / 红灯亮DELAY_10nms(10);if(U8T_data_H shi_MAX | U8RH_data_H shi_MAX )P0=0xff;/ 全部灭DELAY_10nms(10);P0=0xaa; / 红灯亮DELAY_10nms(10);if(U8RH_data_H shi_MIN)P0=0xff;/ 全部灭 DELAY_10nms(10); P0=0x55; / 绿灯亮 DELAY_10nms(10);4 单片机程序调试开发工具是选用目前国内流行的Keil公司出品的51系列单片机软件仿真器。Keil Vision2 IDE是一个窗口化的软件开发平台,它集可视化编程、编译、调试、仿真于一体,支持51汇编、PLM和C语言的混合编程,界面非常友好、易学易用、功能极其强大。它具有功能强大的编辑器、工程管理器以及各种编译工具。由于单片机程序采用C语言编写,因此程序的调试比较简单。使用Keil uVision2提供了丰富的调试工具,使调试进行的非常顺利,最后通过编译并生成了hex可执行文件,下图4-1为程序部分调试过程图。图4-1 软件调试过程图5 总结本课题利用DHT11对温湿度进行检测,并采用STC12C5A60S2单片机对

温馨提示

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

最新文档

评论

0/150

提交评论