温湿度检测系统的设计与实现Word格式文档下载.docx

上传人:b****6 文档编号:8578553 上传时间:2023-05-11 格式:DOCX 页数:17 大小:874.84KB
下载 相关 举报
温湿度检测系统的设计与实现Word格式文档下载.docx_第1页
第1页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第2页
第2页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第3页
第3页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第4页
第4页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第5页
第5页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第6页
第6页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第7页
第7页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第8页
第8页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第9页
第9页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第10页
第10页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第11页
第11页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第12页
第12页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第13页
第13页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第14页
第14页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第15页
第15页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第16页
第16页 / 共17页
温湿度检测系统的设计与实现Word格式文档下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

温湿度检测系统的设计与实现Word格式文档下载.docx

《温湿度检测系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《温湿度检测系统的设计与实现Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。

温湿度检测系统的设计与实现Word格式文档下载.docx

5将处理结果在LED液晶屏上显示;

6将相关信息传输至手机上(选做)。

指导教师评语及成绩

平时成绩:

答辩成绩:

论文成绩:

总成绩:

指导教师签字:

年月日

注:

平时成绩占20%,答辩成绩占40%,论文成绩占40%。

第1章绪论1

1.1系统的开发背景1

1.2开发工具1

第2章需求分析2

2.1调研情况2

2.2模块划分2

2.3系统原理图3

2.4系统性能需求3

第3章系统概要设计4

3.1系统总体结构设计4

3.2模块的创建4

第4章硬件设计5

4.1DHT11温度湿度传感器电路设计5

4.2晶振电路和复位电路设计6

4.3LED数码显示模块设计7

4.4报警模块设计7

4.5主程序设计8

4.6LED显示子程序设计9

第5章系统的测试10

5.1系统安装接线图10

5.2调试与结果10

第6章总结12

参考文献13

附录程序14

第1章绪论

1.1系统的开发背景

随着科学技术的快速发展,人类社会已取得了巨大进步!

在居家生活、工农业生产、环保、气象、国防、科研、航天等部门,经常需要对环境中的湿度和温度进行测量及控制。

传统的方法是用温度表、毛发湿度表、双金属式测量计和湿度试纸等测试器材,通过人工进行检测,对不符合温度和湿度要求的场所进行换气、降温和去湿等工作。

这种人工测试方法费时费力、效率低,且测试的温度及湿度误差大,随机性相对较大。

随着生产的发展急需一个含有微型计算机或微处理器的测量仪器,由于它拥有对数据存储,运算逻辑判断及自动化的功能,有着智能作用等优点,一个低成本和具有较高精度的温度湿度检测器将在许多领域代替人工操作,自动不间断检测环境温度和湿度。

目前市场上普遍存在的温湿度检测仪器大都是单点测量,而且温湿度信息传递不及时,精度达不到要求,不利于控制者根据温度、湿度变化及时做出决定。

为此,本设计开发了一种能够同时测量多点,并实时性高、精度高,通过显示器显示温湿度信息,并能进行温湿度超限报警的测控产品。

本文设计的是基于单片机的室温湿度检测与报警系统,运用温湿度传感器进行温度和湿度的检测,该仪器具有测量精度较高、硬件电路简单、并能很好的进行显示,可测试一定围室环境温湿度的特点。

省去了人工检测的繁琐、耗时的过程,随时通过检测器的显示器进行读数,既方便,又快捷。

1.2开发工具

STC89C52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

LED数码管是现在电子设计中使用相当普遍的一种显示设备,每个数码管由7个发光二极管按照一定的排列结构组成,根据七个发光二极管的正负极连接不同,又分为共阴极数码管和共阳极数码管两种,选择的数码管不同,程序设计上也有一定的差别。

编程采用KeilC软件,使用C语音。

页脚字体为TimesNewRoman,字号为小五号,居中。

第2章需求分析

2.1调研情况

在需求分析阶段,本设计采用STC89C52RC单片机做为嵌入式控制核心,处理温度和湿度信号,基于设计目的对于信号采集的数字滤波考虑,本设计采用模拟量输出的温湿度传感器,采用TLC254312位串行A/D转换器进行模数转换,非信号因素采用专用硬件看门狗芯片X25045等多项软硬件抗干扰措施,减少额外干扰对于实验设计的影响,并基于产品性功耗考虑,显示器件采用字符液晶。

设计充分利用端口资源,考虑整体性,显示精确性以及功耗要求,很好的完成了设计目的。

2.2模块划分

通过网上查询、翻阅图书了解空调系统原理,借鉴前人经验;

传感器使用方法;

用数码管显示可实现系统设计。

主要容有

⑴学习强化单片机知识

⑵掌握智能温湿度检测系统,提出硬件电路设计方案

⑶画出原理图

⑷编写单片机控制软件

⑸完成系统整体功能调

2.3系统原理图

DHT11传感器模块

按键电路模块

STC90C52RC

单片机

LED数码显示模块

报警模块

晶振电路

