家用温湿度检测仪设计.docx
《家用温湿度检测仪设计.docx》由会员分享,可在线阅读,更多相关《家用温湿度检测仪设计.docx(18页珍藏版)》请在冰点文库上搜索。
家用温湿度检测仪设计
单片机原理及接口技术课程设计(论文)
题目:
家用温湿度检测仪
院(系):
专业班级:
学号:
学生姓名:
指导教师:
起止时间:
课程设计(论文)任务及评语
学号
学生姓名
专业班级
题目
家用温湿度检测仪
课程设计(论文)任务
设计任务
设计一个家用温湿度检测仪,具有以下功能:
1、自动监测室内温度与湿度;
2、温度、湿度采用液晶屏显示;
3、当湿度低于设定值30%RH时,自动启动超声波加湿设备;
设计要求:
1、分析系统功能,尽可能降低成本,选择合适单片机、传感器等;
2、应用专业绘图软件绘制硬件电路图与软件流程图;
3、按规定格式,撰写、打印设计说明书一份,其中程序开发要有详细的软件设计说明,详细阐述系统的工作过程,字数应在4000字以上。
进度计划
1、布置任务,查阅资料,理解掌握系统的控制要求。
(2天,分散完成)
2、选择传感器、单片机等元器件型号。
(1天,实验室完成)
3、绘制硬件电路图。
(1天,实验室完成)
4、按系统的控制要求,编写软件程序。
(3天,分散2天,实验室1天)
5、上机调试、修改程序、答辩。
(2天,实验室完成)
6、撰写、打印设计说明书(1天,分散完成)
指导教师评语及成绩
摘要
现代人的生活方式发生了很大的变化,尤其是对自己生活环境的要求更加严格,比如温度,湿度,光线强度等。
多数人希望能够将这些信息数字化,以使自己能更加准确的掌握自己所处环境的情况,因此研究温湿度的测量方法与控制有了重要的意义。
本系统式基于STC89C52单片机为核心,集传感器、数据采集、处理、电机驱动于一体的温度湿度控制系统,非常适合家庭温度湿度监控。
DS18B20数字温度传感器灵敏度高,精度高,硬件电路非常简单,可以直接与单片机相连。
HS1101湿度传感器测量范围大,灵敏度高。
HS1101电容传感器,在电路构成中等效为一个电容器件,其电容量随着所测空气的湿度的增大而增大。
加上一个555定时器,可以产生频率随湿度变化的方波,通过单片机的计数器,可以实现频率的测量,进而可以计算出湿度值。
单片机将采集的温度与湿度值用数码管显示。
当湿度过低时,就启动超声波加湿器。
本系统成本低廉,性能可靠,精度较高,工作稳定,比较好的完成了题目的各项要求。
关键词:
单片机,DS18B20,HS1101,555定时器,数码管
第1章绪论
1.1概述
在工农业生产、气象、环保、国防、科研等部门,经常需要对温度与湿度进行厕灵及控制。
准确测量温湿度罪业生物制药、食品加工、造纸等行业更是至关重要的。
因此研究温湿度的测量方法与控制具有重要的意义。
测量温湿度的关键是温湿度传感器,在温湿度测量技术不断发展的今天,温湿度传感器也正在朝集成化、智能化、系统化方向发展。
数字式温湿度计最大的优势在于读数方便,能够满足许多场合的要求,为人们提供一种高效、低成本的数字化测量工具。
具有广阔的前景与较高的推广价值。
1.2任务要求
1.自动监测室内温度与湿度;
2.温度、湿度采用液晶屏显示;
3.当湿度低于设定值30%RH时,自动启动超声波加湿设备
4.湿度测量范围(%RH)0~100,精度5%RH;
5.温度测量范围15℃~40℃,精度5%
第2章课程设计的方案
2.1系统组成总体结构
图2.1系统总体框图
2.2方案论证
2.2.1温度传感器的选择
根据设计要求温度传感器测量范围是15~40℃,所以选择方案如下:
方案一:
采用热电偶类型的温度传感器进行测量。
方案二:
采用辐射式温度传感器对温度进行测量。
方案三:
采用DS18B20进行温度测量。
这3种温度传感器都是比较常用的温度传感器,但是辐射式传感器主要是用来测量运动中的物体的温度,相对价格较高,而热电偶是温度传感器的测量范围很大,在这个设计中不太合适,因此选用DS18B20。
DS18B20有较好的测量精度与线性度。
而且DS18B20可以直接与单片机引脚连接不需要过程转换。
2.2.2湿度传感器的选择
湿度传感器分为电阻式与电容式两种,且形成的湿敏器件湿敏电阻与湿敏电容都各有其优点。
湿敏电容具有灵敏度高、产品互换性好、形影速度快、湿度低滞后量小、便于制造,其精度一般比湿敏电阻要低。
但电阻对湿度的敏感因而限制了器件在较大温度范围内的应用,因而本设计采用电容式湿度传感器。
法国Humirel公司生产的HS1101电容式湿度传感器,测量范围0%~100%RH,其误差不大于±2%RH,响应时间小于5S,且长期稳定。
所以基于此传感器,设计方案如下:
方案一:
将HS1101置于555振荡电路中,将电容值的变化转化为电压频率信号,直接被单片机处理。
方案二:
HS1101在电路中相当于一个电容元件,它的电容量随着空气湿度的增大而增大,为了能将电容的变化转化成电压的比那话,设计振荡电路,但是为了消除影响因素,还要设计消除零点电容影响电路、整流电路、积分电路、放大电路等。
综合以上因素,选择方案一。
2.2.3单片机的选择
目前,市场上有多重类型的单片机,根据设计要求得出以下方案:
方案一:
选择PIC单片机,AVI单片机等,他们都自带EEPROM,往往价格昂贵。
方案二:
本设计采用ATMEL公司生产的AT89S51单片机,AT89C51是一种低功耗,高性能的CMOS8位单片机,性价比非常高。
因此AT89C51是此设计首选的一款单片机。
2.2.4数码管的选择
数码管的显示有两种方法:
一种是静态显示,一种是动态显示。
由于单片机的输出电流太小(只有几mA)不能驱动数码管发光,所以这里必须有驱动显示模块。
所以设计方案如下:
方案一:
采用静态显示,选用串行转并行芯片74LS373作为数码管的驱动。
静态显示实现起来简单。
方案二:
采用动态显示,讲几个数码管的段选线同时接到单片机的I/O口,节省了单片机的I/O资源。
综上,为了简单选用方案一。
第3章硬件设计
3.1单片机最小系统设计
AT89C51单片机最小系统由复位电路、晶振电路、电源构成。
这些电路是单片机正常工作的必要条件。
本设计中使用的是11.0592MHz的晶振频率。
图3.1时钟电路
3.2传感器设计
3.2.1温度传感器的设计
DS18B20与单片机的连接电路如下
图3.2.1DS18B20电路
3.2.2湿度传感器的设计
图为HS1101的外围电路以及与单片机的连接图。
通过这个电路可以直接输出与湿度相关的频率,并直接与单片机的定时器1相连。
实现频率的测量。
图3.2.2HS1101外围电路
3.3数码显示模块
本系统采用74HC573锁存器控制6个数码管显示温度与湿度值
图3.3数码显示电路
3.4电机驱动电路
图3.4电机驱动电路
第4章软件设计
4.1主程序设计
图4.1主程序流程图
4.2定时中断设计
Y
N
Y
图4.2定时中断流程图
第5章总结
这是第二次进行课程设计,有了上次的经验,明白在课程设计中分工合作非常重要,这样才不会浪费时间,也能在合作中展示个人能力。
由于我个人比较对软件感兴趣,因此,在初次讨论分组的时候选择了负责软件部分——程序的编写。
我们都知道在编写程序之前,最重要的画程序流程图。
流程图反应了程序的思想,结构,步骤。
而画流程图必须要了解硬件设计者的想法以及设计方案。
因此在开始的时后,我主要是与负责硬件部分的同学沟通,了解与分析他们的设计思路以及实现的功能。
这时初步的流程图即可绘制出来。
接下来就是构思详细的流程图。
由于我们使用的51系列单片机,是学习中经常使用的芯片,比较熟悉。
因此结合设计好的Protel图,将使用到的引脚摘出来,结果了解分析,清楚了本次编写程序时主要用到的单片机的I/O口,定时器/计数器等功能。
此时主程序的流程图就很容易绘制出来了。
本次课程设计使用了2种传感器——DS18B20、HS1101。
由于这两种传感器都可以通过电路直接输给单片机数字信号,不用使用AD,这就使得程序简单一些了。
DS18B20内置ROM区,在工作之前要求单片机写数据,而且时序要求严格,才能读出数据。
第一次接触这个传感器,认真学习搜集来的资料,结合本次设计的需要,在已有的程序基础进行修改。
HS1101主要是应用外部计数方式进行湿度的转换。
子程序的流程图写好后就可以着手编写程序了。
根据以前的编程经验,写的时候最好是模块化。
其次,还要注意加注释,这样其他同学在看的时候就以明白每部分实现的功能是什么。
程序写好后与负责硬件的同学一起调试。
我们分别先测试每个传感器的显示,在调试的过程中却出现很多问题,比如尽管编译是程序没有错误,但下载到单片机后却没有达到预期效果,开始排错,确定硬件正常后,就仔细检查程序。
原来是在写程序的时候粗心多写了分号使得程序移植在循环处执行。
通过这次课程设计,我学到了很多。
虽然没有参与硬件方面,没有动手焊接与画电路图,但是却提高了在编程方面的能力,增强经验。
也让我明白,即使程序写的没错误,但是在实际应用中还是会出现各种问题,这次的课程设计让我加强了我在调试时的排错能力。
总之,只有把理论与实际操作结合才能做好事情。
参考文献
[1]郭天祥,《51单片机C语言教程》,北京:
电子工业出版社,2009
[2]谭浩强等,《C程序设计》(第二版),北京:
清华大学出版社,1999
[3]胡向东,《传感技术》,重庆大学出版社,2006
[4]张国雄,《测控电路第三版》,北京:
机械工业出版社,2007
[5]钟富昭,《8051单片机典型模块设计与应用》,北京:
人民邮电出版社,2007
附录
附录Ⅰ
系统原理图
附录Ⅱ
主程序如下:
ORG0100H
LJMPMAIN
ORG001BH
LJMPINTT1
ORG0300H
MAIN:
SETBEA
SETBET1
MOV80H,#60
MOV81H,#20
MOVR0,30H
MOVTMOD,#01H
MOVTH1,#00111100B
MOVTL1,#10110000B
SETBTR1
TBUFEQU40H
初始化设置结束,开始采集并显示
KONG:
MOVP2,00000000B
SETBP3.6
LCALLDELAY
CLRP3.6
JBP3.2,W1
SJMP$
W1:
SETBP3.7
MOV70H,P2
MOVA,70H
MOVB,#256
DIVAB
MOVB,200
MOVAB
MOVB,#64H
DIVAB
MOV51H,A
MOVA,B
MOVB,#0AH
DIVAB
MOV52H,A
MOV53H,B
MOVP2,00000001B
SETBP3.6
LCALLDELAY
CLRP3.6
JBP3.2,W2
SJMP$
W2:
SETBP3.7
MOV71H,P2
MOVA,71H
MOVB,#256
DIVAB
MOVB,200
MOVAB
MOVB,#64H
DIVAB
MOV56H,A
MOVA,B
MOVB,#0AH
DIVAB
MOV57H,A
MOV58H,B
DELAY:
MOVR7,#100
DELAY1:
MOVR6,#24
NOP
DELAY2:
DJNZR6,DELAY2
DJNZR7,DELAY1
RET
定时中断程序:
INTT1:
MOVTH1,#00111100B
MOVTL1,#10110000B
MOVR1,80H
MOVR2,81H
REL2:
DJNZR2,REL
MOV81H,#20
MOVR1,#81H
DJNZREL2
MOV80H,#60
MOVR1,80H
DJNZR0,DEL2
LJMPREL0
REL:
MOV20H,R2
LJMPREL0
REL0:
RETI