复位电路

图2.1系统原理图

2.4系统性能需求

设计中包括硬件电路的设计和系统程序的设计。

其硬件电路主要由电源电路、主控制器和显示电路等构成。

其中单片机是核心部分,负责对温度信号进行接收、检验并传输处理。

第3章系统概要设计

3.1系统总体结构设计

要求以单片机为核心,采用温湿度传感器DHT11设计一个对环境温度湿度的检测系统,要求用按键控制系统选择分别对温度或湿度的测试、复位、用四位LED数码管显示实时温度和温度。

3.模块的创建

STC89C52RC

本次设计主要设计了温湿度的测量与显示,硬件方面共分为7个模块,即单片机主控模块、按键模块、晶振电路、复位电路、LED显示模块、报警模块以及DHT11电路模块。

数字温湿度传感器DHT11送来数据,经单片机STC89C52RC处理后,并送入LED显示模块,一个显示温度,一个显示湿度,另外一个负责启动DHT11。

系统总体框图如图3.1。

图3.1系统总体框图

第4章硬件设计

4.1DHT11温度湿度传感器电路设计

此次单片机课程设计采用的是DHT11数字温湿度传感器,而且是单总线(双向)结构,所以温湿度检测电路的结构比较简单。

此次课程设计温度测量围:

0-50摄氏度;

湿度测量围:

20%-90%RH。

DHT11只有一根数据线,一根电源线,一根地线,还有一根(NC)悬空。

直接将电源线与单片机的电源VCC相连,地线与单片机的GND相连。

数据线DATA与单片机的P30口相连,外加一个5K的上拉电阻。

所需要的温湿度数据便是由DATA引脚通过P30送入单片机的,在单片机做出相应的处理之后得到相应的温湿度数据,原理图如图4.1所示。

图4.1温度检测原理图

4.2晶振电路和复位电路设计

STC89C52部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。

时钟可以由部方式产生或外部方式产生。

其晶振电路如图4.2所示。

图4.2晶振电路

复位电路是保证单片机正常运行的关键因素,所以可靠地复位电路设计是必要的。

将RST引脚连续输入2个机器周期(即24个时钟振荡期间)以上高电平,即可以完成单片机的初始化操作。

本设计采用按钮复位方式,其复位电路如图4.3所示。

图4.3复位电路

4.3LED数码显示模块设计

此次课程设计采用的共阳极LED动态数码显示,所谓动态显示,是采用动态扫描的方法逐个地循环点亮各位显示器。

虽然在任一时刻只有一位显示器被点亮,但由于人眼具有视觉残留效应看起来与全部显示器持续点亮效果是完全一样的。

为了实现LED显示器的动态扫描,除了要给显示器提供段码(字形代码)的输入外,还要对显示器进行位控制,这就是通常所说的段控和位控。

本次课程设计中段码控制为单片机的P01-P07分别与LED的A.B.C.D。

E.F.G.Dp相连,实现了字符的显示,单片机的P02-P07分别与四个LED显示起相连,实现位控制。

4.4报警模块设计

此次课程设计的报警模块采用一个LED显示灯、一个10K的限流电阻和一个扬声器。

当实测温度湿度在设定的围,LED灯熄灭,扬声器不会发出警报,工作正常!

如果实测温湿度不在设定的围,LED灯亮,扬声器发出警报,此时系统工作不正常!

应根据要求调节温湿度设定的上下阀值!

报警指示原理图如图4.4所示。

图4.4报警指示原理

4.5主程序设计

开机启动系统,进入主函数MAIN后延时0.1S等待启动,当按下启动键S4,然后调用温湿度子程序CWD读取温湿度,并用数组将实测的温湿度数据保存起来,分别将温湿度除十取整,将处理后的数据调用到温湿度围检测函数temphumi_range判断实测的温湿度是否在设定的围并作出相应的处理。

其主程序流程图如图4.5所示。

开机

延时、启动

读取温湿度、处理、存储

温湿度越限?

按键是否按下?

结束

显示实测温、湿度

Y

报警

N

图4.5主程序流程图

4.6LED显示子程序设计

数码管显示主要用于同时显示温湿度和单独显示精确的温度和湿度,其显示流程图如图4.6所示

开始

段码送入P30

位码送入P02-P07

显示

图4.6显示流程图

第5章系统的测试

5.1系统安装接线图

本设计是在KeilC环境下开发的,在编译完KeilC后,再运用STC_ISP_V48.8软件烧录到开发板上,实现实物与程序的连接。

如图5.1系统安装接线图。

图5.1系统安装接线图

5.2调试与结果

调试完成后,可进行温湿度的测量。

如图5.2所示。

图5.2调试结果

第6章总结

时间一点点的逼近了,耗时3周的课程设计即将结束,在老师的指导和自己的努力下我的毕业设计也完成了。

通过这段时间里的学习,我了解到了很多知识,也对软件开发的过程有了一个更深的了解,并且对程序的基本设计思路有了较深的认识。

本次课程设计还算比较的成功,设计初期,老师要我们确定系统的主体设计,比如一些主流程图、按键显示模块等,我们这个小组也能按时完成老师布置的任务,跟着老师一步步的走过来,其实感觉起来这个课程设计不是那么的难,比我刚开始着手的时候要简单。

在设计的过程中,为了找到自己需要的资料我们一起去读书馆找一些单片机课程设计实例来看看,不过在南校区读书馆资源也是非常的有限,而且还是比较旧的资料,像关于本次用的温湿度传感器DHT11在南院的图书馆几乎没有,图书馆只有什么单个测温度或者湿度的传感器,不过这个对我们的课程设计帮助也挺大的,另外此次课程设计的程序来源与XX百科,不过并不是按部就班,我们在它的基础上把它弄懂、理解之后加入自己的设计想法,我想做课程设计无非是想让我们学到,在别人已有的基础上加入自己的设计方案,慢慢的变为自己的知识。

在此分别对晓秀老师和我这组的同学表示感。

本人签字:

参考文献

[1]王迎旭编.单片机原理与应用[M].机械工业.2012

[2]海晏编.51单片机原理与应用[M].航空航天大学.2010

[3]黄仁欣编.单片机原理与应用技术[M].清华大学.2010

[4]中明编.单片计算机原理及接口技术[M].人民邮电.2009

[5]赛奎春.MySql数据库开发实例解析[M].:

机械工业,2010

附录程序

#include<

reg51.h>

#defineucharunsignedchar

#defineuintunsignedint

ucharnum,z,dat,a,c,d,f;

uintb;

sbitJDQ=P3^7;

//管脚定义类似于起名字

//用JDQ来代替P1.4控制继电器工作

unsignedinttempL;

//设全局变量

unsignedinttempH;

unsignedintsdata;

unsignedints;

codeunsignedcharseg7code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,

0x82,0xf8,0x80,0x90,0xff};

//不带小数点的共阳数码管段码

codeunsignedcharseg7codeB[]={0x40,0x79,0x24,0x30,0x19,0x12,

0x02,0x78,0x00,0x10,0xff};

//带小数点的共阳数码管段码

bitfg=1;

//正负标志

//******************延时子程序*******************************

//这个延时程序的具体延时时间是time=i*8+10,适用于小于2ms的延时

//************************************************************

voiddelay(unsignedchari)

{

for(i;

i>

0;

i--);

}

//***********************************************************

//延时子程序

voiddelay1ms()

unsignedchari;

for(i=124;

//延时124*8+10=1002us

//读值(低位放tempL;

高位放tempH;

ReadTemperature(void)

{

tempH=c;

tempL=d;

s=(tempH*256+tempL);

//整数部分

sdata=s/100;

//控制继电器

//********************显示函数****************

voidLed(unsignedintdate)

if(fg==1)

{

P2=0xfe;

//P1.0=0,选通第一位

P0=seg7code[date/10];

//十位数,查表,输出

delay1ms();

P0=0xff;

//消隐

P2=0xfd;

//P1.1=0,选通第二位,个位数

P0=seg7codeB[date%10];

P2=0xfb;

//P1.3=0,选通第三位,小数点第一位

P0=seg7code[s%100/10];

P2=0xf7;

//P1.3=0,选通第四位,小数点第二位

P0=seg7code[s%10];

}

if(fg==0)//温度为负时显示的数据

P0=seg7code[11];

//显示负号

//P1.1=0,选通第二位,十位数

//P1.3=0,选通第三位,个位数

//P1.3=0,选通第四位,小数点第一位

P0=seg7code[date];

//主函数,C语言的入口函数:

voidRelay()

{if(sdata<

10)

JDQ=0;

//P1.4引脚控制三极管再由三极管控制继电器,

if(sdata>

11)

JDQ=1;

//输出0三极管导通继电器得电吸合,输出1三极管截止继电器失电断开

while

(1){Led(sdata);

if(num==1)

{

num=0;

break;

};

//主程序循环,即程序要停止在这里,很多初学者忘记了这点,只输入了上面一行,结果程序跑飞,找不出问题

voidmain()

TMOD=0x20;

//用定时器设置串口波特率9600

TH1=0xfd;

TL1=0xfd;

TR1=1;

REN=1;

//串口初始化

SM0=0;

SM1=1;

EA=1;

//开启总中断

ES=1;

while

(1)

{if(z==1)//判断是否有串口数据的传送

{

ES=0;

z=0;

SBUF=1;

//发送数据a到SBUF,即将单片机的数据发送到计算机

while(!

TI);

TI=0;

ES=1;

}

ReadTemperature();

Relay();

}

voidser()interrupt4

RI=0;

a=SBUF;

if(a==238)b=0;

//接收数据SBUF,即将计算机的数据接收。

z=1;

b++;

if(b==5)f=a;

if(f==0x01)

{num=1;

if(b==6)c=a;

if(b==7)

{d=a;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

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

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